FTP a iptables
mam nastavene
iptables -P FORWARD DROP
# vsetko z vonka na PC 192.168.10.10 je povolene
iptables -A FORWARD -i VONKAJSIA_IP -d 192.168.10.10 -j ACCEPT
# a tymto riadkom chcem dosiahnut aby z tej stanice fungovalo len ftpcko, ale ked sa pripojim cez Total Commander na nejake ftp, vsetko
zbehne a zostane to stat na LIST - VEZMI ADRESAR
iptables -A FORWARD -p TCP -s 192.168.10.10 -o VONKAJSIA_IP --sport 1024:65535 --dport 20:21 -j ACCEPT
ked zase nastavim -P FORWARD ACCEPT ide to v pohode, zjavne
mam daco blbo?
Pre pridávanie komentárov sa musíte prihlásiť.
este upresnim to FTP nie je na mojom ROUTRI(DEBIAN) to je povedzme na szm.sk a freeserver.sk a podobne...
ked mam FORWARD ACCEPT to ide iba ked ho dropnem tak to nejde, pretoze musim povolit forwardovanie portov 20 a 21 ale ani to mi akosi nezabera...
ked uz ma nacitat obsah adresarov
iba 21 je command port, data by mali byt related. skus:
nechybalo ti tam '$'?
ip_conntrack_ftp
.iptables -A FORWARD -p tcp --m state ESTABLISHED,RELATED -j ACCEPT
povoli vsetky nadviazane TCP spojenia vratane novych, ktore su related k nejakemu protokolu. Ak je toto pravidlo splnene, tak vykonavanie FORWARD skonci. Ak pravidlo splnenene nie je, tak to znamena, ze ide len o nove TCP spojenia, kedze v inom stave uz TCP byt nemoze. Takze v dalsich pravidlach je uplne zbytocne to state NEW pisat, kedze iny stav k tomu pravidlu ani nemoze prist (kedze pravidla sa vykonavaju sekvencne a prve splene pravidlo uplne ukonci vykonavanie). Ale chapem, ze kvoli prehladnosti a dobremu pocitu sa to tam napisat moze.nie, dobry pocit, ale stateful firewall
1) Takze si vezmime situaciu, ked chceme urobit pripojenie na TCP port 21. Toto pravidlo nie je splnene, takze firewall sa vykonava dalej. Toto pravidlo uz splnene je, takze packet sa povoli a vykonavanie firewallu sa skonci.
2) Teraz priklad, ked uz je TCP spojenie otvorene (akekolvek, nie len na port 21): Toto pravidlo je hned splnene, packet sa povoli a vykonavanie firewallu sa skonci a dalej nepokracuje. Ziadne dalsie pravidla sa netestuju.
3) Teraz priklad, ked uz chceme otvorit nove TCP spojenie, ale na iny port ako 21: Toto pravidlo nie je splnene, takze ideme dalej. Toto pravidlo tiez nie je splnene, takze ideme dalej.
Ale dalej uz nic nie je, takze sa pouzije policy, co je DROP.
Ano, ale na toto pravidlo uz pride len a len NEW packet a ziadny iny. Naco tam tu podmienku este naviac pisat, ked musi byt za kazdych okolnosti splnena, inak by sa to pravidlo ani vobec netestovalo? Pravidla sa vzdy vykonavaju sekvencne a prve splnene pravidlo ukonci vykonavanie celeho bloku.
Este na zaver aby som to doplnil. Neexistuje ziadny scenar, ktory by dal iny vysledok s pouzitim state=NEW a bez neho, takze tie definicie su ekvivalentne.
* umelo vytvorene packety
* pozostatky timeoutovanych spojeni
* chces zbytocne riskovat chybu prijimajuceho FTP servera?
* a co DoS?
uplne si otvoril port 21.
iptables -A FORWARD -s 192.168.10.10 -o $ETH_OUT -p tcp --dport 21 -j ACCEPT
toto pravidlo je OK, ale len ked chce absolutne vsetok traffic na port 21 forwardovat FTP serveru. a to my nechceme, vsak? teda aspon ja nie...
iptables
systemovy prikaz, ktory-A
prida na (aktualny) koniecFORWARD
preposielajucich filtrovacich pravidiel pravidlo;-s 192.168.10.10
vsetko, co ma zdrojovu adresu 192.168.10.10,-o $ETH_OUT
a bude poslane cez interface $ETH_OUT,-p tcp
a bude to protokol tcp,--dport 21
a bude mat cielovy port 21,-j ACCEPT
povoli...iptables -A FORWARD -p tcp --m state ESTABLISHED,RELATED -j ACCEPT
* stateful (estabilished, related)
* accept new na port 21
* ip_conntrack_ftp (ci nf_conntrack_ftp)
potom by to malo ist.
ale dakujem za rady uz to facha, este raz vdaka