如果没有 iptables -P INPUT、OUTPUT、FORWARD ACCEPT,下面的脚本将无法运行。我肯定是缺少了一条规则,但找不到它。我是 iptables 的新手,所以我希望这里的一位天才能帮助我。ETH0 是 WAN,ETH1 是 LAN。
//编辑 2 转发在 sysctl.conf 中启用。
#downen network interfaces
ifconfig eth0 down
ifconfig eth1 down
#droppen traffic
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -t nat -F
#verkeer naar buiten toe laten en nat aanzetten
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#RDP forward voor windows servers
iptables -t nat -A PREROUTING -p tcp --dport 3389 -i eth1 -j DNAT --to destination 192.168.2.10
iptables -t nat -A PREROUTING -p tcp --dport 3340 -i eth1 -j DNAT --to destination 192.168.2.12
#toestaan SSH verkeer
iptables -t nat -A PREROUTING -p tcp --dport 22 -i eth0 -j DNAT --to destination 192.168.2.1
iptables -t nat -A PREROUTING -p udp --dport 22 -i eth0 -j DNAT --to destination 192.168.2.1
#toestaan verkeer loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#toestaan lokaal netwerk
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
#netwerk kaarten aanzetten
ifconfig eth0 XXXXXXXX
ifconfig eth1 192.168.2.1/24
route add default gw XXXXXXXXXX
ifconfig eth0 up
ifconfig eth1 up
答案1
您说需要将策略设置为在所有表上都接受。如果仅在 FORWARD 表上将其设置为接受,是否也能起作用?
另外,我假设您确实只测试转发而不是从本地机器测试?如果是后者,您也需要这样做:
iptables -A INPUT --match state --state RELATED,ESTABLISHED -j ACCEPT --match comment --comment "Accept traffic from outgoing connections and stuff like FTP."
顺便说一句,我会使用 iptables 注释选项,因此 iptables -L 也会提供有用的输出。
答案2
您必须启用 IP 转发
echo 1 > /proc/sys/net/ipv4/ip_forward
您也可以通过 sysctl 执行此操作。