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
и другие компьютеры в сети используют статический IP 192.168.0.2
а также 192.168.0.255
как static
и / или DHCP
,
Также я хочу настроить брандмауэр в своей системе, чтобы я мог отслеживать и контролировать трафик других систем в сети.
3 ответа
Откройте терминал Ctrl+Alt+T
Введите следующую команду для редактирования
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 interface)
Комментарий @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
Это то, что я использую, всегда хорошо работает. Сочетание различных уроков. Проверено на 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 очень удобно управлять настройками брандмауэра.