Portál AbcLinuxu, 26. dubna 2024 09:36
Dobry den.
Pisu z hlavy - mohou tam byt preklepy a jine nesmysly:
#!/bin/bash ROUTER=1.1.1.1 #Vase vnejsi IP adresa serveru SERVER=192.168.2.3 PORT=80 ZNACKA=1 iptables -t mangle -A PREROUTING -p tcp -d $ROUTER --dport $PORT -i eth1 -j CONMARK --set-mark $ZNACKA #oznaci cele spojeni ZNACKOU iptables -t nat -A PREROUTING -i eth1 -m mark --mark $ZNACKA -j DNAT --to-destination $SERVER #preposle na SERVER vse co je oznaceno ZNACKOU a prichazi c eth1 iptables -A FORWARD -m mark --mark $ZNACKA -j ACCEPT # povoli forward vseho oznaceneho ZNACKOU echo 1 > /proc/sys/net/ipv4/ip_forward # zapne routovani
Marek
iptables -t nat -A PREROUTING -p tcp -d verjena_IP --dport 80 -j DNAT --to-destination 192.168.2.3:80
Dobry den
Tak nejak jsem predpokladal, ze gateway je firewall
To co jste napsal vy pouze zapne presmerovani.
Potom je nutne povolit forward smerem tam.
iptables -A FORWARD -p tcp -i eth1 -o eth0 --dport 80 -d 192.168.2.3 -j ACCEPT
Potom je nutne povolit forward smerem zpet.
iptables -A FORWARD -p tcp -o eth1 -i eth0 --sport 80 -s 192.168.2.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
Nebyl jsem si jisty zda je ip_forward vubec zapnuty, tak jsem to tam pridal.
Mne osobne prijde zapis s CONNMARK prehlednejsi, a myslim si, ze je i pro kernel mene narocny.
Marek
Mne osobne prijde zapis s CONNMARK prehlednejsi, a myslim si, ze je i pro kernel mene narocny.Neřekl bych, protože v případě, kdy se použije jen NAT, musí kernel hledat pouze v tabulce spojení, v řešení s CONNMARK musí podle mne hledat jak v tabulce spojení, tak musí prohledávat značky.
Pro kernel to muze byt mene narocne samozrejme jen pokud se s jednou oznacenym spojenim dela vice veci, protoze je rychlejsi se kouknout na znacku nez pokazde testovat odkud to jde, kam to jde, prez jaka rozhrani, jaky je to state ....
V tomto pripade (uvazuji o presmerovani a povoleni tam a zpet) to asi bude jedno.
Marek
iptables -A INPUT -p tcp --dport 80 \-m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.3:80
kde eth0 -je interface do lan sieti a ip 192.168.2.3 je adresa pc na ktory chceme presmerovat port
provede
ještě před routováním, takže na pakety, které vás zajímají, pak platí FORWARD.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.