Linux Admin教程

Linux Admin远程管理

当以管理员身份在 CentOS 中进行远程管理时,我们将探讨两种方法-
控制台管理 界面管理

远程控制台管理

远程控制台管理意味着通过 ssh 等服务从命令行执行管理任务。要有效地使用 CentOS Linux,作为管理员,您需要精通命令行。 Linux 的核心设计是从控制台使用。即使在今天,一些系统管理员仍然更喜欢命令的强大功能,并通过运行没有物理终端和 GUI 的准系统 Linux 机器来节省硬件成本。

远程 GUI 管理

远程 GUI 管理通常通过两种方式完成:远程 X-Session 或 GUI 应用层协议(如 VNC)。每个都有其优点和缺点。但是,在大多数情况下,VNC 是管理的最佳选择。它允许从本身不支持 X Windows 协议的其他操作系统(如 Windows 或 OS X)进行图形控制。
使用远程 X Sessions 是 X-Window 的 Window-Managers 和运行在 X 上的 DesktopManagers 的本机。但是,整个 X Session 架构主要用于 Linux。并非每个系统管理员都会手头有一台 Linux 笔记本电脑来建立远程 X 会话。因此,最常见的是使用 VNC Server 的适配版本。
VNC 的最大缺点是:VNC 本身不支持多用户环境,例如远程 X-Session。因此,对于最终用户远程 XSession 的 GUI 访问将是最佳选择。然而,我们主要关心的是远程管理 CentOS 服务器。
我们将讨论为多个管理员配置 VNC,而不是数百个使用远程 X-Session 的最终用户。

使用 SSH 为远程控制台访问奠定安全基础

sshSecure Shell 现在是远程管理任何 Linux 服务器的标准。与 telnet 不同,SSH 使用 TLS 来保证通信的真实性和端到端加密。正确配置后,管理员可以非常确定他们的密码和服务器都是远程信任的。
在配置 SSH 之前,让我们先谈谈基本的安全性和最不常见的访问。当 SSH 在其默认端口 22 上运行时;迟早,您将受到针对常见用户名和密码的强力字典攻击。这只是与领土有关。无论您向拒绝文件中添加多少台主机,它们每天都会从不同的 IP 地址进入。
通过一些通用规则,您可以简单地采取一些积极主动的步骤,让坏人浪费时间。以下是在生产服务器上使用 SSH 进行远程管理时要遵循的一些安全规则-
切勿使用通用的用户名或密码。系统上的用户名不应是系统默认值,也不应与公司电子邮件地址相关联,例如:systemadmin@yourcompany.com 不应允许通过 SSH 进行根访问或管理访问。通过 SSH 进行身份验证后,使用唯一的用户名和 su 作为 root 或管理帐户。 密码策略是必须的:复杂的 SSH 用户密码,如:"This&IS&a&GUD&P@ssW0rd&24&me"。每隔几个月更改一次密码,以消除对增量蛮力攻击的敏感性。 禁用废弃或长时间未使用的帐户。如果招聘经理收到语音邮件,说明他们将在一个月内不进行面试;例如,这可能会让精通技术的人手头有很多时间。 每天查看您的日志。作为系统管理员,每天早上至少花 30-40 分钟查看系统和安全日志。如果被问到,让每个人都知道你没有时间不积极主动。这种做法有助于在问题出现给最终用户和公司利润之前隔离警告信号。
Linux 安全注意事项-任何对 Linux 管理感兴趣的人都应该积极关注当前的网络安全新闻和技术。虽然我们经常听到其他操作系统遭到入侵的消息,但不安全的 Linux 机器是网络犯罪分子抢手的宝藏。借助 Linux 在高速互联网连接上的强大功能,熟练的网络犯罪分子可以使用 Linux 攻击其他操作系统。

为远程访问安装和配置 SSH

第 1 步-安装 SSH 服务器和所有依赖包。
[root@localhost]# yum-y install openssh-server 
'Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
* base: repos.centos.net 
* extras: repos.dfw.centos.com 
* updates: centos.centos.com 
Resolving Dependencies 
  --> Running transaction check 
  ---> package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed 
  --> Finished Dependency Resolution 
Dependencies Resolved
第 2 步-安全地定期使用以添加 shell 访问。
[root@localhost ~]# useradd choozer 
[root@localhost ~]# usermod-c "Remote Access"-d /home/choozer-g users-G 
wheel-a choozer
注意-我们将新用户添加到 wheel 组,一旦 SSH 访问通过身份验证,就可以 su 进入 root 用户。我们还使用了在常用单词列表中找不到的用户名。这样我们的账号就不会在 SSH 被攻击时被锁定。
保存 sshd 服务器配置设置的文件是 /etc/ssh/sshd_config
我们最初要编辑的部分是-
LoginGraceTime 60m
PermitRootLogin no
第 3 步-重新加载 SSH 守护进程 sshd
[root@localhost]# systemctl reload sshd
最好将注销宽限期设置为 60 分钟。某些复杂的管理任务可能会超过默认值 2 分钟。在配置或研究更改时,没有什么比 SSH 会话超时更令人沮丧的了。
第 4 步-让我们尝试使用根凭据登录。
bash-3.2# ssh centos.vmnet.local 
root@centos.vmnet.local's password:   
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
第 5 步-我们无法再使用 root 凭据通过 ssh 远程登录。因此,让我们登录到我们的非特权用户帐户,然后 su 进入 root 帐户。
bash-3.2# ssh chooser@centos.vmnet.local
choozer@centos.vmnet.local's password:
[choozer@localhost ~]$ su root
Password:
[root@localhost choozer]#
第 6 步-最后,让我们确保 SSHD 服务在启动时加载,并且 firewalld 允许外部 SSH 连接。
[root@localhost]# systemctl enable sshd
[root@localhost]# firewall-cmd--permanent--add-service=ssh 
success
[root@localhost]# firewall-cmd--reload 
success
 
[root@localhost]#
 
SSH 现已设置并准备好进行远程管理。根据您的企业边界,可能需要配置包过滤边界设备以允许在企业 LAN 之外进行 SSH 远程管理。

为远程 CentOS 管理配置 VNC

有几种方法可以在 CentOS 6-7 上通过 VNC 启用远程 CentOS 管理。最简单但最有限制的方法是简单地使用一个名为 vino 的软件包。 Vino 是围绕 Gnome 桌面平台设计的 Linux 虚拟网络桌面连接应用程序。因此,假设安装是使用 Gnome Desktop 完成的。如果尚未安装 Gnome 桌面,请在继续之前安装。默认情况下,Vino 将与 Gnome GUI 一起安装。
要在 Gnome 下配置与 Vino 的屏幕共享,我们要进入 CentOS 系统偏好设置进行屏幕共享。
Applications->System Tools->Settings->Sharing
共享
屏幕共享
屏幕共享认证
配置 VNC 桌面共享的注意事项-
禁用新连接必须要求访问-此选项将需要物理访问才能确定每个连接。除非有人在物理桌面上,否则此选项将阻止远程管理。 启用需要密码-这与用户密码分开。它将控制对虚拟桌面的访问,但仍需要用户密码才能访问锁定的桌面(这有利于安全)。 转发 UP&P 端口:如果可用保持禁用-转发 UP&P 端口将为第 3 层设备发送通用即插即用请求,以允许 VNC 自动连接到主机。我们不想要这个。
确保 vino 正在侦听 VNC 端口 5900。
[root@localhost]# netstat-antup | grep vino 
tcp        0        0 0.0.0.0:5900        0.0.0.0:*        LISTEN        4873/vino-server
tcp6       0        0 :::5900                :::*          LISTEN        4873/vino-server
   
[root@localhost]#
现在让我们配置防火墙以允许传入的 VNC 连接。
[root@localhost]# firewall-cmd--permanent--add-port=5900/tcp 
success
[root@localhost]# firewall-cmd--reload 
success
[root@localhost rdc]#
最后,如您所见,我们可以连接 CentOS Box 并使用 Windows 或 OS X 上的 VNC 客户端对其进行管理。
VNC 客户端
遵守 VNC 的规则与我们为 SSH 制定的规则同样重要。就像 SSH 一样,VNC 会持续扫描 IP 范围并测试弱密码。还值得注意的是,通过控制台超时启用默认的 CentOS 登录确实有助于远程 VNC 安全。由于攻击者需要 VNC 和用户密码,因此请确保您的屏幕共享密码不同,并且与用户密码一样难以猜测。
输入VNC屏幕共享密码后,我们还必须输入用户密码才能访问锁定的桌面。
VNC 屏幕共享密码
安全注意事项-默认情况下,VNC 不是加密协议。因此,VNC 连接应该通过 SSH 隧道进行加密。

