Sziasztok!
Átnáznétek ezt az IPTABLES konfigot, mert kezdő vagyok és 1 napig barkácsoltam. Ez egy FTP szerver, és ezen kívül csak ssh-t engedek neki, de azt is csak 1 gépről.
Mindenféle hiba vagy javaslat érdekelne, azaz ez így kellő védelmet nyújt-e ha kiteszem a netre? Ja és a feketelistát elfogadja, mert nem tudtam tesztelni...
Köszi előre is.
#!/bin/bash
IPTABLES=/sbin/iptables
# Feketelista: ezekrol nem fogadunk el bejovo csomagokat
FEKETELISTA=" 1.0.0.0/8 2.0.0.0/8 5.0.0.0/8 7.0.0.0/8 10.0.0.0/8 23.0.0.0/8 27.0.0.0/8 31.0.0.0/8 36.0.0.0/8 37.0.0.0/8 \
39.0.0.0/8 41.0.0.0/8 42.0.0.0/8 49.0.0.0/8 50.0.0.0/8 58.0.0.0/8 70.0.0.0/8 71.0.0.0/8 72.0.0.0/8 73.0.0.0/8 \
74.0.0.0/8 75.0.0.0/8 76.0.0.0/8 77.0.0.0/8 78.0.0.0/8 79.0.0.0/8 92.0.0.0/8 93.0.0.0/8 94.0.0.0/8 95.0.0.0/8 \
96.0.0.0/8 97.0.0.0/8 98.0.0.0/8 99.0.0.0./8 100.0.0.0/8 101.0.0.0/8 102.0.0.0/8 103.0.0.0/8 104.0.0.0/8 \
105.0.0.0/8 106.0.0.0/8 107.0.0.0/8 108.0.0.0/8 109.0.0.0/8 110.0.0.0/8 111.0.0.0/8 112.0.0.0/8 113.0.0.0/8 \
114.0.0.0/8 115.0.0.0/8 116.0.0.0/8 117.0.0.0/8 118.0.0.0/8 119.0.0.0/8 120.0.0.0/4 121.0.0.0/8 122.0.0.0/8 \
123.0.0.0/8 124.0.0.0/8 125.0.0.0/8 126.0.0.0/8 127.0.0.0/8 172.0.0.0/8 173.0.0.0/4 174.0.0.0/8 175.0.0.0/8 \
176.0.0.0/8 177.0.0.0/8 178.0.0.0/8 179.0.0.0/8 180.0.0.0/8 181.0.0.0/8 182.0.0.0/8 183.0.0.0/8 184.0.0.0/8 \
185.0.0.0/8 186.0.0.0/8 187.0.0.0/8 197.0.0.0/8 223.0.0.0/8 224.0.0.0/3 "
# Torlunk minden szabalyt
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
echo "Minden szabaly torlese..................OK"
# Eloszor minden csomagot eldubunk
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
echo "Forgalom leallitasa.....................OK"
# Anti-Synflood, Anti-Spoofing vedelem
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo "Anti-Synflood, Anti-Spoofing vedelem....OK"
$IPTABLES -N feketelista
echo "Feketelista betoltve....................OK"
# Loopback-en engedelyezzuk az IO forgalmat
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Engedjuk befele, ami tolunk szarmazik
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# A tcp kapcsolatok valoban syn bittel kezdodnek-e
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Ssh-t csak az en gepemrol fogadja el
$IPTABLES -A INPUT -p tcp -s xxx.yyy.zzz.vvv --dport 22 -j ACCEPT
echo "Ssh port megnyitva a rendszergazda gep fele........OK"
# FTP-t engedjuk, mert ez egy FTP szerver :)
$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
echo "FTP port nyitva.........................OK"
# Pinget engedem kintrol
$IPTABLES -A INPUT -p icmp -j ACCEPT --icmp-type echo-request
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -j ACCEPT --icmp-type echo-request
$IPTABLES -A INPUT -j DROP
echo "Tuzfal bealltas kesz...................OK"
- 1066 megtekintés
Hozzászólások
A FEKETELISTA mire jo? nem hasznalod semmire...
A vegen az "$IPTABLES -A INPUT -j DROP" felesleges, hiszen az INPUT policy ugyis DROP.
Nincsenek a gepen belul olyan user-eid akik kapcsolatot kezdhetnenek kifele, ugyhogy az OUTPUT-on szures teljesen felesleges.
Es erre en is kivancsi lennek: az "-m state" hasznalata lerontja a teljesitmenyt, hiszen ott minden alkalommal egy tablazatban kell keresni. Nem lenne erdemes ezt a szabalyt a lista legvegere tenni?
- A hozzászóláshoz be kell jelentkezni
Úgy gondoltam hogy a feketelista a betörés ellen való, hogy ne tudjanak kapcsolatot kezdeményezni befelé, de ha nem kell akkor kiszedem.
Ezt az -m state dolgot meg máshonnan olvastam, akkor tegyem a végére? És amúgy jó lesz?
- A hozzászóláshoz be kell jelentkezni
Akkor így kitehetem a netre, védelmet nyújt?
- A hozzászóláshoz be kell jelentkezni
Szerintem ez a "-m state --state ESTABLISHED,RELATED" pedig jó dolog, nagyban megkönnyiti a készitést, későbbi átláthatóságot.
A feketelista betöltését visszaellenőrizted? látszik a táblában?
Nyugodtan tedd ki, elég jó ez:)
- A hozzászóláshoz be kell jelentkezni
iptables -L
van egy ilyen sor:
Chain feketelista (0 references) <-- ez lenne az?
- A hozzászóláshoz be kell jelentkezni
Csak a láncot hoztad létre neki, de semmit nem irányítasz rá.
A "-m state" jó dolog persze, nem azt mondták, hogy vegye ki, csak tegye a végére.
Bár otthoni gépen szinte bármilyen előfizetésed van szerinte tökéletes lesz így is.
-
budacsik
- A hozzászóláshoz be kell jelentkezni
Szerintem nem kell a feketelista lánc, elég egy:
iptables -A INPUT -s $FEKETELISTA -j DROP
szabály.
-
budacsik
- A hozzászóláshoz be kell jelentkezni
$IPTABLES -A INPUT -p tcp -s xxx.yyy.zzz.vvv --dport 22 -j ACCEPT
echo "Ssh port megnyitva a rendszergazda gep fele........OK"
fix ipd van ??mert ha nem netrol nem tudsz be sshzni ! vagy netrol nem akarsz racsatlakozni ??? en mondjuk beletennek 1 3x probalkozasi lehetoseget es ha nem sikerul 2 perc mulva probalkozhat az illeto ujra. Ezt csak akkor ha kirakod netre is az ssht. Meg mondjuk az en maniam h mas portra teszem az ssht.
- A hozzászóláshoz be kell jelentkezni
igen fix ip, de csak belső hálón akarom engedni azt is csak a saját gépemről.. otthon nincs fix ip-m még ezért nem akarom kitenni a net felől is. A 3x próbálkozást hogy lehet beállítani?
- A hozzászóláshoz be kell jelentkezni
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p TCP -s xxx.yyy.zzz.vvv --syn --dport ssh -j ACCEPT
iptables -A INPUT -p TCP --syn --dport ssh -m recent --update --seconds 120 --hitcount 3 -j DROP
iptables -A INPUT -p TCP --syn --dport ssh -m recent --set -j ACCEPT
echo "SSH Blokkolo....................OK"
ezaltal a te ipdrol akarmikor probalkohatsz. masrol meg 3 utan 2 perces varakozas.
Remelem nem basztam valahol el. ssh helyere portot irjal. Meg nem ertem ssh legalabb biztonsagos es azt nem akarod netre kitenni ? :D meg ftp helyett sftp t hasznalnek bar ez fugg milyen ftp lesz mert ha valami nagy pub ftp akkor eleg nehez ravenni az embereket h sftp hasznaljanak ha meg magan ftp akkor mindenkepp sftpt ajanlanek. De lehet hulyen latom a dolgokat.
- A hozzászóláshoz be kell jelentkezni