ssh连接VPS,更改端口,配置iptables后,重启连接失败的原因

购买了一个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默认是拒绝。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值