Home / სისტემები / CentOS / WordPress ძრავის დაცვა Fail2Ban – ის საშუალებით

WordPress ძრავის დაცვა Fail2Ban – ის საშუალებით

იმისათვის, რომ დავიცვათ ჩვენი WordPress-ის ადმინისტრაციის პანელი ისეთი ტიპის თავდასხმებისაგან როგორიცაა Bruteforce შეგვიძლია გამოვიყენოთ მარტივი და მრავალფუნქციონალური ხელსაწყო Fail2Ban. მაშ ასე შევუდგეთ ამ დაცვის სისტემის ინტეგრაციას ჩვენს ვორდპრესზე

ამდროისათვის ინტერნეტ სივრცეში უამრავი ხელსაწყოა, რომელსაც შეუძლია თქვენი ადმინისტრაციი პანელში შეღწევა ელემენტარული პაროლის მორგების გზით. აქიდან გამომდინარე Fail2Ban-ის მუშაობის პრიცნციპი მარტივია, თქვენს მიერ განსაზღვრული რაოდენობის არასწორი ცდის შემდეგ IP მისამართი იბლოკება ასევე თქვენს მიერ განსაზღვრული დროით. შეიძლება ითქვას, რომ Fail2Ban არ გვიქმნის რაიმე განსაკუთრებულ დაცვის სისტემასმ.

თუ სისტემატიურად ანახლებთ WordPress-ის ძრავს და ასევე სისტემატიურად ცვლით მართვის პანელის პაროლს განსაკუთრებულად რთული პაროლით, ამ ხელსაწყოს გამოყენება არ იქნება თქვენთვის აუცილებელი, ხოლო მათთვის ვისაც ურჩევნია ერთი პაროლი ქონდეს მუდმივად მაშინ ეს დაცვის სისტემა თქვენთვის არის განკუთვნილი.

Fail2Ban-ის ინსტალაციას განვიხილავთ CentOS 7 სერვერულ ოპერაციულ სისტემაზე. ამ ხელსაწყოს გამოყენება შეგიძლიათ Ubuntu და Debian – ოპერაციულ სისტემებზე, რაც შეეხება კონფიგურაციებს იგი ზემოთ აღნიშნული ოპერაციული სისტემებისათვის ერთია.

# yum –y install fail2ban

ხოლო თუ იყენებთ Ubuntu ან Debian-ს მაშინ apt –y install fail2ban

დაინსტალირების დროს გამოტანს შეტყობინებას სადაც მოითხოვს ჩვენს დასტურს დავაინსტალიროთ თუ არა, ამ დროს ვკრეფთ Y + Enter ან პირდაპირ Enter

დაინსტალირებოს შემდეგ ჩვენთვის აუცილებელია დავარედაქტიროთ კონფიგურაციის ფაილი და დავამატოთ ახალი ფუნქცია wp-login

კონფიგურაციის ფაილის გასახსნელად და დასარედაქტირებლად ვიყენებთ ხელსაწყოს nano

# nano /etc/fail2ban/jail.conf

როგორც კი გავხსნით არსებული კოდის სულ ბოლოში ვწერთ შემდეგ ფუნქციას

[wp-login] enabled = true
port = http,https
action = iptables[name=WP, port=http, protocol=tcp] # am funqciit vrtavt dablokis shesaxeb mailis gagzavnas
sendmail[name=wp-login, dest=zeroxzed@gmail.com, sender=fail2ban@itgvazava.ga] filter = wp-login
logpath = /web/sites/itgvazava.ga/log/access.log
maxretry = 3

maxretry – ში ვუთითებთ ცდის რაოდენობას, რომლის ამოწურვის შედეგადაც დაიბლოკება IP მისამართი

port – რომელი პორტები იქნება დაბლოკილი

filter – ფილტრის დასახელება, რომლის მიხედვიტაც მოხდება შემოწმება

logpath – ფაილამდე გზა სადაც მოხდება დაბლოკილი ლოგების ჩაწერა.

 

ფუნქციის შენახვის შემდეგ უნდა შევქმნათ ფილტრი, რათა მოხდეს ავტორიზაციის ცდების გაფილტვრა. ამისათვის ჩვენს უნდა შევქნათ ახალი ფაილი შემდეგი გზით

# nano /etc/fail2ban/filter.d/wp-login.conf

ფაილის გახსნის შემდეგ უნდა ჩავწეროთ შემდეგი კოდი

[Definition] Failregex = ^<HOST> .* “POST /wp-login.php

