OpenVPN Access Server க்கான Fail2ban வடிகட்டி: real_ip மற்றும் jail
Access Server அதன் சொந்த பதிவு வடிவத்தை எழுதுகிறது, எனவே நிலையான வடிகட்டிகள் எதையும் கண்டறிவதில்லை. real_ip இல் நங்கூரமிடுங்கள், மேற்பரப்பு வாரியாக jail பிரிக்கவும், முகவரி ப்ராக்ஸி அல்ல என்பதைச் சரிபார்க்கவும்.
நீங்கள் சமூக இடுகையிலிருந்து ஒரு OpenVPN jail ஐ நகலெடுத்து, fail2ban ஐ மீண்டும் தொடங்கினீர்கள், எந்த முகவரியும் ஒருபோதும் தடுக்கப்படுவதில்லை. காரணம் எப்போதும் கிட்டத்தட்ட பதிவு வடிவமே: Access Server நிலையான வடிகட்டி எதிர்பார்க்கும் அங்கீகார தோல்வி வரிகளை எழுதுவதில்லை. வடிகட்டியைத் தொடுவதற்கு முன், பதிவுகள் இருக்கின்றனவா என்று உறுதிசெய்யுங்கள், ஏனெனில் சேவை ஒருபோதும் பதிவு செய்யாத ஒன்றுடன் வடிவம் பொருந்த முடியாது.
Access Server ஹோஸ்டில் நான் பின்பற்றும் செயல்முறை இதுவாகும்: பதிவின் வடிவத்தை உறுதிசெய், ஒரு நங்கூரமிட்ட வெளிப்பாட்டை எழுது, அதை உண்மையான பதிவில் சோதி, பின்னர் தாக்குதலுக்குள்ளான மேற்பரப்பு வாரியாக jail பிரித்து, தடை ஃபயர்வால் வரை செல்வதை உறுதிசெய்.
தோல்விப் பதிவு இருப்பதை உறுதிசெய்யுங்கள்
Access Server தன் சொந்த கட்டமைக்கப்பட்ட வரிகளை /var/log/openvpnas.log க்கு எழுதுகிறது, மேலும் வாடிக்கையாளர் முகவரி syslog வரியின் தொடக்கத்தில் அல்ல, மாறாக மேற்கோள் குறிகளுக்குள் உள்ள real_ip புலத்தில் உள்ளது. எந்த வடிவத்தையும் எழுதுவதற்கு முன், நடந்ததாக உங்களுக்குத் தெரிந்த தோல்வியடைந்த உள்நுழைவைத் தேடுங்கள்:
grep -i 'LOG ERR' /var/log/openvpnas.log | tail -20எதுவும் தெரியவில்லை என்றால், அடுத்த சந்தேக நபர் பதிவு நிலை. Access Server இல் /usr/local/openvpn_as/etc/as.conf இல் பதிவு தரவுத்தள பிழைத்திருத்த சுவிட்ச் உள்ளது (DEBUG_LOGDB=1), மேலும் அதை மாற்றிய பிறகு சேவையை மீண்டும் தொடங்க வேண்டும். அந்த சுவிட்சை, வடிவம் தயாரான பிறகு மீண்டும் குறைக்க வேண்டிய கண்டறியும் அமைப்பாகக் கருதுங்கள், நிரந்தர கட்டமைப்பாக அல்ல.
கோப்பில் இருக்கும்போது எந்த மேற்பரப்புகள் அதில் எழுதுகின்றன என்பதைக் கவனியுங்கள். வாடிக்கையாளர் போர்ட்டல், நிர்வாக இடைமுகம் மற்றும் சுரங்கப்பாதை அங்கீகாரம் ஆகியவற்றின் தோல்விகள் ஒரே கோப்பில் வெவ்வேறு குறிப்பான்களுடன் வந்து சேர்கின்றன, அந்த விவரமே பின்னர் jail அமைப்பைத் தீர்மானிக்கிறது.
real_ip இல் ஒரு வடிகட்டியை நங்கூரமிடுங்கள்
வெளிப்பாட்டைக் குறுகலாக வைத்திருங்கள். IP முகவரி உள்ள எந்த வரியையும் கோரும் வடிகட்டி, சாதாரண இணைப்புத் துண்டிப்புகளுக்காக மக்களைத் தடுக்கும், பிஸியான சேவையகத்தில் மடிக்கணினியை மூடியதற்காக பூட்டப்பட்டதாக பயனர்கள் புகார் கூறுவதே ஒரே அறிகுறி. பிழைப் பதிவைக் கோரி மேற்கோள் குறிகளுக்குள் உள்ள முகவரியைப் பிடியுங்கள்:
# /etc/fail2ban/filter.d/openvpnaccess.local
[Definition]
failregex = ^ .*LOG ERR.*"real_ip": "<HOST>".*
ignoreregex =தொடக்க இடைவெளி அலங்காரம் அல்ல. Access Server தன் பதிவுகளை உள்ளே தள்ளுகிறது, அதில் நங்கூரமிடுவது அதே கோப்பில் எழுதும் தொடர்பில்லாத சேவைகளின் வரிகளையும் கோருவதைத் தடுக்கிறது. உங்கள் பதிவுகள் அதற்குப் பதிலாக தொடக்கத்தில் நேர முத்திரையைக் கொண்டிருந்தால் அந்த முன்னொட்டைப் பொருத்துங்கள், ஆனால் நீங்கள் கோரப்போகும் ஒவ்வொரு பதிவிலும் உண்மையில் இருக்கும் ஒன்றில் நங்கூரமிடுங்கள்.
மேற்பரப்பு வாரியாக துல்லியம் தேவைப்படும்போது, அதே வரியில் மேற்பரப்புக் குறிப்பானை (WEB_CLIENT, WEB_ADMIN அல்லது VPN) கோரி மேலும் குறுக்குங்கள். ஒரு சொல்லால் வேறுபடும் மூன்று வடிகட்டிகளை விட மூன்று வடிவங்கள் கொண்ட ஒரு வடிகட்டி தணிக்கை செய்ய எளிதானது.
jail ஐ இயக்கும் முன் வெளிப்பாட்டைச் சோதியுங்கள்
உற்பத்திப் பதிவில் இயக்காத வடிகட்டியை ஒருபோதும் இயக்க வேண்டாம். ஆவணப்படுத்தப்பட்ட சோதனை வடிகட்டியை இருமுறை கடத்துகிறது, ஒரு முறை ஏற்றுவதற்கும் ஒரு முறை பயன்படுத்துவதற்கும், தவறவிட்ட வரிகளின் அறிக்கையே படிக்கத் தகுந்த பகுதி:
fail2ban-regex --print-all-missed /var/log/openvpnas.log \
/etc/fail2ban/filter.d/openvpnaccess.local \
/etc/fail2ban/filter.d/openvpnaccess.local > missed.txtமுதல் படியில் உறுதிசெய்த தோல்விகளுடன் பொருத்தங்களின் எண்ணிக்கையை ஒப்பிடுங்கள். பூஜ்ஜியப் பொருத்தம் என்றால் வடிவம் தவறு; அங்கீகாரத் தோல்விகள் அல்லாத வரிகளில் பொருத்தம் என்றால் அது மிகவும் அகலமானது. கோராதிருக்க நீங்கள் தேர்ந்தெடுத்த ஒவ்வொரு வரியையும் விளக்கும் வரை missed.txt படியுங்கள்.
பதிவு பெரியதாக இருந்தால் இந்தச் சோதனையை ஒரு நகலில் செய்யுங்கள், Access Server இன் எந்த மேம்பாட்டிற்குப் பிறகும் அதை மீண்டும் இயக்குங்கள். பதிவு வடிவமே நீங்கள் பொருத்தும் இடைமுகம், அது நிலையான API அல்ல.
jail ஐ மேற்பரப்பு வாரியாகப் பிரியுங்கள், டீமன் வாரியாக அல்ல
ஒரு Access Server பல அங்கீகார மேற்பரப்புகளை வழங்குகிறது: 943/tcp இல் வாடிக்கையாளர் மற்றும் நிர்வாக வலை இடைமுகங்கள், பெரும்பாலான பயன்பாடுகளில் 1194/udp அல்லது 443/tcp இல் சுரங்கப்பாதை. அனைத்தையும் மூடும் ஒரே jail, சுரங்கப்பாதையில் ஊக முயற்சிகள் உங்கள் நிர்வாகப் பாதையாகவும் இருக்கும் முகவரியைத் தடுக்க அனுமதிக்கிறது, எந்த மேற்பரப்பு உண்மையில் தாக்குதலில் உள்ளது என்பதை மறைக்கிறது. ஒவ்வொரு மேற்பரப்பிற்கும் அதன் சொந்த போர்ட் மற்றும் வரம்புகளுடன் தனி jail கொடுங்கள்:
# /etc/fail2ban/jail.d/openvpnaccess.local
[openvpnas-web-client]
enabled = true
port = 943
protocol = tcp
filter = openvpnaccess
logpath = /var/log/openvpnas.log
maxretry = 3
findtime = 10m
bantime = 1h
[openvpnas-tunnel]
enabled = true
port = 443
protocol = udp
filter = openvpnaccess
logpath = /var/log/openvpnas.log
maxretry = 5
findtime = 10m
bantime = 1hசிறிய எண்ணிகளுடனும் குறுகிய தடையுடனும் தொடங்குங்கள், ஒரு வாரம் உண்மையான டிராஃபிக்கைக் கவனித்த பிறகு அவற்றை உயர்த்துங்கள். பகிரப்பட்ட அலுவலக முகவரியில் தாராள வரம்பு ஒரு NAT க்குப் பின்னால் உள்ள ஒவ்வொரு பயனரையும் தண்டிக்கிறது, சுரங்கப்பாதை மேற்பரப்பில் ஆக்ரோஷமான தடை இரவோடு இரவாக காலாவதியான சேமிக்கப்பட்ட சான்றுகளைக் கொண்ட சட்டபூர்வ வாடிக்கையாளர்களைத் துண்டிக்கிறது.
தடை, backend மற்றும் பக்க விளைவுகளைச் சரிபாருங்கள்
மீண்டும் தொடங்கிய பிறகு, jail இருப்பதையும் எண்ணிக்கையிடுவதையும் உறுதிசெய்யும் வேகமான வழி நிலை வெளியீடே:
fail2ban-client status
fail2ban-client status openvpnas-tunnelபின்னர் தடை நீங்கள் உண்மையில் இயக்கும் ஃபயர்வால் வரை செல்வதை உறுதிசெய்யுங்கள், ஏனெனில் யாரும் அமல்படுத்தாத backend க்கு அமைக்கப்பட்ட jail எதையும் பாதுகாக்காது. iptables செயலுடன் முகவரிகள் jail இன் பெயரில் உள்ள சங்கிலியில் தோன்றும் (f2b-openvpnas-tunnel); nftables செயலுடன் அவை fail2ban இன் சொந்த அட்டவணையில் உள்ள ஒரு தொகுப்பில் விழும். ஊகிப்பதற்குப் பதிலாக உங்கள் ஹோஸ்ட் பயன்படுத்துவதைச் சரிபாருங்கள்.
இரண்டு பக்கச் சரிபார்ப்புகள் தடையை விட முக்கியம். முதலில், real_ip வாடிக்கையாளர் முகவரி என்பதையும் சுமை சமநிலைப்படுத்தி அல்லது தலைகீழ் ப்ராக்ஸி அல்ல என்பதையும் உறுதிசெய்யுங்கள்; ப்ராக்ஸிக்குப் பின்னால் ஒவ்வொரு தடையும் ப்ராக்ஸி மீது விழுந்து முழு சேவையையும் தன்னுடன் இழுத்துச் செல்கிறது. இரண்டாவது, தடைநீக்க நடைமுறையை எழுதி வையுங்கள், ஏனெனில் 02:00 மணிக்கு வரம்பைக் கடக்கும் முகவரி பொதுவாக பணியில் இருக்கும் பொறியாளருக்கு உரியது: fail2ban-client set openvpnas-tunnel unbanip 203.0.113.24.
சரிசெய்யும்போது வரம்பை நினைவில் வையுங்கள். Fail2ban என்பது ஒரு அங்கீகார மேற்பரப்பில் உள்ள வேகக் கட்டுப்படுத்தி, அணுகல் கட்டுப்பாட்டு அடுக்கு அல்ல. இது MFA, கணக்கு வாரியான கட்டுப்பாடுகள் அல்லது நிர்வாக இடைமுகத்தை பொது இணையத்திற்கு வெளியே வைப்பதற்கு மாற்றாகாது, மேலும் Access Server க்கு அதன் சொந்த autoban அமைப்புகள் உள்ளன, ஒரே போர்ட்டில் இரண்டு வேகக் கட்டுப்படுத்திகளை அடுக்குவதற்கு முன் அவற்றைச் சரிபார்க்கத் தகும்.