![最短的 iptables 命令仅允许 ssh 访问](https://linux22.com/image/524763/%E6%9C%80%E7%9F%AD%E7%9A%84%20iptables%20%E5%91%BD%E4%BB%A4%E4%BB%85%E5%85%81%E8%AE%B8%20ssh%20%E8%AE%BF%E9%97%AE.png)
在构建新系统时,我不会打开网络,直到我配置了 iptables 以阻止除端口 22(ssh)之外的所有入站流量。稍后,我会打开端口并配置允许的地址范围。
我可以输入的最短的 iptables 命令是什么,以禁止除来自(给定)单个 IP 地址到端口 22 的连接之外的所有入站流量?
答案1
# flush rules
iptables -F INPUT
iptables -P INPUT DROP
# allow loopback traffic
iptables -A INPUT -s lo -j ACCEPT
# allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow ssh
iptables -A INPUT -s 10.15.10.0/24 -p tcp --dport 22 -j ACCEPT
答案2
我不太擅长实际的命令,但我的 iptables 文件看起来像这样:
#过滤所有之前的规则
*筛选
# 环回地址
-A 输入-i lo -j 接受
# 为 eth+ 连接建立入站规则
-A 输入 -i eth+ -m 状态 --状态相关,已建立 -j 接受
# 允许 ssh 访问
-A 输入 -i eth+ -s XXXX/Y -p tcp --dport 22 -j 接受
# 最后的明确规则
:输入下降 [0:0]
:前锋丢球 [0:0]
:输出接受 [0:0]
犯罪
答案3
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -j DROP
与@pQd 非常相似(投票给他而不是我),但我讨厌 DROP 政策 - 我认为它们是不好的做法。