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 сияқты барлық порттар әрекеті бір жазбаны қабылдайды, бірақ сол көздегі барлық портты бұғаттайды, бұл басқа шешім және өз дәлелін қажет етеді. protocol-ты 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 қорытындысы оған ешқайсысын айтпайды.

Қатысты мақалалар