ඔබ ප්‍රජා සටහනකින් 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 සැකසුම් ඇති අතර එකම තොටුපොළේ වේග සීමාකරණ දෙකක් ගොඩ ගැසීමට පෙර ඒවා පරීක්ෂා කිරීම වටී.

අදාළ ලිපි