irgend wie funktioniert meine iptables nicht ....

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
zamorra
Beiträge: 3
Registriert: 12.01.2014 20:33:25

irgend wie funktioniert meine iptables nicht ....

Beitrag von zamorra » 12.01.2014 20:51:19

Hallo erst mal,

ich hab ein Problem das meine iptables einstellungen nicht wirklich ziehen .... aber ich find einfach nichts wo ich was verdreht habe ....

Code: Alles auswählen

#!/bin/bash
#
#
# LOGNDROP log to seperate file
#joe /etc/syslog.conf
#kern.debug	-/var/log/DoS.log
#/etc/init.d/sysklogd restart
#/etc/init.d/klogd restart

IPT="/sbin/iptables"

EXT_1="yy.yyy.yyy.yyy" # IP meines Servers



CLEAR(){


# clear iptables
$IPT -F INPUT
$IPT -F OUTPUT
$IPT -F FORWARD
$IPT -F LOGNDROP
$IPT -F # will delete all rules from filter table
$IPT -F -t nat  # will delete all rules from nat table
$IPT -F -t mangle # will delete all rules from mangle table
}

LOCALHOST(){
# allow all lo
#$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
}

FILTER(){
# some filtering
$IPT -A INPUT -p icmp --icmp-type 8 -j DROP
$IPT -A OUTPUT -p icmp --icmp-type 8 -j DROP

echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time

while read GESPERRT DATUM; do
    $IPT -A INPUT -s  $GESPERRT -j REJECT
done </var/lib/iptables/gesperrt
    
$IPT -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT # Anti-SYN
$IPT -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # Anti Portscan
$IPT -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/sec -j ACCEPT # Anti Ping-of-Death

# broken packets
$IPT -A INPUT -p tcp --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

#new Chain for logging
$IPT -N LOGNDROP
$IPT -A LOGNDROP -j LOG -m limit --limit 1/min --log-prefix "[DoS]: " --log-level 7
$IPT -A LOGNDROP -j DROP


#limit connections per minute from single ip to 10 (HTTP)
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set --name http
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 --rttl --name http -j LOGNDROP

#limit connections per minute from single ip to 10 (POP)
$IPT -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --update --seconds 60 --hitcount 5 -j DROP
$IPT -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --set -j ACCEPT

#teamspeak udp
#$IPT -A INPUT -p udp -d $EXT_1 --dport 9987 -j ACCEPT

}

EXT_INPUT_ACCEPT(){
# allow related connections
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

WHITELIST="yy.yyy.yyy.yyy"
for x in $WHITELIST; do
	$IPT -A INPUT -s $x -d $EXT_1 -j ACCEPT
done;


#TCPPORTS="21 25 53 80 110 143 465 995 5050 7370 8000 25565"
TCPPORTS="5050"
for x in $TCPPORTS; do
	$IPT -A INPUT -p tcp -d $EXT_1 --dport $x -j ACCEPT
done;

# limit PPS
#$IPT -A INPUT -p tcp -d $EXT_1 --dport 50001 -m limit --limit 15/s --limit-burst 25 -j ACCEPT
#$IPT -A INPUT -p tcp -d $EXT_1 --dport 50005 -m limit --limit 10/s --limit-burst 15 -j ACCEPT
#$IPT -A INPUT -p tcp -d $EXT_1 --dport 50004 -m limit --limit 5/s --limit-burst 10 -j ACCEPT


}


DEF_DROP(){
# DEFAULT DROP ALL OTHER
$IPT -A INPUT -j DROP
#$IPT -A FORWARD -j DROP
}



if [ ! -z "$1" ]; then
 if [ "$1" = "start" ]; then
	sh $0 stop
	LOCALHOST;
	FILTER;
	EXT_INPUT_ACCEPT;
	DEF_DROP;
        echo "rules loaded";
	exit
 fi

 if [ "$1" = "stop" ]; then
	CLEAR;
		if [ $? = 0 ]; then echo "Rules cleared";  else echo "error in CLEARing rules!";  fi
fi


 if [ "$1" = "restart" ]; then
	sh $0 start
 fi

 if [ "$1" = "status" ]; then
	$IPT -L -vnx
	$IPT -vxn -L POSTROUTING -t nat
	$IPT -vnx -L PREROUTING -t nat
 fi


else
 echo "usage $0 start | stop | status | restart"
fi 
das wär mal womit ich meine iptables erzeuge (ansonsten sind sie leer) ....

Code: Alles auswählen

while read GESPERRT DATUM; do
    $IPT -A INPUT -s  $GESPERRT -j REJECT
done </var/lib/iptables/gesperrt
damit lese ich ein File mit meinen gesperrten IP adressen ein (funktioniren so weit)


Problem habe ich aber mit dem Teil der mit meine Mail-attacken abalten sollte.
Das sollte ja der Teil machen....

