จะบล็อกลูกค้าด้วยที่อยู่ IP ไม่ให้เข้าถึง URL บางอย่างบนเว็บเซิร์ฟเวอร์ของฉันได้อย่างไร


9

ฉันจะบล็อก ipaddress ใด ๆ ที่เข้าถึงเพจที่มีช่องโหว่ที่รู้จักอย่างถาวรได้/phpMyadmin/อย่างไร ฉันใช้เซิร์ฟเวอร์ Debian และมักเห็นบอทหรือแฮกเกอร์สแกนเซิร์ฟเวอร์ของฉันเพื่อค้นหาช่องโหว่

73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyadmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpMyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyAdmin/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin2/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin3/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"
73.199.136.112 - - [16/Oct/2017:05:18:05 -0700] "HEAD /phpmyadmin4/ HTTP/1.0" 404 182 "-" "Mozilla/5.0 Jorgee"

ฉันได้ปฏิบัติตามคำถาม StackOverflow นี้แล้ว: วิธีรักษาความปลอดภัย phpMyAdmin

ฉันกำลังมองหาที่จะเริ่มต้นบล็อกบอทจากการใช้แบนด์วิดธ์


4
นี่จะเป็นการล้างข้อมูลล็อกไฟล์ของคุณ แต่จะไม่ช่วยเรื่องความปลอดภัยเลย คุณจะทำให้ phpmyadmin ทันสมัยอยู่เสมอหรือเข้าถึงจาก localhost เท่านั้น (และบล็อกทราฟฟิกอื่น ๆ ทั้งหมด) ในการเข้าถึงเซิร์ฟเวอร์ระยะไกลให้ทำการพอร์ตผ่านทาง ssh
Stefan M

ฉันคิดว่ามันจะช่วยรักษาความปลอดภัยเพราะจะบล็อกที่อยู่ IP ที่ประสงค์ร้ายที่พยายามเข้าถึงไซต์นั้น
Whitecat

@Whitecat 404รหัส HTTP Page not foundหมายถึง คุณรู้สึกได้อย่างไรว่า IP เหล่านี้ละเมิด IP ขึ้นอยู่กับผลลัพธ์ที่คุณตัดสินใจที่จะบล็อก IP เหล่านี้?
Valentin Bajrami

ฉันต้องการบล็อกไอพีตามความจริงที่ว่าพวกเขากำลังจะไป phpMyAdmin ฉันได้รักษาความปลอดภัยเว็บไซต์ของฉันและฉันรู้ว่าทุกคนที่ไปที่หน้านั้นเป็นอันตราย
Whitecat

1
ทำไมคุณไม่สร้าง.htpasswd
nicoX

คำตอบ:


18

