Score:0

ช่วยกรอกสคริปต์ให้สมบูรณ์ (ปลอม google IPs, อาจล้มเหลว 2 แบน)

ธง mx

ฉันตรวจสอบ google ip ที่เข้าถึงเซิร์ฟเวอร์ของฉันเป็นเวลาสองสามปีและระบุมาสก์เหล่านี้: 66.249.64.0/19 66.102.0.0/20 64.233.160.0/19 34.64.0.0/10 216.58.192.0/19 74.125.0.0/16

จากนั้นฉันสร้างสคริปต์นี้ใน php ซึ่งฉันรวมไว้ในเว็บไซต์ทั้งหมดของฉัน

include_once('function_global/cidr_match_function.php');
    if(cidr_match($_SERVER['REMOTE_ADDR'], '66.249.64.0/19') === เท็จ && cidr_match($_SERVER['REMOTE_ADDR'], '66.102.0.0/20') === เท็จ && cidr_match( $_SERVER['REMOTE_ADDR'], '64.233.160.0/19') === เท็จ && cidr_match($_SERVER['REMOTE_ADDR'], '34.64.0.0/10') === เท็จ && cidr_match($_SERVER[' REMOTE_ADDR'], '216.58.192.0/19') === เท็จ&& cidr_match($_SERVER['REMOTE_ADDR'], '74.125.0.0/16') === เท็จ){ 
    $fake_google_ip_list = file_get_contents('function_global/ip_add_fwd.txt');

        if(strpos($fake_google_ip_list, $_SERVER['REMOTE_ADDR']) === เท็จ){
            file_put_contents('function_global/ip_add_fwd.txt', $_SERVER['REMOTE_ADDR'].PHP_EOL , FILE_APPEND | LOCK_EX);
        }
    }
}

ผลลัพธ์คือไฟล์นี้มีรายการ IP ที่หลอกว่าเป็น Google และเข้าถึงเซิร์ฟเวอร์ของฉันด้วยเจตนาหลอกลวง

จากนั้นฉันรันคำสั่งคอนโซลนี้ไม่มากก็น้อยวันละครั้งซึ่งเพิ่ม ip เหล่านี้ทั้งหมดไปยัง ufw:

ขณะอ่านบรรทัด ทำ sudo ufw แทรก 1 ปฏิเสธจาก $line ไปยังใดๆ; เสร็จสิ้น < /var/www/html/function_global/ip_add_fwd.txt

และอัปโหลดไฟล์เปล่าใหม่ไปยังเซิร์ฟเวอร์

ฉันต้องการทำให้ส่วนสุดท้ายนี้เป็นแบบอัตโนมัติและอาจใช้ fail2ban แทนการเติม ip มากขึ้นเรื่อย ๆ ซึ่งอาจไม่มีวันกลับมาอีกใน ufw

และฉันคิดว่าฉันต้องการสคริปต์ .sh หรืออะไรที่คล้ายกัน แต่ฉันไม่รู้ว่าจะเขียนมันอย่างไร... (ฉันเป็นโปรแกรมเมอร์ php และฉันใช้ ubuntu เป็นเว็บเซิร์ฟเวอร์จำกัดเฉพาะสิ่งที่จำเป็นสำหรับการทำงานของ เว็บไซต์ของฉัน).

สคริปต์ควรเป็น:

  • เรียกได้ด้วย crontab
  • เพิ่มรายการ ip ใน ufw หรือแทนที่จะเป็น fail2ban
  • ล้างไฟล์ ip_add_fwd.txt
  • อาจส่งอีเมลพร้อมรายการ IPs ให้ฉันเพียงเพื่อจะรู้ว่าได้ทำอะไรไปแล้วและสามารถตรวจสอบได้ว่ามันทำงานได้อย่างถูกต้องหรือไม่ (ผลลัพธ์ crontab ก็มาถึงทางอีเมลด้วย ดังนั้นผลลัพธ์อาจเพียงพอหรือไม่)

