URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 44456
[ Назад ]

Исходное сообщение
"NAT+ipfw"

Отправлено Zhelezniy_Felix , 27-Май-04 10:24 
НЕ ходит в инет через сервер
Помогите настроить
в ядро вкомплино ipdivert
имеем правила
${ipfw} add 2400 divert natd all from 192.168.0.2 to any  via ${ifout}
${ipfw} add 2500 divert natd all from any to xxx.xxx.xxx.xxx  via ${ifout}

с клиентской машины пингуются оба интерфейса но внешнии адреса нет
что-то я нетак делаю...
И еще надо-ли чтонибуть в сетевых настройках клиента  прописывать кроме шлюза?


Содержание

Сообщения в этом обсуждении
"NAT+ipfw"
Отправлено vitaliy , 27-Май-04 12:42 
>НЕ ходит в инет через сервер
>Помогите настроить
>в ядро вкомплино ipdivert
>имеем правила
>${ipfw} add 2400 divert natd all from 192.168.0.2 to any  via
>${ifout}
>${ipfw} add 2500 divert natd all from any to xxx.xxx.xxx.xxx  via
>${ifout}
>
>с клиентской машины пингуются оба интерфейса но внешнии адреса нет
>что-то я нетак делаю...
>И еще надо-ли чтонибуть в сетевых настройках клиента  прописывать кроме шлюза?
>


${ipfw} add 2400 divert natd all from any to any  via ${ifout}
natd запущен?


"NAT+ipfw"
Отправлено Zhelezniy_Felix , 27-Май-04 18:56 
>>НЕ ходит в инет через сервер
>>Помогите настроить
>>в ядро вкомплино ipdivert
>>имеем правила
>>${ipfw} add 2400 divert natd all from 192.168.0.2 to any  via
>>${ifout}
>>${ipfw} add 2500 divert natd all from any to xxx.xxx.xxx.xxx  via
>>${ifout}
>>
>>с клиентской машины пингуются оба интерфейса но внешнии адреса нет
>>что-то я нетак делаю...
>>И еще надо-ли чтонибуть в сетевых настройках клиента  прописывать кроме шлюза?
>>
>
>
>${ipfw} add 2400 divert natd all from any to any  via
>${ifout}
>natd запущен?

Это правило не помогло
В rc.conf имеем
natd_enabled="YES"
natd_interface="ed0"

мысли в студию


"NAT+ipfw"
Отправлено Дмитрий Ю. Карпов , 27-Май-04 20:52 
http://prof.pi2.ru/UnixFaq/natd.htm :

В ядре:
options IPFIREWALL
options IPDIVERT

В /etc/rc.conf :
gateway_enable=YES
firewall_enable="YES"
firewall_type="open"    # для стандартного /etc/rc.firewall
natd_enable="YES"
natd_interface="сетевой_интерфейс"


"NAT+ipfw"
Отправлено Zhelezniy_Felix , 27-Май-04 21:34 
НЕ представляете какое удовольствие сидеть за 60 герцовым монитором....
вот конф  xxx.xx.xxx.xxx это я yyy.yyy.yyy.yyy это dns
#!/bin/sh
ipfw=/sbin/ipfw
ifout='ed0'
ifuser='rl0'
${ipfw} flush
${ipfw} add 100 allow icmp from any to any
${ipfw} add 200 allow all from any to any via lo0
${ipfw} add 300 allow all from xxx.xx.xxx.xxx to any via ${ifout}
${ipfw} add 400 allow all from 192.168.0.1 to any via ${ifuser}
${ipfw} add 1400 allow udp from yyy.yyy.yyy.yyy 53 to xxx.xx.xxx.xxx  via ${ifout}
${ipfw} add 1500 allow udp from yyy.yyy.yyy.yyy 53 to xxx.xx.xxx.xxx  via ${ifout}
${ipfw} add 1600 allow udp from yyy.yyy.yyy.yyy  to xxx.xx.xxx.xxx 53 via ${ifout}
${ipfw} add 1700 allow udp from yyy.yyy.yyy.yyy  to xxx.xx.xxx.xxx  53 via ${ifout}
${ipfw} add 1800 allow tcp from any 80 to xxx.xx.xxx.xxx  via ${ifout}
${ipfw} add 1900 allow tcp from any  to xxx.xx.xxx.xxx 80 via ${ifout}
${ipfw} add 2000 allow udp from any 80 to xxx.xx.xxx.xxx via ${ifout}
${ipfw} add 2100 allow udp from any to xxx.xx.xxx.xxx 80 via ${ifout}
${ipfw} add 2200 allow tcp from any 5190  to xxx.xx.xxx.xxx via ${ifout}
${ipfw} add 2300 allow tcp from any  to xxx.xx.xxx.xxx 5190 via ${ifout}
${ipfw} add 2400 divert natd all from 192.168.0.0/24 to any out via  ${ifout}
${ipfw} add 2450 divert natd all from any to xxx.xx.xxx.xxx in via ${ifout}
${ipfw} add 2500 allow tcp from 192.168.0.2 to 192.168.0.1 445  via ${ifuser}
${ipfw} add 2600 allow tcp from 192.168.0.2 to 192.168.0.1 21 via ${ifuser}
${ipfw} add 2900 allow tcp from 192.168.0.2 to 192.168.0.1 20  via ${ifuser}
${ipfw} add 3000 allow tcp from 192.168.0.2 to 192.168.0.1 139  via ${ifuser}
${ipfw} add 3010 allow all from 192.168.0.2 to 192.168.0.1 via ${ifuser}


