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

Исходное сообщение
"IPFW, IPF, NATD, IPNATD"

Отправлено Stiki , 25-Сен-03 20:41 
Народ, спасите. Блин мой конфиг не даёт зверям выход в нет, поделитесь
как наризаете и боретесь с флудом. В частности ipfw и ipf. А ?!
Совсем уже затуркался с этим ... неработает мой и всё ! У кого-то
работает у кого-то нет, могет natd непрально настроил, могет всё
непрально. fxp0 - inet, xl0 - local Ща примеры скину:

natd:
    natd -f /etc/natd.conf -n fxp0

natd.conf:
          same_ports yes
          use_sockets yes
          unregistered_only yes
          dynamic yes
          interface fxp0

далее ipfw в rc.conf
      firewall_enable="YES"
      firewall_script="/etc/rc.firewall"
      firewall_type="open"
      firewall_quiet="NO"
      firewall_logging="NO"
      firewall_flags=""

ipfw.conf:
          #!/bin/sh

          ipfw='/sbin/ipfw -q'
          ournet='10.0.0.1/20'
          inet='80.235.127.82'

          ifout='fxp0'
          ifuser='xl0'

          #${ipfw} flush
          ${ipfw} add 100 check-state
          ${ipfw} add pass tcp from any to any established

          ${ipfw} add allow icmp from any to any out via ${ifout} keep-state


          #${ipfw} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17

          ${ipfw} add divert natd all from any to any via ${ifout}

          ${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 400 allow tcp from any to me 4000
          #${ipfw} add 410 allow tcp from not ${ournet} to me smtp
          ${ipfw} add 500 fwd 10.0.0.1,3128 tcp from any to any http out via ${ifuser}

          #${ipfw} add 510 skipto 65500 tcp from any to any http
          #${ipfw} add divert natd all from any to any via ${ifout}

          ${ipfw} pipe 1 config bw 384Kbit/s queue 3Kbytes
          ${ipfw} pipe 2 config bw 384Kbit/s queue 3Kbytes
          ${ipfw} add 510 pipe 1 ip from 10.0.5.11 to any via ${ifout} out
          ${ipfw} add 511 pipe 2 ip from any to 10.0.5.11 via ${ifout} in
          ${ipfw} add 512 divert natd ip from 10.0.5.11 to any out xmit ${ifout}

          ${ipfw} add 513 deny ip from 10.0.5.12 to any

          ${ipfw} add 514 deny ip from 10.0.5.13 to any

          ${ipfw} pipe 3 config bw 5120Kbit/s queue 3Kbytes
          ${ipfw} pipe 4 config bw 5120Kbit/s queue 3Kbytes
          ${ipfw} add 515 pipe 3 ip from 80.235.127.195 to any via ${ifout} out
          ${ipfw} add 516 pipe 4 ip from any to 80.235.127.195 via ${ifout} in
          ${ipfw} add 517 divert natd ip from 80.235.127.195 to any out xmit ${ifout}

          ${ipfw} pipe 5 config bw 384Kbit/s queue 3Kbytes
          ${ipfw} pipe 6 config bw 384Kbit/s queue 3Kbytes
          ${ipfw} add 518 pipe 5 ip from 10.0.5.15 to any via ${ifout} out
          ${ipfw} add 519 pipe 6 ip from any to 10.0.5.15 via ${ifout} in
          ${ipfw} add 520 divert natd ip from 10.0.5.15 to any out xmit ${ifout}
          это только небольшой отрывок, файло большой там.

далее ipf в rc.conf
      ipfilter_enable="YES"
      ipfilter_program="/sbin/ipf"
      ipfilter_rules="/etc/ipf.conf"
      ipfilter_flags=""
      ipnat_enable="YES"
      ipnat_program="/sbin/ipnat"
      ipnat_rules="/etc/ipnat.conf"
      ipnat_flags=""
      ipmon_enable="NO"
      ipmon_program="/sbin/ipmon"
      ipmon_flags="-Dvn /var/log/firewall.log"

ipf.conf:
         #block in quick on xl0 proto tcp from any to any port = 10024 keep state
         #block in quick on xl0 proto icmp from any to any keep state
         #block in quick on xl0 proto igmp all

         block in quick on xl0 all with ipopts
         block in quick on xl0 all with frag
         block in quick on xl0 all with short

         block return-rst in quick on xl0 proto tcp all flags FUP

         block in log proto icmp all icmp-type 8
         block in log proto icmp all icmp-type 13
         block in log proto icmp all icmp-type 15
         block in log proto icmp all icmp-type 17


ipnat.conf
          rdr xl0 10.0.0.1/20 port 80 -> 10.0.0.1 port 3128

          map fxp0 0.0.0.0/20 -> 0.0.0.0/32

Может кто видит явные ошибки, тыкните носом. Блин, работает но
нестабильно, а уже всё что можн переделал, ещё эти выделенные IP
мешаются.


Содержание

Сообщения в этом обсуждении
"IPFW, IPF, NATD, IPNATD"
Отправлено A Clockwork Orange , 26-Сен-03 07:27 
>Народ, спасите. Блин мой конфиг не даёт зверям выход в нет, поделитесь
>
>как наризаете и боретесь с флудом. В частности ipfw и ipf. А
>?!
>Совсем уже затуркался с этим ... неработает мой и всё ! У
>кого-то
>работает у кого-то нет, могет natd непрально настроил, могет всё
>непрально. fxp0 - inet, xl0 - local Ща примеры скину:
>
>natd:
>    natd -f /etc/natd.conf -n fxp0
>
>natd.conf:
>          same_ports yes
>
>          use_sockets yes
>
>          unregistered_only yes
>
>          dynamic yes
>
>          interface fxp0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ лишне, интерфейс указан при запуске natd

>
>далее ipfw в rc.conf
>      firewall_enable="YES"
>      firewall_script="/etc/rc.firewall"
>      firewall_type="open"              
>      firewall_quiet="NO"
_________________________________
>      firewall_logging="NO"     # может не стоят эти два правила
>      firewall_flags=""         # все же лучше что бы лог велся и если                  
                                 # флаги в конф файле зачем о них тут
                                 # писать
_________________________________
твой скрипт не работает так как в rc.conf указан системный.

Два фаервола на одной машине, может это и круто, но лучше с одним попозиться и настроить.

>ipfw.conf:
>          #!/bin/sh
>
>          ipfw='/sbin/ipfw -q'
>
>          ournet='10.0.0.1/20'
>          inet='80.235.127.82'
>
>          ifout='fxp0'
>          ifuser='xl0'
>
>          #${ipfw} flush
>
>          ${ipfw} add
>100 check-state
>          ${ipfw} add
>pass tcp from any to any established
>
>          ${ipfw} add
>allow icmp from any to any out via ${ifout} keep-state
>
>
>          #${ipfw} add
>200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
>
>          ${ipfw} add
>divert natd all from any to any via ${ifout}
>
>          ${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
>400 allow tcp from any to me 4000
>          #${ipfw} add
>410 allow tcp from not ${ournet} to me smtp
>          ${ipfw} add
>500 fwd 10.0.0.1,3128 tcp from any to any http out via
>${ifuser}
>
>          #${ipfw} add
>510 skipto 65500 tcp from any to any http
>          #${ipfw} add
>divert natd all from any to any via ${ifout}
>
>          ${ipfw} pipe
>1 config bw 384Kbit/s queue 3Kbytes
>          ${ipfw} pipe
>2 config bw 384Kbit/s queue 3Kbytes
>          ${ipfw} add
>510 pipe 1 ip from 10.0.5.11 to any via ${ifout} out
>
>          ${ipfw} add
>511 pipe 2 ip from any to 10.0.5.11 via ${ifout} in
>
>          ${ipfw} add
>512 divert natd ip from 10.0.5.11 to any out xmit ${ifout}
>
>
>          ${ipfw} add
>513 deny ip from 10.0.5.12 to any
>
>          ${ipfw} add
>514 deny ip from 10.0.5.13 to any
>
>          ${ipfw} pipe
>3 config bw 5120Kbit/s queue 3Kbytes
>          ${ipfw} pipe
>4 config bw 5120Kbit/s queue 3Kbytes
>          ${ipfw} add
>515 pipe 3 ip from 80.235.127.195 to any via ${ifout} out
>
>          ${ipfw} add
>516 pipe 4 ip from any to 80.235.127.195 via ${ifout} in
>
>          ${ipfw} add
>517 divert natd ip from 80.235.127.195 to any out xmit ${ifout}
>
>
>          ${ipfw} pipe
>5 config bw 384Kbit/s queue 3Kbytes
>          ${ipfw} pipe
>6 config bw 384Kbit/s queue 3Kbytes
>          ${ipfw} add
>518 pipe 5 ip from 10.0.5.15 to any via ${ifout} out
>
>          ${ipfw} add
>519 pipe 6 ip from any to 10.0.5.15 via ${ifout} in
>
>          ${ipfw} add
>520 divert natd ip from 10.0.5.15 to any out xmit ${ifout}
>
>          это только
>небольшой отрывок, файло большой там.
>
>далее ipf в rc.conf
>      ipfilter_enable="YES"
>      ipfilter_program="/sbin/ipf"
>      ipfilter_rules="/etc/ipf.conf"
>      ipfilter_flags=""
>      ipnat_enable="YES"
>      ipnat_program="/sbin/ipnat"
>      ipnat_rules="/etc/ipnat.conf"
>      ipnat_flags=""
>      ipmon_enable="NO"
>      ipmon_program="/sbin/ipmon"
>      ipmon_flags="-Dvn /var/log/firewall.log"
>
>ipf.conf:
>         #block in quick
>on xl0 proto tcp from any to any port = 10024
>keep state
>         #block in quick
>on xl0 proto icmp from any to any keep state
>         #block in quick
>on xl0 proto igmp all
>
>         block in quick
>on xl0 all with ipopts
>         block in quick
>on xl0 all with frag
>         block in quick
>on xl0 all with short
>
>         block return-rst in
>quick on xl0 proto tcp all flags FUP
>
>         block in log
>proto icmp all icmp-type 8
>         block in log
>proto icmp all icmp-type 13
>         block in log
>proto icmp all icmp-type 15
>         block in log
>proto icmp all icmp-type 17
>
>
>ipnat.conf
>          rdr xl0 10.0.0.1/20 port 80 -> 10.0.0.1 port 3128
>
>          map fxp0 0.0.0.0/20 -> 0.0.0.0/32
>
>Может кто видит явные ошибки, тыкните носом. Блин, работает но
>нестабильно, а уже всё что можн переделал, ещё эти выделенные IP
>мешаются.



"IPFW, IPF, NATD, IPNATD"
Отправлено Stiki , 26-Сен-03 08:23 
>твой скрипт не работает так как в rc.conf указан системный.
>
>Два фаервола на одной машине, может это и круто, но лучше с
>одним попозиться и настроить.
По задумке, один должен трафик резать, а другой всё остальное, но блин они как-то криво работают. У клиентов инет щас есть, но вот флуд идёт и дальше.

"IPFW, IPF, NATD, IPNATD"
Отправлено dex , 26-Сен-03 08:31 
>>Народ, спасите. Блин мой конфиг не даёт зверям выход в нет, поделитесь
>>
>>как наризаете и боретесь с флудом.
От флюда борюсь так
sysctl.conf

net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0

>>
>>далее ipfw в rc.conf
>>      firewall_enable="YES"
>>      firewall_script="/etc/rc.firewall"
>>      firewall_type="open"              
>>      firewall_quiet="NO"
>_________________________________
>>      firewall_logging="NO"     # может не стоят эти два правила
>>      firewall_flags=""         # все же лучше что бы лог велся и если                  

Лучше так напиши в rc.conf
firewall_enable="YES"
firewall_type="open"
firewall_logging="YES"

И фаерволл пиши в rc.conf


"IPFW, IPF, NATD, IPNATD"
Отправлено Stiki , 26-Сен-03 08:37 
>net.inet.icmp.drop_redirect=1
>net.inet.icmp.log_redirect=1
>net.inet.ip.redirect=0
>net.inet.ip.sourceroute=0
>net.inet.ip.accept_sourceroute=0
>net.inet.icmp.bmcastecho=0
>net.inet.icmp.maskrepl=0
а у меня вот так написано:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.fw.verbose=1
net.inet.ip.forwarding=1
net.inet.icmp.maskrepl=0
net.inet.icmp.bmcastecho=0
kern.ps_showallprocs=0
kern.ipc.max_datelen=512
kern.ipc.maxsockbuf=2097152
kern.ipc.somaconn=8192
kern.maxfiles=65536

net.inet.icmp.drop_redirect=1
net.inet.icmp.icmplim=500
net.inet.icmp.log_redirect=1

net.inet.ip.ttl=128

net.inet.raw.maxdgram=52344
net.inet.raw.recvspace=65536

net.inet.tcp.log_in_vain=1

net.inet.tcp.sendspace=65536

net.inet.udp.log_in_vain=1
net.inet.upd.maxdgram=57344
net.inet.udp.recvspace=65536

net.local.dgram.maxdgram=57344
net.local.dgram.recvspace=65536

net.local.stream.recvspace=65536
net.local.stream.sendspace=65536

net.inet.ip.forwarding=1

>Лучше так напиши в rc.conf
>firewall_enable="YES"
>firewall_type="open"
>firewall_logging="YES"
Ща сделаем.



"IPFW, IPF, NATD, IPNATD"
Отправлено dex , 26-Сен-03 08:56 
>net.inet.tcp.blackhole=2
>net.inet.udp.blackhole=1
>net.inet.ip.fw.verbose=1
>net.inet.ip.forwarding=1
>net.inet.icmp.maskrepl=0
>net.inet.icmp.bmcastecho=0
>kern.ps_showallprocs=0
>kern.ipc.max_datelen=512
>kern.ipc.maxsockbuf=2097152
>kern.ipc.somaconn=8192
>kern.maxfiles=65536
>
>net.inet.icmp.drop_redirect=1
>net.inet.icmp.icmplim=500
>net.inet.icmp.log_redirect=1
>
>net.inet.ip.ttl=128
>
>net.inet.raw.maxdgram=52344
>net.inet.raw.recvspace=65536
>
>net.inet.tcp.log_in_vain=1
>
>net.inet.tcp.sendspace=65536
>
>net.inet.udp.log_in_vain=1
>net.inet.upd.maxdgram=57344
>net.inet.udp.recvspace=65536
>
>net.local.dgram.maxdgram=57344
>net.local.dgram.recvspace=65536
>
>net.local.stream.recvspace=65536
>net.local.stream.sendspace=65536
>
>net.inet.ip.forwarding=1
Часть переменных надо в конфиг ядра записать, когда генеришь.
Например это
net.inet.ip.fw.verbose=1
Часть нафиг совсем не надо
net.inet.ip.ttl=128
А треть можно совсем выбросить, ничего на тачке не изменится.

А еще совет
Если что то меняешь в настройках, надо понимать что меняешь и зачем.
А не менять 30 параметров, сразу.