ubuntuusers.de

Ubuntu Server 1404 LTS als ROUTER - Problem Portweiterleitung

Status: Gelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

chrischn82

Anmeldungsdatum:
24. Dezember 2016

Beiträge: Zähle...

Hallo erstmal als Forum-Neuling in die Runde! ☺

Ich habe schon eine Weile einen Mini-Server mit US1404LTS im Keller am Laufen. Vor ein paar Wochen ist mein TP-Link WLAN Router gestorben. Dann hab ich kurzerhand den alten Kabelrouter aus der Schublade geholt. Was mich dabei nervt: * kein WLAN * keine Portweiterleitung alla 8080 → 80 oder 5000 → 22

Für WLAN habe ich einen guten WLAN-USB-Stick günstig beschafft und im Ubuntu ein Bridge-Interface erstellt. WLAN und LAN im selben Subnet. → läuft.

Nun betreibe ich die Kiste auch als Router und habe den alten Kabelrouter weggepackt. Dazu habe ich per USB ein zweites LAN-Interface installiert (eth1).

Ich habe nun mit iptables einige Konfigurationen vorgenommen die auch funktionieren. - bis auf Portweiterleitung. Sprich NAT.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

br0 ist hier mein Interface ins LAN
eth1 ist mein Interface in WAN


# IP-tables löschen (flush)

iptables -F
iptables -X (user-defined table löschen)
iptables -t nat -F

# NAT im Kernel aktivieren
sysctl -w net.ipv4.ip_forward=1

# iptables-Modul im Kernel laden:
modprobe ip_tables

# Connection-Tracking aktivieren
# (Status der Verbindungen wird beruecksichtigt)
modprobe ip_conntrack

# Zusaetzliche Funktionen fuer IRC:
modprobe ip_conntrack_irc

# Zusaetzliche Infos fuer FTP:
modprobe ip_conntrack_ftp

# something ?  
modprobe iptable_nat

# Standards setzen (policies)
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUPUT ACCEPT

# Forwarding aus dem LAN ins WAN
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth1 -i br0 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT


# Ausgehende Verbindungen mit der Adresse von eth1 Maskieren
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


# port 80 umleiten
iptables -t nat -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT


[mark]iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 88 -j DNAT --to-destination 192.168.1.5:80[/mark]


# tables dauerhaft speichern
invoke-rc.d iptables-persistent save

Doch die Portumleitung von Internet:88 auf Rechner-IM-LAN:80 funktioniert nicht. Ein Portscan aus dem INet sagt: Port geschlossen.

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Das Problem wurde glöst:

NAT hat funktioniert - sah man am Traffic

1
iptables -t nat -L -n -v

Die Ursache war, dass der Empfänger ( Server an Port 80 ) nicht antworten konnte, da in seinen manuell eingestelltem Gateway noch ein falscher Wert drinn stand. Mein früherer Router 192.168.1.1 Mein neuer Ubuntu Router 192.168.1.3

Herausgefunden über ein sudo tcpdump | grep 192.168.1.15 (Adresse des Port 80 Server)

Ausgabe:

1
2
3
4
5
6
7
8
9
22:15:30.221983 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:33.182150 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:34.182080 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:35.182130 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:37.212607 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:38.212108 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46
22:15:39.212135 ARP, Request who-has 192.168.1.1 tell 192.168.1.15, length 46

Code

bedeutet "WO IST MEIN GATEWAY? Hat´s einer gesehen?" 😉

htt.tito

Avatar von htt.tito

Anmeldungsdatum:
7. Dezember 2014

Beiträge: 87

Hallo!

Ich hab das selbe Problem! Wie hast du das genau gelöst?

Ich komme ins Internet, aber ich erreiche meinen webserver (apache) von außen nicht!

Kannst du helfen?

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Hallo tito! Genau das selbe Problem heißt, du hast einen Router aufgesetzt und auf diesem läuft ein Apache den du von außen nicht erreichst. (?)

Dann steht meine Lösung hier oben.. Ansonsten: Details bitte

htt.tito

Avatar von htt.tito

Anmeldungsdatum:
7. Dezember 2014

Beiträge: 87

Hallo, ja.

Ich möchte meinen Server Ubuntu 18.04 auch als Router verwenden.

Ich habe genau wie du den Server im bridge Modus br0 mit LAN und WLAN. IP 192.168.0.100

Meinen alten Router (Dovado Pro) möchte ich in Rente schicken.

Ich habe das USB Modem (Huawei E3276 - Hilink) in den Server gesteckt.

