( zamolxyse | 2007. 10. 27., szo – 23:16 )

#!/bin/bash
## megkeressük az iptables -t
IPTABLES=`which iptables`
## megadjuk a modulkönyvtárat:
MODKT=/lib/modules/`uname -r`/kernel/net/ipv4/netfilter
## megkeressük a modprobe parancsot
MODPROBE=`which modprobe`
## kivesszük az ipcímünket:
IFACE=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1 }'`
echo
echo "=========================================="
echo "| :: TUZFAL BEÁLLITÁSA :: |"
echo "=========================================="
## először törlünk minden szabályt.
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES --flush
$IPTABLES --delete-chain
$IPTABLES -t nat -F
$IPTABLES -t nat --delete-chain
echo "Minden szabály törlése .............[ OK ]"

## felállítjuk az alap policyt.
## mindent tiltunk, amit külön nem engedélyezünk.
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
echo "Alap szabályok beállítása ..........[ OK ]"

## beállitjuk a betöltendő modulokat
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe iptable_filter
echo "Modulok betöltése ..................[ OK ]"

## figyeljük a syn sütiket
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Anti-synflood védelem ..............[ OK ]"

## bekapcsoljuk a forráscímhitelesítést.
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
for spoofing in /proc/sys/net/ipv4/conf/default/rp_filter; do
echo "1" > $spoofing
done
echo "Anti-spoofing védelem ..............[ OK ]"

## INPUT szabályok.
## loopback -en engedélyezzük a forgalmat.
$IPTABLES -A INPUT -i lo -j ACCEPT
## engedélyezzük befele, ami tőlünk származik.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
## figyeljük, hogy a tcp kapcsolatok, tényleg a syn bittel kezdődjenek.
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

## SSH hozzáférést akarunk.
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT -m state --state NEW

## HTTP hozzáférést akarunk.
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT -m state --state NEW

## INPUT logolás
$IPTABLES -A INPUT -j LOG --log-prefix "Alapért. elutasítva (INP): " ## ami jönne, azt loggoljuk
$IPTABLES -A INPUT -j DROP ## utána eldobjuk.
echo "INPUT szabályok beállítása .........[ OK ]"

## OUTPUT szabályok.
##$IPTABLES -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request ##kifele menő "ping" -re szükség lehet.
$IPTABLES -A OUTPUT -o lo -j ACCEPT ## loopback -en engedélyezzük a forgalmat.
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## jóváhagyott kapcsolatok engedélyezése.

## SSH mehet.
$IPTABLES -A OUTPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

##kifele menő "ping" -re szükség lehet.
#$IPTABLES -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request

## OUTPUT logolás
$IPTABLES -A OUTPUT -j LOG --log-prefix "Alapért. elutasítva (OUT): " ## ami jönne, azt loggoljuk
$IPTABLES -A OUTPUT -j DROP ## utána eldobjuk.

echo "OUTPUT szabályok beállítása ........[ OK ]"
echo "Kész!! Tüzfal: OK! .................[ OK ]"
echo "=========================================="
echo

az lenne a kérdésem hol rontottam el hogy nem tudok frissiteni a tárolokból??