我想执行以下操作,但在 CentOS 中使用 iptables 时遇到困难:
- 我愿意接受入站仅端口 80,443,22, snmp, 3306到我的服务器
- 我希望能够允许所有出站端口
- 我希望全部其他入站连接将被丢弃
答案1
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
打开你的 iptables(/etc/sysconfig/iptables) 并在 ( ) 行下面添加以下几行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 161 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
重新启动 iptables:
service iptables restart
默认情况下,您的 iptables 允许所有出站端口。
答案2
lokkit
将为您提供一个用于配置 iptables 的简单界面。
答案3
- 我想仅接受到我的服务器的入站端口 80,443,22、snmp、3306。
- 我希望能够允许所有出站端口
- 我希望所有其他入站连接都被断开。
把这个规则放入 shell 脚本中....
#!/bin/bash
# 3
iptables -P INPUT DROP
iptables -P FORWARD DROP
# 2
iptables -P OUTPUT ACCEPT
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
# 1 (change eth0 for your interface)
iptables -A INPUT -j ACCEPT -i eth0 -p tcp -m multiport --dport 80,443,22,161,3306
答案4
已经给出的答案肯定能满足您的需要。但实际上,你应该理解如果您要管理防火墙,则需要了解防火墙的工作原理。令人惊讶的是,CentOS 中有关设置 IPTABLES 的文档很容易理解,并为设置它提供了良好的基础。因此,不要只听信这些人的话并坚持这些防火墙规则,而是阅读一些内容并了解他们在做什么。