PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables mit eth0 und eth1 einrichten wie



zazalili
28.06.06, 18:37
Habe folgendes Probs. SuSe 10.1

logoserver:/usr/sbin # ifconfig
eth0 Link encap:Ethernet HWaddr 00:20:18:3B:99:F7
inet addr:192.168.100.2 Bcast:192.168.100.7 Mask:255.255.255.248
inet6 addr: fe80::220:18ff:fe3b:99f7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:10366 errors:0 dropped:0 overruns:0 frame:0
TX packets:12405 errors:0 dropped:0 overruns:0 carrier:0
collisions:545 txqueuelen:1000
RX bytes:5904074 (5.6 Mb) TX bytes:1687353 (1.6 Mb)
Interrupt:10 Base address:0xb400

eth1 Link encap:Ethernet HWaddr 00:0D:88:1C:63:20
inet addr:192.168.101.1 Bcast:192.168.101.255 Mask:255.255.255.0
inet6 addr: fe80::20d:88ff:fe1c:6320/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9557 errors:0 dropped:0 overruns:0 frame:0
TX packets:6394 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2646775 (2.5 Mb) TX bytes:816385 (797.2 Kb)
Interrupt:5 Base address:0x8000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3049 errors:0 dropped:0 overruns:0 frame:0
TX packets:3049 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:294103 (287.2 Kb) TX bytes:294103 (287.2 Kb)
--------------------------------------------------------------------------------


netstat -rn:

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.100.0 0.0.0.0 255.255.255.248 U 0 0 0 eth0
192.168.101.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth0
-----------------------------------------------------------------------------------


eth0 192.168.100.0 geht an den externen Router mit Ip 192.168.100.1
eth1 192.168.101.1 bedient via dhcp mein internes Lan-Netz von
IP 192.168.101.2 bis IP 192.168.101.254
leider habe ich keinen Internetzugriff via eth1 auf den gateway 192.168.100.1 mit meinen Win- clients.
Ich habe iptables probiert - läuft aber leider nicht.

Kein Internetzugang der Clients.
---------------------------------------------------------------------------------
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 -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable

# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP

# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "

# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -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

# SYN und FIN gesetzt
iptables -A INPUT -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

# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -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

# PSH ohne ACK
iptables -A INPUT -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

# 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 INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# HTTP
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT

# HTTPS
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 443 -j ACCEPT

# SMTP
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT

# SMTPS
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 465 -j ACCEPT

# POP3
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT

# POP3S
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 995 -j ACCEPT

# DNS
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 53 -j ACCEPT

# FTP
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 21 -j ACCEPT

# SSH
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT

# MYSQL
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 3306 -j ACCEPT

# TELNET
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 23 -j ACCEPT

# OPENVPN_V1
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 5000 -j ACCEPT

# OPENVPN_V2
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT

# ICMP Echo-Request (ping) zulassen und beantworten
iptables -A INPUT -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT

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

# 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

# Ungültige 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 für 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
# 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
---------------------
Das sript habe ich von http://www.harry.homelinux.org


Danke zazalili :-(

michaxyz
29.06.06, 06:40
Hallo,

um zu erreichen, dass die Kiste deine Pakete weiterkeitet, musst Du iptables auch anweisen, das zu tun.
Anleitung dazu gibt es hier zuhauf. Suchen musst Du selbst, habe gerade keine Lust dazu.
In Kürze:
Weiterleitung beim Kernel aktivieren:
echo 1 > /proc/sys/net/net/ipv4/ip_forward

Dann musst Du Pakete, die über eth1 reinkommen aber nicht für Dich bestimmt sind, auch annehmen!

iptables -A FORWARD -i eth1 -j ACCEPT

Zuletzt musst Du natürlich die IP maskieren. Sollte das Dein Router machen, dann musst Du das nicht tun.

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Natürlich musst Du über eth1 kommende Pakete auch weiterleiten:

iptables -A FORWARD -i eth1 -j ACCEPT


Das ist nur erst einmal ein grober Umriss. Du wirst wahrscheinlich wünschen, dass Verbindungen nur von innen aktiviert werden können. Dazu ist es nötig zu wissen, was der Router filtert. Ansonsten könnten zusätzliche Regeln sinnvoll werden.

Mfg Michael