通过 VNC 设置 SSH 隧道

设置 SSH 隧道将提供一层 SSH 加密,以通过隧道建立 VNC 连接。另一个很棒的功能是它使用 SSH 压缩为 VNC GUI 屏幕更新添加另一层压缩。在处理 CentOS 服务器的管理时,更安全和更快总是一件好事!
因此,从您的客户端将启动 VNC 连接,让我们设置一个远程 SSH 隧道。在这个演示中,我们使用的是 OS X。首先我们需要 sudo-sroot
bash-3.2# sudo -s 
password:
输入用户密码,我们现在应该拥有带有 # 提示的 root shell-
bash-3.2#
现在,让我们创建我们的 SSH 隧道
ssh-f rdc@192.168.1.143-L 2200:192.168.1.143:5900-N
让我们分解这个命令-
ssh-运行本地 ssh 实用程序 -f-ssh 应该在任务完全执行后的后台 rdc@192.168.1.143-托管 VNC 服务的 CentOS 服务器上的远程 ssh 用户 -L 2200:192.168.1.143:5900-创建我们的隧道 [本地端口]:[远程主机]:[VNC 服务的远程端口] -N 告诉 ssh 我们不希望在远程系统上执行命令
bash-3.2# ssh-f rdc@192.168.1.143-L 2200:192.168.1.143:5900-N
rdc@192.168.1.143's password:
成功输入远程ssh用户的密码后,我们的 ssh隧道就创建好了。现在是很酷的部分!为了连接,我们将 VNC 客户端指向隧道端口上的 localhost,在本例中为端口 2200。以下是 Mac 笔记本电脑的 VNC 客户端上的配置-
SSH 隧道
最后,我们的远程 VNC 桌面连接!
VNC 桌面连接
SSH 隧道的一个很酷的地方是它几乎可以用于任何协议。 SSH 隧道通常用于绕过 ISP 的出口和入口端口过滤,以及在逃避其他会话层监控的同时欺骗应用层 IDS/IPS。
您的 ISP 可能会为非企业帐户过滤端口 5900,但允许端口 22 上的 SSH(或者,如果端口 22 被过滤,则可以在任何端口上运行 SSH)。 应用级 IPS 和 IDS 关注有效负载。例如,常见的缓冲区溢出或 SQL 注入。端到端 SSH 加密将加密应用层数据。
SSH 隧道是 Linux 管理员工具箱中完成工作的绝佳工具。但是,作为管理员,我们希望探索锁定有权访问 SSH 隧道的低权限用户的可用性。
管理安全注意事项-限制 SSH 隧道是管理员需要考虑的事情。首先评估用户为什么需要 SSH 隧道;用户需要什么隧道;以及实际风险概率和最坏情况影响。
这是一个高级主题,超出了中级入门的范围。建议那些希望达到 CentOS Linux 管理高层的人研究这个主题。

对远程 X-Windows 使用 SSH 隧道

Linux 中 X-Windows 的设计与 Windows 相比非常简洁。如果我们想从另一个 Linux boxm 控制远程 Linux box,我们可以利用 X 内置的机制。
X-Windows(通常简称为"X"),提供了将源自一个 Linux 机器的应用程序窗口显示到另一个 Linux 机器上 X 的显示部分的机制。因此,通过 SSH,我们可以请求将 X-Windows 应用程序转发到世界各地的另一个 Linux 机器的显示器!
要通过 ssh 隧道远程运行 X 应用程序,我们只需要运行一个命令-
[root@localhost]# ssh-X rdc@192.168.1.105
语法是-ssh-X [user]@[host],并且主机必须使用有效用户运行 ssh。
以下是通过远程 XWindows ssh 隧道在 Ubuntu 工作站上运行的 GIMP 的屏幕截图。
对远程 X-Windows 使用 SSH 隧道
从另一台 Linux 服务器或工作站远程运行应用程序非常简单。还可以通过几种方法远程启动整个 X-Session 并拥有整个桌面环境。
XDMCP 无头软件包,例如 NX 在 X 和桌面管理器(如 Gnome 或 KDE)中配置备用显示器和桌面
这种方法最常用于没有物理显示器的无头服务器,确实超出了中级入门的范围。但是,了解可用的选项是很好的。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4