მათთვის, ვინც ჰოსტინგის ბიზნესში ხართ, ან თუ საკუთარ სერვერებს მასპინძლობთ და მათ ინტერნეტში აჩვენებთ, თქვენი სისტემების დაცვა თავდამსხმელებისგან უნდა იყოს მაღალი პრიორიტეტი.
mod_security (ღია კოდის შეყვანის გამოვლენისა და პრევენციის ძრავა ვებ პროგრამებისთვის, რომელიც შეუფერხებლად ინტეგრირდება ვებ სერვერთან) და mod_evasive არის ორი ძალიან მნიშვნელოვანი ინსტრუმენტი, რომელიც შეიძლება გამოყენებულ იქნას ვებ სერვერის დასაცავად უხეში ძალის ან (D) DoS თავდასხმებისგან.
mod_evasiveროგორც მისი სახელი გვთავაზობს, თავს არიდებს შესაძლებლობებს თავდასხმის დროს, მოქმედებს როგორც ქოლგა, რომელიც იცავს ვებ სერვერებს ასეთი საფრთხეებისგან.
ამ სტატიაში ჩვენ განვიხილავთ, თუ როგორ უნდა დააინსტალიროთ, დააკონფიგურიროთ და ჩართოთ ისინი Apache– სთან ერთად RHEL/CentOS 8 და 7 ისევე, როგორც ფედორა. გარდა ამისა, ჩვენ შევადარებთ თავდასხმებს, რათა შევამოწმოთ, რომ სერვერი რეაგირებს შესაბამისად.
ეს ვარაუდობს, რომ თქვენ გაქვთ LAMP სერვერი დაინსტალირებული თქვენს სისტემაში. თუ არა, გთხოვთ გადაამოწმოთ ეს სტატია სანამ გააგრძელებთ.
თქვენ ასევე დაგჭირდებათ დაყენება iptables როგორც ნაგულისხმევი ბუხრის წინა ნაწილი ნაცვლად მეხანძრე თუ დარბიხარ RHEL/CentOS 8/7 ან ფედორა. ჩვენ ამას ვაკეთებთ იმისათვის, რომ ორივეში გამოვიყენოთ ერთი და იგივე ინსტრუმენტი RHEL/CentOS 8/7 და ფედორა.
დასაწყებად, გაჩერდით და გამორთეთ მეხანძრე:
# systemctl შეაჩერე firewalld. # systemctl გამორთეთ firewalld.
შემდეგ დააინსტალირეთ iptables- მომსახურება პაკეტი ჩართვამდე iptables:
# yum განახლება && yum iptables- სერვისების დაყენება. # systemctl ჩართავს iptables. # systemctl დაწყება iptables. # systemctl სტატუსის iptables.
გარდა იმისა, რომ უკვე გაქვთ LAMP კონფიგურაცია, ასევე მოგიწევთ ჩართეთ EPEL საცავი ში RHEL/CentOS 8/7 ორივე პაკეტის დაყენების მიზნით. Fedora– ს მომხმარებლებს არ სჭირდებათ რაიმე რეპოს ჩართვა, რადგან epel უკვე Fedora– ს პროექტის ნაწილია.
# yum განახლება && yum install mod_security mod_evasive CentOS/RHEL 8 # dnf ინსტალაცია https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm. # dnf --enablerepo = ყორნის დამატებით დააყენეთ mod_evasive.
როდესაც ინსტალაცია დასრულდება, თქვენ ნახავთ კონფიგურაციის ფაილებს ორივე ინსტრუმენტისთვის /etc/httpd/conf.d.
# ls -l /etc/httpd/conf.d.
ახლა, ამ ორი მოდულის ინტეგრირების მიზნით აპაჩი და დაეტვირთოს ისინი დაწყებისას, დარწმუნდით, რომ შემდეგი ხაზები გამოჩნდება ზედა დონის განყოფილებაში mod_evasive.conf და mod_security.confშესაბამისად:
LoadModule evasive20_module modules/mod_evasive24.so. LoadModule security2_module modules/mod_security2.so.
Ჩაინიშნე მოდულები/mod_security2.so და მოდულები/mod_evasive24.ასე არის შედარებითი გზები, საწყისი /etc/httpd დირექტორია მოდულის წყაროს ფაილში. თქვენ შეგიძლიათ გადაამოწმოთ ეს (და საჭიროების შემთხვევაში შეცვალოთ იგი) შინაარსის ჩამონათვალით /etc/httpd/modules დირექტორია:
# cd/etc/httpd/მოდულები. # pwd. # ls -l | grep -Ei '(მორიდებული | უსაფრთხოება)'
შემდეგ გადატვირთეთ Apache და დარწმუნდით, რომ ის იტვირთება mod_evasive და mod_security:
# systemctl გადატვირთეთ httpd
გადაყარეთ დატვირთული სტატიკური და გაზიარებული მოდულების სია.
# httpd -M | grep -Ei '(მორიდებული | უსაფრთხოება)'
რამდენიმე სიტყვით, ა ძირითადი წესების ნაკრები (აკა CRS) აძლევს ვებ სერვერს მითითებებს, თუ როგორ მოიქცეს გარკვეულ პირობებში. დეველოპერული ფირმა mod_security უზრუნველყოფს უფასოდ CRS დაურეკა OWASP (გახსენით ვებ აპლიკაციის უსაფრთხოების პროექტი) ModSecurity CRS, რომლის გადმოწერა და ინსტალაცია შესაძლებელია შემდეგნაირად.
1. ჩამოტვირთეთ OWASP CRS ამ მიზნით შექმნილი დირექტორია.
# mkdir/etc/httpd/crs-tecmint. # cd/etc/httpd/crs-tecmint. # wget -c https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.2.0.tar.gz -ო ოსტატო.
2. უსათუოდ CRS შეიტანეთ ფაილი და შეცვალეთ დირექტორიის სახელი ჩვენი მოხერხებულობისთვის.
# tar xzf სამაგისტრო. # mv owasp-modsecurity-crs-3.2.0 owasp-modsecurity-crs.
3. ახლა დროა დააკონფიგურიროთ mod_security. დააკოპირეთ ნიმუში ფაილი წესებით (owasp-modsecurity-crs/modsecurity_crs_10_setup.conf.example) სხვა ფაილში . მაგალითი გაფართოება:
# cd owasp-modsecurity-crs/ # cp crs-setup.conf.example crs-setup.conf.
და უთხარი აპაჩი გამოიყენოს ეს ფაილი მოდულთან ერთად ვებ სერვერის მთავარ კონფიგურაციულ ფაილში შემდეგი ხაზების ჩასმით /etc/httpd/conf/httpd.conf ფაილი თუ თქვენ გადაწყვიტეთ tarball– ის ამოხსნა სხვა დირექტორიაში, თქვენ დაგჭირდებათ ბილიკების რედაქტირება Include დირექტივების შემდეგ:
ჩართეთ crs-tecmint/owasp-modsecurity-crs/crs-setup.conf ჩართეთ crs-tecmint/owasp-modsecurity-crs/rules/*. Conf.
დაბოლოს, რეკომენდირებულია, რომ ჩვენ შევქმნათ ჩვენი კონფიგურაციის ფაილი ფარგლებში /etc/httpd/modsecurity.d დირექტორია, სადაც ჩვენ მოვათავსებთ ჩვენს მორგებულ დირექტივებს (ჩვენ დავასახელებთ მას tecmint.conf შემდეგ მაგალითში) შეცვლის ნაცვლად CRS ფაილები პირდაპირ. ამის გაკეთება საშუალებას მოგცემთ გაადვილოთ CRS– ების განახლება ახალი ვერსიების გამოქვეყნებისთანავე.
SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream SecDataDir/tmp.
შეგიძლიათ მიმართოთ SpiderLabs– ის ModSecurity GitHub საცავი სრული განმარტებითი სახელმძღვანელოსთვის mod_security კონფიგურაციის დირექტივები.
mod_evasive არის კონფიგურირებული დირექტივების გამოყენებით /etc/httpd/conf.d/mod_evasive.conf. ვინაიდან არ არსებობს პაკეტის განახლებისას განახლების წესი, ჩვენ არ გვჭირდება ცალკე ფაილი პერსონალური დირექტივების დასამატებლად, განსხვავებით mod_security.
ნაგულისხმევი mod_evasive.conf ფაილს აქვს შემდეგი დირექტივები გააქტიურებული (გაითვალისწინეთ, რომ ამ ფაილს აქვს დიდი კომენტარი, ამიტომ ჩვენ გამოვართვით კომენტარები ქვემოთ კონფიგურაციის დირექტივების ხაზგასასმელად):
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOS დაბლოკვა პერიოდი 10.
დირექტივების ახსნა:
მოგერიდებათ ექსპერიმენტი ამ მნიშვნელობებზე, რათა თქვენს ვებ სერვერს შეეძლოს გაუმკლავდეს ტრაფიკის საჭირო რაოდენობას და ტიპს.
მხოლოდ მცირე გაფრთხილება: თუ ეს ღირებულებები სწორად არ არის დადგენილი, თქვენ რისკავთ, რომ დასრულდება ლეგიტიმური ვიზიტორების დაბლოკვა.
თქვენ ასევე შეგიძლიათ განიხილოთ სხვა სასარგებლო დირექტივები:
თუ ფოსტის სერვერი გააქტიურებულია, შეგიძლიათ გააგზავნოთ გამაფრთხილებელი შეტყობინებები Apache– ის საშუალებით. გაითვალისწინეთ, რომ თქვენ უნდა მიანიჭოთ apache მომხმარებელს SELinux ელ.ფოსტის გაგზავნის ნებართვა, თუ SELinux დაყენებულია აღსრულებაზე. ამის გაკეთება შეგიძლიათ გაშვებით
# setsebool -P httpd_can_sendmail 1.
შემდეგი, დაამატეთ ეს დირექტივა mod_evasive.conf შეიტანეთ სხვა დანარჩენი დირექტივებით:
DOSEmail შეტყობინება [ელფოსტა დაცულია]
თუ ეს მნიშვნელობა დადგენილია და თქვენი ფოსტის სერვერი გამართულად მუშაობს, ელ.წერილი იგზავნება მითითებულ მისამართზე, როდესაც IP მისამართი შავ სიაში მოხვდება.
ამას არგუმენტის სახით სჭირდება სისტემის სწორი ბრძანება,
DOSSystemCommand
ეს დირექტივა განსაზღვრავს ბრძანებას, რომელიც უნდა შესრულდეს, როდესაც IP მისამართი ხდება შავ სიაში. ის ხშირად გამოიყენება shell სკრიპტთან ერთად, რომელიც დაამატებს firewall– ის წესს, რათა დაბლოკოს შემდგომი კავშირები ამ IP მისამართიდან.
როდესაც IP მისამართი ხდება შავ სიაში, ჩვენ უნდა დავბლოკოთ მისგან მომავალი კავშირები. ჩვენ გამოვიყენებთ შემდეგ shell სკრიპტს, რომელიც ასრულებს ამ სამუშაოს. შექმენით დირექტორია სახელწოდებით scripts-tecmint (ან ნებისმიერი სახელი თქვენი არჩევანით) in /usr/local/bin და ფაილი ე.წ ban_ip.sh იმ დირექტორიაში
#!/bin/sh # IP, რომელიც დაიბლოკება, როგორც ეს გამოვლენილია mod_evasive– ის მიერ. IP = $ 1. # სრული გზა iptables. IPTABLES = "/sbin/iptables" # mod_evasive დაბლოკვის დირექტორია. MOD_EVASIVE_LOGDIR =/var/log/mod_evasive. # დაამატეთ შემდეგი firewall წესი (დაბლოკეთ $ IP– დან მომავალი ყველა ტრაფიკი) $ IPTABLES -I INPUT -s $ IP -j DROP. # ამოიღეთ დაბლოკვის ფაილი მომავალი შემოწმებისთვის. rm -f "$ MOD_EVASIVE_LOGDIR"/dos -"$ IP"
ჩვენი DOSSystemCommand დირექტივა უნდა იყოს შემდეგი:
DOSSystemCommand "sudo /usr/local/bin/scripts-tecmint/ban_ip.sh %s"
ზემოთ ხაზში, %s წარმოადგენს შეურაცხმყოფელ IP- ს, როგორც აღმოჩენილია mod_evasive.
გაითვალისწინეთ, რომ ეს ყველაფერი უბრალოდ არ იმუშავებს, სანამ მომხმარებელს ნებართვას არ მისცემთ აპაჩი გაუშვით ჩვენი სკრიპტი (და მხოლოდ ის!) ტერმინალისა და პაროლის გარეშე. როგორც ყოველთვის, შეგიძლიათ უბრალოდ აკრიფოთ ვიზუდო როგორც root წვდომისათვის /etc/sudoers ფაილი და შემდეგ დაამატეთ შემდეგი 2 სტრიქონი, როგორც ეს მოცემულია ქვემოთ მოცემულ სურათზე:
apache ALL = NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh. ნაგულისხმევი: apache!
ᲛᲜᲘᲨᲕᲜᲔᲚᲝᲕᲐᲜᲘ: როგორც ნაგულისხმევი უსაფრთხოების პოლიტიკა, შეგიძლიათ მხოლოდ გაუშვათ სუდო ტერმინალში. ვინაიდან ამ შემთხვევაში, ჩვენ უნდა გამოვიყენოთ სუდო გარეშე a tty, ჩვენ უნდა გავაკეთოთ კომენტარი იმ ხაზზე, რომელიც ხაზგასმულია შემდეგ სურათზე:
#ნაგულისხმევი მოთხოვნაა.
დაბოლოს, გადატვირთეთ ვებ სერვერი:
# systemctl გადატვირთეთ httpd.
არსებობს რამდენიმე ინსტრუმენტი, რომელიც შეგიძლიათ გამოიყენოთ თქვენს სერვერზე გარე შეტევის სიმულაციისთვის. შეგიძლიათ უბრალოდ გუგლში მოიძიოთ "ინსტრუმენტები ddos შეტევების სიმულაციისთვის”რამდენიმე მათგანის საპოვნელად.
გაითვალისწინეთ, რომ თქვენ და მხოლოდ თქვენ, პასუხისმგებელი იქნებით თქვენი სიმულაციის შედეგებზე. არც იფიქროთ იმაზე, რომ განახორციელოთ იმიტირებული თავდასხმა სერვერზე, რომელსაც თქვენ არ მასპინძლობთ საკუთარ ქსელში.
თუ თქვენც გინდათ იგივე გააკეთოთ VPS– ით, რომელსაც მასპინძლობს სხვა ვინმე, თქვენ უნდა სათანადოდ გააფრთხილოთ თქვენი ჰოსტინგის პროვაიდერი ან მოითხოვოთ ნებართვა, რომ ასეთი ტრაფიკის წყალდიდობამ გაიაროს მათი ქსელები. Tecmint.com არანაირად არ არის პასუხისმგებელი თქვენს ქმედებებზე!
გარდა ამისა, მხოლოდ ერთი მასპინძლისგან იმიტირებული DoS თავდასხმის განხორციელება არ წარმოადგენს რეალურ თავდასხმას. ამის სიმულაციისთვის დაგჭირდებათ თქვენი სერვერის სამიზნე ერთდროულად რამდენიმე კლიენტისგან.
ჩვენი საგამოცდო გარემო შედგება ა CentOS 7 სერვერი [IP 192.168.0.17] და Windows მასპინძელი, საიდანაც ჩვენ ვიწყებთ შეტევას [IP 192.168.0.103]:
გთხოვთ, გაუშვათ ქვემოთ მოყვანილი ვიდეო და მიჰყევით მითითებულ წესში მითითებულ ნაბიჯებს მარტივი DoS თავდასხმის სიმულაციისათვის:
შემდეგ შეურაცხმყოფელი IP დაბლოკილია iptables- ით:
თან mod_security და mod_evasive ჩართულია, იმიტირებული შეტევა იწვევს პროცესორი და ოპერატიული მეხსიერება ექსპერიმენტი ჩაატაროს დროებითი გამოყენების პიკზე მხოლოდ რამდენიმე წამის განმავლობაში, სანამ წყაროს IP- ები არ იქნება შავ სიაში და დაბლოკილი იქნება ბუხრის საშუალებით. ამ ინსტრუმენტების გარეშე, სიმულაცია აუცილებლად დაანგრევს სერვერს ძალიან სწრაფად და გახდის მას გამოუსადეგარს შეტევის ხანგრძლივობის განმავლობაში.
ჩვენ სიამოვნებით მოვისმენთ, თუ აპირებთ ამ ინსტრუმენტების გამოყენებას (ან იყენებთ წარსულში). ჩვენ ყოველთვის მოუთმენლად ველით თქვენს პასუხს, ასე რომ ნუ მოგერიდებათ დატოვოთ თქვენი კომენტარები და შეკითხვები, ასეთის არსებობის შემთხვევაში, ქვემოთ მოცემული ფორმის გამოყენებით.
https://www.modsecurity.org/