পিএইচপিএমডায়ামডিন ব্রুটোফোর্স প্রচেষ্টাগুলির জন্য কাস্টম ব্যর্থ 2ban ফিল্টার


9

এর সাথে অত্যধিক ব্যর্থ phpMyAdminলগইন প্রচেষ্টাগুলি ব্লক করার প্রয়াসে fail2ban, আমি একটি স্ক্রিপ্ট তৈরি করেছি যা লগ করে একটি ফাইলের ব্যর্থ প্রচেষ্টা:/var/log/phpmyadmin_auth.log


কাস্টম লগ

/var/log/phpmyadmin_auth.logফাইলটির ফর্ম্যাটটি হ'ল:

phpMyadmin login failed with username: root; ip: 192.168.1.50; url: http://somedomain.com/phpmyadmin/index.php
phpMyadmin login failed with username: ; ip: 192.168.1.50; url: http://192.168.1.48/phpmyadmin/index.php

কাস্টম ফিল্টার

[Definition]

# Count all bans in the logfile
failregex = phpMyadmin login failed with username: .*; ip: <HOST>;

পিএইচপিএমআইএডমিন জেল

[phpmyadmin]

enabled  = true
port    = http,https
filter   = phpmyadmin
action   = sendmail-whois[name=HTTP]
logpath  = /var/log/phpmyadmin_auth.log
maxretry = 6

fail2banলগ রয়েছে:

2012-10-04 10:52:22,756 fail2ban.server : INFO   Stopping all jails
2012-10-04 10:52:23,091 fail2ban.jail   : INFO   Jail 'ssh-iptables' stopped
2012-10-04 10:52:23,866 fail2ban.jail   : INFO   Jail 'fail2ban' stopped
2012-10-04 10:52:23,994 fail2ban.jail   : INFO   Jail 'ssh' stopped
2012-10-04 10:52:23,994 fail2ban.server : INFO   Exiting Fail2ban
2012-10-04 10:52:24,253 fail2ban.server : INFO   Changed logging target to /var/log/fail2ban.log for Fail2ban v0.8.6
2012-10-04 10:52:24,253 fail2ban.jail   : INFO   Creating new jail 'ssh'
2012-10-04 10:52:24,253 fail2ban.jail   : INFO   Jail 'ssh' uses poller
2012-10-04 10:52:24,260 fail2ban.filter : INFO   Added logfile = /var/log/auth.log
2012-10-04 10:52:24,260 fail2ban.filter : INFO   Set maxRetry = 6
2012-10-04 10:52:24,261 fail2ban.filter : INFO   Set findtime = 600
2012-10-04 10:52:24,261 fail2ban.actions: INFO   Set banTime = 600
2012-10-04 10:52:24,279 fail2ban.jail   : INFO   Creating new jail 'ssh-iptables'
2012-10-04 10:52:24,279 fail2ban.jail   : INFO   Jail 'ssh-iptables' uses poller
2012-10-04 10:52:24,279 fail2ban.filter : INFO   Added logfile = /var/log/auth.log
2012-10-04 10:52:24,280 fail2ban.filter : INFO   Set maxRetry = 5
2012-10-04 10:52:24,280 fail2ban.filter : INFO   Set findtime = 600
2012-10-04 10:52:24,280 fail2ban.actions: INFO   Set banTime = 600
2012-10-04 10:52:24,287 fail2ban.jail   : INFO   Creating new jail 'fail2ban'
2012-10-04 10:52:24,287 fail2ban.jail   : INFO   Jail 'fail2ban' uses poller
2012-10-04 10:52:24,287 fail2ban.filter : INFO   Added logfile = /var/log/fail2ban.log
2012-10-04 10:52:24,287 fail2ban.filter : INFO   Set maxRetry = 3
2012-10-04 10:52:24,288 fail2ban.filter : INFO   Set findtime = 604800
2012-10-04 10:52:24,288 fail2ban.actions: INFO   Set banTime = 604800
2012-10-04 10:52:24,292 fail2ban.jail   : INFO   Jail 'ssh' started
2012-10-04 10:52:24,293 fail2ban.jail   : INFO   Jail 'ssh-iptables' started
2012-10-04 10:52:24,297 fail2ban.jail   : INFO   Jail 'fail2ban' started

