Skip to content

Instantly share code, notes, and snippets.

@Ge-lx
Created October 26, 2017 22:05
Show Gist options
  • Save Ge-lx/adb25e5667e93e44b3788c6addf10bb1 to your computer and use it in GitHub Desktop.
Save Ge-lx/adb25e5667e93e44b3788c6addf10bb1 to your computer and use it in GitHub Desktop.
#!/bin/sh
#Hier werden einige Variablen definiert, um Änderungen leichter zu ermöglichen
IPTABLES="iptables"
INET_IFACE="eth0"
LAN_IFACE="wlan0"
LO_IFACE="lo"
LAN_IP="192.168.0.1"
LO_IP="127.0.0.1"
#Forwarding im Kernel aktivieren
echo "1" > /proc/sys/net/ipv4/ip_forward
#Default-Policies einstellen
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
#Local_input enthält portfreigaben aus LAN_IFACE
$IPTABLES -N local_input
#----PREROUTING----
#----INPUT----
#Pakete schon bestehender Verbindungen können akzeptiert werden
$IPTABLES -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
#Pakete vom Rechner selbst können akzeptiert werden (loopback).
$IPTABLES -A INPUT -i $LO_IFACE -j ACCEPT
#SSH- und Kontrollsoftware-Verbindungen vom LAN-Anschluss (eth0) können akzeptiert werden.
#DHCP, HTTP, SSH und Kontrollsoftware aus (W-)LAN können akzeptiert werden.
$IPTABLES -A INPUT -i $LAN_IFACE -j local_input
$IPTABLES -A local_input -p UDP --dport 67 --sport 68 -j ACCEPT #DHCP
$IPTABLES -A local_input -p TCP -d $LAN_IP --dport 80 -j ACCEPT #HTTP
$IPTABLES -A local_input -p TCP -d $LAN_IP --dport 22 -j ACCEPT #SSH
#$IPTABLES -A local_input -p TCP -d $LAN_IP --dport 12345 -j ACCEPT #Kontrollsoftware
#------------------------------------------------Weitere Freischaltungen hier ----------------------------------------------------------
#----FORWARD----
#Pakete schon bestehender Verbindungen können weitergeleitet werden.
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#Neue Pakete aus den lokalen Netzwerk können weitergeleitet werden.
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
#Alle übringen Pakete (bspw. neue Pakete aus dem Internet) werden nicht zugalassen. -> Default-Policy
#----POSTROUTING----
#Network Address Translation zum Internet
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment