iptables lan to wan

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
megaport
Beiträge: 4
Registriert: 31.12.2018 21:21:41

iptables lan to wan

Beitrag von megaport » 01.01.2019 15:30:38

Hallo Zusammen,
im forum bin ich neu und aus der schweiz.
Ich habe vor kurzem meine ganze Serverlandschaft auf Linux migriert. Vorher hp server dl 580 g2 hyper-v mit volgenden server dc,ca,ex, file, openfire firewall ipcop und zwei nas. Also zwei server und zwei nasgeräte (5x virtuelle server) und alles auf windows 2012

Jetzt zwei Tinker Boards S von Asus(Debian OS von ASUS) beide Board im Asus Gehäuse und der router mit eingebaute Antenne, und ich bin begeistert. In diesem Projekt arbeiten 8 Benutzer gleichzeitig (LAN). Könnte auch für kmu's funktionieren bis 15 Benutzer. Der Admin hat dann keine hw wartungen mehr und kosten Betreff immer wieder dimm, bateriepack raid , hdd Austausch. Für diese singelboards gibt es auch eine Lösung dies in einem cluster zu betreiben das heisst jahre lang keine unterbrüche mehr in einem mini kosten Aufwand. Die Herstell reagieren und bringen jetzt auch bladsysteme raus aber mit singelboard über 40 stück im Gehäuse mit m2 hdd ich bin gespannt Betreff wartunstkosten, an vielen Orten bei uns schon im betrieb.
Meine Installation Asus Tinker Board S:
1. Gerät (Nur Serverfunktion mit allen services)
Hostname: Tinker (192.168.1.30)
Services: nextcloud port 9999 / postfix-fetchmail-dovecot / openfire / ftp / smb / bind9 Betreff namensauflösung FQDN im lan / webmin

2. Gerät (Router)
Hostname Tinkergate (192.168.1.100)
Funktion: Router/Internet Gateway/wireless Access router / bind / webmin / Firewall-iptables-input-drop
Netzwerk: 1x rj45 onboard 1x rj45 usb3(für wan dhcp) 1x Wlan

enx... ist das usb3 nic modul dort hängt ein provider router drann enx... bekommt die ip über dhcp vom provider weil router brige, siehe unten. ich wollte jetzt nicht die ganze ip und mac veröffentlichen. darum ....

Netz:
enx000.. = WAN
eth1 = LAN
wlan0 = wlan


