N
nikster77
Routinier
Hi Leute.
Ich habe ein Problem mit diesem Script:
#!/bin/bash
#################################################
#
#################################################
#Variablendeklaration
IF_LOOPBACK="lo"
IF_INET="ppp0"
IF_LAN="eth1"
IF_LAN_NET="192.168.1.0/24"
PRIV="0:1023"
UNPRIV="1024:65535"
# (SMB) (NFS) (X11)
# BAD_TCP="135:139 1433 2049 5999:6063"
# BAD_UDP="135:139 1433 2049 5999:6063"
##################################################
#Laden der benoetigten Module
#/sbin/modprobe ip_tables
#/sbin/modprobe iptable_filter
#/sbin/modprobe ip_conntrack
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_nat_ftp
case "$1" in
start)
##################################################
#Flushing Rules
echo "Cleaning up..."
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain
##################################################
#Adresse der Internetverbindung bestimmen
echo -n "Determinating IP-Address of Internet Interface... "
IF_INET_IP="`ifconfig $IF_INET | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
echo $IF_INET_IP
##################################################
#Allgemeine Sicherheitsoptionen und Routing
echo "Setting sysctl options..."
#Enable forwarding in kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
#Disabling IP Spoofing attacks.
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
#Don't respond to broadcast pings (Smurf-Amplifier-Protection)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#Block source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#Kill timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
#Enable SYN Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#Kill redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#Log martians (packets with impossible addresses)
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
##################################################
#Erstellen selbstdefinierter Chains
for i in INT_INPUT_ACCEPT_TCP INT_INPUT_ACCEPT_UDP INT_OUTPUT_ACCEPT_UDP \
INT_OUTPUT_ACCEPT_TCP EXT_INPUT_ACCEPT_TCP EXT_INPUT_ACCEPT_UDP EXT_OUTPUT_ACCEPT_TCP \
EXT_OUTPUT_ACCEPT_UDP INT_FORWARD_ACCEPT_TCP INT_FORWARD_ACCEPT_UDP EXT_FORWARD_ACCEPT_TCP \
EXT_FORWARD_ACCEPT_UDP; do
iptables -N $i;
done
##################################################
#Loopback-Interface Connections erlauben
echo "Rules for Loopback Interface..."
iptables -A INPUT -i $IF_LOOPBACK -j ACCEPT
iptables -A OUTPUT -o $IF_LOOPBACK -j ACCEPT
##################################################
#Masquerading
echo "Creating IPTABLES rules:"
echo "Masquerading..."
iptables -t nat -A POSTROUTING -o $IF_INET -j MASQUERADE
##################################################
#Userdefined INPUT-Chains
# QA
echo "setting up userdefined-chains..."
iptables -A INT_INPUT_ACCEPT_TCP -s $IF_LAN_NET \
-p tcp -m multiport --destination-port 22,53,67,68,80,123,443,993,995,4662 -j ACCEPT
iptables -A INT_INPUT_ACCEPT_UDP -s $IF_LAN_NET \
-p udp -m multiport --destination-port 53,67,68,123 -j ACCEPT
iptables -A EXT_INPUT_ACCEPT_UDP \
-p udp -m multiport --source-port 53,67,68,123 -j ACCEPT
iptables -A EXT_INPUT_ACCEPT_TCP \
-p tcp -m multiport --source-port 22,53,67,68,123,110,995,993,4662 -j ACCEPT
#Admin
##################################################
#Userdefined OUTPUT-Chains
#QA
iptables -A INT_OUTPUT_ACCEPT_UDP -d $IF_LAN_NET \
-p udp -m multiport --source-port 53,67,68,80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INT_OUTPUT_ACCEPT_TCP -d $IF_LAN_NET \
-p tcp -m multiport --source-port 22,53,67,68,80,123,110,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_OUTPUT_ACCEPT_UDP \
-p udp -m multiport --destination-port 53,67,68,80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_OUTPUT_ACCEPT_TCP \
-p tcp -m multiport --destination-port 22,53,67,68,80,110,123,443,993,995,4662 -m --state NEW,RELATED,ESTABLISHED -j ACCEPT
##################################################
#Userdefined FORWARD-Chains
iptables -A INT_FORWARD_ACCEPT_UDP -s $IF_LAN_NET \
-p udp -m multiport --destination-port 80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INT_FORWARD_ACCEPT_TCP -s $IF_LAN_NET \
-p tcp -m multiport --destination-port 22,53,67,68,80,110,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_FORWARD_ACCEPT_UDP \
-p udp -m multiport --source-port 80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_FORWARD_ACCEPT_TCP \
-p tcp -m multiport --source-port 22,53,67,68,80,110,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#################################################
#IPTABLES-RULES
#PPP0
echo "setting up IPTABLES-Rules..."
iptables -A OUTPUT -p udp -o $IF_INET -j EXT_OUTPUT_ACCEPT_UDP
iptables -A OUTPUT -p tcp -o $IF_INET -j EXT_OUTPUT_ACCEPT_TCP
iptables -A INPUT -p udp -i $IF_INET -j EXT_INPUT_ACCEPT_UDP
iptables -A INPUT -p tcp -i $IF_INET -j EXT_INPUT_ACCEPT_TCP
iptables -A FORWARD -p udp -i $IF_INET -o eth0 -j EXT_FORWARD_ACCEPT_UDP
iptables -A FORWARD -p tcp -i $IF_INET -o eth0 -j EXT_FORWARD_ACCEPT_TCP
#eth0
iptables -A OUTPUT -p udp -o $IF_LAN -j INT_OUTPUT_ACCEPT_UDP
iptables -A OUTPUT -p tcp -o $IF_LAN -j INT_OUTPUT_ACCEPT_TCP
iptables -A INPUT -p udp -i $IF_LAN -j INT_INPUT_ACCEPT_UDP
iptables -A INPUT -p tcp -i $IF_LAN -j INT_INPUT_ACCEPT_TCP
iptables -A FORWARD -p udp -i $IF_LAN -o $IF_INET -j INT_FORWARD_ACCEPT_UDP
iptables -A FORWARD -p tcp -i $IF_LAN -o $IF_INET -j INT_FORWARD_ACCEPT_TCP
#################################################
#Default-Policies
echo "Setting default policy..."
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
;;
stop)
echo "Shutting down routing..."
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
;;
*)
echo "Usage: ./filter {start|stop}"
exit 1
;;
esac
exit 0
Wie Ihr seht habe ich ein Gateway zwischen meinem LAN und dem Internet und eigentlich auch ein FW-Script das gut funktioniert...
aber es benutzt keine benutzerdefinierten Ketten (ich habe alles direkt in die INPUT,OUTPUT und FORWARD-Chains geschrieben).
Ich habe mir die Doku auf netfilter.org schon x-mal durchgelesen kriege es aber nicht ans laufen.
Sobald er die default-Policies setzt sperre ich mich aus dem Rechner aus, es geht kein Forwarding, kein Input und kein Output mehr.
Wenn jemand den Fehler sehen wuerde oder mir evtl. mein grundsaetzliches Verstaendnisproblem auseinandersetzen koennte waere ich echt gluecklich...
Gruss
Niels
Niels
Ich habe ein Problem mit diesem Script:
#!/bin/bash
#################################################
#
#################################################
#Variablendeklaration
IF_LOOPBACK="lo"
IF_INET="ppp0"
IF_LAN="eth1"
IF_LAN_NET="192.168.1.0/24"
PRIV="0:1023"
UNPRIV="1024:65535"
# (SMB) (NFS) (X11)
# BAD_TCP="135:139 1433 2049 5999:6063"
# BAD_UDP="135:139 1433 2049 5999:6063"
##################################################
#Laden der benoetigten Module
#/sbin/modprobe ip_tables
#/sbin/modprobe iptable_filter
#/sbin/modprobe ip_conntrack
#/sbin/modprobe ip_conntrack_ftp
#/sbin/modprobe ip_nat_ftp
case "$1" in
start)
##################################################
#Flushing Rules
echo "Cleaning up..."
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables --delete-chain
iptables -t nat --delete-chain
iptables -t mangle --delete-chain
##################################################
#Adresse der Internetverbindung bestimmen
echo -n "Determinating IP-Address of Internet Interface... "
IF_INET_IP="`ifconfig $IF_INET | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
echo $IF_INET_IP
##################################################
#Allgemeine Sicherheitsoptionen und Routing
echo "Setting sysctl options..."
#Enable forwarding in kernel
echo 1 > /proc/sys/net/ipv4/ip_forward
#Disabling IP Spoofing attacks.
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
#Don't respond to broadcast pings (Smurf-Amplifier-Protection)
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#Block source routing
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#Kill timestamps
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
#Enable SYN Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#Kill redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#Enable bad error message protection
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#Log martians (packets with impossible addresses)
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
##################################################
#Erstellen selbstdefinierter Chains
for i in INT_INPUT_ACCEPT_TCP INT_INPUT_ACCEPT_UDP INT_OUTPUT_ACCEPT_UDP \
INT_OUTPUT_ACCEPT_TCP EXT_INPUT_ACCEPT_TCP EXT_INPUT_ACCEPT_UDP EXT_OUTPUT_ACCEPT_TCP \
EXT_OUTPUT_ACCEPT_UDP INT_FORWARD_ACCEPT_TCP INT_FORWARD_ACCEPT_UDP EXT_FORWARD_ACCEPT_TCP \
EXT_FORWARD_ACCEPT_UDP; do
iptables -N $i;
done
##################################################
#Loopback-Interface Connections erlauben
echo "Rules for Loopback Interface..."
iptables -A INPUT -i $IF_LOOPBACK -j ACCEPT
iptables -A OUTPUT -o $IF_LOOPBACK -j ACCEPT
##################################################
#Masquerading
echo "Creating IPTABLES rules:"
echo "Masquerading..."
iptables -t nat -A POSTROUTING -o $IF_INET -j MASQUERADE
##################################################
#Userdefined INPUT-Chains
# QA
echo "setting up userdefined-chains..."
iptables -A INT_INPUT_ACCEPT_TCP -s $IF_LAN_NET \
-p tcp -m multiport --destination-port 22,53,67,68,80,123,443,993,995,4662 -j ACCEPT
iptables -A INT_INPUT_ACCEPT_UDP -s $IF_LAN_NET \
-p udp -m multiport --destination-port 53,67,68,123 -j ACCEPT
iptables -A EXT_INPUT_ACCEPT_UDP \
-p udp -m multiport --source-port 53,67,68,123 -j ACCEPT
iptables -A EXT_INPUT_ACCEPT_TCP \
-p tcp -m multiport --source-port 22,53,67,68,123,110,995,993,4662 -j ACCEPT
#Admin
##################################################
#Userdefined OUTPUT-Chains
#QA
iptables -A INT_OUTPUT_ACCEPT_UDP -d $IF_LAN_NET \
-p udp -m multiport --source-port 53,67,68,80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INT_OUTPUT_ACCEPT_TCP -d $IF_LAN_NET \
-p tcp -m multiport --source-port 22,53,67,68,80,123,110,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_OUTPUT_ACCEPT_UDP \
-p udp -m multiport --destination-port 53,67,68,80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_OUTPUT_ACCEPT_TCP \
-p tcp -m multiport --destination-port 22,53,67,68,80,110,123,443,993,995,4662 -m --state NEW,RELATED,ESTABLISHED -j ACCEPT
##################################################
#Userdefined FORWARD-Chains
iptables -A INT_FORWARD_ACCEPT_UDP -s $IF_LAN_NET \
-p udp -m multiport --destination-port 80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INT_FORWARD_ACCEPT_TCP -s $IF_LAN_NET \
-p tcp -m multiport --destination-port 22,53,67,68,80,110,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_FORWARD_ACCEPT_UDP \
-p udp -m multiport --source-port 80,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A EXT_FORWARD_ACCEPT_TCP \
-p tcp -m multiport --source-port 22,53,67,68,80,110,123,443,993,995,4662 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#################################################
#IPTABLES-RULES
#PPP0
echo "setting up IPTABLES-Rules..."
iptables -A OUTPUT -p udp -o $IF_INET -j EXT_OUTPUT_ACCEPT_UDP
iptables -A OUTPUT -p tcp -o $IF_INET -j EXT_OUTPUT_ACCEPT_TCP
iptables -A INPUT -p udp -i $IF_INET -j EXT_INPUT_ACCEPT_UDP
iptables -A INPUT -p tcp -i $IF_INET -j EXT_INPUT_ACCEPT_TCP
iptables -A FORWARD -p udp -i $IF_INET -o eth0 -j EXT_FORWARD_ACCEPT_UDP
iptables -A FORWARD -p tcp -i $IF_INET -o eth0 -j EXT_FORWARD_ACCEPT_TCP
#eth0
iptables -A OUTPUT -p udp -o $IF_LAN -j INT_OUTPUT_ACCEPT_UDP
iptables -A OUTPUT -p tcp -o $IF_LAN -j INT_OUTPUT_ACCEPT_TCP
iptables -A INPUT -p udp -i $IF_LAN -j INT_INPUT_ACCEPT_UDP
iptables -A INPUT -p tcp -i $IF_LAN -j INT_INPUT_ACCEPT_TCP
iptables -A FORWARD -p udp -i $IF_LAN -o $IF_INET -j INT_FORWARD_ACCEPT_UDP
iptables -A FORWARD -p tcp -i $IF_LAN -o $IF_INET -j INT_FORWARD_ACCEPT_TCP
#################################################
#Default-Policies
echo "Setting default policy..."
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
;;
stop)
echo "Shutting down routing..."
echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
;;
*)
echo "Usage: ./filter {start|stop}"
exit 1
;;
esac
exit 0
Wie Ihr seht habe ich ein Gateway zwischen meinem LAN und dem Internet und eigentlich auch ein FW-Script das gut funktioniert...
aber es benutzt keine benutzerdefinierten Ketten (ich habe alles direkt in die INPUT,OUTPUT und FORWARD-Chains geschrieben).
Ich habe mir die Doku auf netfilter.org schon x-mal durchgelesen kriege es aber nicht ans laufen.
Sobald er die default-Policies setzt sperre ich mich aus dem Rechner aus, es geht kein Forwarding, kein Input und kein Output mehr.
Wenn jemand den Fehler sehen wuerde oder mir evtl. mein grundsaetzliches Verstaendnisproblem auseinandersetzen koennte waere ich echt gluecklich...
Gruss
Niels
Niels