ну что здесь не так ?????
в ядре все есть
Тот чел пишет что должно пахать в таком виде.....
в rc.conf тоже все есть.....


"NAT+ipfw"
Отправлено Hammer , 27-Май-04 23:31 
>НЕ представляете какое удовольствие сидеть за 60 герцовым монитором....
>вот конф  xxx.xx.xxx.xxx это я yyy.yyy.yyy.yyy это dns
>#!/bin/sh
>ipfw=/sbin/ipfw
>ifout='ed0'
>ifuser='rl0'
>${ipfw} flush
>${ipfw} add 100 allow icmp from any to any
>${ipfw} add 200 allow all from any to any via lo0
>${ipfw} add 300 allow all from xxx.xx.xxx.xxx to any via ${ifout}
>${ipfw} add 400 allow all from 192.168.0.1 to any via ${ifuser}
>${ipfw} add 1400 allow udp from yyy.yyy.yyy.yyy 53 to xxx.xx.xxx.xxx  via
>${ifout}
>${ipfw} add 1500 allow udp from yyy.yyy.yyy.yyy 53 to xxx.xx.xxx.xxx  via
>${ifout}
>${ipfw} add 1600 allow udp from yyy.yyy.yyy.yyy  to xxx.xx.xxx.xxx 53 via
>${ifout}
>${ipfw} add 1700 allow udp from yyy.yyy.yyy.yyy  to xxx.xx.xxx.xxx  53
>via ${ifout}
>${ipfw} add 1800 allow tcp from any 80 to xxx.xx.xxx.xxx  via
>${ifout}
>${ipfw} add 1900 allow tcp from any  to xxx.xx.xxx.xxx 80 via
>${ifout}
>${ipfw} add 2000 allow udp from any 80 to xxx.xx.xxx.xxx via ${ifout}
>
>${ipfw} add 2100 allow udp from any to xxx.xx.xxx.xxx 80 via ${ifout}
>
>${ipfw} add 2200 allow tcp from any 5190  to xxx.xx.xxx.xxx via
>${ifout}
>${ipfw} add 2300 allow tcp from any  to xxx.xx.xxx.xxx 5190 via
>${ifout}
>${ipfw} add 2400 divert natd all from 192.168.0.0/24 to any out via
> ${ifout}
>${ipfw} add 2450 divert natd all from any to xxx.xx.xxx.xxx in via
>${ifout}
>${ipfw} add 2500 allow tcp from 192.168.0.2 to 192.168.0.1 445  via
>${ifuser}
>${ipfw} add 2600 allow tcp from 192.168.0.2 to 192.168.0.1 21 via ${ifuser}
>
>${ipfw} add 2900 allow tcp from 192.168.0.2 to 192.168.0.1 20  via
>${ifuser}
>${ipfw} add 3000 allow tcp from 192.168.0.2 to 192.168.0.1 139  via
>${ifuser}
>${ipfw} add 3010 allow all from 192.168.0.2 to 192.168.0.1 via ${ifuser}
>
>
>ну что здесь не так ?????
>в ядре все есть
>Тот чел пишет что должно пахать в таком виде.....
>в rc.conf тоже все есть.....

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


:)
Учитывая что у меня поднят VPN то!!!!
У меня настроено так:

#!/bin/sh
########################## Перемненные ##################################
oif=dc0 - внешний интерфейс
oip=192.168.14.101 - внешний адрес
iip=192.168.17.0/24 - внутреняя сетка
iip2=192.168.16.0/24 - вторая сетка внутри

