Score:0

IPTABLES กำหนดเส้นทางล่วงหน้า เพิ่มจำนวนมาก

ธง be

อาจมีบางคนรู้ว่าฉันจะเพิ่มจำนวนมากเช่น 1 400,000 ip ให้กับ iptables ด้วยคำสั่งได้อย่างไร:

iptables -I PREROUTING -t raw -d $ipban -j DROP

ตอนนี้ฉันใช้:

ในขณะที่อ่านอิบัน
ทำ
iptables -I PREROUTING -t raw -d $ipban -j DROP
เสร็จแล้ว < ips.txt

แต่ใช้เวลามากกว่า 20 ชั่วโมงในการเพิ่ม

vps ของฉันมีขนาดเล็กมากเช่น 1gb ram และ 1vcpu ดังนั้นมันจึงไม่เร็วขนาดนั้น

ฉันพยายามกู้คืน iptables แต่ฉันพบข้อผิดพลาดเล็กน้อย ดังนั้นฉันจึงมองหาวิธีแก้ปัญหาที่เร็วที่สุด

Doug Smythies avatar
gn flag
สำหรับที่อยู่ IP กลุ่มใหญ่ให้มองหา `ipset`
Score:0
ธง in

สคริปต์ด้านล่างควรทำสิ่งที่คุณต้องการ โปรดทราบว่าชื่อของไฟล์ที่คุณจะอ่าน IP คือ ips.txt ในสคริปต์ คุณสามารถแทนที่ด้วยชื่อไฟล์ของคุณเอง

#!/bin/bash

ip_addresses=$(แมว ips.txt)

echo -n "" > iptables_configuration
echo "*raw" >> iptables_configuration
echo ":PREROUTING ยอมรับ [0:0]" >> iptables_configuration
echo ":OUTPUT ยอมรับ [0:0]" >> iptables_configuration

สำหรับฉันใน $ip_addresses
ทำ
echo -A PREROUTING -d $i/32 -j DROP >> iptables_configuration
เสร็จแล้ว
echo "COMMIT" >> iptables_configuration

echo "*filter" >> iptables_configuration
echo ":INPUT ACCEPT [0:0]" >> iptables_configuration
echo ":FORWARD ACCEPT [0:0]" >> iptables_configuration
echo ":OUTPUT ยอมรับ [0:0]" >> iptables_configuration
echo "-A INPUT -p tcp -m tcp --dport 25565 --tcp-option 8 --tcp-flags FIN,SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable" >> iptables_configuration
echo "COMMIT" >> iptables_configuration

cat iptables_configuration | iptables กู้คืน
rm iptables_configuration

iptables -t raw -A PREROUTING -p tcp --dport 25565 -j ยอมรับ
iptables -t raw -A PREROUTING -p tcp --dport 25565 -m state --state RELATED,ESTABLISHED -j ยอมรับ
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 150 --connlimit-mask 32 --connlimit-saddr -j DROP
iptables -t raw -A PREROUTING -p tcp --dport 25565 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 --connlimit-saddr -j DROP

สิ่งที่คุณต้องทำคือรันสคริปต์ที่มีไฟล์ ips.txt อยู่ ส่วนที่เหลือจะถูกจัดการโดยสคริปต์

