Бир banaction, эки транспорт: fail2ban-VPN-jailди оңдоо
Ban өз аракетиндеги протоколго гана барабар кенен. Тизмектин эсептегичтерин угуучулар менен салыштырыңыз, анан эки транспортту тең jail ичинде камтыңыз.
fail2ban ичинде эч нерсе пакетти өз алдынча таштабайт: ал аракетти чакырат, жана ошол аракет протокол менен портту атайт. Jail ban жөнүндө билдиргенде, ал эми демон кирүүлөрдү кабыл алууну улантса, ban адатта чыныгы жана лог көрсөткөндөн тар. Башка транспорт аркылуу кайра туташкан кардар орнотулган эрежеге эч качан туш келбейт. Бир нерсени өзгөртүүдөн мурун аракеттин эмнени орнотконун демондун эмнени угуп жатканы менен салыштырыңыз, анткени далил аракет жазган фаервол тизмегинде, jail тизмесинде эмес.
Тизмекти окуңуз, jail корутундусун эмес
fail2ban өз тизмегин кызматтын тизмегинин алдына коёт, ошондуктан эсептегичтердин тизмеси так эмне бар экенин көрсөтөт. Jailдин аты менен аталган тизмекте бир эреже болуп, анын протокол тилкеси udp деп окулса, бул келип жаткан TCP кирүүлөрүнө толук түшүндүрмө. Тыюу салынган булактан келген UDP пакеттери гана четке кагылат. Кызматтын TCP угуучусу бар, жана ошол тизмекте эч нерсе ага тийбейт.
Кошуна jailдин таасирине да көңүл буруңуз. Бир хост идеалдуу конфигурацияланган болуп көрүнүшү мүмкүн, анткени жетишпеген жарымын башка jail берет, ал эми ошол эле курулуш ошол jail орнотулбаган жерде эч нерсе кылбайт.
Аракет бир протоколду атайт, жана дал ошол жерден сынат
Ар бир banaction — фаервол буйругунун калыбы, ал эми протокол анын толтургучтарынын биринде турат. Тардык атайын, анткени веб-jail менен DNS-jail үчүн бирдей портторду бөгөттөөнүн кереги жок. Бул кызмат бирден ашык транспортто угуп турганда тузакка айланат, VPN демондору муну көп жасашат. Фильтр эки транспорттун тең ийгиликсиз кирүүлөрүн көзөмөлдөй алат, ал эми аракет бирөөнү гана камтыйт.
SoftEther жана OpenVPN жайгаштыруулары адатта UDP менен TCPни бир убакта угушат, жана лог сабы эки учурда тең бирдей көрүнгөндүктөн фильтр экөөнү тең көзөмөлдөйт. Асимметрия jailдин өз есебинде эч качан көрүнбөйт. fail2ban ийгиликсиздиктерди туура эсептеп, анан ошол ийгиликсиздиктер келген трафиктин жарымына колдонулуучу эреже орнотту.
Ban эки транспортту тең камтысын
Муну jail аныктамасында оңдоңуз; кол менен жазылган эрежелер кийинки кайра жүктөөдө аралашып кетет. Ар бир протокол үчүн бирден эки аракетти ачык жазыңыз:
action = %(banaction)s[name=%(__name__)s-tcp, actionname=%(__name__)s-tcp, protocol="tcp", port="%(port)s", chain="%(chain)s"]
%(banaction)s[name=%(__name__)s-udp, actionname=%(__name__)s-udp, protocol="udp", port="%(port)s", chain="%(chain)s"]
Муну protocol = all менен кыскартууга аракет кылбаңыз. Демейки banaction — multiport аракети, жана ал -p <protocol> -m multiport --dports <port> болуп кеңейет; L4 протоколу жок болсо порт дал келүүсүнө сынай турган эч нерсе жок, ошондуктан iptables эрежени четке кагат, ал эми jail дагы эле ийгиликтүү ban жөнүндө билдирет. iptables-allports же nftables-allports сыяктуу бардык порттордун аракети бир жазууну кабыл алат, бирок ошол булактагы бардык портту бөгөттөйт, бул башка чечим жана өзүнүн негиздемесин талап кылат. protocoltu tcp же udp бойдон калтырып, эки жазууну кабыл алыңыз.
Параметрге ишенүүнүн ордуна эреженин бар экенин далилдеңиз, анткени параметр тизмек аны кармаганга чейин гана ниетти сүрөттөйт:
iptables -S f2b-vpn-tcp
iptables -S f2b-vpn-udp
Ар бир тизмекте бир эреже болушу керек: биринчисинде -p tcp, экинчисинде -p udp, экөө тең бөгөттөлгөн даректи атайт. Анан ошол эле даректин эки транспортто тең четке кагылганын текшериңиз. Тизмекте көрбөгөн ban — үмүт, ал эми ошол симптом жөнүндөгү кийинки билдирүү кайра ошол эле саатты кетирет.
Ban дагы эмнени өткөрүп жиберет, жана кийинки учур
Аракет бир булакты четке кагат, жана анда көрсөтүлгөн порттордо гана. Ал даректерди алмаштырган кол салуучуга каршы эч нерсе кылбайт, жана душмандык машинаны жүздөгөн колдонуучу бөлүшкөн оператор деңгээлиндеги NAT чыгымынан ажырата албайт, анда бир ban эч нерсе кылбаган адамдарды сыртта калтырат. Фильтрдин кардардын чындыгында ээ болгон дарегин окуганына көз жеткириңиз, кайра жиберилген аталышты же прокси дарегин эмес. Ката өзү бүтөөрүндөй терезени кыска кармаңыз.
Булардын эч бири протоколду оңдоону өткөрүп жиберүүгө далил эмес; ал эки ойду бир убакта кармоого далил. Ban jail корутундусу сунуш кылганынан тар, жана толук ban да коркунучтан тар. Фаервол тизмегин демондун угуучулар тизмесинин жанына коюп, протокол-протокол салыштырыңыз, анткени ban кызматка жалпы жете аларын ушул эки тизме чечет.
Кайра жүктөө буйругун жана тизмектер тизмесин jailдин жанындагы runbookта сактаңыз. Кийинки адамга экөө тең керек болот, ал эми jail корутундусу ага экөөнүн бирин да айтпайт.