วิธีง่ายๆในการปิดกั้นการเข้าชมทั้งหมดจากประเทศใดประเทศหนึ่ง?


16

ฉันมีเว็บแอปที่ไม่มีผู้ใช้ในฟิลิปปินส์ แต่ถูกโจมตีอย่างต่อเนื่องโดยผู้ส่งอีเมลขยะการ์ดทดสอบการ์ดและกิจกรรมที่ไม่พึงประสงค์อื่น ๆ จากที่นั่น ฉันเห็นในบันทึกว่ามี IP ในฟิลิปปินส์และเริ่มค้นหาเว็บไซต์ของฉันผ่าน google.ph หรือ.phเว็บไซต์อื่น ๆ

ฉันมีตัวกรองที่ดีและการตรวจสอบความปลอดภัยอยู่ในสถานที่ดังนั้นพวกเขาจึงไม่ได้สร้างความเสียหายมากนัก แต่กระนั้นฉันก็รู้สึกเบื่อ พวกเขาใช้แบนด์วิดท์เติมฐานข้อมูลของฉันบันทึกการละเมิดและบันทึกความปลอดภัยด้วยอึเสียเวลาบัญชี terming ของฉัน ฯลฯ

ในขณะที่ประชาชนชาวฟิลิปปินส์ส่วนใหญ่ไม่ได้เป็นผู้ส่งอีเมลขยะและฉันไม่สามารถบล็อกทุกประเทศที่ทำให้ฉันรำคาญได้ในตอนนี้ฉันคิดว่าวิธีการแก้ปัญหานั้นเป็นเพียงการปิดกั้นการรับส่งข้อมูลทั้งหมดจากฟิลิปปินส์ไปยังเว็บแอปของฉัน (ฉันรู้ว่าการบล็อกการบล็อก IP ของทั้งประเทศไม่ใช่วิธีปฏิบัติที่ดีและมีปัญหามากมาย แต่สำหรับประเทศนี้ฉันต้องการยกเว้น)

(ฉันรู้ว่าพวกเขาสามารถหลอกที่อยู่ IP ของพวกเขาได้ แต่อย่างน้อยฉันก็สามารถทำให้พวกเขาใช้งานได้เล็กน้อย)

ฉันรู้ว่ามีบริการ geoip อยู่ไม่กี่ที่นั่น ใครรู้บริการฟรีหรือราคาไม่แพง? หรือวิธีอื่นใดในการกรองปริมาณการใช้ข้อมูลจากประเทศใดประเทศหนึ่ง

ฉันใช้ PHP กับ Apache 2 ถ้าเป็นเรื่องสำคัญ


2
คำถามที่ถูกต้อง
crashmstr

crashmstr: ฉันจะคิดอย่างนั้น การดำเนินการในลักษณะนี้เพื่อพยายามและปิดกั้นประเทศทั้งหมดเป็นเพียงการทำให้คุณตัดผู้ใช้ที่มีศักยภาพออกไปได้มากกว่าที่คุณจะตัดผู้ส่งอีเมลขยะออก และเมื่อผู้ส่งอีเมลขยะเริ่มมาจากพื้นที่ที่คุณไม่ต้องการบล็อก (เช่นประเทศของคุณเอง) คุณจะต้องเข้าสู่ระบบ doodoo ลึก ๆ เพราะวิธีการก่อนหน้านี้ทั้งหมดของคุณจะเป็นการสิ้นเปลือง
TheTXI

คงไม่มีอะไร - ความปลอดภัยปัจจุบันของฉันจัดการได้ดี โปรดอ่านคำถามก่อนตอบ

<p> คุณจะทำอย่างไรเมื่อผู้ส่งอีเมลขยะเริ่มเดินทางมาจากประเทศอื่น ๆ (หรือดีกว่ายังเริ่มกำหนดเส้นทางการจราจรผ่านสหรัฐฯ) </p>
TheTXI

1
ฟิลิปปินส์เป็นหนึ่งในประเทศที่ใช้ภาษาอังกฤษเป็นหลักในโลกถัดจากสหรัฐอเมริกาสหราชอาณาจักรแคนาดาและออสเตรเลีย ฉันขอแนะนำอย่างยิ่งว่าอย่าแบนพวกเขามากกว่าที่คุณจะห้ามออสเตรเลีย เว็บไซต์ของคุณเป็นแบบเจาะจงประเทศ แต่ถ้าเป็นเช่นนั้นควรมี TLD เฉพาะประเทศมากกว่า dot-com ผู้คนจะรู้ว่าคุณไม่ได้จัดการกับพวกเขาและสามารถไปที่ similarname.com ได้
ลี B

