❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

zabezpeceni ssh

Návody a problémy s konfigurací.
imhotepcz
Příspěvky: 10
Registrován: 12 years ago

zabezpeceni ssh

Příspěvekod imhotepcz » 6 years ago

zdravim

potrebuji zabezpecit ssh proti utokum.
pokud udelam toto

;;; drop ssh brute forcers
chain=input action=drop protocol=tcp src-address-list=ssh_blacklist dst-port=22 log=no log-prefix=""
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_stage3 address-list=ssh_blacklist address-list-timeout=1w3d dst-port=22 log=no log-prefix=""
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_stage2 address-list=ssh_stage3 address-list-timeout=1m dst-port=22 log=no log-prefix=""
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_stage1 address-list=ssh_stage2 address-list-timeout=1m dst-port=22 log=no log-prefix=""
chain=input action=add-src-to-address-list connection-state=new protocol=tcp address-list=ssh_stage1 address-list-timeout=1m dst-port=22 log=no log-prefix=""

tak ochranim samotny mikrotik, to mi funguje ale pokud chci ochranit jeste ssh na serveru co je za nim tak to uz nic nedela

tam mam nat s presmerovanim na port 2222
;;; ssh

chain=dstnat action=dst-nat to-addresses=192.168.0.3 to-ports=22 protocol=tcp in-interface=O2_VDSL dst-port=2222 log=no log-prefix=""


;;; drop ssh_anubis brute forcers
chain=input action=drop protocol=tcp src-address-list=ssh_anubis_blacklist dst-port=2222
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_anubis_stage3 address-list=ssh_anubis_blacklist address-list-timeout=1w3d dst-port=2222
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_anubis_stage2 address-list=ssh_anubis_stage3 address-list-timeout=1m dst-port=2222
chain=input action=add-src-to-address-list connection-state=new protocol=tcp src-address-list=ssh_anubis_stage1 address-list=ssh_anubis_stage2 address-list-timeout=1m dst-port=2222
chain=input action=add-src-to-address-list connection-state=new protocol=tcp address-list=ssh_anubis_stage1 address-list-timeout=1m dst-port=2222 log=no log-prefix=""
Naposledy upravil(a) imhotepcz dne 11 Nov 2018 12:00, celkem upraveno 1 x.
0 x

Uživatelský avatar
okoun
Příspěvky: 6980
Registrován: 16 years ago
antispam: Ano
Bydliště: Mordor

Příspěvekod okoun » 6 years ago

co třeba chain=forward ?
0 x
Povoláním ISP není jen připojovat lidi k internetu, ale také jim dokázat vysvětlit, že bez pořádné investice do HW nelze udělat kvalitní přípojku a domácí síť...

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 6 years ago

Prosím všechny (a leckdy i nezačátečníky), nastudujte si linuxový netfilter. Není to zase až tak složité a moc to pomůže. Stejně tak doporučuji Linux documentation project, především část o síťování. Dostane to do hlavy principy.

K věci:

Co přijde do chainu INPUT v tabulce filter nikdy neopustí tento stroj. Je to jen VSTUP.
Co jde zkrz, je vždy FORWARD.

Tuto ochranu je lepší vyčlenit do extra chainu (a nespecifikovat to na úroveň portů) a provádět tam jen odskok pro connection-state new z INPUTU a klidně i forwardu. Pak je to univerzální (odskočím si tam s libovolným portem) a lze tím ochránit cokoliv (dělám to i pro winbox, chain se pak nemění). Příklad jsem tu už dával, nejspíš ne jednou.

Také doporučuji používat whitelist. Aby pak člověk nebyl deset dnů na nervy ...

Ale jinak je to ochrana jen částečná. Počítá to připojení. Jenže v jedné konexi lze většinou zkusit těch přihlášení víc (a v MK tohle nejde změnit).

Kód: Vybrat vše

add action=drop chain=sshchain comment="SSH prevent brute force" src-address-list=sys_ssh_blacklist
add action=accept chain=sshchain comment="whitelist" src-address-list=sysSshWhitelist
add action=add-src-to-address-list address-list=sys_ssh_blacklist address-list-timeout=3d chain=sshchain connection-state=new src-address-list=sys_ssh_stage3
add action=add-src-to-address-list address-list=sys_ssh_stage3 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage2
add action=add-src-to-address-list address-list=sys_ssh_stage2 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage1
add action=add-src-to-address-list address-list=sys_ssh_stage1 address-list-timeout=1m chain=sshchain connection-state=new
add action=accept chain=sshchain


Kód: Vybrat vše

/ip firewall filter
add chain=input comment=navazane connection-state=established,related,untracked

#nejenom ochrana tim pocitanim konexi, ale zaroven globalnejsi povoleni addresslistem
add action=jump chain=input connection-state=new dst-port=22,8291 jump-target=sshchain protocol=tcp src-address-list=sysInputNets

#sem samozrejme prijdou ostatni povoleni INPUTu

#a konci se dropem vseho ostatniho
add action=drop chain=input
1 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

