Ubuntu 14.04 作为网关/路由器和防火墙

Ubuntu 14.04 作为网关/路由器和防火墙

我当前的系统设置是 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.2192.168.0.255 作为static和/或DHCP

我还想在我的系统上设置一个防火墙,以便我可以监控和控制网络上其他系统的流量。

答案1

  1. 打开终端Ctrl++AltT

  2. 输入以下命令编辑interfaces文件:

    sudo vim /etc/network/interfaces
    
  3. 使用以下行编辑文件:(添加您的netmaskgateway

    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
    
  4. 现在编辑/etc/sysctl.conf并取消注释:

    # net.ipv4.ip_forward=1
    

    内容如下:

    net.ipv4.ip_forward=1
    

    并通过输入来保存

    sudo sysctl -p /etc/sysctl.conf

  5. 要启用 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 设备都可以将其用作主网关。顺便提一下,联邦快递非常方便管理防火墙设置。

相关内容