Linux管理员 - 远程管理



当以管理员身份讨论CentOS中的远程管理时,我们将探讨两种方法:

  • 控制台管理
  • GUI管理

远程控制台管理

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

远程GUI管理

远程GUI管理通常通过两种方式完成:远程X会话或VNC之类的GUI应用程序层协议。每种方法都有其优缺点。但是,在大多数情况下,VNC是最好的管理选择。它允许从其他操作系统(例如Windows或OS X)进行图形控制,这些操作系统本身不支持X Window协议。

使用远程X会话是运行在X上的X-Window窗口管理器和桌面管理器的原生功能。但是,整个X会话架构主要用于Linux。并非每个系统管理员都会随身携带Linux笔记本电脑来建立远程X会话。因此,最常见的方法是使用VNC服务器的适配版本。

VNC最大的缺点是:VNC本身不支持多用户环境,例如远程X会话。因此,对于最终用户的GUI访问,远程X会话将是最佳选择。但是,我们主要关注的是远程管理CentOS服务器。

我们将讨论为多个管理员配置VNC与为数百个最终用户配置远程X会话。

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

ssh安全外壳现在是远程管理任何Linux服务器的标准。与telnet不同,SSH使用TLS进行身份验证和端到端加密通信。如果配置正确,管理员可以相当确定他们的密码和服务器都是远程受信任的。

在配置SSH之前,让我们谈谈基本的安全性和最小访问权限。当SSH在其默认端口22上运行时;迟早你会遇到针对常用用户名和密码的暴力破解字典攻击。这只是家常便饭。无论您在拒绝文件(deny files)中添加多少主机,它们每天都会从不同的IP地址进入。

通过一些常用规则,您可以简单地采取一些积极主动的措施,让坏人浪费时间。以下是使用SSH进行生产服务器远程管理时应遵循的一些安全规则:

  • 切勿使用常用的用户名或密码。系统上的用户名不应为系统默认用户名,也不应与公司电子邮件地址相关联,例如:[email protected]

  • 不应允许通过SSH进行root访问或管理访问。使用唯一的用户名,并在通过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:让我们尝试使用root凭据登录。

bash-3.2# ssh centos.vmnet.local 
[email protected]'s password:   
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

步骤5:我们现在无法再通过ssh使用root凭据远程登录。因此,让我们登录到我们的非特权用户帐户并suroot帐户。

bash-3.2# ssh [email protected]
[email protected]'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现已设置完毕,可以进行远程管理。根据您的企业边界,可能需要配置数据包过滤边界设备以允许在公司局域网外部进行SSH远程管理。

配置VNC以进行远程CentOS管理

在CentOS 6-7上通过VNC启用远程CentOS管理有几种方法。最简单但最受限制的方法是简单地使用名为vino的软件包。Vino是为Linux设计的基于Gnome桌面平台的虚拟网络桌面连接应用程序。因此,假设安装已完成Gnome桌面。如果尚未安装Gnome桌面,请在继续之前安装。Vino将默认情况下与Gnome GUI安装一起安装。

要在Gnome下使用Vino配置屏幕共享,我们需要进入CentOS系统首选项以进行屏幕共享。

Applications->System Tools->Settings->Sharing

Sharing

Screen Sharing

Screen Sharing Authentication

配置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系统,并使用Windows或OS X上的VNC客户端对其进行管理。

VNC client

遵守与我们为SSH制定的相同规则对于VNC同样重要。与SSH一样,VNC会不断扫描IP范围并测试弱密码。还值得注意的是,保留启用的默认CentOS登录名以及控制台超时确实有助于远程VNC安全性。由于攻击者需要VNC和用户密码,因此请确保您的屏幕共享密码不同,并且与用户密码一样难以猜测。

输入VNC屏幕共享密码后,我们还必须输入用户密码才能访问锁定的桌面。

VNC Screen Sharing Password

安全说明:默认情况下,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 [email protected] -L 2200:192.168.1.143:5900 -N

让我们分解一下这个命令:

  • ssh:运行本地ssh实用程序

  • -f:任务完全执行后,ssh应在后台运行

  • [email protected]:托管VNC服务的CentOS服务器上的远程ssh用户

  • -L 2200:192.168.1.143:5900:创建我们的隧道[本地端口]:[远程主机]:[VNC服务的远程端口]

  • -N告诉ssh我们不希望在远程系统上执行命令

bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:

成功输入远程ssh用户的密码后,我们的ssh隧道就创建好了。现在是精彩的部分!要连接,我们将VNC客户端指向隧道的本地主机上的端口,在本例中为端口2200。以下是Mac笔记本电脑的VNC客户端上的配置:

SSH Tunnel

最后,我们的远程VNC桌面连接!

VNC Desktop Connection

SSH隧道的好处在于它几乎可以用于任何协议。SSH隧道通常用于绕过ISP的出站和入站端口过滤,以及在逃避其他会话层监控的同时欺骗应用程序层IDS/IPS。

  • 您的ISP可能会为非商业帐户过滤端口5900,但允许SSH在端口22上运行(如果端口22被过滤,则可以在任何端口上运行SSH)。

  • 应用程序级IPS和IDS查看有效负载。例如,常见的缓冲区溢出或SQL注入。端到端SSH加密将加密应用程序层数据。

SSH隧道是Linux管理员工具箱中完成任务的好工具。但是,作为管理员,我们希望探索锁定较低权限的用户访问SSH隧道的可用性。

管理安全说明:限制SSH隧道是管理员需要考虑的事情。评估用户首先为什么需要SSH隧道;哪些用户需要隧道;以及实际的风险概率和最坏情况的影响。

这是一个高级主题,超出了中级入门教程的范围。建议希望达到 CentOS Linux 管理高级水平的用户对此主题进行研究。

使用 SSH 隧道进行远程 X 窗口访问

与 Windows 相比,Linux 中 X 窗口的设计非常巧妙。如果我们想从另一台 Linux 机器控制远程 Linux 机器,我们可以利用 X 中内置的机制。

X 窗口(通常简称为“X”)提供了一种机制,可以将源自一台 Linux 机器上的应用程序窗口显示到另一台 Linux 机器上 X 的显示部分。因此,通过 SSH,我们可以请求将 X 窗口应用程序转发到世界各地的另一台 Linux 机器的显示器上!

要通过 ssh 隧道远程运行 X 应用程序,我们只需要运行一条命令:

[root@localhost]# ssh -X [email protected]

语法是:ssh -X [用户名]@[主机名],并且主机必须运行 ssh 且具有有效的用户名。

以下是通过远程 X 窗口 ssh 隧道在 Ubuntu 工作站上运行 GIMP 的屏幕截图。(此处应插入截图)

Use SSH Tunnel for Remote X-Windows

从另一台 Linux 服务器或工作站远程运行应用程序非常简单。也可以通过几种方法启动整个 X 会话并远程访问整个桌面环境。

  • XDMCP

  • 无头软件包,例如 NX

  • 在 X 和桌面管理器(如 Gnome 或 KDE)中配置备用显示器和桌面

此方法最常用于没有物理显示器的无头服务器,并且确实超出了中级入门教程的范围。但是,了解可用的选项总是有好处的。

广告