我当前的系统设置是 Ubuntu 14.04 Desktop 64 Bit,并且我使用带有公共 IP 的路由器上网
eth0 - WAN Public IP 182.x.x.x
eth1 - LAN private IP 192.168.0.1
现在我想将此连接分发到使用我的系统作为的其他计算机Gateway
,我的系统 IP 是192.168.0.1
,并且网络上的其他计算机使用静态 IP192.168.0.2
和 192.168.0.255
作为static
和/或DHCP
。
我还想在我的系统上设置一个防火墙,以便我可以监控和控制网络上其他系统的流量。
答案1
打开终端Ctrl++AltT
输入以下命令编辑
interfaces
文件:sudo vim /etc/network/interfaces
使用以下行编辑文件:(添加您的
netmask
和gateway
)auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 182.x.x.x netmask x.x.x.x gateway x.x.x.x auto eth1 iface eth1 inet static address 192.168.0.1 netmask x.x.x.x
现在编辑
/etc/sysctl.conf
并取消注释:# net.ipv4.ip_forward=1
内容如下:
net.ipv4.ip_forward=1
并通过输入来保存
sudo sysctl -p /etc/sysctl.conf
要启用 IP 伪装,请在终端中输入以下命令集:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
更新:修复奇怪的“--state”导致命令失败并将 nat MASQUERADE 修复到 eth0(wan 接口)
答案2
@chreekat 的评论是正确的,以太网适配器在 @Anbu 的答案的第 5 步中进行了交换,并且如图所示(截至 2017-02-21)产生了一个巨大的安全漏洞,允许公共网络上的任何人不受限制地访问专用网络。
步骤 5 的更正配置如下所示。
操作理论:(规则 2)当且仅当进入的公共数据包与私有网络上的主机建立的对话相关时,才会接受从公共网络 (eth0) 进入的数据包并将其转发到私有网络 (eth1)。(规则 3)接受从私有网络 (eth1) 进入的所有数据包并将其转发到公共网络 (eth0)。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
答案3
这是我使用的,一直都很好用。各种教程的组合。也在 Ubuntu 16.04LTS 上测试过。
步骤 A——确保已安装 ufw
sudo apt-get install ufw
步骤 B——配置网络接口。
sudo nano /etc/network/interfaces
配置接口文件如下所示:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The WAN primary network interface
iface eth0 inet static
address 182.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
#LAN side interface
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
address 192.168.0.1
通过从 nano 或任何其他您喜欢的编辑器中选择 CTRL-X 来保存文件。
步骤C-允许IP转发. 设置转发。编辑文件/etc/sysctl.conf
sudo nano /etc/sysctl.conf
删除此行的注释# net.ipv4.ip_forward=1
,保存net.ipv4.ip_forward=1
更改并进入下一步。
步骤 D——伪装/转发规则
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
坚持iptables变化
sudo su
sudo iptables-save > /etc/iptables.rules
sudo nano /etc/network/if-pre-up.d/iptables
输入此内容:
#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0
保存更改然后编辑/创建下一个 iptables 文件
sudo nano /etc/network/if-post-down.d/iptables
输入此内容:
#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
iptables-restore < /etc/iptables.rules
fi
exit 0
保存更改。使两个文件都可执行
sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables
步骤 E——使用 ufw 配置完成
sudo nano /etc/default/ufw
修改参数转发策略为接受
DEFAULT_FORWARD_POLICY="ACCEPT"
保存更改。
我的 SSH 在端口 49870 上,所以我还允许联邦快递接受该端口上的连接:
sudo ufw allow 49870
步骤 F——不要忘记启用 ufw。
sudo ufw enable
此时,只需重新启动系统即可。然后所有 LAN 设备都可以将其用作主网关。顺便提一下,联邦快递非常方便管理防火墙设置。