概述
购买了一个vps,系统是centos 7 ,用xshell连接进行操作。但是因为vps经常被恶意扫描和尝试登录,所以打算禁用ssh的默认端口。
先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT
清空所有默认规则
iptables -F
清空所有自定义规则
iptables -X
所有计数器归0
iptables -Z
首先允许更改后的ssh连接端口。
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
#允许8888端口
同时修改/etc/ssh/sshd_config的端口号。
增加端口 port 8888
更改后,重启sshd服务。
systemctl restart sshd
用新端口试试能不能连接,如果连接成功,也可以删掉原来的22端口。也可以不删除,禁用22端口之后,也是不能连接的。
拒绝其他端口,拒绝端口要放在放行规则之后,因为iptables是从上往下读取规则的。
禁用22端口
iptables -A INPUT -p tcp --dport 22 -j REJECT
#禁用22端口
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
#拒绝所有接口(已放行的端口不受影响)
保存规则
service iptables save
配置完毕,重启iptables服务。
service iptables restart
#重启iptables服务
问题来了,对主机进行重启,发现ssh连接不上。登录主机,检查iptables规则,没用问题。
iptables -n -L
#查看规则列表
再三查找问题,联想到centos 7 默认防火墙是firewalld,而firewalld的默认是禁止所有端口的。于是马上查看firewalld状态。
systemctl status firewalld
#查看firewalld状态
发现firewalld是开启状态(active),关闭firewalld。
systemctl stop firewalld
#关闭firewalld防火墙。
systemctl disable firewalld
#禁止firewalld开机启动
ssh连接成功,问题解决。
后记:iptables和firewalld都可以设置centos7的防火墙,但是iptables默认是放行,而firewalld默认是拒绝。
最后
以上就是矮小老师为你收集整理的ssh连接VPS,更改端口,配置iptables后,重启连接失败的原因的全部内容,希望文章能够帮你解决ssh连接VPS,更改端口,配置iptables后,重启连接失败的原因所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复