PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Iptables-Script-Frage



Ohr4u|tux
06.10.05, 09:39
Hi,

ich möchte gerne die Kommunikation auf das Device tun0 zulassen. Jedoch funktioniert das mit meinem Script nicht. Was ist falsch?


iptables -A INPUT -m state --state NEW -i tun0 -j ACCEPT

will nicht? :confused: :confused:




case "$1" in
start)
echo "Starte IP-Paketfilter"

# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp

# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# MY_REJECT-Chain
iptables -N MY_REJECT

# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -j DROP

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP

# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP

# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP

# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP

# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP

# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP

# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -i eth2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -i eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A INPUT -i eth1 -m state --state NEW -p tcp --dport 22 -j ACCEPT


# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT


# LAN-Zugriff auf eth0
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
iptables -A INPUT -m state --state NEW -i tun0 -j ACCEPT


# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null

# Masquerading
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o ppp0 -i eth0 -j MASQUERADE
# iptables -t nat -A POSTROUTING --source 192.168.1.5 -o ppp0 -j MASQUERADE
# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null

# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done

# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done

# Reverse-Path-Filter
for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done

# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done

# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done

# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done

# Ungltige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null

# ICMP Echo-Broadcasts ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null

# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit

# Speicherallozierung und -timing fr IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time

# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1

# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2

;;

stop)
echo "Stoppe IP-Paketfilter"
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
echo "Deaktiviere IP-Routing"
echo 0 > /proc/sys/net/ipv4/ip_forward

# Default-Policies setzen
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;

status)
echo "Tabelle filter"
iptables -L -vn
echo "Tabelle nat"
iptables -t nat -L -vn
echo "Tabelle mangle"
iptables -t mangle -L -vn
;;

*)
echo "Fehlerhafter Aufruf"
echo "Syntax: $0 {start|stop|status}"
exit 1
;;

esac

Kernel-Error
10.10.05, 14:56
Hm...

Wenn du nur auf tun0 zugreifen willst, schaut es für mich alles sehr richtig aus...

Lauschen die Deinste, auf welche du zugreifen willst denn am Ende auch auf tun0?

Oder willst du vielleicht routing oder nat über tun0 betreiben?

Was sagt denn ein:

tail -f /var/log/messages

Bei dem Versuch auf tun0 eine Verbindung zu bekommen?

Vielleicht beschreibst du auch mal ganz genau was du von wo nach wo mit was machen willst!

So long...


:ugly: Kernel-Error :ugly:

Ohr4u|tux
10.10.05, 21:40
Hm...

Wenn du nur auf tun0 zugreifen willst, schaut es für mich alles sehr richtig aus...

Lauschen die Deinste, auf welche du zugreifen willst denn am Ende auch auf tun0?

Oder willst du vielleicht routing oder nat über tun0 betreiben?

Was sagt denn ein:

tail -f /var/log/messages

Bei dem Versuch auf tun0 eine Verbindung zu bekommen?

Vielleicht beschreibst du auch mal ganz genau was du von wo nach wo mit was machen willst!

So long...


:ugly: Kernel-Error :ugly:


Ich möchte einfach auf tun0 Dienste lauschen haben. tun0 soll als sicheres Interface behandelt werden und keine Ports schließen.

Kernel-Error
11.10.05, 13:29
Lauschen die Deinste, auf welche du zugreifen willst denn am Ende auch auf tun0?


Was sagt denn ein:

tail -f /var/log/messages

Bei dem Versuch auf tun0 eine Verbindung zu bekommen?



So long...


:ugly: Kernel-Error :ugly:

Ohr4u|tux
16.10.05, 14:46
Oct 16 11:46:07 vpngwhk -- MARK --
Oct 16 12:06:07 vpngwhk -- MARK --
Oct 16 12:26:07 vpngwhk -- MARK --
Oct 16 12:46:07 vpngwhk -- MARK --
Oct 16 13:06:07 vpngwhk -- MARK --
Oct 16 13:26:07 vpngwhk -- MARK --
Oct 16 13:46:07 vpngwhk -- MARK --
Oct 16 14:06:07 vpngwhk -- MARK --
Oct 16 14:26:07 vpngwhk -- MARK --
Oct 16 14:46:07 vpngwhk -- MARK --


Jetzt geht der Lan-Zugriff auf eth0 auch nicht mehr?

Tomek
16.10.05, 15:33
Diese Meldungen im Logfile kommen vom syslog-Daemon und haben keine Bedeutung. Die Meldungen werden ausgegeben, wenn nach standardmässig 20 Minuten keine Ereignisse vorkommen, die zu protokollieren sind.

Ohr4u|tux
17.10.05, 16:13
Lag an der Position der Regeln. Ich habe sie erst gesetzt und dann wieder aufgehoben :ugly:.

Hab noch eine Frage:

Wie kann ich den Zugriff zwischen 2 Lans (192.168.2.0 und 192.168.3.0) erlauben? Beide Lans sind mit einem Server verbunden über unterschiedliche NICS.