elso iptables-em, atneznetek?

Fórumok

szoval ugy vagdostam ossze kulonbozo pedakbol. probaltam mindent megkereseni google-al mert olyat nem akartam bele rakni amit nem ertek, hogy miert van ott.

tobbeknel lattam hogy modprobe-al toltenek be kulonbozo modulokat, de nem jottem ra miert? errol irnatok par szot es hogy esetleg nekem melyikre van szuksegem

koszonok minden hozzaszolast, javaslatot, tanacsot elore is...

#!/bin/sh
## otthoni tuzfal, egygepes rendszerre

case "$1" in
start)
echo -n "Activating Firewall... "

## megkeressuk az iptables-t:
IPTABLES=`which iptables`

## tegyük fel, hogy ez a címünk
IFACE=192.168.1.1

## mindent tiltunk, amit kulon nem engedelyezunk
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

## Enabling SYN cookies is a very simple way to defeat SYN flood attacks while using only a bit more CPU
## time for the cookie creation and verification.
## figyeljuk a syn sutiket
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

## When enabled, if a packet comes in on one interface, but our response would go out a different
## interface, drop the packet. Unnecessary on hosts with only one interface, but remember, PPP and VPN
## connections usually have their own interface, so it's a good idea to enable it anyway.
## bekapcsoljuk a forrascimhitelesitest.
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

## INPUT szabalyok
## loopback-en engedelyezzuk a forgalmat
$IPTABLES -A INPUT -i lo -j ACCEPT

## engedelyezzuk befele, ami tolunk szarmazik.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## figyeljuk, hogy a tcp kapcsolatok, tenyleg a syn bittel kezdodjenek.
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

## kintrol csak ssh hozzaferest akarunk.
$IPTABLES -A INPUT -p tcp --dport ssh -j ACCEPT

## ami jonne, azt loggoljuk:
$IPTABLES -A INPUT -j LOG --log-prefix "nem kellene bejonnie"

## OUTPUT szabalyok
## loopback-en engedelyezzuk a forgalmat.
$IPTABLES -A OUTPUT -o lo -j ACCEPT

## jovahagyott kapcsolatok engedelyezese.
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## a DNS kell
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

## http mehet
$IPTABLES -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

## https mehet
$IPTABLES -A OUTPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

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

## ftp mehet
$IPTABLES -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

##kifele meno "ping"
$IPTABLES -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request

;;
stop)
echo -n "Deactivating Firewall... "

## torlunk minden szabalyt
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
;;

restart)
$ stop
$ start
;;
esac

Hozzászólások

A tuzfal leallitasa a stop opcional nem leallitja hanem teljesen blockolja a halozati forgalmat mert a policyk DROP -on maradnak.

A kulonbozo portra vonatkozo tcp szabalyokat egy szabalyba osszevonhatod a multiport segitsegevel

iptables -A OUTPUT -p tcp -m multiport --dports 21,22,80,443 -m state --state NEW,ESTABLISHED -j ACCEPPT

Amugy jonak tunik ha mukodik bar en sem vagyok egy iptables guru

"messze van meg mire en guru leszek iptablesben"

"a stop szekcioban allitsd be a policyket ACCEPPT-re
iptables -P INPUT ACCEPPT
iptables -P OUTPUT ACCEPPT
iptables -P FORWARD ACCEPPT"

Khm.. khm!
....vagy mégsem? :)

----------------------------------------------------------------
"De a gátvédelem az...az mán nem mindegy!"

az output-ok vegere is rakj egy ilyet:
$IPTABLES -A OUTPUT -j LOG --log-prefix "nem kellene kimennie"
es akkor latni fogod, ha vmi ki akar menni.
1. latszik ha nem okes
2. latod, hogy miert nem megy a sajat stuffod.

De inkabb igy csinald:
(utolso input utan)
$IPTABLES -A DROP -j LOG --log-prefix "nem kellene be"
$IPTABLES -A DROP -j DROP

(utolso output utan)
$IPTABLES -A OUTPUT -j LOG --log-prefix "nem kellene kimennie"
$IPTABLES -A OUTPUT -j DROP

hasznald inkabb az iptables-save es iptables-restore parancsokat, sokkal gyorsabb mint egyenkent hozzaadni a szabalyokat a lanchoz

udv Zoli

## engedelyezzuk befele, ami tolunk szarmazik.
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ez elé vagy után:
iptables -A INPUT -m state --state INVALID -j DROP

ugyanis később az ssh-nál elfogadod ezeket is, ami gondolom elírás akart lenni. Így nem kell ezzel foglalkoznod.

azt hittem, az angol tudás megy, és az INVALID egyértelmű lesz, miután ott van a többi állapot is :( Szóval az érvénytelen csomagokat dobasd el vele, mielőtt bármit is kezdesz az összes többivel, hiszen azok tutira nem tartoznak egyetlen kapcsolathoz sem, így feleslegesen nem is terheled vele a gépet.

A másik fele: mindenhol ott van, hogy --dport XX -m state --state NEW -j ACCEPT, kivéve az ssh kapcsolatnál, ezért írtam, amit írtam.

egyes tuzfalakban talaltam ilyen bejegyzeseket:

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp

erre sajnos nem tudtam rajonni, hogy mire jo? leirna nekem valaki par szoban? szuksegem van erre?

Ha modulként vannak jelen, akkor betölti.
Ha kernelbe be van forgatva, akkor nem kell külön betölteni.

zless /proc/config.gz vel nézheted meg a kernel belításait.

Ha ezeknek megfelelő helyre m van írva akkor modul, ha y akkor kernelben van, ha n akkor nincs ilyened, és ha kell akkor forgatnod kell kernelt, vagy másikat letölteni.

modulokat tolt be
az ip_tables kernel modul szolgaltatja az alaptablakat es alap iptabes funkciokat.

A conntrack modul kapcsolatkovetest tesz lehetove -ez nem tudom hogy mukodik pontosan- , allitolag nagyobb biztonsagot eredmenyez.
A nagyobb biztonsagnak viszont nagyobb az ara is amit eroforrasban kell megfizetni. Itt a hupon meg nem lattam olyan iptables scriptet amiben lett volna kapcsolatkovetes, pedig vannak itt nalam hozzaertobb emberek is.

Az ip_conntrack_ftp modul egy un helper , egy kisegito modul ami lehetove teszi a kapcsolatkovetest ftp kapcsolatokra is

Én pár éve raktam össze ezt a scriptet, elég sok ismerősnek is oda lett adva :-)
http://cvk.hu/tuzfal/ipfw

jópofa viszontlátni kicsit átdolgozva, hátha javítva van benne 1-2 dolog, ami elkerülte a figyelmemet.
________________
Intel(R) Pentium(R) 4 CPU 1.80GHz, 512 MB ram, 2.6.20-gentoo-r7

Én ezt használom, már két éve.
Persze kicsit át kellett alakítanom, hogy a subneten belül adott portok elérhetőek legyenek a subneten belül lévő gépek számára.