Eine Schnittstelle erstellt (eno2)..192.168.1.1 im dhcp für br0 als gateway eingetragen.

Die ip default route auf 192.168.1.1 mit eno2 gestellt.

iptables eingestellt:

-A FORWARD -s 192.168.0.0/24 -i br0 -o eno2 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A POSTROUTING -o eno2 -j MASQUERADE
-A PREROUTING -i eno2 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.100:80
-A PREROUTING -i eno2 -p tcp --dport 443 -j DNAT --to-destination 192.168.0.100:443

forwarding ist auch eingestellt...sysctl -w net.ipv4.ip_forward=1

Jetzt komme ich über mein internes Netwerk LAN und WLAN ins Internet, aber mein

Webserver (nextcloud, apache, ....) ist nicht erreichbar.

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Das werde ich mir heut Abend mal ansehen. Ich betreibe meinen Ubuntu Server nicht mehr. Aber die Aufzeichnungen gibt's noch..

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Hast du schon mal mit tcpdump nach dem Problem gesnifft?

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Das hier sind meine IP-Tables damals gewesen: viel deaktiviert viel kommentiert

vielleicht findest du Parallelen oder Differenzen - sag doch noch mal Bescheid.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#!/bin/sh
#

# nano /etc/network/interfaces
# eth1 auf auto dhcp
#
# dnsmasq.conf einrichten (als DHCP-server)
# dhclient.conf anpassen
#

# brctl show (alle interfaces da?)

# Standards setzen (vorerst)
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# IP-tables löschen (flush)
iptables -F
iptables -X (user-defined table löschen)
iptables -t nat -F

# NAT im Kernel aktivieren
# sysctl -w net.ipv4.ip_forward=1
# oder in /etc/sysctrl.conf dauerhaft

# iptables-Modul im Kernel laden:
#modprobe ip_tables

# Connection-Tracking aktivieren
# (Status der Verbindungen wird beruecksichtigt)
#modprobe ip_conntrack

# Zusaetzliche Funktionen fuer IRC:
#modprobe ip_conntrack_irc

# Zusaetzliche Infos fuer FTP:
#modprobe ip_conntrack_ftp

#?  modprobe iptable_nat

# Forwarding aus dem LAN ins WAN
iptables -t filter -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#iptables -t filter -A FORWARD -i br0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A FORWARD -i wlan0 -o eth1 -m conntrack --ctstate NEW -j ACCEPT


# Ausgehende Verbindungen mit der Adresse von eth1 Maskieren
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# port 88 -> 80 wechselrichter umleiten
iptables -t nat -A PREROUTING -p tcp --dport 88 -j DNAT --to-destination 192.168.1.5:80
iptables -t filter -A FORWARD -d 192.168.1.5 -m conntrack --ctstate NEW -j ACCEPT

# port 8081 -> 8081 motioneye umleiten
#iptables -t nat -A PREROUTING -p tcp --dport 8081 -j DNAT --to-destination 192.168.2.141:8081
#iptables -t filter -A FORWARD -d 192.168.2.141 -m conntrack --ctstate NEW -j ACCEPT


# NAT reflection - hat nicht funktioniert bei FRONIUS WR
#iptables -t nat -A PREROUTING -i br-lan -s 192.168.1.0/24 -d 82.120.11.22/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.200
#iptables -t nat -A POSTROUTING -o br-lan -s 192.168.1.0/24 -d 192.168.1.200/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.1
#iptables -t nat -A PREROUTING -d 31.16.118.228 -p tcp --dport 554 -j DNAT --to 192.168.1.15:554
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp --dport 554 -d 192.168.1.15 -j MASQUERADE



######################################################################################
# INPUT Rules

# bestehende Verbindungen akzeptieren
iptables -t filter -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# lokale Verbindungen
iptables -t filter -A INPUT -i lo -m conntrack --ctstate NEW -j ACCEPT

# Name Service, Datagramm Service, Session Service, Samba
iptables -t filter -A INPUT -m tcp -p tcp -m multiport --dports 137:139,445 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -m udp -p udp -m multiport --dports 137:139,445 -m conntrack --ctstate NEW -j ACCEPT

# Mediatomb
#iptables -t filter -A INPUT -i br0 -m tcp -p tcp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
#iptables -t filter -A INPUT -i br0 -m udp -p udp --dport 1900 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i eth0 -m tcp -p tcp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i eth0 -m udp -p udp --dport 1900 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -m tcp -p tcp --dport 50000 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -m udp -p udp --dport 1900 -m conntrack --ctstate NEW -j ACCEPT

