最短的 iptables 命令仅允许 ssh 访问

最短的 iptables 命令仅允许 ssh 访问

在构建新系统时,我不会打开网络,直到我配置了 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 政策 - 我认为它们是不好的做法。

相关内容