Ubuntu 14.04 в качестве шлюза / маршрутизатора и брандмауэра


16

Моя текущая настройка системы - Ubuntu 14.04 Desktop 64 Bit, и я использую Интернет с маршрутизатора, используя публичный IP

eth0 - WAN Public IP 182.x.x.x  
eth1 - LAN private IP 192.168.0.1

Теперь я хочу распространить это соединение на другие компьютеры, использующие мою систему в качестве GatewayIP-адреса моей системы, 192.168.0.1а другие компьютеры в сети используют статический IP-адрес, 192.168.0.2а 192.168.0.255 также staticи / или DHCP.

Также я хочу настроить брандмауэр в своей системе, чтобы я мог отслеживать и контролировать трафик других систем в сети.

Ответы:


15
  1. Откройте терминал Ctrl+ Alt+T

  2. Введите следующую команду для редактирования interfacesфайла:

    sudo vim /etc/network/interfaces
    
  3. Отредактируйте файл со следующими строками: (добавьте свой 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
    
  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 interface)


все сделал как советовали ... но если я отредактирую / etc / network / interfaces и перезапущу сервис, он автоматически подключится к eth1 и не будет подключен к Интернету через eth0. Если я редактирую подключение в режиме графического интерфейса, оно подключается к Интернету с использованием eth0. Теперь проблема в том, что я не могу подключить свой клиентский компьютер с IP 192.168.0.5/nm.255.255.255.0/gw.192.168.0.1 к Интернету. любое предложение?
Санти Варгезе

3
Я хочу добавить, что после изменения строки net.ipv4.ip forward=1вы хотите запустить, sudo sysctl -p /etc/sysctl.confчтобы новое значение вступило в силу.
Самуил Ли

2
Вы по-прежнему поменяете местами устройства в последних двух строках на шаге 5, и у вас нет упоминаний о безопасности по умолчанию (т. Е. У forward должна быть политика DROP).
Крикет

3

Комментарий @ chreekat верен, что адаптеры Ethernet меняются местами на шаге 5 ответа @ Anbu и, как показано (по состоянию на 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

0

Это то, что я использую, всегда хорошо работает. Сочетание различных уроков. Проверено на Ubuntu 16.04LTS тоже.

Шаг А - Убедитесь, что 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

Сохраните файл, выбрав CTRL-X из nano или любого другого редактора, который вы предпочитаете.

Шаг 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, поэтому я также позволил UFW принимать соединения на этот порт:

sudo ufw allow 49870

Шаг F - Не забудьте включить UFW .

sudo ufw enable

На этом этапе просто перезагрузите систему. Тогда все устройства локальной сети могут использовать его в качестве основного шлюза. Кроме того, UFW очень удобно управлять настройками брандмауэра.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.