นี่อาจเป็นน้ำหนักที่หนักกว่าที่คุณกำลังมองหา แต่คุณอาจลองใช้ fail2ban ( https://www.fail2ban.org ) นี่เป็นเครื่องมือที่สามารถตรวจสอบไฟล์บันทึกของคุณและแบนที่อยู่ที่สร้างไฟล์บันทึกที่ตรงกับชุดของรูปแบบที่ปรับแต่งได้โดยอัตโนมัติ


5
tbh นี่เป็นปัญหาที่แน่นอนfail2banถูกออกแบบมาเพื่อที่อยู่ มันค่อนข้างหนัก แต่แล้วเกณฑ์ที่ต้องการนั้นค่อนข้างมีพลัง ทุกสิ่งที่พิจารณาfail2banนั้นมีน้ำหนักเบาอย่างที่คุณจะพยายามแก้ไขปัญหาในระดับนี้โดยใช้เครื่องมือมาตรฐาน
Bratchley

1
ดีฉันคิดว่าคุณสามารถเขียนไบนารี cgi suid-root, โฮสต์มันเป็น / phpmyadmin, ที่เพิ่มกฎไฟร์วอลล์ของผู้โทร
Joshua

7

อย่า อย่างดีที่สุดคุณจะไม่ประสบความสำเร็จ แต่ทำบันทึกให้รกของคุณน้อยลง ที่เลวร้ายที่สุดคุณจะต้องปิดกั้นผู้เข้าชมที่ถูกกฎหมายที่ได้รับ (ผ่าน DHCP) ที่อยู่ IP ที่เคยเป็นของใครบางคนที่พีซีติดไวรัสเป็นโหนด botnet

ปัญหาที่แท้จริงที่นี่คือความยุ่งเหยิงของบันทึกและสามารถแก้ไขได้เพียงแค่กำหนดค่าการบันทึกของคุณเพื่อส่งคำขอที่ทราบว่าการสแกนแบบหยาบคายสำหรับเว็บไซต์ของคุณไม่ได้และจะไม่เกิดขึ้นเพราะคุณไม่ได้ใช้ช่องโหว่ กรอบที่พวกเขากำลังสแกนหา หากคุณกังวลเกี่ยวกับการสูญเสียการบันทึกอย่างสมบูรณ์ (บางทีพวกเขาอาจมีหลักฐานแสดงให้เห็นว่าใครเป็นผู้รับผิดชอบในการโจมตีที่แตกต่างกันหรือเมื่อการโจมตีเริ่มต้นเป็นต้น) จากนั้นเพียงกดปุ่มบันทึกหลายรายการสำหรับ URL ขยะจาก IP ที่กำหนดในช่วงเวลาสั้น ๆ ควรทำงานได้ดีขึ้น


6
fail2banแบนเป็นชั่วคราว - X ครั้งของการเข้าสู่ระบบที่ไม่ดีภายใน Y วินาทีห้าม Z นาทีด้วย XY และ Z ที่กำหนดค่าได้การทิ้งบันทึกการพยายามบุกรุกที่ใช้งานอยู่ฟังดูเหมือนว่าเป็นตัวเลือกที่อันตรายกว่าอย่างมาก
Shadur

2
ในโอกาสที่ 0.1% สิ่งนี้เกิดขึ้นผู้ใช้ที่ถูกกฎหมายของphpmyadmin นี้ควรจะสามารถส่งข้อความ OP เพื่อปลดบล็อคได้ นอกจากนี้ fail2ban ยังสามารถปิดการโจมตีด้วยการสแกนก่อนที่มันจะเกิดช่องโหว่ในเซิร์ฟเวอร์ของคุณ
Segfault

1
@Segfault: มีผู้ใช้ที่ถูกกฎหมาย/phymyadmin/เนื่องจาก/phymyadmin/ไม่มีอยู่บนเซิร์ฟเวอร์ (ดู: 404) ผู้ใช้ที่ถูกต้องตามกฎหมายค่อนข้างเป็นผู้ใช้ของเว็บไซต์ที่จะถูกบล็อกโดยไฟร์วอลล์พวกเขา
. GitHub หยุดช่วยน้ำแข็ง

1
"ดีที่สุด" จริงรวมถึงการทดสอบเพิ่มเติมที่ถูกบล็อกรวมถึงการทดสอบที่อาจประสบความสำเร็จจริง การเล่นกับเนื้อหาบันทึกดูเหมือนว่าเป็นวิธีที่ดีในการสูญเสียข้อมูลเมื่อคุณรู้ว่าคุณได้ทำข้อผิดพลาดในตัวกรอง หากคุณกังวลเกี่ยวกับบันทึกความยุ่งเหยิงคุณต้องมีแพลตฟอร์มการวิเคราะห์เช่น ELK เพื่อกรองสิ่งที่คุณสนใจ
Bratchley

2
อีกประเด็นที่เกี่ยวข้องคือการใช้ CGN ที่เพิ่มขึ้น ISP สามารถมีลูกค้าหลายร้อยรายที่ใช้ที่อยู่ IP เดียวทำให้การปิดกั้น IP อันตรายที่สุดแม้แต่ในกรณีชั่วคราว คุณสามารถมีผู้ใช้ที่ถูกต้องและการสแกนที่ใช้งานอยู่จากที่อยู่เดียวกันในเวลาเดียวกัน
บ๊อบ

3

ค้นหา phpMyAdmin.conf ในหนึ่งในไดเรกทอรี httpd config และเพิ่มdeny 73.199.136.112ในส่วนอนุญาต / ปฏิเสธของไฟล์กำหนดค่าและ IP ที่ต้องการในส่วน 2.4 ฉันใส่ตัวอย่างของไฟล์กำหนดค่าแบบเต็มด้านล่างที่ฉันมีรายการย้อนกลับฉันบล็อกทุกอย่างยกเว้นกลุ่ม IP ที่ได้รับอนุญาตให้เข้าถึงเครื่องมือ

[thebtm@server conf.d]# cat /etc/httpd/conf.d/phpMyAdmin.conf
# phpMyAdmin - Web based MySQL browser written in php
# 
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 10.10.26
       Require ip 192.168.56
       Require ip 127.0.0.1       
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 10.10.25
     Allow from 192.168.56
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpMyAdmin/setup/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

# These directories do not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/lib/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpMyAdmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin/>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

นี่มันเจ๋งมาก. แต่ปัญหาคือมีบอตคงที่จากหลาย ๆ ไอพี ฉันไม่สามารถติดตาม IP ที่แตกต่างกันทุกตัวได้เนื่องจากฉันได้รับไอพีที่เป็นอันตรายระหว่าง 20-30 ต่อวัน
Whitecat

2
นั่นคือเหตุผลที่ฉันพบสิ่งที่ตรงกันข้ามที่คุณอนุญาตให้กลุ่มที่คุณต้องการเข้าถึงและบล็อกส่วนที่เหลือโดยอัตโนมัติ
thebtm

Alias /phpmyadmin /usr/share/phpMyAdmind /phpmyadminควรเปลี่ยนเป็นอย่างอื่นเพื่อความปลอดภัย Alias /secret /usr/share/phpMyAdmind
nicoX

ฉันแก้ไขไฟล์กำหนดค่าเริ่มต้นที่มาพร้อมกับเครื่องมือเมื่อคุณติดตั้งและสร้างที่อยู่ IP สุ่มขึ้นมา
thebtm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.