ตามที่กล่าวไว้ข้างต้นการเปลี่ยนหมายเลขเวอร์ชันคือ
- ยากที่จะทำ
- ความปลอดภัยผ่านความสับสน
- ไม่ยืดหยุ่น
สิ่งที่ฉันแนะนำคือการนำ Port Knocking ไปใช้ เป็นเทคนิคที่ค่อนข้างง่ายในการซ่อนสิ่งใดก็ตามที่ทำงานบนเซิร์ฟเวอร์ของคุณ
นี่คือการดำเนินการที่ดี:
http://www.zeroflux.org/projects/knock
นี่คือวิธีที่ฉันใช้มันบนเซิร์ฟเวอร์ของฉัน (หมายเลขอื่น ๆ ) เพื่อเปิด SSH เฉพาะกับผู้ที่รู้ว่า 'ความลับลับ':
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
สิ่งนี้จะให้หน้าต่าง 5 วินาทีซึ่งจำเป็นต้องรับแพ็คเก็ต SYN 3 ชุดตามลำดับที่ถูกต้อง เลือกพอร์ตที่อยู่ไกลกันและไม่เรียงตามลำดับ ด้วยวิธีนี้ผู้วางแผนพอร์ตไม่สามารถเปิดพอร์ตโดยไม่ได้ตั้งใจ พอร์ตเหล่านี้ไม่จำเป็นต้องเปิดโดย iptables
สคริปต์ที่ฉันเรียกคืออันนี้ จะเปิดพอร์ตเฉพาะเป็นเวลา 5 วินาทีสำหรับ IP ที่ส่งแพ็กเก็ต SYN
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
มันอาจเป็นความเจ็บปวดที่แท้จริงในการส่ง SYN-packets ดังนั้นฉันจึงใช้สคริปต์เพื่อเชื่อมต่อกับ SSH ของเซิร์ฟเวอร์ของฉัน:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(มันค่อนข้างชัดเจนว่าเกิดอะไรขึ้นที่นี่ ... )
หลังจากสร้างการเชื่อมต่อแล้วพอร์ตสามารถปิดได้ คำแนะนำ: ใช้การรับรองความถูกต้องของคีย์ ไม่เช่นนั้นคุณจะต้องพิมพ์รหัสผ่านของคุณอย่างรวดเร็ว