পিএইচপিএমডায়ামডিন ব্রুটোফোর্স প্রচেষ্টাগুলির জন্য কাস্টম ব্যর্থ 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.