Come posso trasmettere la port http e ssh al mio server interno utilizzando iptables

Non ho il router in modo da rendere il sistema Linux in router con centos 6.4 per inoltrare il traffico di networking pubblica alla mia LAN locale. Ha due tabs NIC. uno per public ip (eth1) e un altro per ip privato (eth2).

Ho un server che è connesso alla mia LAN locale supporti 192.168.1.2.

xxxx è per il pubblico ip (questo ip è su eth1).

Ip router di sistema Linux supponiamo 192.168.1.1 (questo ip è su eth2)

Voglio che quando qualcuno da qualsiasi networking da qualsiasi luogo utilizzi questo cioè

ssh xx.xx (public ip) o utilizzando mastice

andrà al server.

Disattivo il firewall Selinux e iptables sul server

Ho fatto qualche modifica di Iptables sul router del sistema Linux, ma va da sé che funziona come un router non al server principale da altra networking e dalla stessa networking.

iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 22 -j DNAT --to-destination 192.168.1.2:22 

ma non funziona.

e ancora voglio inoltrare tutto il traffico http (80) al mio server interno utilizzando iptables da uno stesso router di sistema Linux.

Ho bisogno di questa gentilmente mi dà una soluzione su questo.

3 Solutions collect form web for “Come posso trasmettere la port http e ssh al mio server interno utilizzando iptables”

Innanzitutto assicurarsi che l'inoltro dei pacchetti sia abilitato nel kernel

 # echo 1 > /proc/sys/net/ipv4/ip_forward 

Puoi anche renderlo permanente aggiungendo la row sottostante a /etc/sysctl.conf

 net.ipv4.ip_forward = 1 

Devi fare questo su Linux Machine che funge da router. È ansible provare la seguente regola sulla macchina router.

 iptables -t nat -A PREROUTING -i eth1 -d xxxx -p tcp --dport 22 -j DNAT --to-destination 192.168.1.2:22 

Sappiate anche l'output delle vostre regole NAT dalla casella del router.

 iptables -t nat -L -n -v 

Sulla base di questo incredibile tutorial di DigitalOcean su come portre le porte, ho deciso di ri-scrivere qui.

Ho trascorso molte ore di ricerca su come funziona questa cosa .. Sono nuovo a Linux e gli inizi non sono sempre facili .. Ecco un esempio dei miei server e è inoltro delle porte:

Server Firewall (2 tabs NIC) – dettagli della networking:

  • Indirizzo IP pubblico: xx.xx.xx.xx
  • Indirizzo IP privato: yy.yy.yy.yy
  • Interfaccia pubblica: eth0
  • Interfaccia privata: eth1

Server interno (es. Ssh, web) (1 scheda NIC) – dettagli della networking:

  • Indirizzo IP privato: zz.zz.zz.zz
  • Interfaccia privata: eth0

Soluzione:

Attiva l'inoltro dei pacchetti nel kernel:

 echo 1 > /proc/sys/net/ipv4/ip_forward 

Definire le variables:

 # Admin IP address (eg public home ip) ADMIN="aa.aa.aa.aa" # IP addresses of servers (eg in cloud): FW_eth0_ip="xx.xx.xx.xx" FW_eth1_ip="yy.yy.yy.yy" WEB_eth0_ip="zz.zz.zz.zz" # Services: SSH="22" HTTP="80" 

Inoltro porttili di Iptables (con -m conntrack):

 iptables -t nat -A PREROUTING -i eth0 -s $ADMIN -d $FW_eth0_ip -p tcp --dport $SSH -j DNAT --to-destination $WEB_eth0_ip iptables -A FORWARD -i eth0 -o eth1 -p tcp --syn --dport $SSH -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport $SSH -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport $SSH -m conntrack --ctstate ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport $SSH -d $WEB_eth0_ip -j SNAT --to-source $FW_eth1_ip 

Poche note:

  • "..- $ ADMIN -d $ FW_eth0_ip .." (1a row) – aggiunta solo per motivi di sicurezza – significa che solo ADMIN IP può accedere a SSH (se non necessario è ansible eliminarlo)
  • -m conntrack è lo stesso di stato -m
  • Suggerisco di cambiare la port predefinita di SSH in un'altra port, come 1xxxx (in / etc / ssh / sshd_config)
  • select Elenco dei numbers di port TCP e UDP
  • Utilizzo la port 15xx1 per accedere a SSH sul server Firewall e 15xxx2 l'interno

Terminale:

 # access firewall server $ ssh sancro@xx.xx.xx.xx -p 15xx1 # access internal server $ ssh sancro@xx.xx.xx.xx -p 15xx2 

Ulteriori dettagli sulle regole utilizzate sono perfettamente descritte nel tutorial citato.

Questo è tutto da me, spero che ti aiuterà.

Innanzitutto, abilitare il routing nel gateway linux:

 echo 1 > /proc/sys/net/ipv4/ip_forward 

Quindi aggiungere le seguenti regole:

 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.2 iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 22 -j DNAT --to 192.168.1.2 iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -m state --state NEW,ESTABLISHED,RELATED-j ACCEPT iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 

Controlla le tue regole con iptables -L -v , le colonne pkts e byte mostreranno le regole che vengono associate.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.