คำตอบ:


8

คุณสามารถทำได้โดยใช้ที่อยู่ IP โดยใช้ IP Locatin API ฟรีเช่น IPInfoDB http://ipinfodb.com/index.php


28

ซึ่งแตกต่างจากโปสเตอร์อื่น ๆ ส่วนใหญ่ที่นี่ฉันจะไม่บอกคุณว่านี่เป็นความคิดที่ไม่ดีที่คุณไม่ควรทำมันจะไม่แก้ปัญหาของคุณหรือว่าคุณควรทำอย่างอื่น นี่คือสิ่งที่เกิดขึ้นกับเรา:

บุคคลจากประเทศจีนและเกาหลี (หรือใช้พร็อกซี่ในประเทศจีนและเกาหลีต่อไป) ทำให้เรารำคาญ การสแกนพอร์ตรวบรวมข้อมูลเว็บไซต์ของเรากำลังมองหาช่องโหว่พยายามเข้าสู่ระบบ ฯลฯ ฉันพยายามที่จะเพิกเฉยต่อพวกเขา (fail2ban มักจะดูแลพวกเขา) แต่ในบางจุดพวกเขาก็โจมตีเราอย่างหนักจนกลายเป็นการโจมตี DoS ได้อย่างมีประสิทธิภาพ เมื่อคุณมีการเชื่อมต่อหลายร้อยครั้งจากคนที่พยายามใช้เว็บเซิร์ฟเวอร์ของคุณเป็นพร็อกซี่พยายามใช้ SSH ในเครื่องของคุณลองใช้ชื่อผู้ใช้และรหัสผ่านแบบสุ่มมันมีแนวโน้มที่จะมีน้ำหนักมากบนเว็บไซต์ ในที่สุดฉันก็เบื่อหน่าย

เราไม่ได้รับปริมาณข้อมูลที่ถูกต้องจากจีนหรือเกาหลี บริษัท ของเราไม่ได้ขายที่นั่น (เราเป็นอีคอมเมิร์ซ) ดังนั้นจึงไม่มีความเสี่ยงในการสูญเสียปริมาณการเข้าชมที่ถูกกฎหมายดังนั้นฉันคิดว่ามันง่ายกว่าที่จะบล็อกพวกเขาก่อนเวลาแทนที่จะรอให้พวกเขามาเป็นจู๋

  1. เยี่ยมชมhttp://ip.ludost.net/และดาวน์โหลด IP <-> ฐานข้อมูลประเทศของตน
  2. แยกช่วงที่อยู่ IP ทั้งหมดของจีนและเกาหลี
  3. ติดตั้งโมดูล ipset สำหรับ netfilter
  4. สร้าง ipset ทิ้งสำหรับจีนและเกาหลี (ดูด้านล่าง)
  5. เพิ่มกฎให้กับ iptables เพื่อลดทอนการรับส่งข้อมูลใด ๆ จากชุดเหล่านั้น

และนั่นคือมัน ผู้ใช้ที่มีปัญหาของเราออกไปโหลดบนเครือข่ายและเซิร์ฟเวอร์ลดลง

หมายเหตุ 1 : คุณสามารถทำได้ด้วย iptables ปกติ (เช่นไม่มี ipset) แต่มีราคาแพงกว่าการใช้ ipset

หมายเหตุ 2 : นี่คือลักษณะที่ทิ้ง (ipset จะสร้างสิ่งเหล่านี้ให้คุณถ้าคุณต้องการ):

# Generated by ipset 2.3.3 on Sat Oct  4 18:02:57 2008
-N china nethash --hashsize 5184 --probes 4 --resize 50
-A china 203.207.128.0/17
-A china 221.176.0.0/13
-A china 58.154.0.0/15
-A china 114.54.0.0/15
...etc...

หมายเหตุ 3 : เราใช้ nethash เนื่องจากช่วงทั้งหมดของเราถูกเก็บไว้เป็นบล็อค CIDR หากคุณไม่ต้องการแปลงให้เป็น CIDR คุณสามารถใช้ iptreemap แทนได้ แต่ฉันคิดว่าอาจมีประสิทธิภาพน้อยกว่าหากคุณได้รับปริมาณข้อมูลจำนวนมาก


2
ประเด็นที่ฉันต้องการทำคือความคิดในการปิดกั้นประเทศเช่นจีนหรือเกาหลีหรือที่ใดก็ตามสำหรับเรื่องนั้นไม่ได้เป็นเพียงการบล็อกกลุ่มคนที่พูดภาษาอื่นมากกว่าคุณ ฉันเป็นพลเมืองสหรัฐอเมริกาและถ้าฉันต้องการซื้อบางอย่างจาก บริษัท ของคุณคุณทำให้ฉันสูญเสียลูกค้าเนื่องจากฉันให้บริการในเกาหลีใต้ เพื่ออือมีเป็นจราจรที่ถูกต้องมี
GNUix