Code: Alles auswählen

#limit connections per minute from single ip to 10 (POP)
$IPT -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --update --seconds 60 --hitcount 5 -j DROP
$IPT -A INPUT -p tcp --dport 110 -m state --state NEW -m recent --name pop --rsource --set -j ACCEPT
Abhelten sollte es so Angriffe wie die folgenden
Jan 12 18:17:02 admin pop3d: LOGIN FAILED, user=helen, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:04 admin pop3d: LOGIN FAILED, user=project, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:05 admin pop3d: LOGIN FAILED, user=admin, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:06 admin pop3d: LOGIN FAILED, user=master, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:09 admin pop3d: LOGIN FAILED, user=director, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:11 admin pop3d: LOGIN FAILED, user=company, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:12 admin pop3d: LOGIN FAILED, user=security, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:13 admin pop3d: LOGIN FAILED, user=Alfredo, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:16 admin pop3d: LOGIN FAILED, user=helen, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:17 admin pop3d: LOGIN FAILED, user=cv, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:19 admin pop3d: LOGIN FAILED, user=manager, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:20 admin pop3d: LOGIN FAILED, user=webmaster, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:22 admin pop3d: LOGIN FAILED, user=www, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:23 admin pop3d: LOGIN FAILED, user=order, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:26 admin pop3d: LOGIN FAILED, user=emperor, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:27 admin pop3d: LOGIN FAILED, user=marketing, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:30 admin pop3d: LOGIN FAILED, user=test, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:32 admin pop3d: LOGIN FAILED, user=backup, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:32 admin pop3d: LOGIN FAILED, user=helen, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:33 admin pop3d: LOGIN FAILED, user=inquiry, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:38 admin pop3d: LOGIN FAILED, user=cs, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:39 admin pop3d: LOGIN FAILED, user=info, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:40 admin pop3d: LOGIN FAILED, user=hellen, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:40 admin pop3d: LOGIN FAILED, user=mark, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:45 admin pop3d: LOGIN FAILED, user=Carmelo, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:46 admin pop3d: LOGIN FAILED, user=clark, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:47 admin pop3d: LOGIN FAILED, user=webmaster, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:48 admin pop3d: LOGIN FAILED, user=mary, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:52 admin pop3d: LOGIN FAILED, user=server, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:53 admin pop3d: LOGIN FAILED, user=support, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:54 admin pop3d: LOGIN FAILED, user=data, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:56 admin pop3d: LOGIN FAILED, user=postmaster, ip=[::ffff:xxx.xxx.xxx.xxx]
Jan 12 18:17:59 admin pop3d: LOGIN FAILED, user=angel, ip=[::ffff:xxx.xxx.xxx.xxx]
und ja ich weis es gibt fail2ban, ich mir wären halt iptables lieber weil ich sie ja auch verstehen will.

Eventuell kann mir ja we helfen bzw. sagen warum das so nicht funktioniert.

Oder auch wenn ich totalen stuss drinnen stehen habe.
Habe ich mir auch nur als verschiedenen Beispielen zusammengestoppelt.


Danke scon mal, Zamorra

Benutzeravatar
4A4B
Beiträge: 981
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: irgend wie funktioniert meine iptables nicht ....

Beitrag von 4A4B » 12.01.2014 21:04:57

zamorra hat geschrieben:
Jan 12 18:17:02 admin pop3d: LOGIN FAILED, user=helen, ip=[::ffff:xxx.xxx.xxx.xxx]
Das "xxx.xxx.xxx.xxx" hast du ersetzt, nehme ich an - aber standen da Punkte oder Doppelpunkte? Das "::ffff:" schaut wie der Anfang einer IPv6-Adresse aus. Diese werden nicht mit iptables, sondern mit ip6tables gefiltert.

zamorra
Beiträge: 3
Registriert: 12.01.2014 20:33:25

Re: irgend wie funktioniert meine iptables nicht ....

Beitrag von zamorra » 12.01.2014 22:04:21

ne das war eine ganz normale ip4 adresse, wie in dem Format wie ich die x-en gemacht habe

Benutzeravatar
4A4B
Beiträge: 981
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: irgend wie funktioniert meine iptables nicht ....

Beitrag von 4A4B » 13.01.2014 00:07:16

Könnte es sich um Pakete gehandelt haben, die nicht an Port 110, sondern an Port 995 gingen (pop3s)?

zamorra
Beiträge: 3
Registriert: 12.01.2014 20:33:25

Re: irgend wie funktioniert meine iptables nicht ....

Beitrag von zamorra » 13.01.2014 14:29:57

habe eben mal einen "lsof -P -n -i" gefahren um meine Ports zu sehen ....

