FreeBSD: настройка NAT с помощью ipnat |
![]() |
Добавил(а) microsin |
ipnat - утилита, реализующая подсистему NAT. Чтобы включить NAT, в /etc/rc.conf нужно добавить: ipnat_enable="YES" # включить NAT gateway_enable="YES" # включить пересылку кадров между интерфейсами После этого перегружаемся. Конфигурация ipnat хранится по умолчанию в файле /etc/ipnat.rules (уже задано в /etc/defaults/rc.conf). Файла /etc/ipnat.rules пока нет, его надо создать. Пример файла (комментарий также можно вставлять в строке, начинающейся на #) для Корбины: ![]() map ng0 from 192.168.0.0/24 to any -> 0.0.0.0/32 ![]() map fxp0 from 192.168.0.0/24 to any -> 0.0.0.0/32 ![]() rdr ng0 89.178.130.45/32 port 22 -> 192.168.0.1 port 22 tcp ![]() rdr ng0 89.178.130.45/32 port 21 -> 192.168.0.1 port 21 tcp ![]() rdr ng0 89.178.130.45/32 port 50001 -> 192.168.0.1 port 50001 tcp rdr ng0 89.178.130.45/32 port 50002 -> 192.168.0.1 port 50002 tcp rdr ng0 89.178.130.45/32 port 50003 -> 192.168.0.1 port 50003 tcp rdr ng0 89.178.130.45/32 port 50004 -> 192.168.0.1 port 50004 tcp rdr ng0 89.178.130.45/32 port 50005 -> 192.168.0.1 port 50005 tcp rdr ng0 89.178.130.45/32 port 50006 -> 192.168.0.1 port 50006 tcp rdr ng0 89.178.130.45/32 port 50007 -> 192.168.0.1 port 50007 tcp rdr ng0 89.178.130.45/32 port 50008 -> 192.168.0.1 port 50008 tcp rdr ng0 89.178.130.45/32 port 50009 -> 192.168.0.1 port 50009 tcp rdr ng0 89.178.130.45/32 port 50010 -> 192.168.0.1 port 50010 tcp Примечания. 192.168.0.1 - этот компьютер получает основной доступ через NAT - на нем можно играть в StarCraft. Кроме того, на этом компьютере работает сервер ftp и сервер SSH. Оба эти сервера опубликованы в Интернете через ipnat. 89.178.130.45 - такой адрес выдан на виртуальном интерфейсе ng0 после успешного VPN-ppp соединения с Корбиной (постарался демон mpd).
fxp0 - сетевой интерфейс, который подключен к Корбине, по DHCP ему выдан адрес a.b.103.223. Какой тут IP адрес - не имеет значения, ipnat к нему не привязан (в /etc/ipnat.rules этот IP не фигурирует)
Первое из этих 2 правил публикует порт 6112 udp от компьютера 192.168.0.1 в Интернете под публичным адресом 89.178.130.45. Правило обеспечивает игру в StarCraft на компьютере 192.168.0.1. Второе правило публикует сервер ssh, который работает тоже на компьютере 192.168.0.1.
Пример правил для Акадо: map fxp0 192.168.0.0/24 -> 0.0.0.0/32 proxy port ftp ftp/tcp map fxp0 from 192.168.0.0/24 to any -> 0.0.0.0/32 rdr fxp0 83.167.123.75/32 port 6112 -> 192.168.0.1 port 6112 udp rdr fxp0 83.167.123.75/32 port 22 -> 192.168.0.1 port 22 tcp rdr fxp0 83.167.123.75/32 port 20 -> 192.168.0.1 port 20 tcp rdr fxp0 83.167.123.75/32 port 21 -> 192.168.0.1 port 21 tcp rdr fxp0 83.167.123.75/32 port 50000 -> 192.168.0.1 port 50000 tcp rdr fxp0 83.167.123.75/32 port 50001 -> 192.168.0.1 port 50001 tcp rdr fxp0 83.167.123.75/32 port 50002 -> 192.168.0.1 port 50002 tcp rdr fxp0 83.167.123.75/32 port 50003 -> 192.168.0.1 port 50003 tcp rdr fxp0 83.167.123.75/32 port 50004 -> 192.168.0.1 port 50004 tcp rdr fxp0 83.167.123.75/32 port 50005 -> 192.168.0.1 port 50005 tcp rdr fxp0 83.167.123.75/32 port 50006 -> 192.168.0.1 port 50006 tcp rdr fxp0 83.167.123.75/32 port 50007 -> 192.168.0.1 port 50007 tcp rdr fxp0 83.167.123.75/32 port 50008 -> 192.168.0.1 port 50008 tcp rdr fxp0 83.167.123.75/32 port 50009 -> 192.168.0.1 port 50009 tcp rdr fxp0 83.167.123.75/32 port 50010 -> 192.168.0.1 port 50010 tcp Тут все то же самое, за исключением отсутствия виртуального интерфейса ng0 - теперь внешний интерфейс не ng0, а fxp0, и "локальных" ресурсов, как были у Корбины, нет.
Эта команда применяет правила /etc/ipnat.rules без перезагрузки: Документация: # man ipnat /usr/share/examples/ipfilter/BASIC.NAT /usr/share/examples/ipfilter/nat-setup См. также статью автоматическая поддержка правил NAT в актуальном состоянии. Вот еще правила для публикации сервера VPN, работающего на Windows XP (см. статью Windows XP: как быстро настроить VPN (соединить компьютеры через Интернет)):
rdr ng0 83.167.123.75/32 port 1701 -> 192.168.0.1 port 1701 udp Обратите внимание на 2 последних правила - они публикуют конкретные номера протоколов IP (47 и 50), а не TCP или UDP порты. |