Нэг 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 зэрэг бүх портын үйлдэл нэг бичлэгийг хүлээж авдаг ч тухайн эх сурвалжийн бүх портыг хаадаг, энэ нь өөр шийдвэр бөгөөд өөрийн үндэслэл шаарддаг. 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-ын дүгнэлт түүнд аль нэгийг нь ч хэлэхгүй.