jetzt fällt mir unangenehm auf das ich bei vielen IPv6 stehen habe
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
couriertc 1105 root 3u IPv6 4323 0t0 TCP *:110 (LISTEN)
portmap 796 daemon 5u IPv4 3816 0t0 TCP *:111 (LISTEN)
couriertc 1107 root 3u IPv6 4315 0t0 TCP *:143 (LISTEN)
proftpd 26302 nobody 1u IPv6 123901 0t0 TCP *:21 (LISTEN)
master 1714 root 12u IPv4 5938 0t0 TCP *:25 (LISTEN)
master 1714 root 13u IPv6 5941 0t0 TCP *:25 (LISTEN)
java 9274 zamorra 25u IPv6 205554 0t0 TCP *:25565 (LISTEN)
apache2 1435 root 6u IPv6 4914 0t0 TCP *:443 (LISTEN)
apache2 32398 www-data 6u IPv6 4914 0t0 TCP *:443 (LISTEN)
apache2 32399 www-data 6u IPv6 4914 0t0 TCP *:443 (LISTEN)
apache2 32400 www-data 6u IPv6 4914 0t0 TCP *:443 (LISTEN)
master 1714 root 21u IPv4 5956 0t0 TCP *:465 (LISTEN)
master 1714 root 22u IPv6 5958 0t0 TCP *:465 (LISTEN)
rpc.statd 823 statd 7u IPv4 3867 0t0 TCP *:51887 (LISTEN)
master 1714 root 17u IPv4 5947 0t0 TCP *:587 (LISTEN)
master 1714 root 18u IPv6 5949 0t0 TCP *:587 (LISTEN)
sshd 1164 root 3u IPv4 4368 0t0 TCP *:7370 (LISTEN)
sshd 1164 root 4u IPv6 4370 0t0 TCP *:7370 (LISTEN)
apache2 1435 root 4u IPv6 4910 0t0 TCP *:80 (LISTEN)
apache2 32398 www-data 4u IPv6 4910 0t0 TCP *:80 (LISTEN)
apache2 32399 www-data 4u IPv6 4910 0t0 TCP *:80 (LISTEN)
apache2 32400 www-data 4u IPv6 4910 0t0 TCP *:80 (LISTEN)
couriertc 1115 root 3u IPv6 4319 0t0 TCP *:993 (LISTEN)
couriertc 1117 root 3u IPv6 4313 0t0 TCP *:995 (LISTEN)
postgrey 1352 postgrey 5u IPv4 4586 0t0 TCP 127.0.0.1:10023 (LISTEN)
perl 1358 polw 4u IPv4 4605 0t0 TCP 127.0.0.1:12525 (LISTEN)
perl 2548 polw 4u IPv4 4605 0t0 TCP 127.0.0.1:12525 (LISTEN)
perl 4007 polw 4u IPv4 4605 0t0 TCP 127.0.0.1:12525 (LISTEN)
mysqld 1309 mysql 10u IPv4 4575 0t0 TCP 127.0.0.1:3306 (LISTEN)
named 1154 bind 20u IPv4 4387 0t0 TCP 127.0.0.1:53 (LISTEN)
named 1154 bind 22u IPv4 4404 0t0 TCP 127.0.0.1:953 (LISTEN)
imscp_dae 1770 root 0u IPv4 6150 0t0 TCP 127.0.0.1:9876 (LISTEN)
portmap 796 daemon 4u IPv4 3801 0t0 UDP *:111
rpc.statd 823 statd 6u IPv4 3864 0t0 UDP *:55141
dhclient 811 root 5u IPv4 3754 0t0 UDP *:68
rpc.statd 823 statd 4w IPv4 3854 0t0 UDP *:999
named 1154 bind 512u IPv4 4386 0t0 UDP 127.0.0.1:53
heisst das das das der grund ist warum die Regeln nicht greifen ?

obwohl ich mich mit IPv4 auf die Ports verbinde, denn in den logs zeigt es auch IPv4 Adressen an, nur halt mit den ffff davor.

sollte ich dann das ganze IPv6 zeugs abdrehen? da ich ja ehh keine v6 adresse habe.?
oder sollte es einfacher sein die regeln auf ip6tables ebenfalls zu schreiben?
kann ich die 1:1 übernehmen?

Danke, Zamorra

uname
Beiträge: 12494
Registriert: 03.06.2008 09:33:02

Re: irgend wie funktioniert meine iptables nicht ....

Beitrag von uname » 13.01.2014 16:57:40

sollte ich dann das ganze IPv6 zeugs abdrehen? da ich ja ehh keine v6 adresse habe.?
Standardmäßig deaktiviere ich auf allen Systemen IPv6. Funktionen die man nicht wirklich braucht bieten nur eins: Sicherheitsrisiken

http://wiki.debianforum.de/IPv6Deaktivieren (Eintrag "Debian 6.0 Squeeze" gilt auch für "Debian 7 Wheezy")

Antworten