be flag
ปัญหาคือฉันไม่ต้องการบล็อกช่วงหรือเครือข่ายย่อย ฉันแค่ต้องการบล็อก IP ที่ระบุจากไฟล์ txt
Muhammed Özen avatar
in flag
ฉันเข้าใจแล้ว. ฉันรู้วิธีแก้ปัญหาของคุณ ปัญหาคือทุกครั้งที่คุณเพิ่มกฎใหม่ คุณจะเรียกใช้งานไบนารีของ iptables อีกครั้ง คุณต้องเขียนไฟล์คอนฟิกูเรชันที่มีกฎทั้งหมด และคุณจะเรียกใช้งาน iptables เพียงครั้งเดียวเพื่อเพิ่มกฎเหล่านี้ทั้งหมด ฉันได้เขียนสคริปต์สำหรับคุณโดยทำสิ่งที่คุณต้องการ แต่เมื่อคุณใช้สคริปต์ กฎ iptables ที่คุณมีอยู่จะหายไป และกฎสำหรับการห้ามที่อยู่ IP ในไฟล์จะปรากฎอยู่เท่านั้น หากคุณต้องการรวมกฎอื่นๆ คุณต้องแก้ไขไฟล์ iptables_configuration ตามความต้องการของคุณ ตรวจสอบโพสต์ของฉัน
be flag
แน่นอนว่าเพื่อนฉันมีกฎดังนี้: https://pastebin.com/MW4x9QNa หากเป็นไปได้ให้ใช้การกำหนดเส้นทางล่วงหน้าให้มีประสิทธิภาพมากขึ้น :D ฉันดีใจมากที่คุณต้องการช่วยฉันและเขียนโพสต์ขนาดใหญ่เช่นนี้!
Muhammed Özen avatar
in flag
คุณยินดีอย่างมาก. แต่คุณมีตัวแปรบางอย่างในสคริปต์ที่คุณไม่ได้กำหนด เช่น $port และ $limit_global_connections_max ถ้าคุณให้ค่าที่แน่นอนแก่ฉัน ฉันเท่านั้นที่จะช่วยได้
be flag
ขออภัย ฉันสังเกตเห็นว่านี่คือเวอร์ชันที่ใช้งานได้ https://pastebin.com/LxJvqF51 หากคุณรู้วิธีสร้าง PREROUTING ด้วยก็จะดีมาก (จะมีประสิทธิภาพมากกว่า)
be flag
และคุณช่วยอธิบายฉันได้ไหมว่าทำไม theres`/32` ใน -A PREROUTING -d $i/32 -j DROP ?
Muhammed Özen avatar
in flag
ฉันเพิ่งแก้ไขข้อความอีกครั้ง ตอนนี้คุณไม่ต้องกังวลเกี่ยวกับ iptables-restore สิ่งที่คุณต้องทำจริงๆ ก็คือเรียกใช้สคริปต์ และทุกอย่างจะพร้อมสำหรับคุณ นอกจากนี้ ฉันใส่กฎทั้งหมดในห่วงโซ่ PREROUTING ยกเว้นข้อเดียวเนื่องจากมีตัวเลือกที่ไม่ถูกต้องสำหรับ PREROUTING สำหรับคำถามที่สองของคุณ /32 หมายถึงที่อยู่ IP เดียวเท่านั้นในรูปแบบ CIDR หากคุณระบุค่าใดๆ นอกเหนือจาก 32 จะเป็นการระบุเครือข่ายย่อยที่มีที่อยู่ IP มากกว่าหนึ่งแห่งแต่เนื่องจากเราต้องการแบนที่อยู่ IP แต่ละรายการเท่านั้น และเราไม่ต้องการบล็อกเครือข่ายย่อยหรือช่วงของ IP เราจึงต้องใช้ /32 ที่นี่
be flag
ขอบคุณที่ช่วยเหลือ! ฉันทำทุกอย่างตามที่คุณพูดและมันได้ผล!
Muhammed Özen avatar
in flag
ยินดีต้อนรับเพื่อน ฉันดีใจที่สามารถช่วยได้ :)
be flag
ปัญหาที่ฉันพบตอนนี้คือเมื่อฉันใช้ทุกอย่างความเร็วอินเทอร์เน็ตของฉันจะเพิ่มเป็น 5Mb/s จาก 1gbs
Muhammed Özen avatar
in flag
ฉันเชื่อว่าเหตุผลคือคุณมีกฎมากมาย อย่างที่คุณบอกว่าคุณมีกฎมากมายที่ต้องใช้เวลามากในการลงทะเบียนกฎทั้งหมดในไฟร์วอลล์ เมื่อใดก็ตามที่แพ็กเก็ตเครือข่ายเข้ามาที่คอมพิวเตอร์ของคุณ เคอร์เนลจะเปรียบเทียบมันกับทุกกฎในไฟร์วอลล์ และถ้าได้รับการส่งผ่านจากกฎเหล่านี้ทั้งหมด คุณจะได้รับการเชื่อมต่อของคุณในสแต็ก TCP/UDP ในเครื่อง ยิ่งคุณมีกฎในไฟร์วอลล์มากเท่าไหร่ การเชื่อมต่อก็จะยิ่งช้าลงเท่านั้น คุณต้องรักษาสมดุลระหว่างความปลอดภัยและความเร็วเครือข่าย
be flag
ใช่ ฉันขอความช่วยเหลือจากโฮสต์และพวกเขาบอกว่าจะบล็อกไอพีเหล่านั้นอยู่ดี ขอบคุณสำหรับความช่วยเหลือ !

โพสต์คำตอบ

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