تاسو د ټولنې له پوسټ څخه یو OpenVPN jail کاپي کړ، fail2ban بیا پیل کړ، او هیڅ پته هیڅکله بندېږي نه. لامل تقریباً تل د لاګ فارمټ دی: Access Server هغه د تصدیق د ناکامۍ کرښې نه لیکي چې معیاري فلټر یې تمه لري. د فلټر د لاس وهلو دمخه تایید کړئ چې ریکارډونه اصلاً شته، ځکه چې نمونه نشي کولی له هغه څه سره سمون خوري چې خدمت هیڅکله نه دي ثبت کړي.

دا هغه کړنلاره ده چې زه یې په Access Server host کې تعقیبوم: د ریکارډ بڼه تایید کړه، یو انګر شوی بیان ولیکه، په ریښتیني لاګ یې وازمویه، بیا 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 په خپله جدول کې یوې ټولګې ته ورسیږي. د اټکل کولو پرځای هغه وګورئ چې ستاسو host یې کاروي.

دوه اړخیزې څېړنې له بندولو هم مهمې دي. لومړی، تایید کړئ چې real_ip د کليینټ پته ده نه د بار برابرونکی یا برعکس پراکسي؛ د پراکسي شاته هر بند پر پراکسي لګیږي او ټول خدمت له ځان سره غورځوي. دوهم، د بندولو لرې کولو طریقه ولیکئ، ځکه چې هغه پته چې 02:00 بجې حد تېروي معمولاً د دندې پر مهال انجنیر ده: fail2ban-client set openvpnas-tunnel unbanip 203.0.113.24.

د تنظیم پر مهال حد په یاد ولرئ. Fail2ban په یوه د تصدیق سطحه کې د سرعت محدودونکی دی، د لاسرسي کنټرول طبقه نه. دا MFA، د هر حساب محدودیتونه یا د اداري انټرفیس له عامه انټرنیټ څخه لرې ساتل نه بدلوي، او Access Server خپل autoban تنظیمات لري چې د یوه پورټ په سر دوه سرعت محدودونکي د انبارولو دمخه د کتلو وړ دي.

اړوندې مقالې