the.max
Příspěvky: 1306
Registrován: 18 years ago
Bydliště: Sudetten land
Kontaktovat uživatele:

Příspěvekod the.max » 6 years ago

A není lepší použít na Linuxu fail2ban? Funguje to na kde co, ne jen na SSHčko. To co tu je pro Mikrotik, z toho fal2ban v podstatě vychází, akorát že mikrotik hází odchycený IPčka dynamicky do address listu a po restartu se smažou.
0 x
Vysoce odborných omylů se dopouští jen specialisté.

Jednou jsem se dotkl ukazováčkem UBNT a slezl mi z něho nehet. Od té doby na UBNT nesahám.

imhotepcz
Příspěvky: 10
Registrován: 12 years ago

Příspěvekod imhotepcz » 6 years ago

okoun píše:co třeba chain=forward ?


vyzkouseno a nic to nedela.
0 x

imhotepcz
Příspěvky: 10
Registrován: 12 years ago

Příspěvekod imhotepcz » 6 years ago

ludvik píše:Prosím všechny (a leckdy i nezačátečníky), nastudujte si linuxový netfilter. Není to zase až tak složité a moc to pomůže. Stejně tak doporučuji Linux documentation project, především část o síťování. Dostane to do hlavy principy.

K věci:

Co přijde do chainu INPUT v tabulce filter nikdy neopustí tento stroj. Je to jen VSTUP.
Co jde zkrz, je vždy FORWARD.

Tuto ochranu je lepší vyčlenit do extra chainu (a nespecifikovat to na úroveň portů) a provádět tam jen odskok pro connection-state new z INPUTU a klidně i forwardu. Pak je to univerzální (odskočím si tam s libovolným portem) a lze tím ochránit cokoliv (dělám to i pro winbox, chain se pak nemění). Příklad jsem tu už dával, nejspíš ne jednou.

Také doporučuji používat whitelist. Aby pak člověk nebyl deset dnů na nervy ...

Ale jinak je to ochrana jen částečná. Počítá to připojení. Jenže v jedné konexi lze většinou zkusit těch přihlášení víc (a v MK tohle nejde změnit).

Kód: Vybrat vše

add action=drop chain=sshchain comment="SSH prevent brute force" src-address-list=sys_ssh_blacklist
add action=accept chain=sshchain comment="whitelist" src-address-list=sysSshWhitelist
add action=add-src-to-address-list address-list=sys_ssh_blacklist address-list-timeout=3d chain=sshchain connection-state=new src-address-list=sys_ssh_stage3
add action=add-src-to-address-list address-list=sys_ssh_stage3 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage2
add action=add-src-to-address-list address-list=sys_ssh_stage2 address-list-timeout=1m chain=sshchain connection-state=new src-address-list=sys_ssh_stage1
add action=add-src-to-address-list address-list=sys_ssh_stage1 address-list-timeout=1m chain=sshchain connection-state=new
add action=accept chain=sshchain


Kód: Vybrat vše

/ip firewall filter
add chain=input comment=navazane connection-state=established,related,untracked

#nejenom ochrana tim pocitanim konexi, ale zaroven globalnejsi povoleni addresslistem
add action=jump chain=input connection-state=new dst-port=22,8291 jump-target=sshchain protocol=tcp src-address-list=sysInputNets

#sem samozrejme prijdou ostatni povoleni INPUTu

#a konci se dropem vseho ostatniho
add action=drop chain=input


i toto jsem vyzkousel a kdyz se prihlasim na ssh tak se nestane nikde nic, navic tu druhou cast prilis nechapu. pridal sem tam jeste port 2222 tak ze ted tam je dst-port=22,8291,2222 a nic se nedeje, a nebo deje a nevim kam se kouknout.
0 x

rsaf
Příspěvky: 1669
Registrován: 18 years ago

Příspěvekod rsaf » 6 years ago

Je vůbec potřeba SSH takto chránit? Podle mě je nestandardní port (ale 222 či 2222 to není) + použití klíčů naprosto dostatečná ochrana.
0 x

imhotepcz
Příspěvky: 10
Registrován: 12 years ago

Příspěvekod imhotepcz » 6 years ago

rsaf píše:Je vůbec potřeba SSH takto chránit? Podle mě je nestandardní port (ale 222 či 2222 to není) + použití klíčů naprosto dostatečná ochrana.


ne vzdy je pouziti klicu zadouci, navic pokud mekdo se chce nekam dostat tak si to oskenuje. Vzhledem k tomu ze me mikrotik uz hackli tak to hold resim, a pristup z venci proste potrebuji.
0 x

Uživatelský avatar
Myghael
Příspěvky: 1309
Registrován: 13 years ago

Příspěvekod Myghael » 6 years ago

Doporučil bych všechno zvenku znepřístupnit a vzdálený přístup řešit pomocí VPN.
0 x
Si vis pacem, para bellum.

MikroTik, UBNT, Cisco, TP-Link... rozhoduje vhodnost toho či onoho pro konkrétní použití, ne jaké logo nalepili v Číně na krabici. Na tomto fóru vystupuji jen a pouze sám za sebe.

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 6 years ago

