iptables 在一个方向上阻止 http 和 ssh

iptables 在一个方向上阻止 http 和 ssh

我有一个拓扑,其中有一个 Linux 作为连接两个 Linux 的路由器,我想使用 iptables 在一个方向上过滤 ssh 和 HTTP。我使用了下面的代码,但没有用!我非常感谢你能提供的任何帮助。

iptables -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --dport 80 -j DROP

拓扑

答案1

您的脚本应该适用于 http,但它并不是很好。我会使用类似这样的脚本:

IPTABLE=/sbin/iptables

$IPTABLE -P INPUT ACCEPT
$IPTABLE -P FORWARD DROP
$IPTABLE -P OUTPUT ACCEPT

$IPTABLE -F
$IPTABLE -X

$IPTABLE -F -t nat
$IPTABLE -X -t nat

$IPTABLE -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#http
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
#https
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 443 -j ACCEPT
# ssh
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 22 -j ACCEPT
# icmp
$IPTABLE -A FORWARD  -p icmp -j ACCEPT

一旦规则开始工作,我建议执行iptables-save > /etc/iptables/rules.v4iptables-persistent规则在启动时随数据包一起加载。
除了 iptables 规则,您还需要

  1. 您的网关上已启用 IP 转发。
  2. 内部主机上的外部网络路由
  3. 外部主机上的内部网络路由

相关内容