Я только начал изучать администрирование под Freebsd. Настроил стабильно работающий роутер под управлением Freebsd 9.0 (ipfw+nat +Squid 3.2 + Bing 9.8 + lightsquid)
Проблема возникла в следующем - нужен доступ извне к RDP под Win2k3. Уже перекурил man`ы до тошноты, стал похож головой на старый моник, а никак не получается организовать проброс портов...
rc.conf :
Код: Выделить всё
hostname="nimbus.matp"
keymap=ru.cp1251
scrnmap="win2cpp866"
font8x16=cp866b-8x16
font8x14=cp866-8x14
font8x8=cp866-8x8
ifconfig_re0=" inet 192.168.7.252 netmask 255.255.255.0"
ifconfig_rl0=" inet 192.168.0.252 netmask 255.255.255.0"
ifconfig_re0_alias0="inet 192.168.7.10 netmask 255.255.255.0"
defaultrouter="192.168.7.1"
apache22_enable="YES"
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_nat_interface="re0"
firewall_script="/etc/fw_script.02"
named_enable="YES" # автозапуск BIND
named_auto_forward="YES" # автонастройка forward сервера
sshd_enable="YES"
moused_enable="YES"
ntpd_enable="YES"
ntpd_program="/usr/local/bin/ntpd"
squid_enable="YES"
powerd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"
Код: Выделить всё
exface="re0" # внешний сетевой интерфейс сервера
inface="rl0" # внутренний сетевой интерфейс сервера
in_ip="192.168.0.252" # ip-адрес внутреннего интерфейса сервера
ex_ip="192.168.7.10"
rdp_ex="192.168.10.252"
loc_net="192.168.0.0/24"
rdp1="192.168.0.10"
rdp_port="3389"
port1="12124"
# префикс команды, параметр -q означает "тихую" работу
pre_com="ipfw -q"
# для начала удаляем все существующие правила!
$pre_com -f flush
# разрешение трафика на петлевом интерфейсе – необходимо для работы ОС
# Операционная система UNIX использует интерфейс lo0 и IP-адрес
# 127.0.0.1 для внутренних нужд. Таким образом, firewall должен
# обеспечивать беспрепятственный обмен данными на указанных интерфейсе и
# IP-адресе.
$pre_com add 100 allow ip from any to any via lo0
# запрет ip трафика от любого источника на всю сеть loopback интерфейса
$pre_com add 200 deny ip from any to 127.0.0.0/8
# запрет ip трафика со всей сети loopback интерфейса на любой источник
$pre_com add 300 deny ip from 127.0.0.0/8 to any
$pre_com add 350 allow tcp from me to any out via $ex_ip keep-state uid squid
$pre_com add 360 fwd 127.0.0.1,3128 tcp from $loc_net to any 80-83,8080-8088 out via $ex_ip
# разрешаем беспрепятственному прохождению трафика внутри нашей локальной сети!!!
$pre_com add 400 allow all from any to any via $inface
$pre_com add 410 fwd tcp from 192.168.7.1 to
$pre_com add 500 allow tcp from any $rdp_port to me via $ex_ip
$pre_com add 510 allow tcp from me to any $rdp_port via $ex_ip
$pre_com add 520 allow tcp from any $port1 to me via $ex_ip
$pre_com add 530 allow tcp from me to any $port1 via $ex_ip
# включаем kernel NAT на интерфейсе re0 с параметрами
# сбрасывать таблицу соединений при смете ip-адреса сетевого интерфейса
# пытаться сохранить порты
# по-умолчанию запрещать входящие подключения
$pre_com nat 1 config log if $exface reset same_ports deny_in \
redirect_port tcp $rdp1:$rdp_port $rdp_port \
redirect_port udp $rdp1:$rdp_port $rdp_port \
redirect_port tcp $rdp1:$rdp_port $port1 \
redirect_port udp $rdp1:$rdp_port $port1 \
redirect_addr $rdp1 $rdp_ex
# все что проходит через внешний интерфейс перенаправляем в NAT
$pre_com add 1030 nat 1 ip from any to any via $ex_ip