Ubuntu 18.04. Мне дали требование использовать Ubuntu в качестве простого маршрутизатора.
Ubuntu box имеет 2 интерфейса - ens33 DHCP, ens38 192.168.10.1/24. 33 снаружи, 38 внутри для моих целей. За этим блоком находится пара сетей - 192.168.10.x и 192.168.20.x. Из любой из этих сетей я могу пропинговать оба интерфейса на коробке ubuntu. Я не могу прогнать внешний интерфейс (33).
Я отредактировал /etc/sysctl.conf, чтобы разрешить пересылку ipv4 - net.ipv4.ip_forward = 1.
Я добавил маршрут для отображения шлюза в другую сеть 192.168.20.x через 38.
Не смотря на нат, просто маршрут.
Кто-нибудь видит, чего мне не хватает? Дайте мне знать, если потребуется дополнительная информация.
Дуга
Я хотел маршрутизацию, но мне также был нужен NAT.
Эти инструкции были собраны вместе из нескольких разных источников, но в первую очередь - https://help.ubuntu.com/lts/serverguide/firewall.html < - раздел UFW IP Maquerading здесь ,
Инструкции CentOS отсюда- https://ronnybull.com/2015/11/20/how-to-centos-7-router/ .
Я предполагаю, что внутренний и внешний интерфейс на коробке Ubuntu и настройки для них уже были настроены. (Также добавлены инструкции в самом низу, чтобы выполнить то же самое с CentOS 7 - это тоже было моим требованием)
1 . во-первых, включите ведение журнала ufw и ufw
sudo ufw enable
sudo ufw logging on
2 . Сбросьте все существующие правила (НЕ делайте этого, если вы уже используете таблицы ufw или IP для межсетевого экрана). Удалить и очистить. По умолчанию таблица «фильтр». Другие, такие как "nat", должны быть явно указаны.
iptables --flush # Flush all the rules in filter and nat tables
iptables --table nat --flush
iptables --delete-chain # Delete all chains that are not in default filter and nat table
iptables --table nat --delete-chain
3 . Во-первых, в ufw должна быть включена пересылка пакетов. Необходимо настроить два файла конфигурации, в / etc / default / ufw измените DEFAULT_FORWARD_POLICY на «ACCEPT»:
DEFAULT_FORWARD_POLICY="ACCEPT"
4 . Затем отредактируйте /etc/ufw/sysctl.conf и раскомментируйте:
net/ipv4/ip_forward=1
net/ipv4/conf/all/forwarding=1
net/ipv6/conf/default/forwarding=1 # if using IPv6
5 . Теперь добавьте правила в файл /etc/ufw/before.rules. Правила по умолчанию настраивают только таблицу фильтров, и для включения маскировки таблицы nat необходимо будет настроить. Добавьте следующее в верхнюю часть файла сразу после заголовка комментария:
# nat Table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from eth1 through eth0.
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
# don't delete the 'COMMIT' line or these nat table rules won't be processed
COMMIT
Для каждой таблицы требуется соответствующий оператор COMMIT. В этих примерах показаны только таблицы nat и filter, но вы также можете добавить правила для таблиц raw и mangle. В приведенном выше примере замените eth0, eth1 и 192.168.0.0/24 на соответствующие интерфейсы и диапазон IP для вашей сети.
6 . Наконец, отключите и снова включите ufw, чтобы применить изменения:
sudo ufw disable && sudo ufw enable
IP Masquerading теперь должен быть включен. Вы также можете добавить любые дополнительные правила FORWARD в /etc/ufw/before.rules. Рекомендуется добавить эти дополнительные правила в цепочку ufw-before-forward.
Конфигурация CentOS 7 firewalld для выполнения того же действия -
1. Включите пересылку пакетов IPv4.
[Тысяча сто двадцать девять] а. Добавьте следующее в /etc/sysctl.conf:
net.ipv4.ip_forward = 1
b. Примените настройки sysctl:
sysctl -p
2. Добавить прямые правила для firewalld. Добавьте параметр --permanent, чтобы сохранить эти правила при перезапуске.
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_int -o eth_ext -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_ext -o eth_int -m state --state RELATED,ESTABLISHED -j ACCEPT
а. Добавьте следующее в /etc/sysctl.conf:
net.ipv4.ip_forward = 1
b. Примените настройки sysctl:
sysctl -p
2. Добавить прямые правила для firewalld. Добавьте параметр --permanent, чтобы сохранить эти правила при перезапуске.
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_int -o eth_ext -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth_ext -o eth_int -m state --state RELATED,ESTABLISHED -j ACCEPT