Linux за българи: Форуми

BSD секция => Настройки на софтуер => Темата е започната от: Neoromantic в Feb 16, 2010, 14:27



Титла: ipfw+natd
Публикувано от: Neoromantic в Feb 16, 2010, 14:27
Опитвам се да напиша някъв прост firewall с ipfw

pif="xl0"
lif="xl1"
cmd="/sbin/ipfw -q"
$cmd add 005 divert 8668 ip from any to any in via $pif
$cmd add 006 check-state
$cmd add 007 allow tcp from any to 192.168.0.2 limit src-addr 100
$cmd add 010 allow all from any to any via $lif
$cmd add 011 allow all from any to any via lo
$cmd add 012 divert 8668 ip from any to any out via $pif

В natd.conf имам redirect_port tcp 192.168.0.2:8080 80

като на 192.168.0.2 имам един уеб сървър. Целта е да огранича конекциите към него.

Когато сложа правилото 007 нищо не става. Махна ли го всичко върви.
С iptables ми е по лесно, но тука..не разбирам кво се случва...
Ако съм разбрал правилно - на 005, това което влиза през външния интерфейс му се прави  dnat, след което пакета минава на следващото правило и т.н.
Тогава какъв е проблема да не мога да огранича конекциите....?!



Титла: Re: ipfw+natd
Публикувано от: koue в Feb 16, 2010, 17:10
Под "нищо не става" какво трябва да разбираме?


Титла: Re: ipfw+natd
Публикувано от: Neoromantic в Feb 18, 2010, 13:49
Не се отваря страницата на 192.168.0.2 и си мисля, че причината е в това, че на влизане пакета се "мачва" от 005, сменя му се destination-a и после се "мачва" от 007. Дотук "ОК", но пакета който се връща се "мачва" на 012...
Сега преработих редовете така:

cmd="/sbin/ipfw -q"
$cmd add 005 divert 8668 ip from any to any via $pif
$cmd add 006 check-state
$cmd add 007 allow tcp from any to 192.168.0.2 out via $lif setup limit src-addr 100
$cmd add 010 allow all from any to any via $lif
$cmd add 011 allow all from any to any via lo

и работи.

$pif = публичен интерфейс
$lif = локален интерфейс