Прочел одну широко распространенную статью с таким вот конфигом ipfw
Попытался запустить все это, но не работает: с локального хоста пакеты идут в инет, а из инета не проходят.
Вот настройки моего ядра
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT="50"
options IPFIREWALL_FORWARD
options IPDIVERT
options IPSTEALTH
options TCP_DROP_SYNFINВот это rc.conf записал
firewall_enable="YES"
firewall_quiet="YES"
natd_enable="YES"
natd_interface="xl1"
natd_flags="-f /usr/local/etc/natd.conf"В natd.conf вот это:
same_ports yes
use_sockets yes
dynamic yes
#!/bin/sh
ipfw='/sbin/ipfw -q'
ournet='192.168.0.1/24'
uprefix='192.168.0'
ifout='rl0'
ifuser='rl1'
${ipfw} flush
${ipfw} add 100 check-state
${ipfw} add 200 deny icmp from any to any in icmptype
5,9,13,14,15,16,17
${ipfw} add 210 reject ip from ${ournet} to any in via ${ifout}
${ipfw} add 300 allow ip from any to any via lo
${ipfw} add 310 allow tcp from me to any keep-state via ${ifout}
${ipfw} add 320 allow icmp from any to any
${ipfw} add 330 allow udp from me to any domain keep-state
${ipfw} add 340 allow udp from any to me domain
${ipfw} add 350 allow ip from me to any
${ipfw} add 400 allow tcp from any to me http,https,ssh
${ipfw} add 410 allow tcp from not ${ournet} to me smtp
${ipfw} add 510 divert natd ip from ${ournet} to any out via ${ifout}
${ipfw} add 1002 allow ip from ${uprefix}.2 to any via ${ifuser}
${ipfw} add 1002 allow ip from any to ${uprefix}.2 via ${ifuser}
${ipfw} add 1003 allow ip from ${uprefix}.3 to any via ${ifuser}
${ipfw} add 1003 allow ip from any to ${uprefix}.3 via ${ifuser}
${ipfw} add 1004 allow ip from ${uprefix}.4 to any via ${ifuser}
${ipfw} add 1004 allow ip from any to ${uprefix}.4 via ${ifuser}
#${ipfw} add 65535 deny ip from any to anyМеня интересуют здесь, например, правило 1002. По нему пакеты проходят, попадают natd, но обратно ответы не проходят.
Что не так?
>Прочел одну широко распространенную статью с таким вот конфигом ipfw
>Попытался запустить все это, но не работает: с локального хоста пакеты идут
>в инет, а из инета не проходят.
>Вот настройки моего ядра
>options IPFIREWALL
>options IPFIREWALL_VERBOSE
>options IPFIREWALL_VERBOSE_LIMIT="50"
>options IPFIREWALL_FORWARD
>options IPDIVERT
>options IPSTEALTH
>options TCP_DROP_SYNFIN
>
>Вот это rc.conf записал
>firewall_enable="YES"
>firewall_quiet="YES"
>natd_enable="YES"
>natd_interface="xl1"
>natd_flags="-f /usr/local/etc/natd.conf"
>
>В natd.conf вот это:
>same_ports yes
>use_sockets yes
>dynamic yes
>
>
>#!/bin/sh
> ipfw='/sbin/ipfw -q'
> ournet='192.168.0.1/24'
> uprefix='192.168.0'
> ifout='rl0'
> ifuser='rl1'
> ${ipfw} flush
> ${ipfw} add 100 check-state
> ${ipfw} add 200 deny icmp from any to any
>in icmptype
> 5,9,13,14,15,16,17
> ${ipfw} add 210 reject ip from ${ournet} to any
>in via ${ifout}
> ${ipfw} add 300 allow ip from any to any
>via lo
> ${ipfw} add 310 allow tcp from me to any
>keep-state via ${ifout}
> ${ipfw} add 320 allow icmp from any to any
>
> ${ipfw} add 330 allow udp from me to any
>domain keep-state
> ${ipfw} add 340 allow udp from any to me
>domain
> ${ipfw} add 350 allow ip from me to any
>
> ${ipfw} add 400 allow tcp from any to me
>http,https,ssh
> ${ipfw} add 410 allow tcp from not ${ournet} to
>me smtp
> ${ipfw} add 510 divert natd ip from ${ournet} to
>any out via ${ifout}
> ${ipfw} add 1002 allow ip from ${uprefix}.2 to any
>via ${ifuser}
> ${ipfw} add 1002 allow ip from any to ${uprefix}.2
>via ${ifuser}
> ${ipfw} add 1003 allow ip from ${uprefix}.3 to any
>via ${ifuser}
> ${ipfw} add 1003 allow ip from any to ${uprefix}.3
>via ${ifuser}
> ${ipfw} add 1004 allow ip from ${uprefix}.4 to any
>via ${ifuser}
> ${ipfw} add 1004 allow ip from any to ${uprefix}.4
>via ${ifuser}
> #${ipfw} add 65535 deny ip from any to any
>
>
>Меня интересуют здесь, например, правило 1002. По нему пакеты проходят, попадают natd,
>но обратно ответы не проходят.
>Что не так?А это правильно, что у тебя в rc.conf natd_interface="xl1" или там все-таки должен быть rl0???
>>Прочел одну широко распространенную статью с таким вот конфигом ipfw
>>Попытался запустить все это, но не работает: с локального хоста пакеты идут
>>в инет, а из инета не проходят.
>>Вот настройки моего ядра
>>options IPFIREWALL
>>options IPFIREWALL_VERBOSE
>>options IPFIREWALL_VERBOSE_LIMIT="50"
>>options IPFIREWALL_FORWARD
>>options IPDIVERT
>>options IPSTEALTH
>>options TCP_DROP_SYNFIN
>>
>>Вот это rc.conf записал
>>firewall_enable="YES"
>>firewall_quiet="YES"
>>natd_enable="YES"
>>natd_interface="xl1"
>>natd_flags="-f /usr/local/etc/natd.conf"
>>
>>В natd.conf вот это:
>>same_ports yes
>>use_sockets yes
>>dynamic yes
>>
>>
>>#!/bin/sh
>> ipfw='/sbin/ipfw -q'
>> ournet='192.168.0.1/24'
>> uprefix='192.168.0'
>> ifout='rl0'
>> ifuser='rl1'
>> ${ipfw} flush
>> ${ipfw} add 100 check-state
>> ${ipfw} add 200 deny icmp from any to any
>>in icmptype
>> 5,9,13,14,15,16,17
>> ${ipfw} add 210 reject ip from ${ournet} to any
>>in via ${ifout}
>> ${ipfw} add 300 allow ip from any to any
>>via lo
>> ${ipfw} add 310 allow tcp from me to any
>>keep-state via ${ifout}
>> ${ipfw} add 320 allow icmp from any to any
>>
>> ${ipfw} add 330 allow udp from me to any
>>domain keep-state
>> ${ipfw} add 340 allow udp from any to me
>>domain
>> ${ipfw} add 350 allow ip from me to any
>>
>> ${ipfw} add 400 allow tcp from any to me
>>http,https,ssh
>> ${ipfw} add 410 allow tcp from not ${ournet} to
>>me smtp
>> ${ipfw} add 510 divert natd ip from ${ournet} to
>>any out via ${ifout}
>> ${ipfw} add 1002 allow ip from ${uprefix}.2 to any
>>via ${ifuser}
>> ${ipfw} add 1002 allow ip from any to ${uprefix}.2
>>via ${ifuser}
>> ${ipfw} add 1003 allow ip from ${uprefix}.3 to any
>>via ${ifuser}
>> ${ipfw} add 1003 allow ip from any to ${uprefix}.3
>>via ${ifuser}
>> ${ipfw} add 1004 allow ip from ${uprefix}.4 to any
>>via ${ifuser}
>> ${ipfw} add 1004 allow ip from any to ${uprefix}.4
>>via ${ifuser}
>> #${ipfw} add 65535 deny ip from any to any
>>
>>
>>Меня интересуют здесь, например, правило 1002. По нему пакеты проходят, попадают natd,
>>но обратно ответы не проходят.
>>Что не так?
>
>А это правильно, что у тебя в rc.conf natd_interface="xl1" или там все-таки
>должен быть rl0???Я знаю, когда пробовал эти правило, то конечно же исправил на xl1
Здесь я привел правила как они были в статье.
>Прочел одну широко распространенную статью с таким вот конфигом ipfw
>Попытался запустить все это, но не работает: с локального хоста пакеты идут
>в инет, а из инета не проходят.
>Вот настройки моего ядра
>options IPFIREWALL
>options IPFIREWALL_VERBOSE
>options IPFIREWALL_VERBOSE_LIMIT="50"
>options IPFIREWALL_FORWARD
>options IPDIVERT
>options IPSTEALTH
>options TCP_DROP_SYNFIN
>
>Вот это rc.conf записал
>firewall_enable="YES"
>firewall_quiet="YES"
>natd_enable="YES"
>natd_interface="xl1"
>natd_flags="-f /usr/local/etc/natd.conf"
>
>В natd.conf вот это:
>same_ports yes
>use_sockets yes
>dynamic yes
>
>
>#!/bin/sh
> ipfw='/sbin/ipfw -q'
> ournet='192.168.0.1/24'
> uprefix='192.168.0'
> ifout='rl0'
> ifuser='rl1'
> ${ipfw} flush
> ${ipfw} add 100 check-state
> ${ipfw} add 200 deny icmp from any to any
>in icmptype
> 5,9,13,14,15,16,17
> ${ipfw} add 210 reject ip from ${ournet} to any
>in via ${ifout}
> ${ipfw} add 300 allow ip from any to any
>via lo
> ${ipfw} add 310 allow tcp from me to any
>keep-state via ${ifout}
> ${ipfw} add 320 allow icmp from any to any
>
> ${ipfw} add 330 allow udp from me to any
>domain keep-state
> ${ipfw} add 340 allow udp from any to me
>domain
> ${ipfw} add 350 allow ip from me to any
>
> ${ipfw} add 400 allow tcp from any to me
>http,https,ssh
> ${ipfw} add 410 allow tcp from not ${ournet} to
>me smtp
> ${ipfw} add 510 divert natd ip from ${ournet} to
>any out via ${ifout}
> ${ipfw} add 1002 allow ip from ${uprefix}.2 to any
>via ${ifuser}
> ${ipfw} add 1002 allow ip from any to ${uprefix}.2
>via ${ifuser}
> ${ipfw} add 1003 allow ip from ${uprefix}.3 to any
>via ${ifuser}
> ${ipfw} add 1003 allow ip from any to ${uprefix}.3
>via ${ifuser}
> ${ipfw} add 1004 allow ip from ${uprefix}.4 to any
>via ${ifuser}
> ${ipfw} add 1004 allow ip from any to ${uprefix}.4
>via ${ifuser}
> #${ipfw} add 65535 deny ip from any to any
>
>
>Меня интересуют здесь, например, правило 1002. По нему пакеты проходят, попадают natd,
>но обратно ответы не проходят.
>Что не так?А еще где у тебя диверт пакетов из внешнего мира в твою сеть???
>А еще где у тебя диверт пакетов из внешнего мира в твою
>сеть???
Когда экспериментировал писал вот такие варианты
1.${ipfw} add 520 divert natd all from any to any in via ${ifout}
2.${ipfw} add 520 divert natd all from any to ${out_ip} in via ${ifout}
3.${ipfw} add 520 divert natd all from any to ${ournet} in via ${ifout}Но без успешно!
>>А еще где у тебя диверт пакетов из внешнего мира в твою
>>сеть???
>Когда экспериментировал писал вот такие варианты
>1.${ipfw} add 520 divert natd all from any to any in via
>${ifout}
>2.${ipfw} add 520 divert natd all from any to ${out_ip} in via
>${ifout}
>3.${ipfw} add 520 divert natd all from any to ${ournet} in via
>${ifout}
>
>Но без успешно!Посмотри, чтобы у тебя стояла опция gateway_enable="YES" или дай команду sysctl net.inet.ip.forwarding=1
>>А еще где у тебя диверт пакетов из внешнего мира в твою
>>сеть???
>Когда экспериментировал писал вот такие варианты
>1.${ipfw} add 520 divert natd all from any to any in via
>${ifout}
>2.${ipfw} add 520 divert natd all from any to ${out_ip} in via
>${ifout}
>3.${ipfw} add 520 divert natd all from any to ${ournet} in via
>${ifout}
>
>Но без успешно!И сделай все-таки диверт
${ipfw} add 520 divert natd all from any to ${out_ip} in via ${ifout}
>>А еще где у тебя диверт пакетов из внешнего мира в твою
>>сеть???
>Когда экспериментировал писал вот такие варианты
>1.${ipfw} add 520 divert natd all from any to any in via
>${ifout}
>2.${ipfw} add 520 divert natd all from any to ${out_ip} in via
>${ifout}
>3.${ipfw} add 520 divert natd all from any to ${ournet} in via
>${ifout}
>
>Но без успешно!потом еще ournet это не 192.168.0.1/24, а наверное 192.168.0.0/24. А вобще набери в поиске на opennet настройка natd и почитай, что там пишут.
>>>А еще где у тебя диверт пакетов из внешнего мира в твою
>>>сеть???
>>Когда экспериментировал писал вот такие варианты
>>1.${ipfw} add 520 divert natd all from any to any in via
>>${ifout}
>>2.${ipfw} add 520 divert natd all from any to ${out_ip} in via
>>${ifout}
>>3.${ipfw} add 520 divert natd all from any to ${ournet} in via
>>${ifout}
>>
>>Но без успешно!
>
>потом еще ournet это не 192.168.0.1/24, а наверное 192.168.0.0/24. А вобще набери
>в поиске на opennet настройка natd и почитай, что там пишут.
>
Да, согласен! В том, что я написал есть мелкие ошибки. Но я у себя их исправил. Меня больше интересует принцип. Нужно ли в данном случае направлять через диверт все пакеты из инета на внешний ip?
В инете, к сожалению, пишут не так много. Часто перепечатывают одно и тоже.
>>
>>потом еще ournet это не 192.168.0.1/24, а наверное 192.168.0.0/24. А вобще набери
>>в поиске на opennet настройка natd и почитай, что там пишут.
>>
>Да, согласен! В том, что я написал есть мелкие ошибки. Но я
>у себя их исправил. Меня больше интересует принцип. Нужно ли в
>данном случае направлять через диверт все пакеты из инета на внешний
>ip?
>В инете, к сожалению, пишут не так много. Часто перепечатывают одно и
>тоже.
gateway_enable="YES" уже был
Диверт
на внешний ip делал, но не помогло.
чтоб не мучится: divert all from any to any via rl1 (который внешний)
натить надо как исходящие, так и входящие. а потом, если уж так приспичило можешь писать более узкие диверты.
ournet=192.168.0.0/16 или 192.168.0.0/24в начале:
allow all from any to any via lo0
allow all from any to any via rl1
своей сетке то доверяешь? четыре тачки всего!330 закончить: out via rl0
340 - лишнее400,410 - если есть почтовый сервер, веб сервер и ssh к которым доступ из интырнета
divert all from any to any via rl0 - диверт вх и исх
1002 и ниже:
... any via rl0, а не rl1
непонятно для чего писать одно и то же правило для каждой тачки, не легче одно общее?и вообще выкинь эти правила и напиши заново. свой конфиг кинуть?
какая сеть, что надо итд требования
>ournet=192.168.0.0/16 или 192.168.0.0/24
>
>в начале:
>allow all from any to any via lo0
>allow all from any to any via rl1
>своей сетке то доверяешь? четыре тачки всего!
>
>330 закончить: out via rl0
>340 - лишнее
>
>400,410 - если есть почтовый сервер, веб сервер и ssh к которым
>доступ из интырнета
>
>divert all from any to any via rl0 - диверт вх и
>исх
>
>1002 и ниже:
>... any via rl0, а не rl1
>непонятно для чего писать одно и то же правило для каждой тачки,
>не легче одно общее?
>
>и вообще выкинь эти правила и напиши заново. свой конфиг кинуть?
>какая сеть, что надо итд требования
Спасибо за ответы!
Я сделал так
#!/bin/sh
ipfw -f flush
ext_interface='xl1'
int_interface='xl0'
ip_ext='xx.xx.xx.xx'
ip_admps='10.10.1.22'
ip_int='10.10.1.177'
ip_win='10.10.1.7'
ip_win_s='10.10.1.1'
post2='10.10.1.159'
ip_win4='10.10.1.20'
ip_win5='10.10.1.42'
ip_buh1='10.10.1.59'
ip_buh2='10.10.1.30'
ip_buh3='10.10.1.80'
ip_buh4='10.10.1.198'
ip_buh5='10.10.1.81'ipfw add 100 allow all from any to any via lo0
ipfw add 200 deny all from 127.0.0.0/8 to any in recv ${ext_interface}
ipfw add 210 deny all from 10.0.0.0/8 to any in recv ${ext_interface}
ipfw add 220 deny all from 172.16.0.0/16 to any in recv ${ext_interface}
ipfw add 230 deny all from 192.168.0.0/24 to any in recv ${ext_interface}
ipfw add 500 allow tcp from ${local_net} 1025-65535 to 10.10.1.177 20,21,22,110,80 via ${int_interface}
ipfw add 510 allow tcp from 10.10.1.177 20,21,22,80,110 to ${local_net} 1025-65535 via ${int_interface}ipfw add 600 divert natd ip from ${local_net} to any out via ${ext_interface}
ipfw add 610 divert natd ip from any to ${ip_ext} in via ${ext_interface}
#ipfw add 620 check-stateipfw add 635 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
ipfw add 640 allow icmp from any to any# DNS,SMTP,POP ... Rules
ipfw add 640 allow udp from any to any 53
ipfw add 650 allow udp from any 53 to anyipfw add 660 allow tcp from any to any 21,20
ipfw add 670 allow tcp from any 21,20 to anyipfw add 680 allow tcp from any to any 110
ipfw add 690 allow tcp from any 110 to anyipfw add 700 allow tcp from any to any 25
ipfw add 710 allow tcp from any 25 to anyipfw add 720 allow udp from any to any 123
ipfw add 730 allow udp from any 123 to any
#User Rules
ipfw add 900 allow all from any to ${local_net} via ${int_interface}
ipfw add 920 allow ip from 10.10.1.159 to any via ${int_interface}
ipfw add 930 allow ip from 10.10.1.11 to any via ${int_interface}
ipfw add 940 allow ip from 10.10.7.1 to any via ${int_interface}
ipfw add 950 allow ip from 10.10.1.72 to any via ${int_interface}
ipfw add 960 allow ip from ${ip_buh1} to any via ${int_interface}
ipfw add 970 allow ip from ${ip_buh2} to any via ${int_interface}
ipfw add 980 allow ip from ${ip_buh3} to any via ${int_interface}
ipfw add 990 allow ip from ${ip_buh4} to any via ${int_interface}
ipfw add 1000 allow ip from ${ip_buh5} to any via ${int_interface}
ipfw add 1100 allow all from ${ip_ext} to any 22,21,20,23,80,110,443 out via ${ext_interface}