Fórumok
Sziasztok!
Van egy saját gyűjtésű listám ami 200e+ db IP címet és 1e+ db tartományt tartalmaz.
hosts.deny esetében gyakorlatilag minden kapcsolat megállt, gondolom nem erre tervezték.
Iptables esetén van valakinek tapasztalata mennyi szabályt bír el jelentős lassulás vagy beállás nélkül?
Illetve ha erre van más jó megoldás az is nagyon érdekelne.
Hozzászólások
Itt azt írta az egyik kommentelő, hogy 12000 iptables szabályt egy 4 magos gép 2 perc alatt töltötte be.
Az csak a betöltés.
Amúgy ha ésszel csinálja a jóember (pl. classic bináris-fa lenne az ideális, de nyilván elég, ha csak kisebb részekre bontja az ember), akkor azért a betöltésen túl nem hinném, hogy gondot kéne okozzon a működésben.
Betöltés nem lenne lényeg, naponta egyszer frissíteném, illetve elég lenne az újakat betölteni. Újraindításkor max. az egészet. Viszont ennyire nem ismerem az iptables működését, hogy a kapcsolat megvizsgálása és ennyi szabály esetén nem okoz-e problémát.
netfilter first matchel a lancban, emiatt kiszamithato modon lassu. neked IPSet-et kellene hasznalnod, hash:ip, illetve hash:net tipusokkal.
Az ipset jó dolog, de a sima matchekkel is simán kezelhető. Ha tiszta bináris fában tárolod a szabályokat, akkor is max. 32 szabályon kell átvergődni, ennél sokkal hosszabb szabályhalmazok is működnek.
"max. 32 szabályon kell átvergődni"
aha, és mennyi szabály is kell ilyen 200k cím esetében?
262143
BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)
Mekkora bejövő/eldobandó pps -el számolsz?
Érdemes megpróbálni route táblából kezelni az eldobást.
Úgy rémlik az IP Set mintha pont ilyesmire lenne kitalálva, de ha szerencséd van Kadlecsik Józsi majd jön, és megmondja a tutit.
+1
http://daemonkeeper.net/781/mass-blocking-ip-addresses-with-ipset/
+1 az ipset-re.
Nem szeretnék semmilyen tutit megmondani... de szerintem az ipset alkalmasabb a célra, mint az iptables bináris fába rendezett szabályokkal: annak memóriaigénye és kiértékelése "drágább", mint ipset-tel. Továbbá azokat a szabályokat valaminek ki kell számolni és bár Jesper SubnetSkeleton perl modulja remek, de az függ az IPTables::libiptc modultól. Viszont a libiptc soha nem volt publikus library.
Nem tudom ilyen tool van-e, de én lookup table-t használnék. Az még mindig O(1) :) Mondjuk ipv6-ra már nem...
+1 ipset-re
Nagy számú IP-hez való. Hash táblát használ: memóriát áldoz a sebesség oltárán. Be lehet állítani az arányt. Néha Kadlecsik József elő is ad róla itt-ott.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
Köszi, így találtam videót róla.
Nem lenne egyszerűbb mindent tiltani, és csak bizonyos IP-ket engedélyezni?
+1 megelőztél :)
Nem. Szolgáltatást kell adni a gépről, nem csinálhatok egy feliratkozó form-ot, hogy itt vedd fel az IP címed ha használni akarod a weboldalt. :)
nekem erre az az otletem volt, hogy bevagom az ilyen ipket egy "fake" orszag ala a geoip adatbazisba, es csak arra az orszagra tiltok. elvileg a geoip lookup bitang gyors, igy mindegy hogy 10-1000-100k ip van benne.
sajna meg nemvolt idom ezzel foglalkozni, akinek van kedve raugorhat a temara :)
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
Ipset, én is ezt használom openwrt routeren
Itt a script:
#!/bin/sh
logger "[Blacklist update]: starting ..."
if ! ipset list | grep -q blacklist; then
ipset create blacklist 'hash:net'
fi
if ! ipset list blacklist | grep -vq 'Type: hash:net'; then
ipset destroy blacklist
ipset create blacklist hash:net
fi
ipset flush blacklist
for i in ` curl --insecure -s -o - https://www.blocklist.de/downloads/export-ips_all.txt | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort | uniq`;do ipset add blacklist $i ;done
if ! iptables -nL | grep -q 'Chain blacklist'; then
iptables -N blacklist
else
iptables -F blacklist
fi
if ! iptables -L INPUT | grep -q blacklist; then
iptables -I INPUT -m state --state NEW -j blacklist
fi
if ! iptables -nL blacklist | grep -q "match-set"; then
iptables -A blacklist -m set --match-set blacklist src -j LOG -m limit --limit 1/minute --log-prefix 'BLACKLIST '
iptables -A blacklist -m set --match-set blacklist src -j DROP
fi
logger "[Blacklist update]: finished ..."
exit 0
Köszönöm, megnézem.
+1
köszi, ez jó script
Egy kicsit tömörítve... :)
# wget https://www.blocklist.de/downloads/export-ips_all.txt
--2015-07-21 20:13:36-- https://www.blocklist.de/downloads/export-ips_all.txt
www.blocklist.de (www.blocklist.de) feloldása... 176.9.54.236
Csatlakozás a következőhöz: www.blocklist.de (www.blocklist.de)[176.9.54.236]:443... kapcsolódva.
HTTP kérés elküldve, várakozás válaszra... 200 OK
Hossz: 549184 (536K) [text/plain]
Mentés ide: ,,export-ips_all.txt"
export-ips_all.txt 100%[===============================================================================================================================================================>] 536,31K 2,15MB/s idő 0,2s
2015-07-21 20:13:37 (2,15 MB/s) -- ,,export-ips_all.txt" mentve [549184/549184]
# wc -l export-ips_all.txt
38999 export-ips_all.txt
# cat export-ips_all.txt | ips2subnets | wc -l
27488
:)
--
Debian Linux rulez... :D
Ez az ips2subnets jó eszköznek tűnik, de nem találtam róla sehol semmilyen leírást (pl a G. 26 találatot dobott ki). Ez valami saját cucc?
Szeretném majd cron-ba berakni, de valószínűleg ahhoz csinálok egy külön update script-et. blocklist-ről le lehet az utoljára hozzáadottakat is (https://www.blocklist.de/en/api.html#last). Felesleges mindig az egészet beimportálni, relatíva elég sok idő és addig nem is aktív a "védelem".
Igen, az én saját perl script-em...
Itt megtalálod: http://swifty.hu/2015-07-21/ips2subnets
--
Debian Linux rulez... :D
Mellesleg az én script-em:
#!/bin/bash
IP_BLACKLIST=/data/firewall/_ipblacklist
BLACKLISTS=(
"http://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1" # Project Honey Pot Directory of Dictionary Attacker IPs
"http://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=212.40.97.106" # TOR Exit Nodes
"http://www.maxmind.com/en/anonymous_proxies" # MaxMind GeoIP Anonymous Proxies
"http://danger.rulez.sk/projects/bruteforceblocker/blist.php" # BruteForceBlocker IP List
"http://rules.emergingthreats.net/blockrules/rbn-ips.txt" # Emerging Threats - Russian Business Networks List
"http://www.spamhaus.org/drop/drop.lasso" # Spamhaus Don't Route Or Peer List (DROP)
"http://cinsscore.com/list/ci-badguys.txt" # C.I. Army Malicious IP List
"http://www.openbl.org/lists/base.txt" # OpenBL.org 30 day List
"http://www.autoshun.org/files/shunlist.csv" # Autoshun Shun List
"http://lists.blocklist.de/lists/all.txt" # blocklist.de attackers
"https://www.blocklist.de/downloads/export-ips_all.txt"
)
for i in "${BLACKLISTS[@]}"
do
/usr/bin/wget -q -O - "${i}"
done | /bin/grep -Po '(?:\d{1,3}\.){3}\d{1,3}(?:/\d{1,2})?' | ips2subnets > ${IP_BLACKLIST}
--
Debian Linux rulez... :D
Köszi, szép kis gyűjtemény.
Lassan tényleg könnyebb lenne egy listát vezetni azokról az IP-kről, amikről bejöhet a forgalom.
Nekem sokat segít :)
Persze az egész ipset-tel a legjobb...
--
Debian Linux rulez... :D
thx.
Olyan kezdő kérdésem lenne a scriptel, ha újra lefuttatom (pl: cron-ban), akkor a régi blokkolásokat feloldja-e, vagy hozzá veszi? Ha nem oldja fel, akkor hogyan lehet feloldatni?
Köszi előre is!
Kalmi
jelen formájában ez a script minden futáskor felülírja a lista filet.
Értem, azaz a script ezt a file-t "_ipblacklist" figyeli és ami IP benne van a file-ban azt tiltja, ha jól értem?
azt, hogy mi használja, ha jól látom swifty nem tette közzé :)
Igen, megint lehet kezdő kérdésem lesz, bocs, ha nagyon amatőrködök, de nagyon tetszik ez a védelem.
A script, hogyan működik, hogyan blokkolja ezeket az IP címeket?
Néztem a ps aux-ot ott nem fut semmi a script-ből (lehet vak vagyok). Továbbá, ha futtatok egy iptables -L parancsot, akkor sem látom a blokkolt IP-ket. Természetesen a "_ipblacklist" file tartalmazza az IP-ket.
Köszi!
Ez, amire válaszoltál, önmagában sehogy. Ez mindössze annyit csinál, hogy összeszedegeti a webről a különböző listákat, keresztültolja Swifty >itt< linkelt másik scriptjén, ami megkeresi a fedő subneteket, ha jól látom, hogy kb mi van benne, hogy rövidebb legyen a lista, és beleteszi a fileba.
Ezt a listát aztán valahogy meg kell etetni az iptablessel még valahogy, de Swifty azt nem mutatta meg, hogy ő hogy csinálja. Kiindulhatsz pl Eddie85 >itteni< scriptjéből, ha érted mit csinál, a for ciklusba kéne behelyettesíteni, hogy ezt töltse inkább ipsettel.
Ez most nagyon csak ránézésre, de kb ez kell a for ciklus helyére
Azért jó lenne megnézni, hogy neked így érdemes-e használni az aktuális tűzfal setupoddal (bár figyel rá, hogy meglegyen minden chain, és be is teszi a blocklistet az input elejére, amire azért van esély, hogy jó legyen általában).
Miert kell blokkolni ezt az irdatlan mennyisegu IP-t?
-----
"Már nem csak tehetségekből, de a hülyékből is kifogytunk..."
Most már csak kb. 60e. Mert az elmúlt 1-3 hónapban WP, Joomla, IMAP, POP, SMTP próbálkoztak.
IP címekből subneteket nem lehet csinálni? Nekem sokat segített...
--
Debian Linux rulez... :D
Erre való a fail2ban :> aztan tiltod 1 hónapra fölösleges 60e ip-t blokkolni. Illetve ennyi erővel akkor már geoip alá rendezed ahogy másik is mondták. Arról nem beszélve, hogy a zombi hálózat naponta több ezer géppel IP vel bővülhet és csökkenhet, azokat se ártana követni.
Fedora 22, Thinkpad x220
Eleg 10-20 notoriusan probalkozo IP-t fixen tiltani, a tobbi ugyis random.
Csatlatkozom az elottem szolohoz a fail2ban-al kapcsolatban.
A tamadasi felulet csokkentesere pedig:
- WP/Joomla/stb. eseten: az admin URL http(s)://site/admin/ helyett http(s)://site/kiskutya/ legyen
- POP/IMAP/FTP: csak olyan orszagokra engedelyezni ahonnan hasznaljak + fail2ban + webmail (ha nem ernek el pop/imap-ot tudjanak ertesiteni :)
- termeszetesen az SSH-t is mas portra tenni
-----
"Már nem csak tehetségekből, de a hülyékből is kifogytunk..."
Az SSH áttételének mi az értelme? Egy pillanat alatt végigszkenneled a portokat gyakorlati értelmét ilyesminek egyáltalán nem látom (amúgy meg false sense of security témaköre).
FathoM
szemétszűrés, a random végigpróbálkozó automaták ellen véd, azok nem feltétlen scannelnek.
De nem ám. Ha szkennelnek, akkor se mennek 1000 fölé. Ezt is jó észben tartani. Emellett érdemes olyan portra átmenni, ami amúgy benne van a well-known portok listájában. (Mókás nézni az OrbitNet Message Service remote exploitot, amint egy SSH-t próbál gyilkolni. :D :D)
--
Coding for fun. ;)
nem szemetelődik annyit a log
A WP/Joomla admin URL modositasa sem vedi meg a sechole-os CMS-t, ennek ellenere megis csak 5 evente 1x forgjak feltorni es nem naponta 2x. Ertem, hogy false sense of security, de nagyon is praktikus a hasznalata. Miutan egy uj exploit vegigsoport a default telepiteseken te szepen felrakod az uj verziot ami a serulekenysegt javitja, utana mar johet a celzott tamadas a gepre, lepattan.
SSH-nal ugyanez, nem mintha ott napi szintu lenne az exploit, de ha eszreveszed idoben, hogy test felhasznalonak test123 a jelszava akkor meg van idod modositani (meg persze a /var/log sem telik meg havonta szemettel).
-----
"Már nem csak tehetségekből, de a hülyékből is kifogytunk..."
Én azért kezdtem tiltani, mert ugyan nagyrészt random, de baromira hízlalja a logokat (httpd). És egy idő után hatásos. Manapság már elég kevés próbálkozás van naponta. 1 hónapos timeout-ot állítottam be.
"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."
Én is hasonló problémával küzdök, hogy a Fail2ban szép nagyra hízott 1,5 év alatt és igazából nem tudom, hogy mikor lehetne a blokkolt IP-ket feloldani? Erre van valami jó tanács, vagy elég, ha blokkolom az aktuálisakat és ami marad alapon?
subscribe
sub
sub