আমি যখন ইস্যু করি:

sudo service fail2ban restart

fail2banআমাকে ইমেলগুলি আবার বলতে শুরু sshকরেছে, তবে আমি আমার phpmyadminজেল সম্পর্কে তেমন কোনও ইমেল পাইনি । বারবার ব্যর্থ লগইনগুলির phpMyAdminকারণে কোনও ইমেল প্রেরণ হয় না।

আমি কিছু সমালোচনামূলক সেটআপ মিস করেছি? আমার ফিল্টারটির নিয়মিত প্রকাশটি কি ভুল?


আপডেট: ডিফল্ট ইনস্টলেশন থেকে পরিবর্তন যোগ করা হয়েছে

একটি পরিষ্কার fail2banইনস্টলেশন দিয়ে শুরু :

সিপি /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

আমার নিজের ইমেল ঠিকানা পরিবর্তন করুন, ক্রিয়া করুন:

action = %(action_mwl)s

নিম্নলিখিত যুক্ত করুন jail.local

[phpmyadmin]

enabled  = true
port     = http,https
filter   = phpmyadmin
action   = sendmail-whois[name=HTTP]
logpath  = /var/log/phpmyadmin_auth.log
maxretry = 4

নিম্নলিখিতটি যুক্ত করুন /etc/fail2ban/filter.d/phpmyadmin.conf

# phpmyadmin configuration file
#
# Author: Michael Robinson
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

# Count all bans in the logfile
failregex = phpMyadmin login failed with username: .*; ip: <HOST>;

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#

# Ignore our own bans, to keep our counts exact.
# In your config, name your jail 'fail2ban', or change this line!
ignoreregex =

আবার শুরু fail2ban

sudo service fail2ban restart

পিএস: আমি ডিম পছন্দ করি


1
দেখে মনে হচ্ছে এটি কনফিগারেশনে আপনার নতুন জেল তুলছে না। আপনি কোন ফাইলটি পরিবর্তন করেছেন তা দয়া করে নির্দিষ্ট করুন।
— মিগ্রোর্ভেন

@ এমগোর্ভেন আমি কী পরিবর্তন করেছি তার একটি বিস্তৃত ওভারভিউ দিয়ে আমার প্রশ্নটি আপডেট করেছি
— মাইকেল রবিনসন

এই প্রকৃত লগইন আপনার phpmyadmin উদাহরণস্বরূপ প্রচেষ্টা বা তারা কেবল phpmyadmin খুঁজছেন স্ক্যানার ?
— স্কট প্যাক

আমি বিশ্বাস করি তারা পরের
— মাইকেল রবিনসন

উত্তর:


8

এটি ঠিক আছে তবে কেন ব্যর্থ লগইনগুলি লগ করতে অ্যাপাচি কার্যকারিতাটি ব্যবহার করছেন না?

ভার্চুয়ালহস্ট বিভাগ অনুযায়ী আপনার অ্যাপাচি কনফিগারেশনে (যেমন: /etc/apache2/conf.d/phpmyadmin.conf) এই লাইনগুলি যুক্ত করুন:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{userID}n %{userStatus}n" pma_combined
CustomLog /var/log/apache2/phpmyadmin_access.log pma_combined

তারপরে ব্যর্থ 2ban ফিল্টারটি তৈরি করুন:

/etc/fail2ban/filter.d/phpmyadmin.conf

[Definition]
denied = mysql-denied|allow-denied|root-denied|empty-denied
failregex = ^<HOST> -.*(?:%(denied)s)$
ignoreregex =

এখন জেলটি /etc/fail2ban/jail.local এ যুক্ত করুন

[phpmyadmin]
enabled = true
port = http,https
filter = phpmyadmin
logpath = /var/log/apache2/phpmyadmin_access.log

