એક banaction, બે ટ્રાન્સપોર્ટ: fail2ban-VPN-jail સુધારવી
બાન ફક્ત તેની ક્રિયાના પ્રોટોકોલ જેટલું જ પહોળું હોય છે. ચેન કાઉન્ટરની શ્રોતાઓ સાથે સરખામણી કરો, પછી jail ની અંદર જ બંને ટ્રાન્સપોર્ટ આવરી લો.
fail2ban માં કંઈ પણ પોતાની રીતે પેકેટ છોડતું નથી: તે એક ક્રિયા બોલાવે છે, અને તે જ ક્રિયા પ્રોટોકોલ અને પોર્ટને નામ આપે છે. જ્યારે jail બાનની જાણ કરે છે અને ડીમન લોગિન સ્વીકારવાનું ચાલુ રાખે છે, ત્યારે બાન સામાન્ય રીતે સાચું અને લોગ સૂચવે તેનાથી સાંકડું હોય છે. બીજા ટ્રાન્સપોર્ટ પરથી ફરી જોડાતો ક્લાયન્ટ ક્યારેય સ્થાપિત નિયમને મળતો નથી. કંઈપણ બદલતા પહેલાં ક્રિયાએ શું સ્થાપિત કર્યું અને ડીમન શું સાંભળે છે તેની સરખામણી કરો, કારણ કે પુરાવો ક્રિયાએ લખેલી ફાયરવોલ ચેનમાં છે, jail ની યાદીમાં નહીં.
ચેન વાંચો, jail નો સારાંશ નહીં
fail2ban પોતાની ચેન સેવાની ચેન પહેલાં ઉમેરે છે, તેથી કાઉન્ટર યાદી બરાબર શું છે તે દર્શાવે છે. jail ના નામ પરની ચેન, જેમાં એક નિયમ છે જેની પ્રોટોકોલ કૉલમ udp બતાવે છે, તે આવતા રહેતા TCP લોગિન માટે સંપૂર્ણ સમજૂતી છે. ફક્ત પ્રતિબંધિત સ્રોતના UDP પેકેટ જ નકારવામાં આવે છે. સેવા પાસે TCP શ્રોતા છે, અને તે ચેનમાં કંઈ પણ તેને સ્પર્શતું નથી.
પડોશી jail ની અસર પણ ધ્યાનમાં રાખો. એક હોસ્ટ સંપૂર્ણ રૂપે ગોઠવાયેલું દેખાઈ શકે ફક્ત એટલા માટે કે બીજી jail ખૂટતો અડધો ભાગ પૂરો પાડે છે, અને તે જ બિલ્ડ ત્યાં કંઈ કરતું નથી જ્યાં તે jail સ્થાપિત નથી.
ક્રિયા એક જ પ્રોટોકોલનું નામ આપે છે, અને ત્યાં જ તે તૂટે છે
દરેક banaction ફાયરવોલ આદેશનું નમૂનો છે, અને પ્રોટોકોલ તેના એક પ્લેસહોલ્ડરમાં બેસે છે. સાંકડાઈ જાણી જોઈને છે, કારણ કે વેબ jail અને DNS jail ને સમાન પોર્ટ અવરોધવાનું કોઈ કામ નથી. જ્યારે સેવા એક કરતાં વધુ ટ્રાન્સપોર્ટ પર સાંભળે ત્યારે તે ફાંસો બને છે, જે VPN ડીમન નિયમિતપણે કરે છે. ફિલ્ટર બંને ટ્રાન્સપોર્ટની નિષ્ફળ લોગિન જોઈ શકે છે જ્યારે ક્રિયા એકને આવરી લે છે.
SoftEther અને OpenVPN ની તૈનાતી સામાન્ય રીતે એકસાથે UDP અને TCP પર સાંભળે છે, અને લોગ લાઇન બંને કિસ્સામાં સરખી દેખાય છે તેથી ફિલ્ટર બંનેને જુએ છે. અસમમિતિ jail ના પોતાના અહેવાલમાં ક્યારેય દેખાતી નથી. fail2ban એ નિષ્ફળતાઓ યોગ્ય રીતે ગણી અને પછી એવો નિયમ સ્થાપિત કર્યો જે તે નિષ્ફળતાઓ જે ટ્રાફિક પર આવી તેના અડધા ભાગને લાગુ પડે છે.
બાન બંને ટ્રાન્સપોર્ટને આવરી લે તેમ કરો
તેને 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 હજી પણ સફળ બાનની જાણ કરે છે. iptables-allports અથવા nftables-allports જેવી સર્વ-પોર્ટ ક્રિયા એક એન્ટ્રી સ્વીકારે છે, પણ તે તે સ્રોતના દરેક પોર્ટને અવરોધે છે, જે અલગ નિર્ણય છે અને તેનું પોતાનું સમર્થન જોઈએ. protocol ને tcp અથવા udp પર રાખો અને બે એન્ટ્રી સ્વીકારો.
સેટિંગ પર ભરોસો કરવાને બદલે નિયમ અસ્તિત્વમાં છે તે સાબિત કરો, કારણ કે ચેન તેને પકડે ત્યાં સુધી સેટિંગ ફક્ત ઇરાદો વર્ણવે છે:
iptables -S f2b-vpn-tcp
iptables -S f2b-vpn-udp
દરેક ચેને એક નિયમ સૂચવવો જોઈએ, પ્રથમમાં -p tcp અને બીજામાં -p udp, બંને પ્રતિબંધિત સરનામું નામ આપે. પછી ખાતરી કરો કે એ જ સરનામું બંને ટ્રાન્સપોર્ટ પર નકારવામાં આવે છે. ચેનમાં ન જોયેલું બાન એક આશા છે, અને એ જ લક્ષણનો આગલો અહેવાલ ફરી એ જ કલાક ખર્ચશે.
બાન હજી શું ચૂકે છે, અને આગલો કિસ્સો
ક્રિયા જે કરે છે તે એક જ સ્રોતને નકારવાનું છે, અને ફક્ત તેમાં સૂચિબદ્ધ પોર્ટ પર. તે સરનામાં ફેરવતા હુમલાખોર સામે કંઈ કરતું નથી, અને તે દુશ્મન મશીનને સેંકડો વપરાશકર્તાઓ વચ્ચે વહેંચાયેલા કેરિયર-ગ્રેડ NAT એક્ઝિટથી અલગ કરી શકતું નથી, જ્યાં એક બાન ન કરેલું કંઈ ન કરનારા લોકોને બહાર રાખે છે. ખાતરી કરો કે ફિલ્ટર ક્લાયન્ટ પાસે ખરેખર જે સરનામું છે તે વાંચે છે, ફોરવર્ડ કરેલું હેડર કે પ્રોક્સી સરનામું નહીં. વિન્ડો પૂરતી ટૂંકી રાખો જેથી ભૂલ પોતાની રીતે પૂરી થાય.
એમાંથી કંઈ પણ પ્રોટોકોલ સુધારો છોડી દેવાની તરફેણમાં નથી; તે એકસાથે બે વિચાર રાખવાની તરફેણમાં છે. બાન jail ના સારાંશ સૂચવે તેનાથી સાંકડું છે, અને સંપૂર્ણ બાન પણ ધમકી કરતાં સાંકડું છે. ફાયરવોલ ચેનને ડીમનના શ્રોતા યાદીની બાજુમાં મૂકો અને પ્રોટોકોલ પ્રમાણે સરખાવો, કારણ કે તે બે યાદી નક્કી કરે છે કે બાન સેવા સુધી પહોંચી શકે છે કે નહીં.
રીલોડ આદેશ અને ચેન યાદી jail ની બાજુમાં રનબુકમાં રાખો. આગલી વ્યક્તિને બંનેની જરૂર પડશે, અને jail નો સારાંશ તેને એક પણ નહીં કહે.