Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

Port Forwarding mit IPTables

GNU/Linux-, *BSD- und Fricklerforum
Antworten
much
Sarge
Sarge
Beiträge: 137
Registriert: Nov 2002

Port Forwarding mit IPTables

Beitrag von much »

Hi,

ich habe folgendes Problem:
Auf unserem alten Gateway konnte man den internen Webserver z.B. auf Port 8080 von außen über Port 20200 erreichen.
Internet <-> Name.dyndns.org:20200 <-> Port Forwarding <-> 192.168.0.23:8080

Das ganze wurde mit rinted realisiert und klappte bis dato ganz gut.

Der neue Server läuft auch als Gateway, aber mit Iptables.
Internet <-> ppp0 <-> IPTables Firewall und Routing <-> eth1 <-> internes Netz 192.168.0.0/24

Wenn ich rinetd wieder in Betrieb nehme, tut sich nichts, da Iptables den Zugriff verhindert. All meine Versuche das Port Forwarding mit Iptables zu machen, sind bisher fehlgeschlagen.

Hat jemand ne Idee, an welcher Stelle ich das einbauen muss?

Code: Alles auswählen

#!/bin/bash

echo "Starting firewall"

LOGLIMIT=20
IPTABLES=/sbin/iptables
LAN_IFACE="eth1"
INET_IFACE="ppp0"

case "$1" in
start)
   # alle alten Regeln entfernen
   echo "Loesche alte Regeln"
   $IPTABLES -F
   $IPTABLES -X
   $IPTABLES -t nat -F

   # Routing 
   echo 1 > /proc/sys/net/ipv4/ip_forward
   $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
   $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
   ### ERSTELLE NEUE KETTEN ###
   # Chain to log and reject a port by ICMP port unreachable 
   $IPTABLES -N LOGREJECT 
   $IPTABLES -A LOGREJECT -m limit --limit $LOGLIMIT/minute -j LOG \
          --log-prefix "FIREWALL REJECT " --log-level notice --log-ip-options --log-tcp-options 
   $IPTABLES -A LOGREJECT -j REJECT --reject-with icmp-port-unreachable 
 
   ### PROC MANIPULATION ###
   # auf Broadcast-Pings nicht antworten
   echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
   # halt die Klappe bei komischen ICMP Nachrichten
   echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
   # Kicke den ganzen IP Spoofing Shit
   # (Source-Validierung anschalten)
   echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
   # Setze Default-TTL auf 61 (Default fuer Linux ist 64)
   echo 61 > /proc/sys/net/ipv4/ip_default_ttl
   # warte max. 30 secs auf ein FIN/ACK
   echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
   # unterbreche Verbindungsaufbau nach 3 SYN-Paketen
   # Default ist 6
   echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
   # unterbreche Verbindungsaufbau nach 3 SYN/ACK-Paketen
   # Default ist 6
   echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
 
   ### MAIN PART ###
   # SSH auf den Server erlauben
   $IPTABLES -A INPUT -m state --state NEW -p tcp --dport 2121 -j ACCEPT
   # OpenVPN durchlassen / erlauben
   $IPTABLES -A INPUT -m state --state NEW -p udp --dport 15555 -j ACCEPT
   $IPTABLES -P INPUT DROP
   $IPTABLES -P FORWARD DROP
   $IPTABLES -P OUTPUT ACCEPT
   $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
   $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
   # im Loopback koennen wir jedem trauen 
   $IPTABLES -A INPUT -i lo -j ACCEPT
   # ebenso im LAN
   $IPTABLES -A INPUT -i $LAN_IFACE -j ACCEPT
   # erlaube Pings
   $IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

   # Alle TCP Packete, die bis hier hin kommen, werden 
        # geloggt und rejected 
        # Der Rest wird eh per Default Policy gedroppt... 
   $IPTABLES -A INPUT -p tcp -j LOGREJECT 
   $IPTABLES -A FORWARD -p tcp -j LOGREJECT
   ;;

*)
 echo "Usage: `basename $0` {start}" >&2
 exit 64
 ;;
esac

exit 0
edit:
Lösung gibts hier
Linux is like a wigwam - no windows, no gates, apache inside
Antworten