SMS gateway pro OTP

SMS gateway pro OTP
« kdy: 09. 12. 2020, 12:18:58 »
Zdravím,

budu teď zřejmě řešit 2FA přes SMS u firewallu Fortigate, prakticky stejným způsobem, jako to uvadí na svých stránkách Samuraj:

https://www.samuraj-cz.com/clanek/fortigate-dvoufaktorova-autentizace-spouzitim-otp/

Zadání je takové, že v naší dceřinné společnosti, kde to chtějí nastavit, mají údajně nějakou GSM bránu, která umí posílat i SMS a je tam k tomu nějaké API. Podrobnosti zatím neznám, ale bude to zřejmě REST API nebo něco na ten způsob. Fortigate nicméně umí poslat pouze email. Napadlo mne tedy, že bych si mohl naskriptovat nějaké udělátko, které by si sebralo email z firewallu, z emailu by si to vytáhlo potřebné věci (mobilní číslo a OTP klíč) a pak by z toho udělalo např. JSON pro REST API. S tímhle bych problém neměl, ale teď je otázka, jak to zakomponovat do těch poštovních toků. Nechci to řešit přes POP3/IMAP, ideální by bylo se nějak "napojit" přímo do MTA a tam číhat na ten správný email. Máme tady nějaké servisní SUSE Linuxy (používáme to na dohled sítě), kde patrně běží Postfix, tak jsem si říkal, že by se to tam dalo snad nějak "naroubovat". Protože ale s Linuxem moc nepracuji, tak jsem se chtěl optat, jestli by taková věc byla schůdná a pokud ano, kde se v tom Postfixu podobné věci konfigurují? Popřípadě, jestli třeba už neexistuje nějaká speciální distribuce Linuxu, která je přímo určená na tento typ úloh (OTP, komunikace s GSM bránou, atd.)?


Re:SMS gateway pro OTP
« Odpověď #1 kdy: 09. 12. 2020, 12:57:16 »
Nejjednodušší řešení v Postfixu je použít v local transportu. Případně můžete použít komplexnější [url=http://www.postfix.org/MAILDROP_README.html]Maildrop a e-mail předávat externímu procesu z něj. V obou případech se místo doručení e-mailu do schránky spustí váš proces, který bude mít e-mail na vstupu – a je na vás, co s tím e-mailem uděláte.

Mimochodem, vážně chcete na konci roku 2020 zavádět 2FA se zasíláním kódu přes SMS? Přemýšlím, jaké to má výhody. Je to komplikované, náchylné k poruchám, závislé na mobilní síti, bezpečnost nic moc. Není podstatně lepší, když si uživatelé nainstalují aplikaci pro generování jdnorázových hesel? Jedině že byste měli uživatele, kteří mají jen „hloupé“ mobily.

Re:SMS gateway pro OTP
« Odpověď #2 kdy: 09. 12. 2020, 13:15:48 »
Používal jsem Kannel, www.kannel.org. Bránu jsem měl na seriovém portu, ale HTTP by to umět mělo. Mail2sms jsem nepotřeboval, ale co si pamatuji, tak o tom něco v dokumentaci bylo.

Re:SMS gateway pro OTP
« Odpověď #3 kdy: 09. 12. 2020, 13:38:59 »
Děkuji za reakce. O Kannelu jsem si již něco četl, ale co jsem zkouknul letmo nějaké příklady, měl jsem pocit, že to je právě určené pro setup, kdy je SMS brána připojena přímo k serveru s touto distribucí, což není náš případ. Ale zkusím se trošku víc ponořit do dokumentace, jestli tam nebude implementované i to Mail2SMS.

------

Máte pravdu pane Jirsáku, že lepší by byla aplikace se softwarovým OTP tokenem. Fortinet ji nabízí, ale licence něco stojí :) Každopádně váš názor oprintuji a pošlu na IT vedení naší dceřinné společnosti, jestli si to třeba ještě nechtějí rozmyslet s těmi SMS.

Jinak to, co popisujete s tím maildropem bude zřejmě přesně to, co jsem měl na mysli. Externí proces s emailem na vstupu a zbytek je pak na mě. Děkuji za radu. Mějte se.


dzavy

Re:SMS gateway pro OTP
« Odpověď #4 kdy: 09. 12. 2020, 23:19:57 »
A neumi to standardni implementaci pres Radius? Pak bych pouzil OpenOTP - da se to napojit na vicemene jakoukoliv SMS gateway (pres vlastni custom PHP tridu), umi to softtokeny, atd. A do 40 uzivatelu je to zadarmo.


FKoudelka

Re:SMS gateway pro OTP
« Odpověď #5 kdy: 10. 12. 2020, 21:35:57 »
Zdravím,

budu teď zřejmě řešit 2FA přes SMS u firewallu Fortigate, prakticky stejným způsobem, jako to uvadí na svých stránkách Samuraj:

https://www.samuraj-cz.com/clanek/fortigate-dvoufaktorova-autentizace-spouzitim-otp/

Zadání je takové, že v naší dceřinné společnosti, kde to chtějí nastavit, mají údajně nějakou GSM bránu, která umí posílat i SMS a je tam k tomu nějaké API. Podrobnosti zatím neznám, ale bude to zřejmě REST API nebo něco na ten způsob. Fortigate nicméně umí poslat pouze email. Napadlo mne tedy, že bych si mohl naskriptovat nějaké udělátko, které by si sebralo email z firewallu, z emailu by si to vytáhlo potřebné věci (mobilní číslo a OTP klíč) a pak by z toho udělalo např. JSON pro REST API. S tímhle bych problém neměl, ale teď je otázka, jak to zakomponovat do těch poštovních toků. Nechci to řešit přes POP3/IMAP, ideální by bylo se nějak "napojit" přímo do MTA a tam číhat na ten správný email. Máme tady nějaké servisní SUSE Linuxy (používáme to na dohled sítě), kde patrně běží Postfix, tak jsem si říkal, že by se to tam dalo snad nějak "naroubovat". Protože ale s Linuxem moc nepracuji, tak jsem se chtěl optat, jestli by taková věc byla schůdná a pokud ano, kde se v tom Postfixu podobné věci konfigurují? Popřípadě, jestli třeba už neexistuje nějaká speciální distribuce Linuxu, která je přímo určená na tento typ úloh (OTP, komunikace s GSM bránou, atd.)?
Mobilní provider někdy poskytuje pro firemní (?) číslo emailový účet u něho, mail na něj poslaný přijde jako SMS. Používám.

Re:SMS gateway pro OTP
« Odpověď #6 kdy: 10. 12. 2020, 21:50:56 »
S tím RADIUSem by to neklaplo - má to proprietální mechanismus pro OTP, který je integrovaný jak do samotného firewallu, tak i do SSL VPN klienta.

Co se týče čísla emailového účtu, tak to bohužel taktéž není použitelné - zapomněl jsem napsat do otázky, že to není řešení pro interní zaměstnance (ti se přihlašují přes certifikát), ale pro externí kontraktory. A tam se musí počítat s tím, že mají různé telefonní operátory a různé mobilní tarify.

Já už jsem mezitím získal technické informace o té GSM bráně, co tam na tom Slovensku mají a to sem jim doporučil, aby to odvezli do eko-dvora, že tím se u nás nikdo zabývat nebude. Softwarové tokeny nechtějí - licence jsou pro ně příliš nakládné a GSM brána s podporou Email2SMS (že bych to měl bez práce) je pro ně taktéž příliš drahá ... takže to asi skončí nákupem malého GSM modemu Teltonika, který má ethernet rozhraní a velmi jednoduché API a nějak se to naroubuje na ten Maildrop, jak mi tu radil IT kolega. Bude s tím nějaká práce, ale fungovat by to mělo při minimálních pořizovacích i provozních nákladech (člověko-hodiny inhouse ajtíka se do toho samozřejmě nezapočítavájí :).


_Jenda

  • *****
  • 1 592
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:SMS gateway pro OTP
« Odpověď #7 kdy: 10. 12. 2020, 23:17:45 »
Nechci to řešit přes POP3/IMAP, ideální by bylo se nějak "napojit" přímo do MTA a tam číhat na ten správný email.

Samozřejmě, je na to standardní postup snad od začátku UNIXu - do .forward souboru pro zvoleného uživatele se napíše "|/cesta/ke/skriptu". Když uživateli přijde mail, poštovní server spustí ten skript.

Popřípadě, jestli třeba už neexistuje nějaká speciální distribuce Linuxu, která je přímo určená na tento typ úloh (OTP, komunikace s GSM bránou, atd.)?
Ehm, ne, a i kdyby byla, tak by to byla tak minoritní záležitost (a tedy bez supportu a oprav chyb), že to nechceš používat. Tohle se snadno udělá párřádkovým skriptem (třeba) v Pythonu, nebo koneckonců v shellu. Modem se sériákem (což je i USB CDC ACM nebo Bluetooth rfcomm) bych skriptoval pomocí pythoního modulu pyserial.

Chápu, že na to nemáš vliv, ale doporučil bych okamžitě utéct od čehokoli, co má v názvu řetězec forti: https://seclists.org/bugtraq/2019/Nov/38 https://thehackernews.com/2016/01/fortinet-firewall-password-hack.html https://www.securitynewspaper.com/2019/08/29/fortinet-backdoored-fortios-or-hackers-did-for-monitoring-since-last-5-years/

Re:SMS gateway pro OTP
« Odpověď #8 kdy: 11. 12. 2020, 02:20:19 »
".forward" - už jsem chtěl napsat, že to by asi v tomto případě nefungovalo, ale pak jsem si uvědomil, že klidně můžu naduplikovat příjemce OTP jako uživatele s lokální schránkou - nastíním tvé řešení kolegovi, který se o ty naše Linuxy stará, co by na to řekl ... děkuji za další střípek do skládačky

"(a tedy bez supportu a oprav chyb), že to nechceš používat."
- ano to bychom samozřejmě nechtěli, to mi pak docvaklo, chvíli potom, co jsem tu otázku položil, že taková specializovaná distribuce by asi byla nějaká "jednochlapovka" bez pravidelných aktualizací a bez podpory

"ale doporučil bych okamžitě utéct od čehokoliv" - není kam utíkat, bugy mají všechny podobné NGFW boxy: ZyXEL, Checkpoint, Sophos, Cisco, SonicWall, Palo Alto, atp. - v tomhle ranku si prostě nevybereš - příležitostné bezpečnostní chyby ve firmware mají prostě úplně všichni, stačí jen nahlédnou do release notes ... tristní je bohužel celková zabugovanost těchto zařízení, zřejmě je to nějaký obecný problém této technologie (SSL deep packet inspection, UTM, Layer7 application rules, etc.), jinak si to prostě neumím vysvětlit - nikdy v životě jsem se nesetkal se zařízeními v této cenové relaci, které by obsahovaly tolik zásadních chyb v produkčních firmwarech, které mají v příslušné řadě deset a více minor verzí a stále něco zásadního nefunguje, tak jak by mělo...

_Jenda

  • *****
  • 1 592
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:SMS gateway pro OTP
« Odpověď #9 kdy: 11. 12. 2020, 19:33:49 »
".forward" - už jsem chtěl napsat, že to by asi v tomto případě nefungovalo, ale pak jsem si uvědomil, že klidně můžu naduplikovat příjemce OTP jako uživatele s lokální schránkou - nastíním tvé řešení kolegovi, který se o ty naše Linuxy stará, co by na to řekl

Není potřeba vyrábět systémové uživatele, pravděpodobně server bude používat „virtual transport“. Taky se to dá všechno nastavit jako alias do jedné schránky a skript si odesílatele zjistí z hlaviček mailu (nebo se možná nastavují v proměnných prostředí, nevím).

"ale doporučil bych okamžitě utéct od čehokoliv" - není kam utíkat, bugy mají všechny podobné NGFW boxy: ZyXEL, Checkpoint, Sophos, Cisco, SonicWall, Palo Alto, atp. - v tomhle ranku si prostě nevybereš
No samozřejmě - a co to dělá tak zásadního, že to nemůžete provozovat na normálním Linuxu? Na VPN je OpenVPN/Wireguard/nějaké ty jiné věci co jsem zatím nepotřeboval, na firewall je iptables…

Re:SMS gateway pro OTP
« Odpověď #10 kdy: 11. 12. 2020, 20:09:13 »
"Taky se to dá všechno nastavit jako alias do jedné schránky a skript si odesílatele zjistí z hlaviček mailu" - tak tím lépe, pokud by to šlo až takto jednoduše. Díky za hint, zapíšu si to do poznámek k projektu.

"a co to dělá tak zásadního, že to nemůžete provozovat na normálním Linuxu?" - no to je právě to, ono to ty zásadní věci dělá - s prostým IPtables se to vůbec nedá srovnávat, obzvláště-li pokud je to navěšeno na centrální management a centrální analyzátor logů. Ono to vůbec není vymyšleno špatně - po těch letech, co s tím pracuji, už se mi to i začalo líbit :), ale ta zabugovanost je něco neskutečného - tolik sarkastických poznámek a tolik pláče ze strany adminů, když vyjde nový očekaváný firmware, který je opět produkčně nepoužitelný, jsem v komunitních diskuzích nikde jinde nezažil (a to prosím dotyční admini nepřehánějí).
Samozřejmě - pokud bychom potřebovali pouze tu VPNku a k tomu stavový firewall, tak bychom do NGFW nešli - pořídili bychom si třeba nějaký výkonější Mikrotik a postavili to celé na něm za pár krejcarů.