ใครสามารถช่วยฉันเขียนหรืออย่างน้อยให้คำแนะนำในการเริ่มต้น? ฉันไม่รู้ว่าจะเริ่มจากตรงไหน ฉันพยายามรวบรวมไฟล์อื่น ๆ เข้าด้วยกัน แต่มันก็ไปได้ไม่ดีนัก ... :(

jpbrain avatar
ca flag
สวัสดี คุณกำลังเรียกใช้ซอฟต์แวร์เว็บเซิร์ฟเวอร์ใด
alebal avatar
mx flag
apache เว็บเซิร์ฟเวอร์
Score:1
ธง ca

คุณสามารถลองใช้วิธีนี้

สำหรับ Apache ในการกำหนดค่าเว็บเซิร์ฟเวอร์ "jail" ในการกำหนดค่า fail2ban มีคำแนะนำ: ล้มเหลว 2 แบนด้วย Apache

ที่นี่คุณสามารถกำหนดค่าการแบนชั่วคราวสำหรับ IP และยังมีไคลเอนต์ fail2ban-client ที่คุณสามารถเรียกโดยตรงจากสคริปต์ php ของคุณ (จำเป็นต้องตรวจสอบสิทธิ์) เพื่อแบน IP ด้วยตนเอง

ฉันคิดว่าวิธีนี้จะใช้ได้ผลดีกว่าวิธี cron แต่ถ้าคุณยังต้องการใช้เชลล์:

#!/bin/bash
#สมมติว่าหนึ่ง IP ต่อบรรทัด
อินพุต="/var/www/html/function_global/ip_add_fwd.txt"
ในขณะที่ IFS= read -r บรรทัด
ทำ
    sudo ufw ปฏิเสธจาก $line เป็นใดๆ;
เสร็จสิ้น < "อินพุต $"

#บรรทัดนี้จะล้างไฟล์
echo "" ""อินพุต $"

สคริปต์ที่มี fail2ban

#!/bin/bash
#สมมติว่าหนึ่ง IP ต่อบรรทัด
อินพุต="/var/www/html/function_global/ip_add_fwd.txt"
ในขณะที่ IFS= read -r บรรทัด
ทำ
    #sudo ufw ปฏิเสธจาก $line เป็นใดๆ;
    sudo fail2ban-client ตั้งค่า apache-badbots banip $line;
เสร็จสิ้น < "อินพุต $"

#บรรทัดนี้จะล้างไฟล์
echo "" ""อินพุต $"  

#เพิ่มโดย JP - จะแสดงรายการ IP ที่ถูกแบนทั้งหมดสำหรับ apache-badbots
sudo fail2ban-client รับ apache-badbots banip --with-time;
alebal avatar
mx flag
สวัสดี ฉันชอบโซลูชันของ fail2ban มันเร็วกว่า เบากว่า ยอดเยี่ยม แต่มันยากที่จะหาบางอย่างเกี่ยวกับมัน... ฉันพบเพียง https://stackoverflow.com/questions/36101796/fail2ban-add-manually-ip- เท่านั้น from-php-script-using-exec-or-shell-exec และหยุดที่ไฟล์คอนฟิกูเรชัน สำหรับฉัน ปัญหาคือมีไฟล์จำนวนมากใน /etc/fail2ban ไฟล์ที่ถูกต้องคืออะไร ไฟล์ .conf ใดต้องการไคลเอนต์fail2ban ถ้าฉันรู้ได้ว่าไฟล์ .conf ใช้ทำอะไร ฉันกำลังคิดถึง symlink ใน dir ฉันสามารถเข้าถึงผ่าน php... จะเป็นไปได้ไหม
alebal avatar
mx flag
คุณช่วยให้ฉันเข้าใจว่าไฟล์ใดใช้และสามารถใช้ symlink ได้หรือไม่
jpbrain avatar
ca flag
สวัสดี ฉันไม่เข้าใจความคิดของคุณเกี่ยวกับ symlink คุณช่วยอธิบายได้ไหมว่าคุณหมายถึงอะไร
alebal avatar
mx flag
ดูเหมือนว่า php ไม่สามารถเข้าถึงไฟล์การกำหนดค่า dir ของ fail2ban... (ใน / etc) อาจจะใช้ symlink ได้ไหม
jpbrain avatar
ca flag
ในทั้งสองกรณีคุณต้องรูท ดังนั้น แนวทางหนึ่งคือการใช้ cron เพื่อรันเชลล์ a ในเชลล์ใช้ fail2ban หรือ ufw การโทรจาก php ในฐานะรูทต้องมีการตรวจสอบความปลอดภัย อาจจะไม่ใช่ความคิดที่ดี
alebal avatar
mx flag
Exec ผ่าน php ไม่ควรต้องรูทเพื่อใช้ไคลเอนต์ fail2ban ใช่ไหม ปัญหาดูเหมือนจะเป็นไฟล์คอนฟิกูเรชันที่ Fail2ban ต้องอ่าน และไฟล์นั้นอยู่ในไดเร็กทอรี /etc ซึ่ง www-data ไม่สามารถเข้าถึงได้ ในความคิดเห็นสุดท้าย พวกเขาบอกว่าให้คัดลอกไปยังไดเร็กทอรีที่สามารถเข้าถึงได้ แต่ฉันไม่รู้ว่าการคัดลอกไฟล์กำหนดค่านั้นดีเพียงใด เพราะฉันไม่เข้าใจว่าไฟล์นี้คืออะไร น่าเสียดายที่การสนทนาดูเหมือนจะจบลง แต่ดูเหมือนว่าจะอยู่ห่างออกไปไม่ไกล ...
jpbrain avatar
ca flag
Fail2ban ต้องการรูทเพื่อดำเนินการผ่านไฟร์วอลล์ ufw ด้วย ดังนั้นแนวทาง symlink จึงไม่ใช่ตัวเลือก สองขั้นตอนที่ฉันอธิบายใช้งานได้ php เขียนไฟล์ด้วย ips Cron เรียกใช้เชลล์ในฐานะรูททุก ๆ 10 นาทีหรืออะไรทำนองนั้นและล้างไฟล์
alebal avatar
mx flag
ดังนั้น... ฉันทำการเปลี่ยนแปลงเล็กน้อยเพื่อทำงานกับ fail2ban ด้วยวิธี cron...#!bin/bash #สมมติว่าหนึ่ง IP ต่อบรรทัด อินพุต="/var/www/html/function_global/ip_add_fwd.txt" ในขณะที่ IFS= read -r บรรทัด ทำ #sudo ufw ปฏิเสธจาก $line ไปยังใดๆ; sudo fail2ban-client ตั้งค่า apache-badbots banip $line; เสร็จสิ้น "อินพุต $"
alebal avatar
mx flag
แต่เมื่อฉันลองสิ่งนี้: sudo /var/www/html/function_global/google_ip_list_ban_cron sudo: ไม่สามารถดำเนินการได้ /var/www/html/function_global/google_ip_list_ban_cron: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว... เขาไม่เข้าใจอะไร ip_add_fwd.txt อยู่ที่ไหน ฉันบันทึกไฟล์ใหม่ใน dir เดียวกัน... https://ibb.co/chVmwCn
jpbrain avatar
ca flag
ขอโทษ..คือพิมพ์ผิด. โปรดแก้ไข "#!/bin/bash" แล้วลองอีกครั้ง นอกจากนี้ ไฟล์จำเป็นต้องเรียกใช้จาก root cron
alebal avatar
mx flag
ขอบคุณ ดูเหมือนว่าจะใช้งานได้ ... ฉันสร้าง crontab 5 0 * * * root /var/www/html/function_global/google_ip_list_ban_cron บน sudo nano /etc/crontab crontab ควรทำงานหรือไม่
jpbrain avatar
ca flag
ใช่. มันควรจะทำงาน
alebal avatar
mx flag
เอาล่ะ แต่วันนี้ฉันอยากจะได้รับอีเมลพร้อม IP ที่เขาเพิ่มใน fail2ban แต่ไม่มีอะไรมา ผลลัพธ์ของ crontabs มาถึงทางไปรษณีย์ เป็นไปได้หรือไม่ที่จะเพิ่มเอาต์พุตด้วย ip ที่ประมวลผลแล้ว
jpbrain avatar
ca flag
สองสิ่งที่ต้องดู: มีคำสั่ง MAIL ในไฟล์ crontab หรือไม่ มีการสร้างเอาต์พุตใด ๆ หรือไม่?
alebal avatar
mx flag
ใช่ เมลอยู่ด้านบนสุดของไฟล์ crontab วันนี้มันส่งเมลมาให้ฉัน เมลบอกว่า: 0 1 1 1 1 1 1 1 1 1 1 1 1 ... ควรเป็นผลของfail2ban แต่จะดีถ้า IP ที่ถูกบล็อก...
jpbrain avatar
ca flag
อาจจะเป็นการดีกว่าที่จะส่งสถานะ fail2ban ที่ส่วนท้ายของสคริปต์
alebal avatar
mx flag
อย่างไร ??? ไม่รู้จะทำยังไง...
jpbrain avatar
ca flag
คุณสามารถโพสต์สคริปต์จริงของคุณได้หรือไม่? หากคุณใช้ "fail2ban-client" มีตัวเลือกที่แสดงรายการ ips ที่ถูกแบนสำหรับ Jail
alebal avatar
mx flag
เพิ่มในโพสต์แรกของคุณ ... แต่มันคล้ายกับของคุณมาก ...
alebal avatar
mx flag
เราสามารถพิมพ์เนื้อหาไฟล์ ip_add_fwd.txt ในเมลได้หรือไม่
jpbrain avatar
ca flag
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/129411/discussion-between-jpbrain-and-alebal)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา