time-walker
New Member
Hi, hab mir nen iptables script geschrieben, habe aber so gut wie garnix zur sicherheit bzw welche packete mit bestimmten typen die er sofort abweisen soll und ob loggin ok ist ober man noch was dazu nehmen sollte.
mfg time-walker
script :
mfg time-walker
script :
Code:
#!/bin/sh
clear
#
#
# Dieser Root-Server bietet die folgende Dienste
# HTTP Port 80/tcp
# SMTP Port 25/tcp
# POP3 Port 110/tcp
# POP3s Port 995/tcp
# IMAP Port 143/tcp
# IMAPs Port 993/tcp
# SSH Port 22/tcp
# FTP Port 21/tcp
# ... siehe Rest @Variablen TCPPORT & UDPPORT
#
#
# Dieser Root-Server benötigt Zugriff auf
# (oder uneingeschränkten zugriff)
# DNS Port 53/tcp und 53/udp
# SSH Port 22/tcp
# HTTP Port 80/tcp
# FTP Port 21/tcp
# SMPT Port 25/tcp versand von Mails)
#
case "$1" in
start|restart)
# Definiere Variablen
# Akzeptiere eingehende TCP Verbindungen für -
# SMTP, HTTP, IMAP, IMAPs, POP3, POP3s, SSH, FTP,
TCPPORT="25 80 143 993 110 995 22 21"
# Akzeptiere eingehende UDP Verbindungen für -
#Openvpn, Teamspeak
UDPPORT="1194 8767"
echo -e "Starte Firewall ..."
sleep 1
echo -e "lösche alle Regeln ..."
# Lösche alle Regeln in den INPUT-, OUTPUT-, FORWARD-Ketten
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
echo -e "Setze Regeln ..."
########## Allgemin ###########################
echo -e "Setze Kernelparameter, Lade kernel Module ..."
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
modprobe ip_conntrack_ftp
modprobe ip_conntrack
# Akzeptiere Verkehr auf der Loopback-Schnittstelle
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Kommunikation ueber Tunnel erlauben
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
# Erlaube Antwortpakete und Fehlermeldungen für aufgebaute Verbindungen
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Erlaube aufgebaute Verbindungen nach außen
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
######### Ausgehende Verbindungen ##################
##### Erlaube neue Verbindungsaufbauten nach außen uneingeschränkt
# iptables -A OUTPUT -m state --state NEW -j ACCEPT
#eingeschränkt
# Erlaube DNS-Anfragen
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
# Erlaube HTTP-Verbindungen
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
#Erlaube SSH zugriff von innen
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW -j ACCEPT
#Erlaube ping nach aussen
iptables -A OUTPUT -o eth0 -p icmp --icmp-type echo-request\
-m state --state NEW -j ACCEPT
#Erlaube zugriff auf Mailserver (versand von e-mails)
iptables -A OUTPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#Erlaube zugriff auf FTP-Server
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
############ Server-Dienste ###########################
#siehe oben $SERVPORT Variable
#Freigabe von Diensten - TCP
for PORT1 in $TCPPORT
do
iptables -A INPUT -p tcp --dport $PORT1 -m state --state NEW -j ACCEPT
done
#Freigabe von Diensten - UDP
for PORT2 in $UDPPORT
do
iptables -A INPUT -p udp --dport $PORT2 -m state --state NEW -j ACCEPT
done
############ Security ###########################
#Erlaube ping von aussen
iptables -A INPUT -p icmp --icmp-type echo-request\
-m state --state NEW -j ACCEPT
#identd-Verbindung zum Client ablehnen (FTP)
iptables -A INPUT -p tcp --dport 113 -j REJECT
############ logging ###########################
iptables -A INPUT -m state --state INVALID -j LOG
iptables -A INPUT -p ICMP --icmp-type destination-unreachable -j LOG
iptables -A INPUT -p TCP --tcp-flags ALL, FIN,URG,PSH -j LOG
iptables -A INPUT -p TCP --tcp-flags ALL, NONE -j LOG
iptables -A INPUT -p TCP --tcp-flags NONE, ALL -j LOG
iptables -A INPUT -p ICMP --icmp-type source-quench -j LOG
iptables -A INPUT -p ICMP --icmp-type redirect -j LOG
iptables -A INPUT -p ICMP --icmp-type address-mask-request -j LOG
############ Default-Policy ###########################
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo -e "Firewall erfolgreich gestartet"
;;
stop)
echo -e "Firewall deaktiviert ..."
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
;;
status)
iptables -vL
;;
*)
echo "Fehler /etc/init.d/$0 [start|restart|stop|status]"
esac;
Last edited by a moderator: