Portál AbcLinuxu, 10. května 2025 10:02
iptables -t nat -I PREROUTING -i eth1 -p tcp -s 172.16.0.0/24 --dport 80 -j DNAT --to 172.16.0.1:80
Po odsouhlasení chci spustit příkaz, který přes iptables povolí komunikaci portu 80 do internetu a nebude jej přesměrovávat na server.
Nevedel by nekdo jak napsat prikaz pro iptables, který povolý komunikaci na port do internetu? Např. pro IP 172.16.0.100
Diky za rady a nakopnutí
Řešení dotazu:
iptables -A FORWARD -s 172.16.0.100 --destination-port 80 -j ACCEPTNN
iptables -A PREROUTING -t nat -s 172.16.0.100 -p tcp --dport 80 -j RETURNpripadne
iptables -t nat -I PREROUTING [cislo radku] -s 172.16.0.100 -p tcp --dport 80 -j RETURN
-i eth1 -p tcp -s 172.16.0.0/24 --dport 80
). Přidejte do něj to pravidlo pro přesměrování (-j DNAT --to 172.16.0.1:80
) a pak na začátek přidávejte pravidla pro odsouhlasené IP adresy s cílem RETURN
. Zhruba takhle:
iptables -N odsouhlaseni iptables -t nat -A PREROUTING -i eth1 -p tcp -s 172.16.0.0/24 --dport 80 -j odsouhlaseni #povoleni pro IP 172.16.0.100 iptables -I odsouhlaseni 0 -s 172.16.0.100 -j RETURN
A co když se protuneluje pře UDP? Nebo třeba přes lokální DNS server?-p tcp
Uz jsem resil , nastaveni nahravam z mysql , zapisuju do vlastniho kofiguraku a ctu timhle scriptem .
echo "Nahravam seznam presmerovanych adres..."
let a=0;
while read line ; do
wan_port=`echo $line | awk '{print $1}'`;
lan_ip=`echo $line | awk '{print $2}'`;
lan_port=`echo $line | awk '{print $3}'`;
$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport $wan_port -j ACCEPT;
$IPTABLES -t nat -A PREROUTING -i $WAN -p TCP --dport $wan_port -j DNAT --to $lan_ip:$lan_port;
$IPTABLES -A FORWARD -p TCP -i $WAN -d $lan_ip --dport $lan_port -j ACCEPT;
let a=$a+1;
done < $VIRTUAL_SERVERS ;
echo "Celkem nahrano ($a) presmerovani."
Je to jen vytazek z celeho firewall scriptu .
Konfigurak asi nejak takhle .
8000 192.168.0.4 80
8080 192.168.0.4 8080
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.