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 को छेउको रनबुकमा राख्नुहोस्। अर्को व्यक्तिलाई दुवै चाहिनेछ, र jail को सारांशले उसलाई एउटै पनि बताउने छैन।

सम्बन्धित लेखहरू