linux gateway

Post Reply
Message
Author
dhartmann
Posts: 25
Joined: 17. Sep 2004 10:18

linux gateway

#1 Post by dhartmann »

Hallo, ich hoffe mir kann jemand bei der Erstellung eines sicheren Gateways unter Debian gnu Linux helfen. Ich habe schon ein Skript geschrieben, bin mir aber noch nicht sicher ob das schon reicht und ob es richtig ist?

IPTABLES
Es sollen nur diese Dienste zugelassen sein
- Internet Gateway mit transparentem squid
- SSH (FORWARD/INPUT) ACCEPT
- http, ftp, ssh, (FORWARD ACCEPT

Durch rechersche und Artikel von selflinux
habe ich folgendes Skript geschrieben, bin mir aber nicht sicher ob es funkioniert und ob noch was fehlt für optimale Sciherheit
Bitte um ergänzung des Skriptes für ein GATEWAY mit zwei Schnittstellen
eth0 intern
eth1 extern

#! /bin/sh
# Netfilter Gateway firewall security script

# Filterregeln löschen
iptables -F

# INPUT/OUTPUT CHAIN
#
# Self access by loopback
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
#
# Accept Established connections
iptables -A INPUT -m state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --tcp-options ! 2 -j REJECT --reject-with tcp-reset
#
# Accept Secure shell port
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT
#
# TCP Pakete ohne kompletten header werden verworfen
iptables -A INPUT -p TCP -s 10.0.0.0/8 --tcp-flags SYN,RST,ACK SYN -J DROP
iptables -A INPUT -p TCP -s externe-ip --tcp-flags SYN,RST,ACK SYN -J DROP
#
# deny localhost ICMP traffic
iptables -A INPUT -s 127.0.0.1 -p icmp -j drop
#
# deny extern connection
iptables -A INPUT -i eth1 -m state --state NEW,INVALID -j DROP
#
# Drop all other INPUT connections
iptables -P INPUT DROP



#OUTPUT CHAIN
#
# fragmentierte Pakete werden verworfen (DDOS Atack)
iptables -A OUTPUT -f -d 10.3.25.108 -j drop
iptables -A OUTPUT -f -d externeip -j drop
#
# drop all other OUTPUT connections
iptables -P OUTPUT DROP


#
# *ROUTING SECURITY* (forwarding)
#
# Aktivieren der Kernel Routerfunktion (packet forwarding)
echo 1 > /proc/sys/net/ipv4/ip_forwad


# FORWARD CHAIN
#
# FORWARDING Akzeptieren
iptables -A FORWARD -o eth0 -j ACCEPT
#
# Paket logging mit limit aktivieren
iptables -A FORWARD -m limit -j LOG
#
# Schutz vor Syn-Flood-Attacken
iptables -A FORWARD -p tcp --syn -m limit 1/s -j ACCEPT
#
# Ping of Death schutz
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
# Portscanning deaktivieren
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -m limit --limit 1/h -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -m limit --limit 1/h -j ACCEPT
#
# HTTP
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 8080 -j ACCEPT
#
# FTP
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -p udp --dport 21 -j ACCEPT
#
# SSH
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p udp --dport 22 -j ACCEPT
#
# deny extern connections
iptables -A FORWARD -i eth1 0 -m state --state NEW,INVALID -j DROP
#
# drop all other FORWARD connections
iptables -P FORWARD DROP



# NAT CHAIN

# transparenter squid proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

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

Post Reply