კოდის გაშვების შემდეგ წითლად გახაზულ ადგილას ნახავთ თუ რამდენი ცდა იყო განხორციელებული. თუ გსურთ ყველა განხორციელებული ცდის ნახვა ზემოთ აღნიშნულ კოდს ბოლოში ვუმატებთ

–print-all-matched

და ბოლოს, იმისათვის, რომ ჩვენმა ამდენმა ნაწვალევმა და აუტომატურ რეჟიმში ჩაირთოს სერვერის გადატვირთვის შემდეგ ვწერთ ასეთ კოდს

# systemctl start fail2ban
# systemctl enable fail2ban

ტესტები და მუშაობის შემოწმება

ყოველი შემთხვევისათვის გადავამოწმოთ fail2ban-ში გზა თუ სად მიდის ლოგები, ამისათვის nano რედაქტორით ვხსნით ფაილს /etc/fail2ban/fail2ban.conf და ვეძებთ

logtarget = /var/log/fail2ban.log

ასევე დარწმუნდით, რომ თქვენს სერვერზე სწორად არის გაწერილი როტაცია. CentOS 7 – ში როტაციის შემოწმება აუცილებელია. ამისათვის გადავდივართ შემდეგ გზაზე

# cd /etc/logrotate.d

აქ უნდა ვნახოთ თუ არსებობს ფაილი სახელად “fail2ban”. ისევ nano რედაქტორის საშუალებით ვხსნით მას. ყოველი სერვისისათვის როტაცია განსხვავებულია, ფაილის დაახლოვებითი შემადგენლობა უნდა იყოს ასეთი

/var/log/fail2ban.log {
rotate 7
missingok
compress
postrotate
/usr/bin/fail2ban-client flushlogs 1>/dev/null || true
endscript
}

IP მოსამართების დაბლოკვის პროცესში უნდა გამოჩნდეს ასეთი ლოგი

2018-11-15 16:57:27,878 fail2ban.filter [12814]: INFO [wp-login] Found 188.138.220.43
2018-11-15 17:00:29,738 fail2ban.filter [12814]: INFO [wp-login] Found 188.138.220.43
2018-11-15 17:03:03,292 fail2ban.filter [12814]: INFO [wp-login] Found 185.93.187.31
2018-11-15 17:03:29,419 fail2ban.filter [12814]: INFO [wp-login] Found 188.138.220.43
2018-11-15 17:03:30,184 fail2ban.actions [12814]: NOTICE [wp-login] Ban 188.138.220.43
2018-11-15 17:13:31,082 fail2ban.actions [12814]: NOTICE [wp-login] Unban 188.138.220.43

იმისათვის, რომ გავიგოთ და გადავამოწმოთ არის თუ არა ვინმე დაბლოკილი ამ სერვისისთ, ვწერთ

# iptables -L -v -n

როგორც ხედავთ უკვე არის დამატებული და დაბლოკილი 1 დაბლოკილი IP მისამართი. ასევე ზემოთ წითელი ზოლით მონიშნულში ჩანს, ფილტრაცია მუშაობს.

იმისათვის, რომ გადავამოწმოთ პირდაპირ fail2ban-ში ვინ არის დაბლოკილი, კონსოლში ვწერთ:

# fail2ban-client status wp-login

თუ გსურთ IP მისამართის ხელით დაბლოკვა ამ შემთხვევაში იყენებთ შემდეგ ბრძანებას

# fail2ban-client set [name-of-jail] banip [ip-address]

თქვენს შემთხვევაში შეიძლება მოიყურებოდეს ასეთ

# fail2ban-client set wp-login banip 188.138.220.43

ხოლო იმისათვის, რომ მოხსნათ IP მისამართის ბლოკი იყენებთ შემდეგ ბრძანებას

# fail2ban-client set wp-login unbanip 188.138.220.43

ეს არის მთელი ჩვენი ხრიკი, თუ როგორ მოვიშოროთ უამრავი ბოტი, რომელიც დღეში რამოდენიმე ნაკადად უტევენ ნებისმიერი ტიპის პროექტებს, სისტემებს, პანელებს და ასე შემდეგ. ამ ხელსაწყოს დაყენებისთანავე თქვენ ავტომატურად გერთვებათ ფილტრი ssh პორტზე. აქიდან გამომდინარე თქვენ ავტომატურად რთავთ დაცვას თქვენი მთელი სერვერის გატეხვაზე.

ინფორმაცია itbrain