Debian下更改SSH端口并配置iptables

上篇文章提到给Debian安装fail2ban阻止 SSH暴力破解,效果有并且明显,但还是无法根绝各种IP的扫描,iptables规则里禁止了一堆IP,总不能这样越积越多,就想着给SSH换个端口。正常情况下的更换SSH端口的步骤是这样的。

更改SSH端口

修改SSH配置文件

nano /etc/ssh/sshd_config  

在Port 22下添加想要的端口,以12345为例

Port 22  
Port 12345  

继续修改

nano /etc/ssh/ssh_config  

在Host *下添加端口Port 123456

Host *  
Port 22  
Port 12345  
#   ForwardAgent no

重启SSH服务

service ssh restart  

正常情况下,完成这些操作后用新端口12345就可以SSH登入。然后重新编辑/etc/ssh/sshd_config/etc/ssh/ssh_config文件将Port 22前面加上#注释掉#Port 22,再次service ssh restart重启SSH使生效。就完成SSH端口更改。

debian下的问题

但我几个VPS这样设置后新端口怎么都连不上,只能用默认端口22登录。猜到是itables引起的,搜索iptables开启端口教程,照做还是不能登录,几乎尝试了所有关键字组合都没搜出有用的。大多是centos系统教程,而在debian下service iptables restart这个命令根本不存在,类似/etc/XXXXX restart的命令在debian也无法运行。最后还是在无意中瞄到iptables到debian官方推荐配置的一段:

# Allows SSH connections 
# The --dport number is the same as in /etc/ssh/sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

瞬间了然。

nano /etc/iptables.test.rules  

将iptables默认规则中SSH端口22改成12345,然后保存生效,就可以用新端口登录。

iptables-restore < /etc/iptables.test.rules  
iptables-save > /etc/iptables.up.rules