我在设置 Debian 网关服务器时遇到问题。我的目标:
- 具有
eth1
WAN接口。 - 具有
eth0
LAN接口。 - 允许网关上的 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.8
通google.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 服务,我应该这样做吗?
- 我没有
dnsmasq
按照这里描述的方式安装:http://blog.noviantech.com/2010/12/22/debian-router-gateway-in-15-minutes/。我觉得没这个必要吧?
答案1
您还必须在防火墙规则中允许转发流量,即允许数据包从 eth0 到 eth1 并返回。例如
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
请记住:traceroute
是您排除路线故障的好朋友......