Portál AbcLinuxu, 8. května 2025 22:54

Dotaz: presmerovani portu

petka avatar 30.9.2009 19:03 petka | skóre: 25 | blog: heydax | Klasterec N/O
presmerovani portu
Přečteno: 1368×
Odpovědět | Admin

 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

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

default avatar 30.9.2009 20:34 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: presmerovani portu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Viděl bych to na tři alternativy:

  1. iptables
  2. user-space program
  3. proxy server

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. :-D

petka avatar 30.9.2009 20:40 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu

 urcite IPTABLES  ale jak by melo vypadat funkcni pravidlo 

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
default avatar 30.9.2009 20:51 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: presmerovani portu

To bych taky rád věděl. :-D

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ů. :-D 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. :-D Holt tyhle advanced techniques nejsou má parketa. Nepotřebuješ něco s SQL? :-D

30.9.2009 21:30 NN
Rozbalit Rozbalit vše Re: presmerovani portu

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

petka avatar 4.10.2009 15:28 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu

[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.
 

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
30.9.2009 21:34 tararingapatam
Rozbalit Rozbalit vše Re: presmerovani portu
Odpovědět | | Sbalit | Link | Blokovat | Admin

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?
 

the.max avatar 30.9.2009 22:52 the.max | skóre: 46 | blog: Smetiště
Rozbalit Rozbalit vše Re: presmerovani portu
KERNEL ULTRAS Fan Team || Sabaton - nejlepší učitel dějepisu || Gentoo - dokud nás systemd nerozdělí.
petka avatar 4.10.2009 15:27 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu

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 .

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
4.10.2009 16:05 tararingapatam
Rozbalit Rozbalit vše Re: presmerovani portu

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.

4.10.2009 16:08 tararingapatam
Rozbalit Rozbalit vše Re: presmerovani portu

je tam toho jinak vice, takze nejak takhle:

 

iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.4 --dport 80 -j SNAT --to-source  xxx.xxx.xxx.xxx

jose17 avatar 30.9.2009 23:39 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
Rozbalit Rozbalit vše Re: presmerovani portu
Odpovědět | | Sbalit | Link | Blokovat | Admin

rinetd nepomoze?

Ja vim, on vi, ty nano!
petka avatar 5.10.2009 18:20 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu

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 ?

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 5.10.2009 18:47 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu

<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>

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 12.10.2009 16:32 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: presmerovani portu
Vyreseno , tak jen pokud by to nekoho zajimalo , prikladam zde jak by mel vypadat forward jednoho portu na jiny .

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 

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.