egy kis iptables segitseg kellene

Fórumok

hi all
az a gondom hogy epitenem a tuzfalam DROP policyvel de nem igazan akar mukodni
Ha a policit drop-ra allitom akkor nincs semmi meg ha a www-t engedelyezem is.

Irna nekem valaki egy mukodo szabalyt nemi magyarazattal ami csak a www-t engedi be es DROP policy van beallitva.
A keresem hogy legyen state es multiport is benne hogy lassam hogy kene kinezni, utana mar majd csak elboldogulok.
Koszonom

Hozzászólások

Üdv!


*filter
:INPUT DROP
:FORWARD ACCEPT
:OUTPUT ACCEPT
# loopback interface
-A INPUT -i lo -j ACCEPT 
# http és https engedélyezve
-A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT 
# ping echo request engedve
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT 
# egyéb icmp tiltva
-A INPUT -i eth0 -p icmp -j DROP 
# ez az allapottartas
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i eth0 -m state --state INVALID,NEW -j DROP 
COMMIT

Hogy átlásd a láncok működését, itt egy rajz:

Petya

Azt megmondanatok meg hogy ha csak ezt irom be az miert nem jo? iptables -A INPUT -i eth0 -p tcp -m tcp -m multiport --dports 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT

Hűha. Ez a szabály azt jelenti, hogy csak az olyan 80-as vagy 443-as portra kapcsolódásokat engeded, amelyek egy már meglévő kapcsolathoz tartoznak.

Amit írtam, az meg bármit enged a 80,443-ra, a state-es szabályok meg azért vannak, mert kértél állapottartásra példát.

Petya

Udv,

nekem egy olyan szabalyra lenne szuksegem, ami az egy bizonyos portra erkezo csomagokat
atiranyitja egy masik IP-re. tudna ebben valaki segiteniegy peldaval?

Szevasztok!
Gondban vagyok. Egy külső IPcímről a tűzfalon át belülre kéne irányítanom a 3389-es portot (windows távoli asztal hozzáférés (remote desktop)) egy belső hálózati windows szerverre.
A dolog érdekessége, hogy nem működik. :)
Így próbálkoztam:

-A PREROUTING -i eth0 -s (külső fix IP cím) -p tcp -m tcp --dport 3389 -j DNAT --to-destination (windows szerver belső hálózati címe):3389

kipróbáltam, hogy átírtam a belső címet a mail szerverünkre és a portot 25-re, és így ha a külső IPcímről próbálkozok telnetelni akkor remekül beköszön az SMTP kiszolgáló. Tehát elvileg a NAT működne. Windowsba remote viszont nem megy...
A tűzfal logja ezt írja:

kernel: FW: INPUT catch-all: IN=eth0 OUT=eth2 SRC=(külső fix IP) DST=(windows szerver belső címe) LEN=48 TOS=0x00 PREC=0x00 TTL=121 ID=35286 DF PROTO=TCP SPT=3269 DPT=3389 WINDOWS=65535 RES=0x00 SYN URGP

A külső szerver (mikor próbálok csatlakozni) várakozik egy pár másodpercig, majd általános hibaüzenettel leáll (a kapcsolat nem jött létre).
A cél szerver remote portja nyitva van, mert a belső hálózatból nap mint nap remote desktopolok. Csak kintről nem működik. :(

A távoli asztalnak kell a gre (general routing encapsulation) protokoll (47 -es asszem) is. Szóval azt is be kell forwardolni.
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)

Hello!

Van nekem egy tűzfal scriptem és meg szeretném kérdezni, hogy mi a véleménytek róla.
FWVER=0.001
#
# Internet megosztas teszt script
#
echo -e "\n\nAlapveto Internetmegosztas inditasa v. $FWVER..\n"
# A parancsok helye
#
#

IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
# Kulso es belso eszkozok beallitasa
#
# Ebben a peldaban "eth0" a kulso es "eth1" a belso
#
# Ha ADSL-t vagy analog modemet hasznalsz akkor valoszinuleg
# EXTIF="ppp0" kell hogy legyen
# hasznald az "ifconfig" parancsot
#
# az ip cimeket az /etc/networkin/interfaces állományban találod vagy ifconfig paancs segit
# tehát ezeket nem itt állitjuk
# innen kapja a netet
EXTIF="eth0"