ifconfig:
enx000.......: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 178.82...... netmask 255.255.240.0 broadcast 178.82......
inet6 fe80::1:...... prefixlen 64 scopeid 0x20<link>
ether 00:0a:c..... txqueuelen 1000 (Ethernet)
RX packets 14039506 bytes 2547604241 (2.3 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5293752 bytes 519576963 (495.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::....... prefixlen 64 scopeid 0x20<link>
ether 0c:9d:92:.......... txqueuelen 1000 (Ethernet)
RX packets 5186269 bytes 457531805 (436.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8002079 bytes 2345376452 (2.1 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 43

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Lokale Schleife)
RX packets 69 bytes 6294 (6.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 69 bytes 6294 (6.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80:...... prefixlen 64 scopeid 0x20<link>
ether d0:c5:d.......... txqueuelen 1000 (Ethernet)
RX packets 196862 bytes 23930234 (22.8 MiB)
RX errors 0 dropped 13043 overruns 0 frame 0
TX packets 133183 bytes 41450784 (39.5 MiB)
TX errors 0 dropped 647 overruns 0 carrier 0 collisions 0

script wird immer nach dem booten geladen. Das wollte ich auch so habe also nicht save.
-------------------firewall script------kleiner auszug--------

#!/bin/bash

IPTABLES="/sbin/iptables"

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

# Defaults for rate limiting
#------------------------------------------------------------------------------
RLIMIT="-m limit --limit 3/s --limit-burst 30"

#einige portweiterleitung hier ein beispiel
iptables -t nat -A PREROUTING -i enx00..... -p tcp --dport 9999 -j DNAT \--to 192.168.1.30:9999

#einige ip die ich blockiere
iptables -A INPUT -s 89.2..... -j DROP

#typischer routing befehl
iptables -t nat -A POSTROUTING -o enx00.... -j MASQUERADE
----------------firewall script ende


So, jetzt zu meinem problem:
Eigentlich funktioniert alles. Portforwarding, zum Beispiel nextcloud port 9999 werden ich vom WAN zum meinem tinkerboard eth1 lan Hostname tinker 192.168.1.30 geroutet. Auch hat LAN und WLAN Internet Verbindung alles gut bis auf eine kleine Sache ich weiss auch nicht wie diese Funktion heisst im iptables. Als ich vorher ipcop hatte musste ich nichts Spezielles einstellen damit das funktioniert. Jetzt, wenn ich im lan (eth1) bin am pc und die externe ip im Browser eingebe https://178.....:9999 werde ich nicht zum nextcloudserver tinker weitergeroutet, Seite wird nicht gefunden. Eigentlich macht das man auch nicht sondern man würde im lan die interne ip im Browser eingeben also 192.168.1.30:9999 und das geht aber....
als ich ipcop als Firewall hatte ging das. Denn ich will auf meine mobilen Geräte nicht jedes Mal die interne ip in den Einstellungen eintragen damit ich auf dem Server komme. in den mobilen Einstellungen ist zum Beispiel bei mein nextcloud app natürlich die externe ip adresse eingetragen damit wenn ich im wan bin auf dem nextcloud server komme darum muss das auch funktionieren das wenn ich am mit pc / mobile Geräte im lan bin auch über die externe ipadresse über den port 9999 auf dem nextcloud server zugreifen kann. also port weiterleitung sollte nicht nur von wan zu lan gehen sondern auch von lan ins wan und wieder zurück ins lan zum nextcloud server. ich hoffe ich konnte das so beschreiben das man mich verstanden hat.

Gruss an alle aus der schweiz
Andi
Zuletzt geändert von megaport am 05.01.2019 12:40:58, insgesamt 4-mal geändert.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: iptables lan to wan

Beitrag von bluestar » 01.01.2019 22:30:05

Code: Alles auswählen

iptables -t nat -A PREROUTING -i enx00..... -p tcp --dport 9999 -j DNAT \--to 192.168.1.30:9999
Du machst hier explizit DNAT, wenn das Paket von dem externen Interface kommt... Da liegt dein Problem

mat6937
Beiträge: 2951
Registriert: 09.12.2014 10:44:00

Re: iptables lan to wan

Beitrag von mat6937 » 01.01.2019 23:36:32

megaport hat geschrieben: ↑ zum Beitrag ↑
01.01.2019 15:30:38

2. Gerät (Router)
Hostname Tinkergate (192.168.1.100)
Funktion: Router/Gateway/wireless Access router / bind / webmin

...Denn ich will auf meine mobilen Geräte nicht jedes Mal die interne ip in den Einstellungen eintragen damit ich auf dem Server komme.
Kann dein Router Hairpin-NAT (aka NAT-Loopback)?

megaport
Beiträge: 4
Registriert: 31.12.2018 21:21:41

Re: iptables lan to wan

Beitrag von megaport » 02.01.2019 02:09:54

Hi,
danke für den Hinweis. Damit konnte ich suchen und habe den iptables code gefunden und angepasst und es funktioniert.
Quelle:https://unix.stackexchange.com/question ... pback-work

zwei beispiele für mein problemlösung: diese beide Regeln sind damit portweiterleitung auch in der anderen Richtung funktioniert. Vom LAN auf die externe ip dann portweiterleitung zurück ins lan zum betreffenden server 192.168.1.30. Es geht hier darum damit man nicht die einstellungen auf den mobile geräte im lan/wan nicht jedes mal anpassen muss externe/interne ip zum beispiel mein nextcloud server oder emailserver. Diese zwei Regeln verwende ich zu den normalen portweiterleitung

Für Das LAN
iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -d 178......./20 -p tcp -m tcp --dport 9999 -j DNAT --to-destination 192.168.1.30

Für das WLAN
iptables -t nat -A PREROUTING -i wlan0 -s 10.42.0.0/24 -d 178......../20 -p tcp -m tcp --dport 9999 -j DNAT --to-destination 192.168.1.30

Problem ist gelöst.

Gruss
Andi

Antworten