3.4.6 更改SSH服务器端远程登录的配置
您可以在百度里搜索“跟老男孩学Linux运维:Web集群实战 艾草文学(www.321553.xyz)”查找最新章节!
3.4.6 更改SSH服务器端远程登录的配置
Windows服务器的默认远程管理端口是3389,管理员用户是administrator,普通用户是guest。Linux的管理用户是root,普通用户默认有很多个,远程连接默认端口22。这些通常有IT经验的人都知道。那么黑客是否也知道呢?他们当然知道,甚至比我们更清楚,所以,为了系统安全,必须隐藏或更改上述默认配置。更改配置的命令如下:
[root@www ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori#→更改配置前进行备份,是系统管理员的一个良好的习惯。 [root@www ~]#vi /etc/ssh/sshd_config#→编辑sshd_config ####by oldboy#2011-11-24## Port 52113PermitRootLogin no PermitEmptyPasswords no UseDNS noGSSAPIAuthentication no ####by oldboy#2011-11-24##
其中,sshd_config修改的相关参数说明见表3-4。
表3-4 修改的参数说明
注:Linux下SSH远程连接服务慢的解决方案请见老男孩的博客:http://oldboy.blog.51cto.com/2561410/1300964。
将以上信息更改后,保存退出。
执行如下命令重启sshd,使修改的配置生效:
[root@www ~]# /etc/init.d/sshd reload重新载入 sshd: [确定]或者 [root@www~]# /etc/init.d/sshd restart Stopping sshd: [ OK ] Starting sshd: [OK ]
提示:reload为平滑重启,不影响正在SSH连接的其他用户,因此要好于restart。
此时远程连接Linux,就仅有oldboy用户可通过52113端口远程连接到系统中了(本地登录的用户不受影响)。
除了手工操作之外,也可以通过命令行批量修改对应的参数,命令集如下:
echo "#--------sshConfig修改ssh默认登录端口,禁止root登录----------#" cp/etc/ssh/sshd_config /etc/ssh/sshd_config.`date +"%F%H%M%S"` sed -i's%#Port 22%Port 52113%' /etc/ssh/sshd_config sed -i's%#PermitRootLogin yes%PermitRootLogin no%' /etc/ssh/sshd_configsed -i 's%#PermitEmptyPasswords no%PermitEmptyPasswords no%'/etc/ssh/sshd_config sed -i 's%#UseDNS yes%UseDNS no%'/etc/ssh/sshd_config sed -i 's%GSSAPIAuthenticationyes%GSSAPIAuthentication no%' /etc/ssh/sshd_config egrep"UseDNS|52113|RootLogin|EmptyPass|GSSAPIAuthentication"/etc/ssh/sshd_config /etc/init.d/sshd reload
还可以通过sed命令快速增加参数内容,如下:
[root@www ssh]# sed -ir '13 iPort 52113PermitRootLoginnoPermitEmptyPasswords noUseDNS noGSSAPIAuthentication no'sshd_config [root@www ssh]# sed -n '13,17p' sshd_config Port 52113PermitRootLogin no PermitEmptyPasswords no UseDNS noGSSAPIAuthentication no
注意,在重启sshd后,当前的CRT仍然可以连接服务器,直到退出重新登录为止。如下:
[root@www ~]# netstat -an|grep 10.0.0.100 <==ip是客户机的IP。 tcp 052 10.0.0.7:22 10.0.0.100:52255 ESTABLISHED tcp 0 0 10.0.0.7:2210.0.0.100:53242 ESTABLISHED
退出CRT之后,登录会显示无法连接(如图3-30所示)。
此时要修改登录用户和登录端口才行,如图3-31所示。
图3-30 新窗口无法远程连接SSH
图3-31 修改登录端口和用户
配置完毕,重新连接后的结果如下:
[oldboy@www ~]$ whoami oldboy
如果需要系统管理可以切换到root用户,切换命令如下:
[oldboy@www ~]$ su - root #←注意,此处需要的是root用户的密码 Password:[root@www ~]# whoami root
除了前面介绍的安全知识以外,还有更高级的SSH安全策略,具体如下。
1)更改SSH监听的IP,使其仅监听内网IP。命令如下:
[root@web01 ~]# sed -n '13,20p' /etc/ssh/sshd_config ####byoldboy#2011-11-24## Port 52113 PermitRootLogin noPermitEmptyPasswords no UseDNS no GSSAPIAuthentication noListenAddress 10.0.0.7:52113 #←企业仅指定监听本机内网IP地址 ####byoldboy#2011-11-24##
2)通过防火墙限制仅能使用内网IP连接此服务器。限制命令如下:
iptables -I INPUT -p tcp --dport 52113 -s 10.0.0.0/24 -j ACCEPT#←默认规则为DROP时的限制SSH命令
3)通过拨号到VPN服务器,然后从局域网访问这些服务器,提升安全性。其实Linux主机安全就像我们居住的房子安全一样,其原理示意图如图3-32所示。
4)工作中的系统安全重点就是互联网TCP/IP连接、对外的Web服务器端口http 80和https 443的安全控制。 跟老男孩学Linux运维:Web集群实战