Portál AbcLinuxu, 8. května 2025 22:54
Zdravim potreboval bych vyresit problem s premerovani weboveho portu 80 , na kterych bezi webove rozhranni IPBOXu s ip 192.168.0.4 na verejnou ip xxx.xxx.xxx.xxx s portem 8088, tak aby se spojeni jevilo jako transparentni .
IPBOX > SERVER
192.168.0.4:80 > xxx.xxx.xxx.xxx:8088
Viděl bych to na tři alternativy:
Já jsem kdysi dávno takto přesměrovával nějakou službu pomocí dnatu v iptables. Teď mám rozepsaný jeden user-space program, který přesně toto umí (během čtrnácti dnů bude k dispozici — doufám). Ale asi nejjednodušší a nejčistší bude ten proxy server… Ale to ti spíš poradí nějací síťaři.
urcite IPTABLES ale jak by melo vypadat funkcni pravidlo
To bych taky rád věděl.
Ale teď vážně. Tenkrát jsem to udělal přes Destination NAT a pár ALLOW pravidel ve FORWARD chainu. Už jsem i stačil zapomenout tu hantýrku aj-pí-tejblů. Hledej na netu Destination NAT a to by mělo fungovat.
Já to dělal někdy před šesti lety, možná dříve. Pak jsme to zkoušeli na novějším kernelu a nejelo to. Holt tyhle advanced techniques nejsou má parketa. Nepotřebuješ něco s SQL?
iptables -t nat -A POSTROUTING -s 192.168.0.4 -sport 80 -j SNAT --to-source xxx.xxx.xxx.xxx:8088
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -dport 8088 -j DNAT --to-destination 192.168.0.4:80
a odforwardovat si prislusne interface..
NN
[root@localhost etc]# iptables -t nat -A PREROUTING -d verejna IP -dport 8088 -j DNAT --to-destination 192.168.0.4:80
iptables v1.4.3.1: multiple -d flags not allowed
Try `iptables -h' or 'iptables --help' for more information.
Teda, to je popis problemu jak od indianske babicky.
Pokud je server linux routerem na internet, tak na serveru:
iptables -t nat -A PREROUTING -i ethN -p tcp -d xxx.xxx.xxx.xxx --dport 8088 -j DNAT --to-dest 192.168.0.4:80
PS fakt uz dnes uplne kazdy musi vedet, co je IPBOX?
Odzkouseno ale nic se nedeje , prohlizec se pokousi otevrit stranky , ale nepodari se mu to . V iptables je port povoleny , navic je videt se se i nejake pakety prenesou , ale nic .
Pokud k tomu ovsem pristupujete ze stejne site, kde se naleza onen IPBOX, musite tam zakomponovat i SNAT - inspirace viz posty NN + cteni 'man iptables'. NN tam chybi minimalne -p tcp a --dport ma ma dva minusy.
rinetd nepomoze?
Tak routovani mi uz funguje s tim ze mam asi spatne nastaveny firewall , pritom porty mam povolene .
Jak by melo vypadat pravidlo pro povoleny port ?
<pre>
#! /bin/sh
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
WAN_IP="xxx.xxx.xxx.xxx"
IPTABLES="/sbin/iptables"
LAN="eth0"
WIFI="ath0"
WAN="eth1"
set -e
case "$1" in
start)
echo -n "Nahravam pravidla pro iptables (firewall,masquerade)"
# =============================================================
# Paranoia zakladni politka
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# rp_filter na zamezeni IP spoofovani
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done
# Ochrana pred Dos utokem
echo 1 >/proc/sys/net/ipv4/tcp_syncookies
# Flush all old
$IPTABLES -F
$IPTABLES -t nat -F
# =============================================================
# Loopback a interni interface
# =============================================================
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i $LAN -j ACCEPT
$IPTABLES -A INPUT -i $WIFI -j ACCEPT
# =============================================================
# Externi interface
# =============================================================
$IPTABLES -A INPUT -i $WAN -p UDP -s 0/0 --sport 53 -d $WAN_IP --dport 1025: -j ACCEPT #DNS
$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 22000 -j ACCEPT #SSH
#$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 5060 -j ACCEPT #WWW
#$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 21 -j ACCEPT #FTP
#$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 443 -j ACCEPT #HTTPS
#$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 8000 -j ACCEPT #IceCast radio
#================================================================================================SIP
$IPTABLES -A INPUT -i $WAN -p UDP -s 0/0 -d $WAN_IP --dport 5000:5100 -j ACCEPT # SIP signalling, listen port: 5060
$IPTABLES -A INPUT -i $WAN -p UDP -s 0/0 -d $WAN_IP --dport 8088 -j ACCEPT # Outgoing traffic to the STUN server
$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 8088 -j ACCEPT # H323 listen port
#================================================================================================Torrent
$IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 6881 -j ACCEPT #Totrrents
# ICMP (Povoleni PINGu typ 8 echo , typ 11 time exeeded , typ 0 echo reply , typ destination unreacheble )
$IPTABLES -A INPUT -i $WAN -p ICMP -s 0/0 ! --icmp-type 8 -j ACCEPT
#$IPTABLES -A INPUT -i $WAN -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
# All packets that do not request a connection can pass
$IPTABLES -A INPUT -i $WAN -p TCP ! --syn -j ACCEPT # tcp flags:!0x17/0x02
# Extremni paranoia
$IPTABLES -A INPUT -p TCP --dport 0 -j DROP
$IPTABLES -A INPUT -p UDP --dport 0 -j DROP
$IPTABLES -A INPUT -p TCP --sport 0 -j DROP
$IPTABLES -A INPUT -p UDP --sport 0 -j DROP
$IPTABLES -A FORWARD -p TCP --dport 0 -j DROP
$IPTABLES -A FORWARD -p UDP --dport 0 -j DROP
$IPTABLES -A FORWARD -p TCP --sport 0 -j DROP
$IPTABLES -A FORWARD -p UDP --sport 0 -j DROP
$IPTABLES -A OUTPUT -p TCP --dport 0 -j DROP
$IPTABLES -A OUTPUT -p UDP --dport 0 -j DROP
$IPTABLES -A OUTPUT -p TCP --sport 0 -j DROP
$IPTABLES -A OUTPUT -p UDP --sport 0 -j DROP
# ================================================================
# Maskarada
# ================================================================
# Moduly pro ftp prenosy
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
# Zavedeme moduly pro nestandardni cile
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
# Presmerovani mezi sitovkama
$IPTABLES -I FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi inetem a siti
$IPTABLES -I FORWARD -i $WAN -o $WIFI -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi inetem a wifi
$IPTABLES -I FORWARD -i $LAN -o $WIFI -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi siti a wifi
$IPTABLES -I FORWARD -i $LAN -o $WAN -j ACCEPT
$IPTABLES -I FORWARD -i $WIFI -o $WAN -j ACCEPT
$IPTABLES -I FORWARD -i $WIFI -o $LAN -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE
# Forwarding on
echo "1" > /proc/sys/net/ipv4/ip_forward
# ================================================================
echo "."
;;
stop)
echo -n "Vyprazdneni iptables"
# ================================================================
# Forwarding off
#echo "0" > /proc/sys/net/ipv4/ip_forward
# Povoleni vseho
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
# Vynulovani pravidel
$IPTABLES -F
$IPTABLES -t nat -F
# ================================================================
echo "."
;;
esac
exit 0
</pre>
Pro WAN je fyzicke rozhrani serveru s internetem . WAN_IP ip adresa . #Provede presmerovani portu 80 na port 8088 $IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 8088 -j ACCEPT #WWW IPBOX Otevre port $IPTABLES -t nat -A PREROUTING -i $WAN -p tcp --dport 8088 -j DNAT --to 192.168.0.4:80 #WWW IPBOX Nastaveni presmerovani $IPTABLES -A FORWARD -p tcp -i $WAN -d 192.168.0.4 --dport 80 -j ACCEPT #WWW IPBOX Povoleni presmerovani
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.