iptables once again. Kein SSH Zugang nach Weiterleitung

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Shinori

iptables once again. Kein SSH Zugang nach Weiterleitung

Beitrag von Shinori » 20.09.2019 22:35:50

Hallo & Moin,

Ich nutze einen Debian 9 Server als Gateway und möchte eine SSH-Verbindung vom WAN in das lokale Netzwerk erlauben.

D.h: WAN -> Router(192.168.1.1) -> Server1 enp3s0 (192.168.1.2) -> Server1 enp4s0 (192.168.2.1) -> Server2 (192.168.2.2)

Das ganze soll über den Port 1338 laufen. Mein Ziel ist es die verschiedenen Clients über verschiedene Ports zu erreichen.

Der SSH-Server lauscht auf den Port 1338. Die Firewall von Server 2 ist --flushed.

Der Router hat für Server 1 zu Testzwecken alle Ports geöffnet.

Server1:
enp3s0 = Verbindung zum Router 192.168.1.1/24 (dieser hat Verbindung zum WAN)
enp4s0 = Lokales Netzwerk mit mehreren Clients so auch 192.168.2.1/24

Server2:
enp3s0 = Lokales Netzwerk 192.168.2.2/24

Wie man sieht habe ich schon einiges ausprobiert. Aber keine der Anläufe hatte zur Folge, dass ich Server 2 über die Public IP und den Port 1338 ansprechen konnte.
Vlt. hat jemand von euch eine Idee. Vlt ist es auch einfach nur ein simpler Denkfehler. Danke im Voraus!

Hier nun der Scripts für iptables von Server1

Code: Alles auswählen

#!/bin/bash

IPTABLES="/sbin/iptables"

LOG="LOG --log-level debug --log-tcp-sequence --log-tcp-options"
LOG="$LOG --log-ip-options"

RLIMIT="-m limit --limit 3/s --limit-burst 30"

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

$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
 
$IPTABLES -Z
$IPTABLES -t nat -Z
$IPTABLES -t mangle -Z

$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
 
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW ! -i enp3s0 -j ACCEPT
$IPTABLES -A FORWARD -i enp3s0 -o enp4s0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#$IPTABLES -A FORWARD -i enp3s0 -p tcp -s 192.168.2.2 --dport 1338 -o enp4s0 -d 192.168.2.2 --sport 1338 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -p tcp --dport 1338 -j DNAT --to-destination 192.168.2.2:1338
$IPTABLES -t nat -A PREROUTING -p tcp --dport 1338 -j DNAT --to-destination 192.168.2.2:1338
$IPTABLES -t nat -A POSTROUTING -p tcp -d 192.168.2.2 --dport 1338 -j SNAT --to-source 192.168.1.1

$IPTABLES -A FORWARD -i enp4s0 -o enp3s0 -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE

$IPTABLES -N RELATED_ICMP
$IPTABLES -A RELATED_ICMP -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPTABLES -A RELATED_ICMP -p icmp --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A RELATED_ICMP -p icmp --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A RELATED_ICMP -j DROP
 
$IPTABLES  -A INPUT -p icmp -m limit --limit 1/s --limit-burst 2 -j ACCEPT
$IPTABLES  -A OUTPUT -p icmp -j ACCEPT

$IPTABLES -A FORWARD -p icmp -i enp4s0 -o enp3s0 -j ACCEPT	
$IPTABLES -A FORWARD -p icmp -i enp3s0 -o enp4s0 -j ACCEPT	

$IPTABLES -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT $RLIMIT
$IPTABLES -A OUTPUT -p icmp -m state --state ESTABLISHED -j ACCEPT $RLIMIT
 
$IPTABLES -A INPUT -p icmp -j ACCEPT
 
$IPTABLES -A OUTPUT -p icmp -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP
$IPTABLES -A OUTPUT -p icmp -j DROP
$IPTABLES -A FORWARD -p icmp -j DROP
 


$IPTABLES -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p udp --dport 67 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 67 -j ACCEPT
 
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
 
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 465 -j ACCEPT
 
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 587 -j ACCEPT
 
#$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 995 -j ACCEPT
 
$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p udp --dport 123 -j ACCEPT

$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 43 -j ACCEPT
 
#$IPTABLES -A OUTPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT



$IPTABLES -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT

$IPTABLES -A INPUT -m state --state NEW -p udp --dport 67 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 67 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 110 -j ACCEPT

$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 995 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
 
$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

#$IPTABLES -A INPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT

$IPTABLES -A INPUT -j DROP
$IPTABLES -A OUTPUT -j DROP
$IPTABLES -A FORWARD -j DROP
 
    exit 0

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: iptables once again. Kein SSH Zugang nach Weiterleitung

Beitrag von DynaBlaster » 24.09.2019 21:03:43

Code: Alles auswählen

# Traffic zwischen enp3s0 und enp4s0 würd ich erstmal komplett erlauben, also
$IPTABLES -A FORWARD -i enp4s0 -o enp3s0 -j ACCEPT
$IPTABLES -A FORWARD -i enp3s0 -o enp4s0 -j ACCEPT
# dann das NAT-Zeugs
# eingehend Port 1338 an 192.168.1.1 an 192.168.2.2:1338 umbauen
$IPTABLES -t nat -A PREROUTING -p tcp --dport 1338 -j DNAT --to-destination 192.168.2.2:1338
# Alles was von 192.168.2.2:1338 zurück kommt auf 192.168.1.1 umsetzen
#$IPTABLES -t nat -A POSTROUTING -p tcp -d 192.168.2.2 --dport 1338 -j SNAT --to-source 192.168.1.1
$IPTABLES -t nat -A POSTROUTING -p tcp -s 192.168.2.2 --sport 1338 -j SNAT --to-source 192.168.1.1
# wobei das hier eigentlich das gleiche macht
#$IPTABLES -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
# ich geh mal davon aus, das am Router vor Server1 auch TCP 1338 aus dem WAN nach 192.168.1.1:1338 "geforwarded" werden
# ist lange her, das ich iptables-Regeln gebastelt habe und bin mir nicht (mehr) sicher, ob der Kernel/iptables PREROUTING erst nach INPUT abarbeitet, 
# macht aber eigentlich keinen Sinn und vermutlich ist das hier obsolet 
#$IPTABLES -A INPUT -i enp3s0 -p tcp --dport 1138 -j ACCEPT 

Antworten