Linux防火墙iptables规则示例
  • 规则:iptables拒绝所有传出网络连接

规则的第二行仅允许当前传出和建立的连接。通过SSH或者Telnet登录服务器时,这非常有用。

# iptables -F OUTPUT
# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -j REJECT
  • 规则:iptables拒绝所有传入的网络连接
# iptables -F INPUT
# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -j REJECT
  • 规则:iptables拒绝所有网络连接
    该规则将丢弃并阻止所有网络连接是否传入或者传出。更重要的是,这也将包括当前正在进行的建立连接。
# iptables -F
# iptables -A INPUT -j REJECT
# iptables -A OUTPUT -j REJECT
# iptables -A FORWARD -j REJECT
  • 规则:用于删除传入的ping请求的iptables
    此iptables规则将删除所有传入的ping请求。请注意,可以使用拒绝而不是丢弃。 Drop VS拒绝之间的差异是Droply丢弃传入包,而拒绝将导致返回ICMP错误。
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  • 规则:iptables删除传出Telnet连接
    此IPTables规则将阻止任何传出流量到目标端口为23(Telnet)的任何主机。
# iptables -A OUTPUT -p tcp --dport telnet -j REJECT
  • 规则:iptables拒绝传入的telnet连接
    该IPTables规则将拒绝所有传入的连接请求到本地端口23.
# iptables -A INPUT -p tcp --dport telnet -j REJECT
  • 规则:拒绝传出SSH连接的iptables
    此IPTables规则将拒绝来自本地端口22(SSH)的所有传出连接。
# iptables -A OUTPUT -p tcp --dport ssh -j REJECT
  • 规则:拒绝传入的SSH连接的iptables
    拒绝到本地端口22(SSH)的所有传入连接。
# iptables -A INPUT -p tcp --dport ssh -j REJECT
  • 规则:除了SSH和本地连接之外,无法拒绝所有传入流量
    除了端口22(SSH)上,这些规则将拒绝与服务器的所有传入连接。它还将接受环回接口上的连接。
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -j REJECT
  • 规则:iptables从特定IP地址接受传入的SSH连接
    使用此Iptables规则,除了带有IP地址77.66.55.44的主机,我们将阻止与端口22(SSH)的所有传入连接。这意味着只有具有IP 77.66.55.44的主机将能够进行SSH连接。
# iptables -A INPUT -p tcp -s 77.66.55.44 --dport ssh -j ACCEPT
# iptables -A INPUT -p tcp --dport ssh -j REJECT
  • 规则:iptables从特定MAC地址接收传入的SSH连接
    使用此IPTables规则,除了带MAC地址00的主机之外,我们将阻止所有传入的连接到端口22(SSH):E0:4C:F1:41:6B。换句话说,所有SSH连接都将限于具有MAC地址00的单个主机:E0:4C:F1:41:6B。
# iptables -A INPUT -m mac --mac-source 00:e0:4c:f1:41:6b -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -p tcp --dport ssh -j REJECT
  • 规则:iptables拒绝特定TCP端口上的传入连接
    以下IPTables规则将在TCP端口3333上删除所有传入流量。
# iptables -A INPUT -p tcp --dport 3333 -j REJECT
  • 规则:可以在特定网络接口上删除所有传入连接的iptable
    以下规则将在来自子网192.168.0.0/16的特定网络接口上丢弃传入流量。尝试删除所有欺骗的IP地址非常有用。如果eth0是外部网络接口,则源自内部网络的传入流量应点击eth0网络接口。
# iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
  • 规则:iptables创建一个简单的IP伪装
    以下规则将创建一个简单的IP伪装网关,以允许同一子网上的所有主机访问Internet。下方指定的eth0是连接到互联网的外部接口。
# echo "1" > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o $EXT_IFACE -j MASQUERADE
  • 规则:除了指定的IP地址之外,拒绝所有传入的Telnet流量
    以下IPTables规则将拒绝除IP 222.111.111.222的连接请求之外的所有传入的Telnet流量
# iptables -A INPUT -t filter ! -s 222.111.111.222 -p tcp --dport 23 -j REJECT
  • 规则:除了指定的IP地址范围之外,拒绝所有传入的SSH流量
    以下IPTables规则将拒绝除IP地址范围的连接请求之外的所有传入的SSH流量10.1.1.90 - 10.1.1.1.100。
    删除否定符“!”从以下规则中拒绝源自IP地址范围的所有SSH流量10.1.1.90 - 10.1.1.100。
# iptables -A INPUT -t filter -m iprange ! --src-range 10.1.1.90-10.1.1.100  -p tcp --dport 22 -j REJECT
  • 规则:iptables拒绝对特定远程主机的所有传出流量
    以下iptables规则将拒绝具有IP地址222.111.111.222的远程主机的所有传出流量
# iptables -A OUTPUT -d 222.111.111.222 -j REJECT
  • 规则:阻止访问特定网站的iptables
    以下IPTables规则将阻止Facebook.com的所有传入流量,源端口是端口80/www。
# iptables -A INPUT -s facebook.com -p tcp --sport www -j DROP

请注意,上述iptables规则将阻止访问Facebook.com以及www.facebook.com。

日期:2020-07-07 20:56:46 来源:oir作者:oir