a) mluví se o mikrotiku
b) fail2ban je z principu relativně pomalý. Byť univerzální.
the.max píše:A není lepší použít na Linuxu fail2ban? Funguje to na kde co, ne jen na SSHčko. To co tu je pro Mikrotik, z toho fal2ban v podstatě vychází, akorát že mikrotik hází odchycený IPčka dynamicky do address listu a po restartu se smažou.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 6 years ago

Ideální řešení. V ideálním světě.
Při dohledu stovek zařízení, kde nestačí SNMP je VPNka dost overkill. Dohled VLAN přes celou síť může být nemožné využít. A pak je člověk rád za univerzální firewall přímo na zařízení. A i na tu VPN mohou být útoky. Kromě toho dost často potřebuje člověk přístup i v momentě, kdy ta VPN nejede.
Myghael píše:Doporučil bych všechno zvenku znepřístupnit a vzdálený přístup řešit pomocí VPN.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

imhotepcz
Příspěvky: 10
Registrován: 12 years ago

Příspěvekod imhotepcz » 6 years ago

Myghael píše:Doporučil bych všechno zvenku znepřístupnit a vzdálený přístup řešit pomocí VPN.


ale i to se hacknout, a resit to tim ze vsude budu tahat sebou certifikaty a resit to pomoci nich jeni uplne to prave, i kdyz bezpecne.
0 x

rsaf
Příspěvky: 1669
Registrován: 18 years ago

Příspěvekod rsaf » 6 years ago

Myghael píše:Doporučil bych všechno zvenku znepřístupnit a vzdálený přístup řešit pomocí VPN.

To je sice fajn ale ne vždy ideální, zvláště když se tam potřebuješ připojit narychlo někde z cest z cizího PC.

Jinak mě to prostě připadá zbytečná paranoia. Mám několik zařízení (mikrotik to ale asi není), která jsou již mnoho let vystrčená do internetu s SSHčkem na portu 22, používají se tam hesla (bezpečná) a kromě plnících se logů se nic neděje. Myslím si, že v OpenSSH nebyla nějaká použitelná remote zranitelnost už hooodně let.

Jinak málokdy povoluji SSH zvenčí přímo na zařízení - většinou se SSHčkuju na nějaký server a do zařízení až z něj. Pro stejný účel mám windowsovou virtuálku, kam chodím vzdálenou plochou.
Naposledy upravil(a) rsaf dne 11 Nov 2018 14:52, celkem upraveno 1 x.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 6 years ago

imhotepcz píše:i toto jsem vyzkousel a kdyz se prihlasim na ssh tak se nestane nikde nic, navic tu druhou cast prilis nechapu. pridal sem tam jeste port 2222 tak ze ted tam je dst-port=22,8291,2222 a nic se nedeje, a nebo deje a nevim kam se kouknout.

Tohle funguje. Pravidlo způsobí to, že při první paketu na port 22 skočí do chainu sshchain. Pokud je to první paket (za nějakou dobu) dojde až na předposlední pravidlo a uloží IP do toho addresslistu. A následující pravidlo tu konexi akceptuje.
Pokud během minuty přijde další nová konexe, už nezabere předposlední pravidlo, ale předpředposlední ... a pak poslední opět akceptuje.
Čtvrté připojení už to uloží do addresslistu blacklistu.
Páté skončí hned na prvním pravidle ... a nedovolí připojení, protože tam už je DROP.

Každý řádek firewallu má počítadlo.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

iTomB
Příspěvky: 875
Registrován: 19 years ago

Příspěvekod iTomB » 6 years ago

ludvik píše:
imhotepcz píše:i toto jsem vyzkousel a kdyz se prihlasim na ssh tak se nestane nikde nic, navic tu druhou cast prilis nechapu. pridal sem tam jeste port 2222 tak ze ted tam je dst-port=22,8291,2222 a nic se nedeje, a nebo deje a nevim kam se kouknout.

Tohle funguje. Pravidlo způsobí to, že při první paketu na port 22 skočí do chainu sshchain. Pokud je to první paket (za nějakou dobu) dojde až na předposlední pravidlo a uloží IP do toho addresslistu. A následující pravidlo tu konexi akceptuje.
Pokud během minuty přijde další nová konexe, už nezabere předposlední pravidlo, ale předpředposlední ... a pak poslední opět akceptuje.
Čtvrté připojení už to uloží do addresslistu blacklistu.
Páté skončí hned na prvním pravidle ... a nedovolí připojení, protože tam už je DROP.

Každý řádek firewallu má počítadlo.

Mas to taky trosku zbytecne.
Cele tohle vychazi z meho scriptu, co tu je uz hodne let. V sshchain nemusis uz testovat zda je to nova konexe, porty atd. Muzes tam skocit jak z INPUTu, tak z FORWARDu. Takze pak uz jen testujes zda je to utok ci nikoliv.

Dalsi zabezpeceni je portnocking. Pouzivam a celkem spokojene. Spojeni tehle dvou casti je zatim pro me 100% dostacujici.
0 x