Linux管理员远程管理


作为管理员在CentOS中谈论远程管理时,我们将探讨两种方法 -

  • 控制台管理
  • GUI管理

远程控制台管理

远程控制台管理意味着通过服务(如ssh)从命令行执行管理任务。要有效地使用CentOS Linux,作为管理员,您需要精通命令行。其核心是设计用于从控制台使用Linux。即使在今天,一些系统管理员也更喜欢命令的强大功能,并通过运行没有物理终端且不安装GUI的裸机Linux盒子来节省硬件资金。

远程GUI管理

远程GUI管理通常通过两种方式完成:远程X- Session或VNC等GUI应用层协议。每个人都有其长处和缺点。但是,大多数情况下,VNC是管理的最佳选择。它允许从本地不支持X Windows协议的其他操作系统(如Windows或OS X)进行图形控制。

对于在X上运行的X- Window的窗口管理器和DesktopManagers,使用远程X会话是本机的。然而,整个X会话架构主要用于Linux。并非每个系统管理员都会有一台Linux笔记本电脑来建立远程X会话。因此,使用适合版本的VNC服务器是最常见的。

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

我们将讨论为多个管理员配置VNC而不是使用远程X-Sessions为几百个终端用户配置VNC。

利用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

-我们添加新用户到 车轮 组实现能力, 成根一旦SSH访问已被认证。我们还使用了在常用词汇列表中找不到的用户名。这样,当SSH受到攻击时,我们的帐户不会被锁定。

保存sshd服务器配置设置的文件是 _/ etc / ssh / sshdconfig

我们最初想编辑的部分是 -

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步 - 我们不能再通过ssh使用 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 是一款面向Linux的虚拟网络桌面连接应用程序,围绕Gnome桌面平台进行设计。因此,假定使用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客户端

遵守与我们为SSH提出的相同的VNC规则同样重要。就像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客户端指向我们隧道端口上的本地主机,在这种情况下是端口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 Administration高层的人,建议对此主题进行研究。

使用SSH隧道进行远程X-Windows

Linux中X-Windows的设计与Windows相比非常巧妙。如果我们想从另一个Linux boxm控制远程Linux机器,我们可以利用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 Workstation上运行的GIMP屏幕截图。

使用SSH隧道进行远程X-Windows

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

  • XDMCP

  • 无头软件包,如NX

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

这种方法最常用于没有物理显示的无头服务器,并且确实超出了中级引物的范围。但是,了解可用的选项是很好的。