如何在 Fedora 的 iptables 中阻止除 22 和 80 之外的所有端口?

如何在 Fedora 的 iptables 中阻止除 22 和 80 之外的所有端口?

我尝试使用 Fedora 15 从任何地方仅允许端口 22 TCP/UDP 和端口 80 TCP/UDP iptables,其余端口永远无法从公共网络访问或扫描。

但它对我来说从来都不起作用,最后我把它关掉了,因为我害怕它会阻止我自己访问端口 22。

所以,我的问题是,我该如何在 Fedora 15 中做到这一点?阻止除 22、80 TCP/UDP 之外的所有 TCP/UDP?

iptables -P INPUT ACCEPT

# Fresh start
iptables -F
# Localhost/ethernet 0 / yum installation allow
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# SSH
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
#iptables -A INPUT -s aa.bb.aa.bb -d xx.yy.xx.yy -p tcp -m tcp –dport 22 -j ACCEPT
iptables -A INPUT -d xx.yy.xx.yy -p tcp -m tcp –dport 22 -j ACCEPT

# other
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# show
iptables -L -v

答案1

在 Fedora 上编辑防火墙配置的最简单方法是使用该system-config-firewall工具。只需system-config-firewall从 X运行,system-config-firewall-tui然后使用简单的图形/curses 界面来设置防火墙规则。

或者,下面/etc/sysconfig/iptables应该可以解决问题:

*筛选
:输入接受 [0:0]
:转发接受 [0:0]
:输出接受 [0:0]
-A 输入 -m 状态 --状态 ESTABLISHED,RELATED -j 接受
-A 输入-p icmp -j 接受
-A 输入-i lo -j 接受
-A 输入 -m 状态 --状态新 -m tcp -p tcp --dport 22 -j 接受
-A 输入 -m 状态 --状态新 -m tcp -p tcp --dport 80 -j 接受
-A 输入 -j 拒绝 --拒绝 icmp 主机禁止
-A 转发 -j 拒绝 --拒绝与 icmp 主机禁止
犯罪

service iptables restart完成后运行。(您也可以使用上述参数,iptables然后运行service iptables save)。

请记住,如果您具有 IPv6 连接,则必须在 中执行类似操作/etc/sysconfig/ip6tablessystem-config-firewall将自动为您执行此操作。

相关内容