І так, Ми вже з Вами навчилися встановлювати FreeBSD і збирати ядро. Тепер я спробую Вам допомогти в піднятті NAT на FreeBSD. Для цього Нам знадобитися пере зібрати ядро сервера з деякими опціями:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPDIVERT
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE_LIMIT = 1000
options IPFIREWALL_DEFAULT_TO_ACCEPT
Припустимо, що у Нас є дві мережеві карти. Одна, яка дивиться в бік провайдера em0 c IP 10.10.1.2/30, а друга мережева карта в сторону локальної мережі em1 з IP 192.168.1.1/24
Запустимо процес natd:
Для початок створимо файл rc.local в коталог / etc /
і додамо в ньому деякі рядки:
/ Sbin / natd -f /etc/natd.conf
/shape/ipfw.init
Далі Нам знадобитися створити ще один файл: /etc/natd.conf
#external alias address
alias_address 10.10.1.2
# Dnat for severs
redirect_port tcp 192.168.1.5:3389 3389
redirect_port tcp 192.168.1.6:3389 5555
Даний файл у нас відповідає за редіректи портів.
Далі повертаємося до нашого файлу ipfw.init це наш Firewall, створюємо в кореневій директорії папку shape і в ньому файл ipfw.init (/shape/ipfw.init)
Задаємо йому права:
$ IPFW -f flush
$ IPFW -q flush
$ IPFW -f pipe flush
#loopback
$ IPFW add 10 allow all from any to any via lo0
$ IPFW add 20 deny all from any to 127.0.0.0/8
$ IPFW add 30 deny all from 127.0.0.0/8 to any
######## limit ssh
$ IPFW table 1 flush
$ IPFW table 1 add 10.10.1.10/30
$ IPFW table 1 add 192.168.1.10/24
$ IPFW add 40 allow tcp from table \ (2 \) to me 22
$ IPFW add 41 deny tcp from any to me 22
$ IPFW table 5 flush
$ IPFW table 5 add 192.168.1.0/24
# Enable nat for LAN
$ IPFW add 990 divert natd all from table \ (5 \) to any via em0
$ IPFW add 991 divert natd all from any to 10.10.1.2 via em0
Далі перезавантажуємо сервер і перевіряємо як працює.
Для повного розуміння загляньте в мануали:
Там є докладний опис і приклади.
У разі якщо Вам знадобитися відкрити якийсь порт на локальний IP. Вам буде потрібно відключити Firewall і вбити в процесах NAT:
далі йдемо в файл, який нами раніше створений, відкриваємо порт в файлі /etc/natd.conf
наприклад:
redirect_port tcp 192.168.1.5:3389 3389
Після перезапускаємо NAT як в rc.local
Ну і останній етап запускаємо ipfw.init
Наче все. Якщо що Вибачайте. пишіть допоможу!