16
ถูกต้องยกเว้นว่าเนื่องจากเราไม่ได้จัดส่งไปยังเกาหลีใต้เราจึงไม่สามารถขายสินค้าให้คุณได้ดังนั้นจึงไม่มีประเด็นใดที่คุณจะไปบนเว็บไซต์ของเรา เราไม่เคยมีใครจากประเทศจีนหรือเกาหลีซื้ออะไรและส่งไปยังสหรัฐอเมริกาเช่นกันดังนั้นจำนวนยอดขายที่หายไปอาจจะสูงถึงสิบในหนึ่งปีจากการวิเคราะห์ของเรา
Dan Udey

2

คุณจะแก้ไขข้อบกพร่องในรหัสได้อย่างไร

ชอบเหรอ

ข้อผิดพลาด: เพิ่ม (2,2) คืน 0, ควรคืน 4

รหัสคงที่:

int Add(int x, int y)
{
   if (x == 2 && y == 2)
      { return 4; }
   return 0;
}

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

ให้หาสาเหตุของปัญหาและแก้ไข สิ่งนี้มีความแข็งแกร่งกว่าแพทช์กรณีพิเศษที่คุณสามารถนำไปใช้งานได้

ทำไมแอปพลิเคชันบนเว็บของคุณจึงเสี่ยงต่อสแปม ลักษณะใดที่ทำให้มีความเสี่ยง ลักษณะใดทำให้เป็นเป้าหมายที่มีค่า มีวิธีที่คุณสามารถเปลี่ยนคุณสมบัติเหล่านั้นเพื่อทำให้แอปของคุณแข็งแกร่งขึ้นจากสแปมและเป้าหมายที่ดึงดูดน้อยลงหรือไม่? แน่นอนคำตอบสำหรับคำถามเหล่านี้คือใช่ เพิ่มกลุ่มการตรวจสอบความถูกต้องให้กับฟอร์มของคุณใช้ captcha อย่างชาญฉลาดสุ่ม URL และ / หรือชื่อพารามิเตอร์เพื่อทำให้พวกเขาไม่เป็นมิตรกับบอท มีหลายล้านวิธีในการแก้ไขปัญหานี้ฉันขอโทษที่บอกว่าคุณได้เลือกหนึ่งในวิธีที่มีค่าน้อยที่สุดมีประโยชน์น้อยที่สุดและเปราะบางที่สุด


15
ฉันมีทั้งหมดนั้นขอบคุณ คุณเคยอ่านโพสต์ก่อนกำหนดคำตอบของคุณ?
Eli

1
@Eli เห็นได้ชัดว่าคุณมี นั่นเป็นเหตุผลที่คุณกลับไปใช้มาตรการที่รุนแรง เพราะความพยายามก่อนหน้าของคุณมีประสิทธิภาพมาก
Wedge

1

ก่อนอื่นฉันขอแนะนำว่าอย่าทำอย่างนี้

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

ที่กล่าวว่าถ้าคุณจริงๆต้องการที่จะทำเช่นนี้IPinfoDBให้ฐานข้อมูลทางภูมิศาสตร์ IP ฟรี

ขั้นแรกให้ค้นหา IP ตามประเทศ

คุณจะค้นหาด้วยวิธีนี้:

SELECT * FROM `ip_group_country` where `ip_start` <= INET_ATON('74.125.45.100') order by ip_start desc limit 1;

หรือ

SELECT * FROM `ip_group_country` where `ip_start` <= 1249717504 order by ip_start desc limit 1;

ประการที่สองคุณอาจต้องการรับ IP ของบางประเทศเพื่อสร้างรายการบล็อกด้วยไฟล์ iptable, htaccess หรืออะไรก็ตามที่คุณใช้ มันจะทำเช่นนี้:

SELECT `ip_cidr` FROM `ip_group_country` WHERE `country_code` = 'AF' order by ip_start;

ซึ่งจะให้คุณ:

63.243.149.0/24
67.212.160.0/24

0

คุณควรใช้ผลิตภัณฑ์เช่น fail2ban เพื่อปิดข้อผิดพลาดที่คุณทิ้งในเว็บแอปพลิเคชันของคุณซึ่งระบุว่ามีความพยายามในการส่งสแปม การดำเนินการนี้จะบล็อก IP เป็นระยะเวลาหนึ่งทำให้ไซต์ของคุณทน แต่ไม่ครอบคลุมการบล็อกบล็อก IP ทั้งหมด