################################## NAT ###############################


/sbin/natd -n $oif
/sbin/ipfw add 1 divert natd all from $iip to any out via $oif
/sbin/ipfw add 2 divert natd all from $iip2 to any out via $oif
/sbin/ipfw add 3 divert natd all from any to $oip in via $oif
####################ограничение по тафику############################
/sbin/ipfw add pipe 50 tcp from any to 192.168.16.0/24 via $oif - для деления канала!
/sbin/ipfw add pipe 50 tcp from any to 192.168.17.0/24 via $oif - для деления канала!
/sbin/ipfw pipe 50 config bw 128Kbit/s - канал пополам!
/sbin/ipfw add 11111 accept all from any to any - типа всем можно всё
Всё это в файло с расширением sh, ну типа nat.sh, делаешь его исполняемым и ложишь в /usr/local/etc/rc.d


в ядре
для VPN:
options     NETGRAPH        
options     NETGRAPH_ASYNC
options     NETGRAPH_BPF
options     NETGRAPH_ECHO
options     NETGRAPH_ETHER
options     NETGRAPH_HOLE
options     NETGRAPH_IFACE
options     NETGRAPH_KSOCKET
options     NETGRAPH_L2TP
options     NETGRAPH_LMI
options     NETGRAPH_MPPC_COMPRESSION
options     NETGRAPH_MPPC_ENCRYPTION
options     NETGRAPH_ONE2MANY
options     NETGRAPH_PPP
options     NETGRAPH_PPTPGRE
options     NETGRAPH_RFC1490
options     NETGRAPH_SOCKET
options     NETGRAPH_TEE
options     NETGRAPH_TTY
options     NETGRAPH_UI
options     NETGRAPH_VJC
options        DUMMYNET
Для NAT:
options        IPFIREWALL              
options        IPFIREWALL_VERBOSE      
options        IPFIREWALL_FORWARD      
options        IPFIREWALL_VERBOSE_LIMIT=1000    
options        IPDIVERT
Бля всё работает!!!!!! если чё, пиши на мыло!!


"NAT+ipfw"
Отправлено Дмитрий Ю. Карпов , 28-Май-04 18:10 
> ${ipfw} add 1400 allow udp from dns.dns.dns.dns 53 to xxx.xx.xxx.xxx    via ${ifout}
> ${ipfw} add 1500 allow udp from dns.dns.dns.dns 53 to xxx.xx.xxx.xxx    via ${ifout}

И в чём тут разница между правилами?

> ${ipfw} add 1600 allow udp from dns.dns.dns.dns  to xxx.xx.xxx.xxx 53 via ${ifout}
> ${ipfw} add 1700 allow udp from dns.dns.dns.dns  to xxx.xx.xxx.xxx  53 via ${ifout}

Тут тоже без разницы. К тому же я бы скорее написАл
${ipfw} add 1600 allow udp from dns.dns.dns.dns 53 to xxx.xx.xxx.xxx via ${ifout}
т.к. DNS-сервер ответит со своего порта:53, а не на мой порт:53.


> ${ipfw} add 2400 divert natd all from 192.168.0.0/24 to any out via ${ifout}
> ${ipfw} add 2450 divert natd all from any to xxx.xx.xxx.xxx in via ${ifout}

Правила divert я бы вынес в начало, т.к. allow прерывает просмотр списка правил ipfw, а divert продолжает.


Нет правила для tcp established (а оно очень упрощает жизнь - не надо писАть отдельные правила для ответов сервера клиенту.


Прежде, чем задавать вопросы, надо сначала изучить /etc/rc.firewall - правда, он туповат, но хоть даёт основные представления о том, как надо формировать набор правил.


"NAT+ipfw"
Отправлено Zhelezniy_Felix , 28-Май-04 19:55 
> ${ipfw} add 2400 divert natd all from 192.168.0.0/24 to any out via ${ifout}
> ${ipfw} add 2450 divert natd all from any to xxx.xx.xxx.xxx in via ${ifout}
Вот с этим правилом чудесно работает когда в ядре стоит default_to_accept
а так непашет... чтото наверно не открыто - ну помогите блин безрукому запарился уже

Да тут еще такая фенька... когда ядро скомпилино норамльно (без default_to_accept) внутренняя сетка неработает почемуто - хотя я разрешаю
add allow all from any to 192.168.0.1 via ${ifuser}
После того как я насильно открыл порт фтп - фтп заработал
Для самбы открыл 139 порт - и то входит только по ip
c чем этот гемор связан ?