หากคุณเคยดูบันทึกการตรวจสอบสิทธิ์สำหรับเซิร์ฟเวอร์ของคุณ คุณจะรู้ว่าเซิร์ฟเวอร์ใดๆ ที่เชื่อมต่อกับอินเทอร์เน็ตอยู่ภายใต้ความพยายามในการเข้าสู่ระบบจากแฮกเกอร์อย่างต่อเนื่อง
แม้ว่าเซิร์ฟเวอร์ของคุณจะเป็นเซิร์ฟเวอร์งานอดิเรกที่ไม่รู้จักโดยสิ้นเชิง สคริปต์อัตโนมัติจะค้นหามันและพยายามใช้ SSH อย่างดุเดือดอย่างต่อเนื่อง แม้ว่าจะไม่น่าจะเข้ามาได้ตราบเท่าที่คุณใช้รหัสผ่านที่ซับซ้อนหรือมาตรการรักษาความปลอดภัยอื่นๆ แต่ก็ยังมีโอกาสที่จะประสบความสำเร็จได้เสมอ
โชคดีที่มีวิธีที่เป็นประโยชน์และสนุกสนานในการดักจับแฮ็กเกอร์เหล่านี้ในเซิร์ฟเวอร์ของคุณ และทำให้เสียสมาธิเกินกว่าจะสร้างปัญหาได้
SSH Honeypot คืออะไร
พูดง่ายๆ ก็คือ หม้อน้ำผึ้ง SSH เป็นตัวล่อที่ตั้งใจให้ดูเหมือนผลไม้ห้อยต่ำเพื่อดึงดูดอาชญากรไซเบอร์และหลอกล่อให้พวกมันกำหนดเป้าหมาย แต่นั่นไม่ใช่เป้าหมายที่แท้จริง และแฮ็กเกอร์มักไม่รู้ตัวจนกว่าจะสายเกินไป
หม้อน้ำผึ้งมีได้หลายรูปแบบและมีประโยชน์หลายอย่าง บางครั้งมันก็เป็นมากกว่าสิ่งฟุ้งซ่าน แต่บางครั้งพวกเขาก็ใช้เพื่อรวบรวมข้อมูลเกี่ยวกับผู้โจมตี
หน่วยงานของรัฐหลายแห่งใช้ honeypots เพื่อจับอาชญากร ล่อให้เข้าโจมตี เพียงเพื่อรวบรวมข้อมูลเพื่อจับพวกเขาในภายหลัง แต่ผู้ดูแลระบบที่ทำงานให้กับบริษัทต่างๆ หรือแม้แต่มือสมัครเล่นที่ใช้เซิร์ฟเวอร์ Linux เพื่อความสนุกสนานก็สามารถใช้ honeypots ได้
เหตุใดจึงต้องใช้ SSH Honeypot
มีหลายเหตุผลที่บางคนอาจต้องการใช้ SSH honeypot บนเซิร์ฟเวอร์ของตน ในบางกรณี คุณอาจต้องการใช้เพื่อบล็อกการเชื่อมต่อในอนาคตจากพวกเขา บางทีคุณอาจแค่ต้องการล่อพวกเขาให้ห่างจากเป้าหมายที่แท้จริงในระบบของคุณ หรืออาจเป็นเพื่อการศึกษา:เพื่อช่วยเรียนรู้วิธีการทำงานของการโจมตี
สำหรับจุดประสงค์ของคู่มือนี้ เราใช้ honeypot เป็นหลักในการเบี่ยงเบนความสนใจ โดยเฉพาะอย่างยิ่ง แฮ็กเกอร์จะหันเหความสนใจจากการโจมตีส่วนที่เปราะบางมากขึ้นของเซิร์ฟเวอร์ของคุณ และทำให้พวกเขายุ่งเกินกว่าจะโจมตีเซิร์ฟเวอร์ของผู้อื่น
และอย่างน้อยในกรณีนี้ วิธีที่ใช้ก็เหมาะสำหรับการหัวเราะเช่นกัน
ติดอยู่ใน SSH
โดยพื้นฐานแล้ว สิ่งที่เราต้องทำคือดักแฮ็กเกอร์เมื่อพวกเขาพยายามบังคับให้เข้าสู่ระบบ SSH มีสองสามวิธีในการทำเช่นนี้ แต่วิธีที่ง่ายที่สุดคือส่งแบนเนอร์ SSH ที่ยาวมากให้พวกเขาช้าๆ
ด้วยวิธีนี้ สคริปต์อัตโนมัติของแฮ็กเกอร์จะรอแบนเนอร์อยู่ อาจอยู่ได้นานหลายชั่วโมง หากไม่ใช่วันหรือสัปดาห์ เนื่องจากสคริปต์เป็นแบบอัตโนมัติ แฮ็กเกอร์จึงน่าจะไม่สนใจมันมากนักและจะไม่สังเกตว่ามันค้างอยู่จนกระทั่งเวลาผ่านไปมาก
บางครั้งก็เรียกกันเล่นๆ ว่า "SSH tarpit" เนื่องจากสคริปต์ของแฮ็กเกอร์ติดอยู่ในนั้นและไม่สามารถออกไปได้เอง
สิ่งนี้ต้องการให้คุณทราบการใช้งาน SSH พื้นฐานบางอย่าง หากคุณไม่แน่ใจว่าจะใช้ SSH อย่างไร โปรดอ่านคู่มือนี้เพื่อเริ่มต้น
ไม่มีที่สิ้นสุด
โปรแกรมที่เราใช้เพื่อให้บรรลุสิ่งนี้เรียกว่าไม่มีที่สิ้นสุดและสร้างโดย skeeto
เมื่อคุณลงชื่อเข้าใช้เซิร์ฟเวอร์แล้ว ให้โคลนที่เก็บ (คุณต้องมี git
ติดตั้ง)
git clone https://github.com/skeeto/endlessh
ตอนนี้คุณมีที่เก็บบนเซิร์ฟเวอร์แล้ว คุณจะต้องสลับไปที่ไดเร็กทอรีนั้นและคอมไพล์มัน
cd endlessh make
ข้อผิดพลาดบางอย่างอาจเกิดขึ้นขณะพยายามคอมไพล์โปรแกรม นี่น่าจะหมายความว่าคุณไม่มีการพึ่งพาที่โปรแกรมจำเป็นต้องคอมไพล์ คุณจะต้องตรวจสอบว่าไม่มีการอ้างอิงใด จากนั้นติดตั้งโดยใช้ตัวจัดการแพ็คเกจของการแจกจ่าย
เมื่อคุณมีโปรแกรมที่จะคอมไพล์แล้ว คุณจะต้องย้ายไปยังไดเร็กทอรี bin เพื่อให้อยู่ในเส้นทางของคุณ
sudo mv endlessh /usr/local/bin
คุณจะต้องตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าตรวจพบในเส้นทางของคุณ
which endless
ควรพิมพ์/usr/local/bin/endlessh
เส้นทาง. หากไม่เป็นเช่นนั้น คุณจะต้องแน่ใจว่าได้ย้ายไปยังไดเร็กทอรีที่ถูกต้อง
หลังจากนั้นให้เปลี่ยนโปรแกรมเป็น service daemon เพื่อให้ทำงานเป็น systemd
บริการ
sudo cp util/endlessh.service /etc/systemd/system/
เมื่อเสร็จแล้ว ให้เปิดใช้บริการเพื่อที่จะทำงานในพื้นหลัง
sudo systemctl enable endlessh
โดยค่าเริ่มต้นendingh จะทำงานบนพอร์ตที่สูงกว่า 1024 เท่านั้น แต่เราต้องการให้มันใช้พอร์ต SSH เริ่มต้นเพื่อให้เราสามารถหลอกแฮกเกอร์ให้พยายามโจมตีได้ ในการดำเนินการนี้ เราต้องแก้ไขไฟล์บริการ
ตัวอย่างนี้ใช้ nano เพื่อแก้ไขไฟล์การกำหนดค่า แต่คุณสามารถใช้โปรแกรมแก้ไขข้อความได้ตามต้องการ
sudo nano /etc/systemd/system/endlessh.service
เมื่อเปิดไฟล์แล้ว ให้ยกเลิกหมายเหตุบรรทัดต่อไปนี้โดยลบอักขระ # ออก:
#AmbientCapabilities=CAP_NET_BIND_SERVICE
จากนั้นเติม # ที่จุดเริ่มต้นของบรรทัดนี้:
PrivateUsers=true
บันทึกไฟล์และเรียกใช้คำสั่งนี้:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
คุณจะต้องสร้างและตั้งค่าไฟล์คอนฟิกูเรชันเพื่อให้ไม่มีที่สิ้นสุดรู้ว่าควรรันพอร์ตใด คุณจะต้องสร้างไดเร็กทอรีใหม่ก่อน จากนั้นจึงสร้างไฟล์การกำหนดค่า
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
ไฟล์ปรับแต่งจะต้องมีบรรทัดเดียวในนั้น การดำเนินการนี้จะบอกendingh ให้ทำงานบนพอร์ต 22 ซึ่งเป็นพอร์ตเริ่มต้นสำหรับ SSH เราทำสิ่งนี้เพื่อให้เป็นเป้าหมายที่น่าดึงดูดยิ่งขึ้นสำหรับแฮกเกอร์ พวกเขาจะเห็นว่าพอร์ต SSH เริ่มต้นเปิดอยู่ จากนั้นลองเจาะเข้าไป
ป้อนข้อมูลต่อไปนี้ลงในไฟล์ปรับแต่งของคุณ:
Port 22
คุณจะต้องเริ่มบริการที่ไม่มีที่สิ้นสุด
sudo systemctl start endlessh
นั่นคือทั้งหมดที่มีให้! ตอนนี้คุณใช้งานพอร์ต SSH เริ่มต้นได้ไม่สิ้นสุดและดักแฮกเกอร์ได้แล้ว
ทดสอบการใช้งาน
เพื่อให้แน่ใจว่า honeypot ทำงานตามที่ตั้งใจไว้ ลองแกล้งทำเป็นแฮ็กเกอร์สักครู่แล้วลองเข้าถึง SSH บนเซิร์ฟเวอร์ของคุณ
ssh root@<server-ip-address>
ตราบใดที่ทุกอย่างได้รับการตั้งค่าอย่างถูกต้อง คุณจะเห็นว่า ssh
คำสั่งค้างและไม่ทำอะไรเลย มาดูกันดีกว่าว่าเกิดอะไรขึ้นเมื่อคุณ (หรือแฮ็กเกอร์ตัวจริง) ออกคำสั่งนี้
ทำซ้ำคำสั่งเดิม แต่เพิ่ม -vvv
ตั้งค่าสถานะเพื่อใช้ตัวเลือกแบบละเอียด
ssh -vvv root@<server-ip-address>
ตอนนี้ควรเป็นที่ชัดเจนว่าเครื่องมือเล็กๆ นี้ดักจับคุณและป้องกันไม่ให้คุณเข้าถึง SSH บนเซิร์ฟเวอร์ของคุณได้อย่างไร มันช้า ทีละบรรทัด โดยส่งแบนเนอร์ SSH ขนาดใหญ่มากไปยังไคลเอนต์
และแน่นอน เนื่องจากแฮ็กมีระบบอัตโนมัติกับบอท พวกเขาจะไม่ตระหนักว่าสิ่งนี้กำลังเกิดขึ้นจนกว่าคุณจะเสียเวลาไปหลายชั่วโมง หรือไม่ใช่วัน
คำถามที่พบบ่อย
1. สิ่งนี้จะป้องกันแฮกเกอร์ไม่ให้เข้าถึง SSH หรือไม่
แม้ว่าจะเป็นเครื่องยับยั้งที่ดี แต่ก็ไม่รับประกันว่าจะหยุดแฮกเกอร์ได้อย่างสมบูรณ์ ในที่สุด แฮ็กเกอร์ที่ใส่ใจจะสังเกตเห็นว่าคุณได้สร้าง honeypot บนเซิร์ฟเวอร์ของคุณ และอาจลองใช้พอร์ตอื่นเพื่อเข้าถึง SSH บนเซิร์ฟเวอร์ของคุณ
อย่างไรก็ตาม วิธีนี้น่าจะเพียงพอสำหรับป้องกันแฮ็กเกอร์ที่มองหาแต่ผลไม้เตี้ยๆ เท่านั้น
2. ฉันจะใช้ SSH ได้อย่างไรหากโปรแกรมนี้ทำงานบนพอร์ตเริ่มต้น
คุณจะต้องเปลี่ยนพอร์ต SSH ที่ทำงานอยู่ นี่เป็นแนวทางปฏิบัติที่ดีแม้ว่าคุณจะไม่มี honeypot บนเซิร์ฟเวอร์ของคุณ เนื่องจากแฮกเกอร์จะลองใช้พอร์ตเริ่มต้นก่อนเสมอก่อนที่จะสแกนหาผู้อื่น
3. มีตัวเลือกอื่นที่ฉันสามารถเพิ่มลงในไฟล์ปรับแต่งได้หรือไม่
ใช่ มีการตั้งค่าอื่นๆ อีกหลายอย่างที่คุณเปลี่ยนได้ รวมถึงการเปลี่ยนความเร็วการหน่วง
คุณสามารถดูรายการตัวเลือกในไฟล์การกำหนดค่าตัวอย่างบนที่เก็บ Github
คำลงท้าย
ตอนนี้ คุณได้เรียนรู้วิธีตั้งค่า honeypot บนเซิร์ฟเวอร์ของคุณเพื่อดักแฮ็กเกอร์และทำให้พวกเขาเสียสมาธิเพื่อไม่ให้โจมตีอย่างอื่น วิธีนี้ยังห่างไกลจากวิธีเดียวที่จะรักษาความปลอดภัยในการเข้าถึง SSH ไปยังเซิร์ฟเวอร์ของคุณ
ดูบทความนี้ที่แสดงวิธีใช้คีย์เข้ารหัสเพื่อเข้าสู่ระบบ SSH เพื่อช่วยรักษาความปลอดภัยให้กับเซิร์ฟเวอร์ของคุณให้ดียิ่งขึ้น