Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: xmms 12. 12. 2010, 18:49:36
-
Snažím se naučit iptables, zkouším to podle návodu, ale nedělá to, co jsem očekával. Mám OPENsuse 11.3, na portu 21 mi běží vsftpd a chci ho zablokovat rejectem, abych při pokusu o připojení dostal chybovou hlášku:
moje:~ # iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
moje:~ # ftp 127.0.0.1 21
ftp: connect: Connection refused
Connection refused je sice v pořádku, ale mezi tím je asi dvousekundová prodleva. Přitom když zadám připojení na jiný neexistující port, objeví se Connection refused ihned bez čekání. Proč je tam ta prodleva a kde je nastavená? Já jsem ji tam nedával.
Zde mám jiné nastavení a očekával bych, že zablokuju všechno kromě ftp a ftp bude fungovat. Ale nefunguje:
moje:~ # iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
moje:~ # ftp 127.0.0.1 21
ftp: connect: Connection timed out
Zde se objeví Connection timed out a trvá to asi 20 sekund. Opravdu si s tím nevím rady, co dělám špatně? Jsem iptables začátečník.
vsftpd je funkční a s vypnutým firewallem funguje
jde mi ted prozatím jen o k připojení k němu, přenos souborů ted neřeším
Předem dík.
moje:~ # iptables -P INPUT ACCEPT
moje:~ # iptables -P FORWARD ACCEPT
moje:~ # iptables -P OUTPUT ACCEPT
moje:~ # iptables -F
moje:~ # iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
moje:~ # ftp 127.0.0.1 21
Connected to 127.0.0.1.
220 (vsFTPd 2.2.2)
Name (127.0.0.1:dan): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
-
Prvne zkus tohle:
http://www.root.cz/clanky/vse-o-iptables-uvod/
a pak teprve zkousej forum. Vetsinou vsichni, kteri znaji odpoved, se vse naucili z takovych a podobnych clanku.
-
v prvom pripade mi padlo do oka "--reject-with icmp-port-unreachable". Ked som namiesto toho skusil "--reject-with tcp-reset" alebo aj "--reject-with icmp-host-prohibited", tak sa spojenie zrusilo hned, bez cakania. Zrejme ftp klient chape port-unreachable ako "skus to znova", preto to zdrzanie.
Co sa tyka druheho problemu, ftp potrebuje standardne 2 porty, druhy z nich je myslim lubovolny. Skuste radsej pasivne ftp pomocou "ftp -p".
-
Je chvályhodné, že se snažíš naučit konfiguraci firewallu. Zkusil jsi už nějaké nadstavby? Jsou to vlastně jen skripty, které potřebná pravidla vytvoří samy. Zkusil jsi už SuSEfirewall2, fwbuilder nebo Shorewall? Někdy je zajímavé se podívat, jak to dělají jiní.
Nedoporučuji používat "iptables -P INPUT ACCEPT". Je lepší zablokovat všechny služby a pak povolit jen ty, které skutečně chci. Totéž s FORWARD.
A ta prodleva s REJECTem? Podle mne je tam schválně. Je jen málo případů, kdy je potřeba REJECT bez prodlevy.
V ostatních případech doporučuji mrknout se do logů.
-
Dá se nějak udělat REDIRECT na localhostu?
zkoušel jsem toto:
iptables -t nat -A PREROUTING -i lo -p tcp --dport 5555 -j REDIRECT --to 2000
# netcat -l -vv -p 2000
listening on [any] 2000 ...
netcat -vv 127.0.0.1 5555
localhost.localdomain [127.0.0.1] 5555 (personal-agent) : Connection refused
Nefunguje to. Mám netcat naslouchající na portu 2000. Já se chci připojovat na port 5555 a iptables mě má přesměrovat na 2000. Ale nepřesměruje. Zkoušel jsem to na zařízení eth0 a tam to funguje.
S tím localhostem je to vůbec takové divné. Třeba bych se chtěl připojit z adresy 127.0.0.8 na adresu 127.0.0.1, ale nepřišel jsem na to, jak to udělat. Když dám cílovou adresu 127.0.0.8 (třeba telnetem), nastaví se automaticky i zdrojová na 127.0.0.8.