অ্যাপাচি এবং ব্যর্থ 2ban পুনরায় চালু করুন:

service  apache2 reload
service fail2ban reload

এবং আপনি হয়ে গেছেন, পিএইচপি স্ক্রিপ্টগুলির প্রয়োজন নেই ..


3
দয়া করে সরাসরি সম্পাদনা করবেন না jail.conf, পরিবর্তে একটি অনুলিপি তৈরি করুনjail.local
— NineCattoRules

আপনি ঠিক বলেছেন সিমোন, আমি আমার উত্তরটি পরিবর্তন করেছি, ধন্যবাদ
— স্পেসবাইকার

সমাধানে আমার সমস্যা হচ্ছে। দয়া করে দেখুন: সার্ভারফল্ট.কোশনস

2
  1. লগ ফাইলগুলিতে টাইমস্ট্যাম্প অন্তর্ভুক্ত করার জন্য আপনার স্ক্রিপ্টটি পরিবর্তন করা উচিত। এটি ছাড়া ব্যর্থ 2ban কাজ করবে না

  2. fail2ban-regex /var/log/phpmyadmin_auth.log /etc/fail2ban/filter.d/phpmyadmin.confপ্রথমে আপনার রেজেক্সটি যাচাই করতে ব্যবহার করুন ।

  3. আমি আপনার মূল কনফিগারেশন (জেল.লোকালের পূর্বে) সফলভাবে ব্যর্থ 2ban শুরু করতে পারি

    Oct  7 00:42:07 hostname yum: Installed: python-inotify-0.9.1-1.el5.noarch 
    Oct  7 00:42:08 hostname yum: Installed: fail2ban-0.8.4-29.el5.noarch
    Oct  7 00:42:10 hostname yum: Installed: phpMyAdmin-2.11.11.3-2.el5.noarch
    Oct  7 01:01:03 hostname fail2ban.server : INFO   Changed logging target to SYSLOG for Fail2ban v0.8.4
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Creating new jail 'phpmyadmin'
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' uses Gamin
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set maxRetry = 2
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set findtime = 600
    Oct  7 01:01:03 hostname fail2ban.actions: INFO   Set banTime = 600
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Creating new jail 'ssh-iptables'
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' uses Gamin
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Added logfile = /var/log/secure
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set maxRetry = 5
    Oct  7 01:01:03 hostname fail2ban.filter : INFO   Set findtime = 600
    Oct  7 01:01:03 hostname fail2ban.actions: INFO   Set banTime = 600
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' started
    Oct  7 01:01:03 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' started
    Oct  7 01:10:54 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' stopped
    Oct  7 01:10:55 hostname fail2ban.jail   : INFO   Jail 'ssh-iptables' stopped
    Oct  7 01:10:55 hostname fail2ban.server : INFO   Exiting Fail2ban
    Oct  7 01:10:56 hostname fail2ban.server : INFO   Changed logging target to SYSLOG for Fail2ban v0.8.4
    Oct  7 01:10:56 hostname fail2ban.jail   : INFO   Creating new jail 'phpmyadmin'
    Oct  7 01:10:56 hostname fail2ban.jail   : INFO   Jail 'phpmyadmin' uses Gamin
    Oct  7 01:10:56 hostname fail2ban.filter : INFO   Added logfile = /var/log/phpmyadmin_auth.log
    
  4. একবার সঠিক রেজেক্স স্থিত হয়ে গেলে, আপনি নিজের ফাইলটি অ্যাক্সেস করেছেন কিনা তা ব্যর্থ করার জন্য নিরীক্ষা ব্যবহার করতে পারেন ব্যর্থ 2 ব্যাঙ্ক দ্বারা।

আমি ব্যবহার করতাম auditctl -w /var/log/phpmyadmin_auth.log -p warx -k phpmyadmin_fail2ban


সমাধানটি নিয়ে আমার সমস্যা হচ্ছে, দয়া করে দেখুন: সার্ভারসফল্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.