3
ดังที่ฉันได้กล่าวไว้ในโพสต์ซึ่งไม่มีใครอ่านลักษณะที่ปรากฏฉันมีระบบที่ดีในการปิดกั้นและป้องกันสแปม ฉันกำลังมองหาปริมาณงานที่ต้องทำเบาลงและเวลาที่ฉันต้องใช้ในการตรวจสอบมัน
Eli

ซึ่งเป็นสาเหตุที่ฉันแนะนำ fail2ban มันห้ามแบนปัญหา IP ให้คุณโดยอัตโนมัติ
Kevin Kuphal

0

โซลูชันสองข้อ:

  • ยกเว้น IP บางตัวในการกำหนดค่า Apache ด้วยmod_access
  • ใช้ GeoIp โดยตรงจาก Apache: http://www.maxmind.com/app/mod_geoip
  • ยกเว้น IP บางตัวจาก Linux iptablesโดยตรง สิ่งนี้มีความเสี่ยงมากขึ้นหากคุณมีการเข้าถึงระยะไกลเท่านั้นคุณสามารถล็อคเครื่องของคุณเองได้
  • geoip + iptables

วิธีแก้ปัญหาเหล่านี้ค่อนข้างง่ายและรวดเร็วในการติดตั้งและฟรี

ทางออกระยะยาวคือการตรวจจับสแปมจากเว็บแอปพลิเคชันของคุณล็อก IP และป้อน iptables ของคุณเพื่อบล็อกโดยอัตโนมัติ


0

คุณพิจารณาว่าใครกำลังใช้งานเครือข่ายที่คุณกำลังถูกโจมตี ค้นหาผู้ติดต่อ "ละเมิด" โดยใช้ whois และรายงานให้พวกเขาทราบ แน่นอนว่ามันอาจมาจากหลายเครือข่าย แต่ก็อาจคุ้มค่าหากคุณเห็นที่อยู่ที่ซ้ำ / บล็อกเครือข่าย


4
หากคุณเคยพยายามที่จะจัดการกับ ISP ในเอเชีย (โดยเฉพาะจีนเกาหลีและอื่น ๆ ) คุณจะพบว่าสิ่งหนึ่งที่พวกเขาไม่เคยทำคือใส่ใจกับชาวต่างชาติบางคนที่บ่นเกี่ยวกับบางสิ่ง มันไม่คุ้มค่ากับเวลาที่จะทำสิ่งต่าง ๆ อย่างถูกต้อง การรายงานการละเมิดกลายเป็นการเสียเวลาของคุณ
Dan Udey

ฉันอาศัยอยู่ในเกาหลีและฉันไม่มีอะไรนอกจากประสบการณ์ที่น่าพึงพอใจกับ ISP ของเกาหลี
GNUix

0

คุณมีสิทธิ์ทุกอย่างในการปิดกั้นที่อยู่ IP ไม่ว่าด้วยเหตุผลใดก็ตามที่คุณสามารถพิสูจน์ได้ด้วยตัวคุณเอง เป็นคุณที่ให้บริการและเป็นผู้ตัดสินใจว่าใครสามารถมีหรือไม่ บางทีอาจเป็นเรื่องที่น่าสงสัยหากนี่เป็นคุณธรรม แต่นั่นเป็นสิ่งที่คุณสามารถตัดสินใจได้ด้วยตัวเองเท่านั้น

อย่างไรก็ตามการปิดกั้นส่วน IP เพราะมันมีลักษณะทางภูมิศาสตร์บางอย่างให้ฉันฟังมากขึ้นหรือน้อยลงคล้ายกับวิธีตื่นตระหนก

สิ่งที่ฉันทำในอดีตคือการมีซอฟต์แวร์รวบรวมข้อมูลที่ผ่านการบันทึกล่าสุดของฉันและตามการห้าม IP ของแต่ละบุคคลที่น่ารำคาญเป็นเวลา 24 ชั่วโมง หาก IP ที่ระบุนั้นทำงานผิดปกติอีกครั้งจะถูกแบนเป็นเวลา 2 วันจากนั้น 3 วันเป็นต้น ฯลฯ คุณจะได้รับการดริฟท์

IP ของที่ถูกแบนนานกว่าหนึ่งสัปดาห์จะถูกส่งถึงฉันและฉันส่งจดหมายละเมิดไปยังผู้ให้บริการนั้น (ใครจะรู้ว่าอาจช่วยได้)


0

ฉันจะเลือกใช้โซลูชัน Snort + OSSEC ที่สามารถรักษาบางสิ่งเช่นนี้ได้แบบไดนามิก


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