Šlo to řešit i na firewallu, po zapnutí podpory v jádře.
# whitelist rozsahu $IPTABLES -A INPUT -p tcp --dport $SSHD_PORT -s 55.66.11.* -j ACCEPT # whitelist konkretnich IP $IPTABLES -A INPUT -p tcp --dport $SSHD_PORT -s 46.78.90.12 -j ACCEPT # oznackovani a zalogovani pokusu o pripojeni (tyka se jen pokus o pripojeni pres rozhrani z Internetu) $IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport $SSHD_PORT -m state --state NEW -m recent --set --name ssh_con --rsource # blokovani adres, ze kterych je ucineno vice nez 10 pokusu o prihlaseni za 5 minut $IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport $SSHD_PORT -m state --state NEW -m recent --update --seconds 300 --hitcount 10 --name ssh_con --rsource -j DROP # a jinak se pouzije bezne otevreni portu $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport $SSHD_PORT -j allowed
7. 6. 2024, 17:44 editováno autorem komentáře
Já naprosto běžně za použití klíčů otevírám několik spojení naráz a díky hbitým prstům, scp a rsyncu jich i hodně ukončuju. Těch 10 pokusů za 5 minut bych ani neměl problém překonat. Chápu, že jste chtěl zmínit alternativu, ale osobně mi nepřijde moc praktická, zvlášť, když to nástroje jako fail2ban umí lépe.
Nikoho nepřesvědčuji, že řešení, které jsem zmínil je lepší, nebo horší.
Je naprosto normální, že "někomu/vám" to přijde, pro vaše specifické použití nepraktické a pro mě je to praktické a funkční řešení.
V době, kdy jsem to použil poprvé, žádný fail2ban ještě neexistoval a dnes tu máme spousty možností: DenyHosts, Stockade, Crowdsec, ... Můžeme se radovat a zvesela konfigurovat, až se bude /etc/ zelenat.
Problém?
Pro někoho může být výhoda, že se nemusí sahat např. do logů a z nich něco filtrovat nebo spouštět další proces, který z vnějšku ovlivňuje pravidla, že je to rychle odbaveno na nižší úrovni a false positive ho netrápí.
(Takže furt dokola, pro někoho to může být užitečné pro někoho ne. Ať si to každý nastaví, jak potřebuje.)
Ale vy nijak nerozlisite, ze "jen" selhala negociacni faze (kdy se domlouvaji sifry a tak) a kdy do toho fakt nekdo busi s cilem opravdu se vlamat dovnitr. Rozsireni openssh, pod kterym tu vedete polemiku je o naopak tom, ze naopak do tech logu sahat vubec nemusite.
A do tech logu jen tak mimochodem sahat (analyzovat) dobre je tak jako tak. Mit log jen stylem "se tam podivam, az se to pokazi" neni zrovna stastny napad. A netyka se to jen ssh a pokusu o prunik timto smerem.
Spokojeně používáte a sám tohle používám třeba na Mikrotikách, kde to jinak rozumně řešit nejde, ale to neznamená, že je to správně a když už se to tu v diskusi zmiňuje jako jedna z alternativ k lepšímu řešení, je slušné pro neznalé/nezkušené kolegy uvést, že toto řešení není správně, protože v jejich setupu můžou lehce narazit na problémy, které tohle řešení má.
To, že něco spokojeně používáte 20 let, neznamená, že to mohou stejně spokojeně používat všichni ostatní. Když jste ten vážný nedostatek nezmínil vy, je v pořádku, že to zmínil někdo jiný. Že vám ten nedostatek nevadí, to nic neznamená. Ano, někomu to nemusí vadit, ale je potřeba o tom nedostatku vědět.
RE. "neznamená, že to mohou stejně spokojeně používat všichni ostatní." :
Jako bych snad někde tvrdil, že to to mohou/mají používat všichni ostatní? Takže jen jinými slovy opakujete to co jsem napsal.
RE. Když jste ten vážný nedostatek nezmínil vy...:
Nepovažoval jsem za užitečné, pod zprávičkou o nové funkci SSH, rozebírat ultradetailně klady a zápory téhle aletrnativy. Takovou podrobnou analýzu tady nikdo nedělal ani u nových funkcí SSHčka, ani u Fail2Ban.
RE. "Pokud použijete třeba v cyklu scp":
Ano, pokud takový počítač, ze kterého budete pouštět scp v cyklu nebudete mít ve whitelistu, tak to fungovat nebude. Z Čehož vyplývá, že mě tohle omezení nikdy netrápilo.
A ano, je v pořádku, že jste zmínil další nedostatek/y mnou zmíněné alternativy, když jste měl potřebu to zmiňovat. Dokonce jsem za to i rád, ale pokud možno, mi nevkládejte do úst/klávesnice něco co jsem nenapsal.
Přijde mi, že to tady máme tímhle stylem komunikace zaplevelené a je mi nepříjemné to neustále vysvětlovat a ospravedlňovat. Tuším, že těch pár lidí, kteří mají vnitřní nastavení/potřebu takhle komunikovat, znechutí a odradí spoustu lidí, kteří raději nenapíšou nic. Což je často škoda.
Zřejmě stále nechápete, že to vaše nastavení je špatně. Vy jste na to zřejmě shodou okolností nepřišel, pro vaše použití vám to nevadí, což ale neznamená, že to není špatně. Není to plnohodnotná alternativa té nové funkcionality OpenSSH. Ta diskuse není ultradetailní rozebírání kladů a záporů vaší alternativy, je to vysvětlení základního důvodu, proč to alternativa není. A když to nedokážete napsat vy, jako autor, protože to nevíte, musí to holt za vás napsat někdo jiný.
Vysvětlovat a ospravedlňovat to opravdu nemusíte. Jediné, co byste v téhle situaci mohl udělat, je napsat, že tohle vám nedošlo a že to opravdu obecně použitelné není. Kdybyste místo bludu nenapsal nic, škoda by to nebyla.
A vy jste nepochopil, že moje použití téhle technologie není špatně a není to ani shodou okolností. Je to zhodnocením mých potřeb, schopností a vlastností dalších možností.
A o tom, že jsem si vybral dobře, svědčí dlouholeté používání, bez zásadních problémů.
Mimo jiné se mi líbí Unixovský princip, že se aplikace nesnaží dělat všechno, ale že se funkcionalita skládá z více programů, které se specializují na svou činnost (s rozumem). Taky se mi líbilo, že nemusím přidávat další službu, když už tam mám něco co je pro mé potřeby naprosto vyhovující.
Tím, že jsem o tom psal, že to má své klady a zápory jsem, pro někoho možná nejasně, sdělil, že to nepovažuji za plnohodnotnou náhradu jiných řešení. Stejně jako ta nová funkcionalita přímo v SSH není plnohodnotnou náhradou této alternativy.
A vůbec jsem neměl potřebu rozvádět kde to používám a proč. Prostě jen zmínit další možnost. Tam kde by mi to nevyhovovalo používám fail2ban, někde mám port knocking a až otestuji novou funkcionalitu v SSH, tak možná použiji i to.
Tímto bych rád tuto neplodnou diskuzi skončil.
Jestli potřebujete mít pocit převahy a "udolání domnělého protivníka" klidně vám napíšu: "nedošlo mi, že to opravdu obecně použitelné není".
Ve skutečnosti nedošlo vám, že z toho žádné univerzální a dokonalé řešení nedělám a od začátku píšu, že je to alternativa, která má své klady a zápory.
(Boha jeho, jak u blbých...)
A nezapomeňte zase něco antisociálního napsat, ať máte "poslední slovo".
A vy jste nepochopil, že moje použití téhle technologie není špatně
Jenže vy jste nepsal o vašem použití, vy jste to doporučil obecně jako plnohodnotnou alternativu. A pro takové použití je to vaše řešení špatně.
A o tom, že jsem si vybral dobře, svědčí dlouholeté používání, bez zásadních problémů.
Ne, to vskutku nesvědčí. Stejně byste mohl obhajovat třeba to, že nemáte zálohovaná data – a snad se shodneme na tom, že to není dobrá volba.
Tím, že jsem o tom psal, že to má své klady a zápory
To jste ovšem nenapsal v prvním komentáři, ale teprve po té, co jste byl upozorněn na to, že to vaše řešení je špatné. Navíc z vašich reakcí je zřejmé, že jste si nebyl vědom problému vašeho řešení.
sdělil, že to nepovažuji za plnohodnotnou náhradu jiných řešení
Bohužel jste v prvním komentáři napsal přesný opak.
Prostě jen zmínit další možnost.
Jen zmínit další možnost je ovšem k ničemu. Další možnost je třeba taky vytáhnout síťový kabel. V drtivé většině případů to není použitelná možnost, ale pokud přestaneme rozlišovat kvalitu a budeme jenom hromadit možnosti, skončí i tohle na té hromadě možností.
Jestli potřebujete mít pocit převahy a "udolání domnělého protivníka" klidně vám napíšu: "nedošlo mi, že to opravdu obecně použitelné není".
Nepotřebuju. Jenom bych ocenil, kdybyste příště nejprve přemýšlel a teprve pak psal.
Ve skutečnosti nedošlo vám, že z toho žádné univerzální a dokonalé řešení nedělám
Nikdo netvrdil, že to považujete za dokonalé řešení. Za univerzální řešení jste to označil tím, že jste to uvedl jako alternativu k jinému řešení, které je do značné míry univerzální.
od začátku píšu, že je to alternativa, která má své klady a zápory.
Nepíšete to od začátku, ale až od okamžiku, kdy vás někdo upozornil, že to dělá něco jiného, než si zřejmě myslíte (každopádně než jste prezentoval).
(Boha jeho, jak u blbých...)
No jo no, když napíšete nesmysl, a když vás na to někdo upozorní, tak se urazíte, to je pak těžké.
A nezapomeňte zase něco antisociálního napsat, ať máte "poslední slovo".
Upozornění na chybu není antisociální. Poslední slovo nemusím mít, jenom mi trošku vadí, že napíšete hloupost, a když vás na to někdo upozorní, tak se jen urazíte a hloupě se vymlouváte.
Pokud vy víte, že se v nějaké své analýze hodně mýlíte, a přesto ji publikujete, mám pro vás jedinou radu – takovou analýzu nepublikujte.
Místo abyste se mi pokoušel něco vysvětlit, vysvětlete sám sobě, že když už napíšete nějaký nesmysl a někdo vás na to upozorní, máte se k tomu postavit čelem a ne fňukat, že se vás dotýká, když někdo na vaše nesmysly upozorní.
Ja pouzivam toto a jsem spokojeny:
#will permit only 1 new connection per IP per 5 seconds -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 5 --hitcount 2 -j DROP
pokud ten limit nezamerne prekrocim, tak se spojeni jen vytvori pomaleji. nedojde k odmitnuti, takze bezna funkcnost se nenarusi.
v openssh se da jeste snizit pocet pokusu na jedno spojeni, ale i defaultne je to omezeny...
pri pouziti iptables-compat (iptables nad nftables) jsem musel nejak upravit ten 5s limit, protoze se pocital trochu jinak.