操作说明
22 号端口是 SSH Server 的默认监听端口,当有人对我们位于公网上的服务器进行端口扫描的时候,极有可能发现这个端口并尝试恶意登陆我们服务器上的 SSH Server, 因此修改这个默认监听端口就很有必要。
操作环境
本文中我的操作是在一台远程 VPS 上进行的(我无法连接该 VPS 的本地 Shell, 因此,在接下来的操作中我始终要确保能够远程登陆这台 VPS.), 其操作系统版本信息如下:
[root@GreedyIronclad-VM ~]# cat /etc/issue CentOS release 6.3 (Final) Kernel \r on an \m
操作步骤
打开 SSH Server 的配置文件:
vim /etc/ssh/sshd_config
可以找到如下内容:
#Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
去掉 “Port 22”[1] 前面的注释并在其下添加 “Port XXX”[2], 例如:
Port 22 Port XXX #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
Restart SSH Server:
[root@GreedyIronclad-VM ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
之后我们还需要对防火墙做一些设置,这样才能确保新增的监听端口 XXX[2] 不被防火墙阻断。
(在这里,有些文章可能建议大家直接关闭防火墙,我建议大家千万不要这么做。直接关闭防火墙确实可以省下很多麻烦,但是我们修改 SSH Server 的默认端口的目的就是为了增强服务器的安全性,如果为此而关闭了防火墙那岂不是得不偿失。)
具体操作如下:
编辑防火墙配置文件:
vim /etc/sysconfig/iptables
将用于 SSH Server 的 “XXX”[2] 端口加入允许规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport XXX -j ACCEPT
命令参数注释:
-A: 附加该规则到已有规则的末尾;
INPUT: 入站规则;
-m: 显示扩展;
-m state: 使用 state 扩展模块。当连接与跟踪结合使用时,state 模块允许访问数据包的连接跟踪状态;
-m state –state NEW: 连接中的第一个数据包;
-m tcp: 使用 TCP 扩展模块;
-p tcp: 指定待检查包的协议为 TCP 协议;
–dport XXX: 指定目的端口为 XXX;
-j ACCEPT: 如果数据包和该规则匹配则接受该数据包。
重启防火墙以使配置生效:
service iptables restart
之后,使用新增的非默认端口尝试连接远程服务器,如果可以连接成功(正常情况下,此时使用 22 号端口以及新增的非默认端口都可以连接远程服务器),则接下来我们就把原来的 22 端口禁用掉。
在 SSH Server 的配置文件中注释掉对 22 号端口的监听,编辑配置文件:
vim /etc/ssh/sshd_config
修改后如下:
#Port 22 Port XXX #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress ::
Restart SSH Server:
service sshd restart
此时,再次尝试连接 SSH Server 的 22 号端口应该就已经会被拒绝连接。但是为了更加安全,我们还需要在防火墙上拒绝入站请求 22 端口的连接。
在防火墙上禁止来自 22 端口的连接请求,编辑防火墙配置文件:
vim /etc/sysconfig/iptables
修改示例如下:
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP
Restart Iptables:
service iptables restart
注释
[1] 这一步不能去掉对原来的 22 号端口的监听,因为我们在修改配置文件时使用的还是 22 端口,一旦 22 端口失效而新增的监听端口没能正常工作,那么我们就失去了和远程服务器的连接。
[2] “XXX” 为你想要设置的 SSH Server 监听的端口号,建议应大于 10000, 因为如果攻击者从小到大依次扫描各个端口号,那么大于 10000 的端口被扫描到的可能性将大大降低。