使用 iptables 的 debian 网关

使用 iptables 的 debian 网关

我在设置 Debian 网关服务器时遇到问题。我的目标:

  • 具有eth1WAN接口。
  • 具有eth0LAN接口。
  • 允许网关上的 22 号端口(SSH)和 80 号端口(HTTP)从外界访问(SSH 和 HTTP 在此服务器上运行)。

我做了以下事情:

  • 创建一个文件/etc/iptables.rules,内容如下:

/etc/iptables.规则:

*nat
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT

*filter
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -j DROP
COMMIT
  • 编辑 /etc/network/interfaces 如下:

在 /etc/网络/接口:

# The loopback network interface
auto lo
iface lo inet loopback
pre-up iptables-restore < /etc/iptables.rules

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

#auto eth1
#allow-hotplug eth1
#iface eth1 inet dhcp

allow-hotplug eth1
iface eth1 inet static
address 217.119.224.51
netmask 255.255.255.248
gateway 217.119.224.49
dns-nameservers 217.119.226.67 217.119.226.68
  • 取消注释该规则net.ipv4.ip_forward=1/etc/sysctl.conf允许数据包转发。

eth1 的静态设置,例如我从路由器获得的 ip 地址(我想替换它);我只是复制了这些。

  • 我在 IP 地址 10.180.1.10 上有一个 (windows) DNS + DHCP 服务器,它将 IP 地址 10.180.1.44 分配给 eth0。该服务器的功能并不十分有趣,它只映射本地网络上的域名,并为网关分配一个静态 IP。

  • What works:在网关上我可以 ping8.8.8.8google.nl。所以没问题。

  • What does not work(1)连接到的每台机器eth0(间接通过交换机)都无法 ping 通 IP 或域。所以我猜是找不到网关。(2)此外,当我将 Linux 机器(笔记本电脑)配置为使用静态 IP 10.180.1.41、掩码和网关(10.180.1.44)时,我也无法 ping 通 IP 或域。

这意味着我的 iptables 可能不正确或未正确加载。或者我可能必须在 Windows 计算机上配置 DNS/DHCP。我还没有重置 Windows 计算机网络,重新启动 DNS/DHCP 服务,我应该这样做吗?

答案1

您还必须在防火墙规则中允许转发流量,即允许数据包从 eth0 到 eth1 并返回。例如

-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

请记住:traceroute是您排除路线故障的好朋友......

相关内容