# ezek mennek máshová másik gépekbe
INTIF="eth1"
ONTIF="eth2"
# tobbet is be lehet állitani kézzel ...
echo " Kulso eszkoz: $EXTIF"
echo " Belso eszkoz: $INTIF"
echo " Belso eszkoz: $ONTIF"

echo -en " modulok betoltese: "
echo " - Kernel modulok vizsgalata"
$DEPMOD -a
echo -e "----------------------------------------------------------------------\n"
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "ip_conntrack, "
$MODPROBE ip_conntrack
echo -en "ip_conntrack_ftp, "
$MODPROBE ip_conntrack_ftp
echo -en "ip_conntrack_irc, "
$MODPROBE ip_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "ip_nat_ftp\n "
$MODPROBE ip_nat_ftp
echo -e "---------------------------------------------------------------------- \n"
echo -e "eddigi szabályok törlése \n"
$IPTABLES --flush
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

echo -e "---------------------------------------------------------------------- \n"
echo -e " Modulok betoltese kesz.\n"
echo " Ip tovabbitas engedelyezese.."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo " DynamicAddr engedelyezese.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " Alapveto atiranyitasok beallitasa.."

#feltöltés
$IPTABLES -P INPUT ACCEPT
#$IPTABLES -F INPUT
$IPTABLES -P OUTPUT ACCEPT
#$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
#$IPTABLES -F FORWARD
$IPTABLES -t nat -F
#védelmek
$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP

# ez a rész felel a megosztásért
# ha jol megnézed a forwardolás torténeik
# egy belsõ gép 2 sor beállitással megy kinntre

echo -e "új szabályok betöltése"
echo " Csak Belulrol letrehozott kapcsolatok engedelyezese"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT

$IPTABLES -A FORWARD -i $EXTIF -o $ONTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $ONTIF -o $EXTIF -j ACCEPT

$IPTABLES -A FORWARD -j LOG

echo " Ip maszkolas engedejezese a $EXTIF eszkozon"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
# port nyitás
# itt jönnek az állitások vagyis melyik port melyik gép felé legyen nyitva
# ez egy port megnyitása mindkét irányba
# kifelé
$IPTABLES -A PREROUTING -t nat -p tcp -d 192.168.1.3 --dport 34616 -j DNAT --to 192.168.2.7
# befelé
$IPTABLES -A PREROUTING -t nat -p udp -d 192.168.1.3 --dport 34616 -j DNAT --to 192.168.2.7
# ide jön a többi

echo -e "KESZ.\n"

Nem értem teljesen pontosan, hogy mit is szeretnél, és mi a jelenlegi felállás.
A saját gépedről átmenő forgalmat akarod szűrni, vagy ezzel a géppel megosztod a hálózatot és úgy akarsz szűrni?
___________________________________________________________________
Lógnak a pálmafán a kókuszok .... :)

Javaslom, olvass utána a netfilter/iptables és a hálózat, itt a hupon sok-sok téma volt már ezzel kapcsolatban. Kezdd azzal, hogy mi is az ICMP valójában. Az egy dolog, hogy az ICMP echo-t eldobod, de az összes icmp-t NEM SZABAD, ugyanis pl. csatlakozolni próbálsz egy másik géphez pl. böngészővel, s a gép nem elérhető, vagy egyszerűen valamiért nem fut rajta az adott szolgáltatás, akkor egy icmp csomagban jön vissza, hogy nem tudtad elérni. Bár tcp esetén nem feltétlenül, de még ott is lehet, különösen, ha tűzfalban valaki simán regy REJECT targetet állított be.

Ha már nagyjából látod, hogyan működik ez mind, akkor elkezdhetsz gondolkodni azon, hogy saját szkriptet írjál, ellenkező esetben javasolt egy másvalaki által készített szkriptet használni, és utánanézni, hogy hogyan is működik.