📜  Linux管理员-远程管理

📅  最后修改于: 2020-10-31 13:37:12             🧑  作者: Mango


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

  • 控制台管理
  • GUI管理

远程控制台管理

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

远程GUI管理

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

在X上运行的X-Window的Window-Managers和DesktopManagers都使用远程X Sessions。但是,整个X Session体系结构大多数用于Linux。并非每个系统管理员都会拥有一台Linux便携式计算机来建立远程X会话。因此,最常见的是使用改版的VNC服务器。

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

我们将讨论使用远程X-Session为多个管理员和数百个最终用户配置VNC。

通过SSH为远程控制台访问奠定安全基础

sshSecure Shell现在是远程管理任何Linux服务器的标准。 SSH与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在高速Internet连接上的强大功能,熟练的网络犯罪分子可以使用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组让能力su成根一旦SSH访问已被认证。我们还使用了在常见单词列表中找不到的用户名。这样,当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-我们不再可以通过具有证书的ssh远程登录。因此,让我们登录到我们的非特权用户帐户并su帐户。

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远程管理。

配置VNC以进行远程CentOS管理

有几种方法可以在CentOS 6-7上通过VNC启用远程CentOS管理。最简单但最有限制的方法是简单地使用名为vino的软件包。 Vino是围绕Gnome Desktop平台设计的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客户端

遵守与SSH相同的VNC规则同样重要。与SSH一样,VNC会在IP范围内连续扫描并测试弱密码。还值得一提的是,保持默认的CentOS登录启用并具有控制台超时功能确实有助于远程VNC安全。由于攻击者需要VNC和用户密码,因此请确保您的屏幕共享密码不同,并且与用户密码一样难以猜测。

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

VNC屏幕共享密码

安全说明-默认情况下,VNC不是加密协议。因此,VNC连接应通过SSH进行隧道传输以进行加密。

通过VNC设置SSH隧道

设置SSH隧道将提供一层SSH加密,以隧道通过VNC连接。另一个很棒的功能是它使用SSH压缩为VNC GUI屏幕更新添加了另一层压缩。处理CentOS服务器的管理时,更安全,更快速始终是一件好事!

因此,从将要启动VNC连接的客户端中,我们建立一个远程SSH隧道。在此演示中,我们使用OSX。首先,需要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 Laptop的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隧道

与Windows相比,Linux中的X-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等桌面管理器中配置备用显示器和桌面

此方法最常用于没有物理显示的无头服务器,并且实际上超出了中级入门知识的范围。但是,很高兴知道可用的选项。