The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проброс порта через NAT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Проброс порта через NAT"  +/
Сообщение от immortald (ok) on 19-Дек-11, 07:10 
Всем привет!!
Задача стандартная: Нужно пробросить порт (для примера хотяб 3389) на машину локальной сети. Проброс нужно освоить через NAТ. Но вот каким именно запутался окончательно!!!! Такая каша в голове!
Ребят помогите распутаться плиз и выбрать что то одно.
Вобщем пробовал почти все:) :
natd - настраивал по мануалам (оч много читал по настройкам). Рыл тырнет, форумы, статьи Лиса. Не получилось... Вроде все поднимается, но по tcpdump пакеты идут в одну сторону и все (Вне зависимости правил в фаере)
ipnat - Тоже самое, не получилось и пакеты также только в одну сторону.
Ядерный nat - Получилось:) Проброс работает, но с другими правилами в фаере полный сумбур. В зависимости расположений правил (ниже или выше nat'a) не работет либо сам проброс, либо на сервисы на фре (типа ftp и т.д.) зайти нельзя!!
Конкретно для меня хотелось бы юзать natd (конфиг отдельный от фаера и правила вроде интуитивно понятные). И хотелось бы начать разбор полета с него.

P.S возможно не понимаю сам меанизм работы nat'a и фаера. Но в голове реально щас каша, а время поджимает. Можно пожалуйста по порядку начать?? и не ругайте сильно плиз нуба пока во freebsd
FreeBSD 8.2
Если нужны какие конфы, пишите буду выкладывать.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проброс порта через NAT"  +/
Сообщение от Anony on 19-Дек-11, 08:43 
если использовать ядреный nat, то нужно или четко прописывать правила для него или выставляем net.inet.ip.fw.one_pass=0, что бы при попадании в правила nat пакет не прекращал свое движение по правилам.
с natd проблем быть не должно он использует туже библиотеку, что и ядерный nat.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проброс порта через NAT"  +/
Сообщение от immortald (ok) on 19-Дек-11, 09:58 
> если использовать ядреный nat, то нужно или четко прописывать правила для него
> или выставляем net.inet.ip.fw.one_pass=0, что бы при попадании в правила nat пакет
> не прекращал свое движение по правилам.
> с natd проблем быть не должно он использует туже библиотеку, что и
> ядерный nat.

net.inet.ip.fw.one_pass и так в нуле (пробовал и с 1кой)...
Может у Вас пример есть или конкретно что по конфигам подсказать сможете??
Скажите только какой конфиг показать

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Проброс порта через NAT"  +/
Сообщение от Anony on 19-Дек-11, 10:39 
покажите правила ipfw, настройки nat и часть rc.conf связную с ipfw и nat
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Проброс порта через NAT"  +/
Сообщение от immortald (ok) on 19-Дек-11, 10:53 
> покажите правила ipfw, настройки nat и часть rc.conf связную с ipfw и
> nat

/etc/list.ipfw:
FwCMD="/sbin/ipfw -q "
if_ppp="tun0"            #Интерфейс создаваемый подключением PPPoE
if_lan="re0"             #Интерфейс смотрящий в лок сеть
IpOut="81.18.81.18"    #Внешний стат адресс
IpIn="192.168.1.222"     #Адресс фри
ip_lan="192.168.1.0/24"

${FwCMD} -f flush

# For me

${FwCMD} add check-state
${FwCMD} add allow ip from me to any keep-state via ${if_ppp}
${FwCMD} add allow ip from me to any keep-state via ${if_lan}
${FwCMD}  add allow ip from me to any
${FwCMD} add allow all from any to any via lo0
${FwCMD} add deny all from any to 127.0.0.0/8
${FwCMD} add deny all from 127.0.0.0/8 to any

#deny hacker
  ${FwCMD} add drop ip from any to 58.65.234.17
  ${FwCMD} add drop ip from 58.65.234.17 to any
  ${FwCMD} add drop ip from any to 69.50.160.212
  ${FwCMD} add drop ip from 69.50.160.212 to any
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${if_ppp}
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${if_ppp}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${if_ppp}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${if_ppp}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${if_ppp}
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${if_ppp}
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${if_ppp}
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${if_ppp}
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${if_ppp}

# ssh

${FwCMD} add allow ip from any to me 22 via ${if_ppp}

# deny icmp

${FwCMD} add deny icmp from any to any frag
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${if_ppp}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${if_ppp}

# NAT

${FwCMD} nat 1 config log if ${if_ppp} reset same_ports deny_in redirect_port tcp 192.168.1.20:80 80 redirect_port tcp 192.168.1.102:3389 3389
${FwCMD}  add nat 1 ip from any to any via ${if_ppp}

В данный момент использую NAT ядерный, поэтому ядро пересобрано с такими опциями:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_NAT
options IPFIREWALL_FORWARD
options DUMMYNET
options LIBALIAS
options ROUTETABLES=2
options HZ="1000"


/etc/rc.conf:
## Net Settings ##
gateway_enable="YES"
hostname="proxy.domain.ru"
ifconfig_re0="inet 192.168.1.222 netmask 255.255.255.0"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="bwc"
firewall_enable="YES"
firewall_script="/etc/list.ipfw"
firewall_logging="YES"
tcp_extensions="NO"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Проброс порта через NAT"  +/
Сообщение от Anony on 19-Дек-11, 15:28 
если убрать из конфигурации nat "reset same_ports deny_in" то будет работать проброс и доступ к серверу, что бы заработало придется еще сделать ребут сервера.
другой вариант расписать правила по типу:
ipfw nat 1 ip from 192.168.1.0/24 to any out xmit tun0
ipfw nat 1 ip from any to 81.18.81.18 in recv tun0
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру