Fail2ban на VPN-шлюзе: што ён выпраўляе, а што не
Fail2ban блакуе крыніцы, якія правальваюцца ў вашых журналах, і гэта ўсё. Ці дапаможа гэта VPN-шлюзу, залежыць ад паверхні ўваходу і ад таго, хто дзеліць адрас.
Кожная адкрытая служба атрымлівае адзін і той жа савет: пастаўце на яе fail2ban. Для VPN-шлюза гэты савет не памылковы і не дастатковы, і менавіта стаўленне да яго як да галачкі ў змацненні прыводзіць да таго, што людзі застаюцца з турмой (jail), якая нічога карыснага не блакуе. Fail2ban чытае запісы пра збоі, на якія вы яго паказваеце, і просіць бэкенд выканання заблакаваць адпаведныя крыніцы. Уся яго каштоўнасць залежыць ад таго, якая паверхня аўтэнтыфікацыі спарадзіла запіс, ці з'яўляецца адрас у ім сапраўдным кліентам і што адбываецца з усімі астатнімі за гэтым адрасам.
Што такое fail2ban механічна
Фільтр супастаўляе радкі ў журнале, турма лічыць супадзенні па крыніцы, а дзеянне прымяняе бан праз бэкенд фаервола. Тры рухомыя часткі, і кожная можа быць няправільнай незалежна.
Ні адна з трох не дакранаецца шляху аўтэнтыфікацыі: fail2ban рэагуе на сведчанні пасля факту і ніколі сам не правярае ўліковыя даныя. Таму турма можа працаваць бездакорна, пакуль паверхня, якую яна называе, застаецца гэтак жа адкрытай, як і раней.
Слухач тунеля — гэта не форма ўваходу
Слухач OpenVPN, абаронены tls-auth або tls-crypt, адкідае пакеты без абароны кіравальнага канала яшчэ да пачатку звычайнай апрацоўкі TLS. Сканер, у якога ніколі няма ключа, не стварае нічога, што мог бы палічыць ваш фільтр. Аўтэнтыфікацыя па сертыфікатах дадае яшчэ адну браму, бо пароля, які можна адгадаць, няма. Праект Fail2ban апісвае агульную мадэль на аснове журналаў, і агульны фільтр VPN не ператварае неаўтэнтыфікаваны пакет у значную падзею збою.
Калі шлюз прымае толькі сертыфікаты, гісторыі пра brute-force, ад якой вы абараняецеся, на гэтым порце можа ўвогуле не быць.
Дык якую паверхню вы абараняеце?
Адзін і той жа хост часта адкрывае тры розныя рэчы: слухач тунеля, партал кліенцкіх профіляў або самаабслугоўвання і старонку адміністравання. Партал і адмін-старонка маюць формы з паролем і ствараюць радкі журнала, якія фільтр можа палічыць. Тунель можа ствараць толькі памылкі рукапаціскання, якія значаць зусім іншае. Супастаўляйце турму з паверхняй, а не з назвай прадукту.
Адна турма, якая сочыць за няправільным журналам, горш за адсутнасць турмы, бо яна стварае ўпэўненасць без пакрыцця. Накіруйце фільтр уваходу на памылкі рукапаціскання тунеля — і лічыльнік спрацуе на сканерах, у якіх ніколі не было ключа, а атака пароляў на партал застанецца непалічанай. Прачытайце радок журнала, які супастаўляе фільтр, перш чым давяраць ліку турмы.
Атрыбуцыя крыніцы — слабое звяно
Бан настолькі добры, наколькі добры адрас, на які ён нацэлены. Калі служба стаіць за лакальным зваротным проксі, адрас кліента ў журнале можа быць адрасам проксі, і бан забярэ ўсіх. Давер да перададзенага загалоўка з ненадзейнай крыніцы дае зламысніку магчымасць блакаваць адвольныя адрасы. На UDP адрасы крыніц можна падрабіць, таму іх падлік патрабуе большай асцярожнасці, чым падлік завершанага ўваходу па TCP.
Запішыце метад атрыбуцыі крыніцы ў README турмы, бо перададзены загаловак з ненадзейнага хопа ператварае бан у зброю.
Пабочны кошт — гэта іншыя людзі
Некалькі супрацоўнікаў за адным офісным NAT дзеляць адрас, таму адзін састарэлы захаваны пароль можа заблакаваць увесь офіс, як толькі парог будзе перасягнуты. Журнал паказвае адну крыніцу і адзін уліковы запіс, якія праваліліся, а не аварыю ва ўсім офісе.
Кароткія баны і ўмераныя парогі паменшваюць гэта, а задокументаваны шлях разблакіроўкі паменшвае нагрузку на падтрымку, калі гэта ўсё ж адбываецца. Адрас — грубы сігнал, а не асоба, і чалавек, які адкрые заяўку, апіша аварыю, а не парог.
Калі ўнедрыць, а калі выправіць нешта іншае
Унедрыце яго, калі на паверхні, якую вы кантралюеце, ёсць рэальны, прыпісваемы, паўторны збой анлайн-уваходу, і калі бэкенд выканання сапраўды пакрывае гэтую паверхню. Выпраўце нешта іншае, калі праблема ў слабой палітыцы ўліковых даных, у старонцы кіравання, адкрытай у інтэрнэт, або ва ўліковым запісе, які паспяхова ўваходзіць таму, што быў скампраметаваны. Бан не можа выправіць нічога з гэтага і не можа паглынуць трафік, які ўжо насыціў ваш аплінк. Апошняя праблема належыць вышэй па плыні — таму, хто можа фільтраваць, пакуль пакеты не дайшлі да вас.
Трымайце кожную турму прывязанай да адной паверхні, пераглядайце хібныя спрацоўванні і вымярайце пазбегнутую працу аўтэнтыфікацыі, а не колькасць заблакаваных адрасоў.