调整iptables规则,解决无法ssh连接服务器的问题
问题场景
用户 A(假设 ip 为 10.110.0.101) 可以连接某Linux服务器,但是同样 C 段下的用户 B(10.110.0.102)通过ssh连接Linux服务器, 连接会报错超时。
原因在于服务器没有给 B 放通访问权限,具体放通方式如下:
允许用户访问所有端口
iptables -A INPUT -s 10.110.0.102 -j ACCEPT
如果只想允许用户访问某些端口,可以这样设置
iptables -A INPUT -s 10.110.0.102 -p tcp --dport 22 -j ACCEPT
已配置规则但是还是无法连接服务器问题解决
一般来说,执行完上述命令后,就可以正常访问系统了,但也有一部分情况可能还是无法访问,具体原因和解决方案,如下:
查看 iptables 规则
iptables -t filter -nvL INPUT --line-numbers
打印结果:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 23058 1731K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 6 296 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
3 1 60 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT tcp -- * * 10.72.0.0/16 0.0.0.0/0
5 0 0 ACCEPT tcp -- * * 10.12.11.0/24 0.0.0.0/0
6 0 0 ACCEPT tcp -- * * 10.49.12.0/24 0.0.0.0/0
7 0 0 ACCEPT tcp -- * * 10.49.13.0/24 0.0.0.0/0
8 3 156 ACCEPT tcp -- * * 10.9.0.0/16 0.0.0.0/0
9 0 0 ACCEPT tcp -- * * 10.49.14.0/24 0.0.0.0/0
10 0 0 ACCEPT tcp -- * * 10.49.15.0/24 0.0.0.0/0
11 0 0 ACCEPT tcp -- * * 172.16.181.0/24 0.0.0.0/0
12 0 0 ACCEPT tcp -- * * 218.57.135.55 0.0.0.0/0
13 0 0 ACCEPT tcp -- * * 10.10.10.154 0.0.0.0/0
14 0 0 ACCEPT tcp -- * * 192.168.1.0/24 0.0.0.0/0
15 0 0 ACCEPT tcp -- * * 172.30.27.192 0.0.0.0/0
16 0 0 ACCEPT tcp -- * * 10.94.0.0/16 0.0.0.0/0
17 1241 264K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
18 0 0 ACCEPT all -- * * 10.110.0.102 0.0.0.0/0
19 0 0 ACCEPT tcp -- * * 10.110.0.102 0.0.0.0/0 tcp dpt:22
无法连接的原因
现在, 从iptables 规则来看,已经有允许 10.110.0.102 访问的规则,不过该 IP 仍无法连接服务器。
因为在 iptables 里,规则是按顺序匹配的。规则列表中的第 17 条规则为 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
,此规则会拒绝所有其他未匹配前面规则的流量。而允许 10.110.0.102 访问的规则(第 18、19 条)在这条规则之后,所以这些允许规则不会生效。
解决方案
把允许 10.110.0.102 访问的规则移到 REJECT 规则之前。可使用如下命令
# 插入规则到第 17 条之前
iptables -I INPUT 17 -s 10.110.0.102 -j ACCEPT
iptables -I INPUT 17 -s 10.110.0.102 -p tcp --dport 22 -j ACCEPT
# 删除原来的规则
iptables -D INPUT 19
iptables -D INPUT 18
此时用户B便可以成功连接服务器了,问题解决!
✍结尾
🀙🀚🀛🀜🀝🀞🀟🀠🀡🀐🀑🀒🀓🀔🀕🀖🀘🀗🀏🀎🀍🀌🀋🀊🀉🀈🀇🀆🀅🀃🀂🀁🀀🀄︎🀢🀣🀥🀤🀦🀧🀨🀩🀪
📘 妹妹听后点了点头,脸上露出了满意的笑容。她轻声说道:“原来如此,谢谢你,鸽鸽。看来我不仅要多读书,还要多动手实践,提升自己才行。”
看着她那充满求知欲的眼神,我不禁感叹,学习之路虽然充满挑战,但有这样一位美丽聪慧的伙伴相伴,一切都变得格外有意义。快去和妹妹一起实践一下吧!
📘相关阅读⚡⚡
笔者 綦枫Maple 的其他作品,欢迎点击查阅哦~:
📚Jmeter性能测试大全:Jmeter性能测试大全系列教程!持续更新中!
📚UI自动化测试系列: Selenium+Java自动化测试系列教程❤
📚移动端自动化测试系列:Appium自动化测试系列教程
📚Postman系列:Postman高级使用技巧系列
👨🎓作者:綦枫Maple
🚀博客:CSDN、掘金等
🚀CSDN技术社区:https://bbs.csdn.net/forums/testbean
🚀网易云音乐:https://y.music.163.com/m/user?id=316706413
🚫特别声明:原创不易,转载请附上原文出处链接和本文声明,谢谢配合。
🙏版权声明:文章里可能部分文字或者图片来源于互联网或者百度百科,如有侵权请联系处理。
🀐其他:若有兴趣,可以加文章结尾的Q群,一起探讨学习哦~