iptables - vymena portu a schovani skutecneho portu

Premysl Hruby lin-konf na post.cz
Čtvrtek Srpen 25 15:37:04 CEST 2005


Jan Kovář wrote:
> Dobry den.
-- || --
>  
> Kolega resi problem, kdy z nejakeho duvodu chce apache na specialnim portu a 
> on ho chce mit z inetu viditelny na portu 80, ale zaroven ten specialni port 
> schovat. Jinymi slovy, povol uzivatelum pristup http://server/, ale nepovol 
> jim http://server:7001/, prestoze na tom 7001 web bezi.
> 
> iptables jsme nastavili takto (posilam jen relevantni radky)
>  
> $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 80 -j DNAT --to $INET_IP:7001 # Menim port z 80 na 7001
Tady bych videl tu chybu. Nejdrive z portu 80 udelate 7001
> $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 7001 -j DNAT --to $INET_IP:9999 # Pokud nekdo chce rovnou na 7001 tak to menim na 9999
A pak vsechny (premenenou 80 + originalni 7001) 7001 zmenite na 9999 -
hazite je do jednoho kose.
>  
> $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 7001 -j ACCEPT  #WWW server on non-standard port 
> $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 9999 -j DROP # Tenhle je mozna zbytecny.
Tohle se da uz hodit do PREROUTINGu - usetrite si tim ten "obetovany"
port 9999
>  
> S vypnutym firewallem web funguje na portu 7001. Se zapnutym nefunguje 
> na zadnem portu. Jen pro jistotu. Bez zapnuteho fw se pripojuje na http://server:7001/ 
> pri vypnutem fw na http://server/
>  
>  
> Zvlastni je, ze podobne nastaveni pro ssh nam funguje:
>  
> $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 8001 -j DNAT --to $INET_IP:22  # hide SSH 
> $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 22 -j DNAT --to $INET_IP:9999  # hide SSH 
>  
> $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 22 -j ACCEPT  #SSH server
> $IPTABLES -A INPUT -i $INET_IFACE -p TCP --dport 9999 -j DROP 
>  
> Nejaky tip, co delame spatne?
>  
> Diky



Další informace o konferenci Linux