( corvin | 2006. 11. 29., sze – 15:46 )

Üdv!

"Gyorsba" össze kellett dobnom egy tűzfalat iptables-el!Előtte még nem igen volt dolgom ezzel, viszont kiindulásnak nagyon jó volt (sőt), amit itt találtam az abszolut használható és a nagyját képezi a tűzfalamnak.Mégis vannak vele gondok és nem igazán értek 1-2 dolgot!Szeretném,ha valaki lemeózná a szabályokat és segítségemre lenne!

Egy DNS szerverként funkcionáló gép tűzfala lenne!

Script: (Ahol vmit nem értek oda teszek egy "?"-et!)
-------

#!/bin/bash

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -F
iptables -X /?
iptables -N in_attack
iptables -N drop_icmp

#----------------------------------------------------------------------------------#
# INPUT lánc szabályai: #
#----------------------------------------------------------------------------------#

#lo interface mehet
iptables -A INPUT -i lo -j ACCEPT

#Meglévő és kapcsolódó folyamatokat engedélyezi
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ping
iptables -A INPUT -i eth0 -p icmp -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m state --state ESTABLISHED,RELATED -j drop_icmp

iptables -A INPUT -p icmp --icmp-type echo-request -m state --state NEW -j drop_icmp
iptables -A INPUT -d 255.255.255.0 -j DROP /?
iptables -A INPUT -d 224.0.0.0/8 -j DROP /?

#Gyanus csomagok eldobása
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j in_attack /?
iptables -A INPUT -i eth0 -s 172.16.0.0/16 -j in_attack /?
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j in_attack /?

#SSH engedése a megadott tartományról + loggolás
iptables -A INPUT -s x.x.x.x/24 -p tcp --dport 22 -m limit --limit 3/min --limit-burst 1 -j LOG --log-prefix "Bejövő SSH kapcsolat: "
iptables -A INPUT -s x.x.x.x/24 -p tcp --dport 22 -m limit --limit 1/hour --limit-burst 1 -j ACCEPT
iptables -A INPUT -s x.x.x.x/24 -p tcp --dport 22 -m limit --limit 1/min --limit-burst 1 -j LOG --log-prefix "3 Sikertelen próbálkozás: "

#dns
iptables -A INPUT -p udp --dport 53 -m state --state NEW,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m state --state NEW,RELATED -j ACCEPT

#Minden más bejövő eldobása és loggolása:
iptables -A INPUT -m limit --limit 3/min --limit-burst 1 -j LOG --log-prefix "Tíltott bejövő kapcsolat: "
iptables -A INPUT -j DROP

#----------------------------------------------------------------------------------#
# OUTPUT lánc szabályai: #
#----------------------------------------------------------------------------------#

#lo interface mehet
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -d 255.255.255.0 -j DROP /?
iptables -A OUTPUT -d 224.0.0.0/8 -j DROP /?

#Meglévő, új és a kapcsolódó folyamatokat engedélyezi
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

#ftp
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 21 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 20 -m state --state NEW,RELATED -j ACCEPT

#dns
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW,RELATED -j ACCEPT

#http
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p udp --dport 80 -m state --state NEW,RELATED -j ACCEPT

#smtp
iptables -A OUTPUT -p udp --dport 25 -m state --state NEW,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -m state --state NEW,RELATED -j ACCEPT

#Minden más loggolva lesz
iptables -A OUTPUT -m limit --limit 3/min -j LOG --log-prefix "Eldobott kimenő kapcsolat: "
iptables -A OUTPUT -j DROP

#accept icmp
iptables -A drop_icmp -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "Kitíltott ping: " /?
iptables -A drop_icmp -j DROP

#----------------------------------------------------------------------------------#
# Betörések elleni védekezés: #
#----------------------------------------------------------------------------------#

#Syn-flood elleni védelem
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#Portscan elleni védelem
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Ping-flood elleni védelem
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

Tehát ez egy DNS szerver tűzfala lesz.
-Csak a saját tartományból akarom engedni az ssh-t!
-Dns szerver 53-as port mehet.
-Ftp mivel akarom,h frissíteni a csomagokat
-Jelenleg be van kapcsolva a http is,de az nem kell
-Smtp 25-ös port,h a szerver tudjon levelet küldeni!

A Forward részt nem teljesen világos számomra!
Így lefuttatom a scriptet, hiba nélkül megy is és "működik", viszont állandóan tiltott bejövő kapcsolatot jelez a saját tartományunkból. Gondolom túl erős a log vagy?Ezt hol tudnám állítani?
Még egy olyan kellene nekem,h ne a klog-ba mentsen,hanem egy általam kinevezett fájlba és a logokat bizonyos időközönként küldje el nekem!

Előre is köszönöm
Üdv Corvin