在以管理员身份谈论CentOS中的远程管理时,我们将探讨两种方法 :
控制台管理
GUI管理
远程控制台管理
远程控制台管理意味着执行管理任务命令行通过ssh等服务.要有效地使用CentOS Linux,作为管理员,您需要熟练掌握命令行. Linux的核心设计是从控制台使用.即便在今天,一些系统管理员更喜欢命令的强大功能,并通过运行没有物理终端且没有安装GUI的简单Linux机箱来节省硬件资金.
远程GUI管理
远程GUI管理通常以两种方式完成:远程X-Session或GUI应用层协议(如VNC).每个都有自己的优点和缺点.但是,在大多数情况下,VNC是管理的最佳选择.它允许从其他操作系统(如Windows或OS X)进行图形控制,这些操作系统本身不支持X Windows协议.
使用远程X会话对于X-Window的窗口管理器和DesktopManagers在X上运行.但是,整个X Session架构主要用于Linux.并非每个系统管理员都有一台Linux笔记本电脑来建立远程X会话.因此,最常见的是使用适应版本的VNC服务器.
VNC的最大缺点是:VNC本身不支持多用户环境,例如远程X-Sessions.因此,对于最终用户的GUI访问,远程XSession将是最佳选择.但是,我们主要关注远程管理CentOS服务器.
我们将讨论为多个管理员配置VNC而不是几百个具有远程X-Sessions的最终用户.
使用SSH为远程控制台访问奠定安全基础
ssh 或安全外壳现在是远程控制的标准管理任何Linux服务器.与telnet不同,SSH使用TLS进行通信的真实性和端到端加密.正确配置后,管理员可以非常确定他们的密码和服务器都是远程信任的.
在配置SSH之前,我们先谈谈基本安全性和最不常见的访问.当SSH在其默认端口22上运行时;不久之后,您将对常见的用户名和密码进行暴力破解.这只是领土.无论您添加到拒绝文件中的主机数量是多少,它们每天都会从不同的IP地址进入.
通过一些常用规则,您可以简单地采取一些主动步骤,让坏人浪费时间.以下是使用SSH在生产服务器上进行远程管理的一些安全规则 :
从不使用共同点用户名或密码.系统上的用户名不应该是系统默认值,也不应与公司电子邮件地址相关联,如: systemadmin@yourcompany.com
Root不应通过SSH访问或管理访问权限.通过SSH验证后,使用唯一的用户名和su到root或管理帐户.
密码策略是必须的:复杂的SSH用户密码如:"This& IS&安培; A和GUD和放大器,P @ ssW0rd&放大器; 24放大器;我".每隔几个月更改一次密码,以消除对增量暴力攻击的敏感性.
禁用已放弃或长时间未使用的帐户.如果招聘经理有语音信箱说明他们将不会进行一个月的面试;例如,这可以让技术娴熟的人掌握很多时间.
每天观看您的日志.作为系统管理员,每天早上至少要花30-40分钟查看系统和安全日志.如果被问及,请让每个人都知道你没有时间不积极主动.这种做法有助于在问题出现给最终用户和公司利润之前隔离警告标志.
关于Linux安全的说明 : 任何对Linux Administration感兴趣的人都应该积极地追求当前的Cyber-Security新闻和技术.虽然我们大多听说其他操作系统遭到入侵,但一个不安全的Linux机箱对于网络犯罪分子来说是一个广受欢迎的宝藏.凭借Linux在高速互联网连接上的强大功能,熟练的网络犯罪分子可以使用Linux来利用对其他操作系统的攻击.
安装和配置SSH以进行远程访问
第1步 : 安装SSH服务器和所有相关软件包.
[root @ localhost] #yum -y install openssh-server '加载的插件: fastermirror,langpacks 从缓存的主机文件加载镜像速度 * base:repos.centos.net * extras:repos.dfw.centos.com * updates:centos.centos. com 解析依赖关系 - >正在运行交易支票 --->包openssh-server.x86_64 0:6.6.1p1-33.el7_3将安装 - >已完成的依赖性解决方案已解决的依赖关系
步骤2 : 定期使用安全添加shell访问权限.
[root @ localhost~] #useradd choozer [root @ localhost~ ]#usermod -c"远程访问"-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 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.localchoozer@centos.vmnet.local's password:[choozer@localhost ~]$ su rootPassword:[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] #snmantec-cmd --permanent --add-port = 5900/tcp 成功 [root @ localhost]# firewall-cmd --reload 成功 [root @ localhost rdc]#
最后,你可以看到我们能够连接我们的CentOS Box并在Windows或OS X上使用VNC客户端进行管理.
遵守与我们为SSH规定的VNC相同的规则同样重要.就像SSH一样,VNC在IP范围内不断扫描并测试弱密码.还值得注意的是,通过控制台超时启用默认的CentOS登录确实有助于远程VNC安全性.由于攻击者需要VNC和用户密码,请确保您的屏幕共享密码不同,并且与用户密码一样难以猜测.
输入VNC屏幕共享密码后,我们还必须输入用户密码才能访问锁定的桌面.
安全提示 : 默认情况下,VNC不是加密协议.因此,VNC连接应通过SSH进行隧道加密.
通过VNC设置SSH隧道
设置SSH隧道将提供一个层SSH加密通过隧道传输VNC连接.另一个很棒的功能是它使用SSH压缩为VNC GUI屏幕更新添加另一层压缩.在处理CentOS服务器的管理时,更安全,更快速总是一件好事!
因此,从您的客户端开始VNC连接,让我们设置一个远程SSH隧道.在本演示中,我们使用OS X.首先我们需要 sudo -s 到 root .
bash-3.2#sudo -s 密码:
输入用户密码,我们现在应该有 root shell 使用#prompt :
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的密码:
成功后输入远程ssh用户的密码,即可创建 ssh tunnel .现在为酷的部分!为了连接,我们将VNC客户端指向隧道端口上的localhost,在本例中为端口2200.以下是Mac Laptop的VNC客户端上的配置 :
最后,我们的远程VNC桌面连接!
关于SSH隧道的一个很酷的事情是它几乎可以用于任何协议. SSH隧道通常用于绕过ISP的出口和入口端口过滤,以及欺骗应用层IDS/IPS,同时避开其他会话层监控.
您的ISP可以过滤非企业帐户的端口5900,但允许端口22上的SSH(或者如果端口22被过滤,则可以在任何端口上运行SSH).
应用程序级IPS和IDS查看有效负载.例如,常见的缓冲区溢出或SQL注入.端到端SSH加密将加密应用层数据.
SSH隧道是Linux管理员工具箱中用于完成工作的绝佳工具.但是,作为管理员,我们希望探索锁定可以访问SSH隧道的较低权限用户的可用性.
管理安全说明 : 限制SSH隧道是管理员需要考虑的事情.首先评估用户需要SSH隧道的原因;用户需要什么隧道;以及实际风险概率和最坏情况影响.
这是一个超出中级引物范围的高级主题.对于希望进入CentOS Linux管理高层的人,建议对此主题进行研究.
使用SSH隧道进行远程X-Windows
与Windows相比,Linux中的X-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工作站上运行的GIMP的屏幕截图隧道.
它是从另一台Linux服务器或工作站远程运行应用程序非常简单.也可以通过几种方法启动整个X-Session并远程拥有整个桌面环境.
XDMCP
无头软件包,例如NX
在X中配置备用显示器和桌面桌面管理器,如Gnome或KDE
此方法最常用于没有物理显示的无头服务器,并且实际上超出了中级引物.但是,了解可用的选项很好.