# VSFtpd
iptables -t filter -A INPUT -m tcp -p tcp -m multiport --dports 21,51000:52000 -m conntrack --ctstate NEW -j ACCEPT

# Apache Webserver
iptables -t filter -A INPUT -m tcp -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW -j ACCEPT

# Mailserver Dovecot + Postfix MailserverTOMailserver-25 POP3-110 IMAP-143 SMTPS-587 SMTP-465 IMAPS-993
# 143,587 android   993,25 windows
iptables -t filter -A INPUT -m tcp -p tcp -m multiport --dports 25,143,587,993 -m conntrack --ctstate NEW -j ACCEPT
#iptables -t filter -A INPUT -m tcp -p tcp -m multiport --dports 25,110,143,587,993 -m conntrack --ctstate NEW -j ACCEPT

# Ping Eingang - Paket drop
iptables -t filter -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
##iptables -t filter -A OUTPUT -p icmp --icmp-type 0 -m conntrack --ctstate NEW -j ACCEPT

# DHCP-Server
#iptables -t filter -A INPUT -i br0 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i eth0 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i wlan0 -m udp -p udp --sport 68 --dport 67 -m conntrack --ctstate NEW -j ACCEPT

# DNS-Server TCP/UDP
iptables -t filter -A INPUT -m udp -p udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -m tcp -p tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT  #<< wird nie benutzt

# Kamera von außen zugänglich
iptables -t nat -A PREROUTING -m tcp -p tcp --dport 554 -j DNAT --to-destination 192.168.1.15:554
#iptables -t filter -A FORWARD -o br0 -d 192.168.1.15 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A FORWARD -o eth0 -d 192.168.1.15 -m conntrack --ctstate NEW -j ACCEPT

# Raspicam von außen
#iptables -t nat -A PREROUTING -m tcp -p tcp --dport 8554 -j DNAT --to-destination 192.168.2.141:8554
#iptables -t filter -A FORWARD -d 192.168.2.141 -m conntrack --ctstate NEW -j ACCEPT

# China Kamera nach Hause telefonieren verbieten
iptables -t filter -A FORWARD -m mac --mac-source E0:62:90:1D:24:69 -m multiport -p udp --dports 9100:9310,80 -j REJECT
iptables -t filter -A FORWARD -m mac --mac-source E0:62:90:1D:24:69 -m multiport -p tcp --dports 9100:9310,80 -j REJECT

# Ping erlauben
iptables -t filter -A INPUT -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT
#iptables -t filter -A OUTPUT -p icmp --icmp-type 0 -m state --state NEW -j ACCEPT

# SSH
#iptables -t filter -A INPUT -i br0 -m tcp -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A INPUT -i eth0 -m tcp -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT

# iperf - network benchmark
iptables -t filter -A INPUT -i br0 -m tcp -p tcp --dport 5001 -m conntrack --ctstate NEW -j ACCEPT


# Standards setzen (policies)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Logging
iptables -t filter -N LOGGING
iptables -t filter -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4  ### vertauscht um logging
iptables -t filter -A LOGGING -j DROP													 ### zu deaktivieren
iptables -t filter -A INPUT -j LOGGING
iptables -t filter -A FORWARD -j LOGGING

# Alle anderen Eingehende Pakete REJECT
#iptables -t filter -A INPUT -j REJECT

# Alle anderen Forwards drop
#iptables -t filter -A FORWARD -j REJECT

# Routing zwischen 2 subnets
iptables -t filter -A FORWARD -i eth0 -o wlan0 -m conntrack --ctstate NEW -j ACCEPT
iptables -t filter -A FORWARD -i wlan0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT

# tables dauerhaft speichern
invoke-rc.d iptables-persistent save

# iptables infos
iptables -t filter -nvL --line-numbers
iptables -t nat -nvL --line-numbers

htt.tito

Avatar von htt.tito

Anmeldungsdatum:
7. Dezember 2014

Beiträge: 87

OK, danke! Muss ich durchprobieren.

Was ganz Wichtiges:

Hattest du deinen USB-Modem-Stick als tty (wvdial bzw. Einwahlverbindung) am laufen oder mittels Hilink?

Danke!

chrischn82

(Themenstarter)

Anmeldungsdatum:
24. Dezember 2016

Beiträge: 7

Weder noch. Ich geh über eth1 an das KabelDeutschland Modem. Eth0 und wlan0 hatte ich zeitweise gebridged zur br0. Zuletzt aber hatte ich eth0 und wlan0 in 2 verschiedenen subnetz.

Antworten |