มีหลายวิธีในการแก้ไขช่องโหว่อย่างไรก็ตามสิ่งแรกที่คุณควรรู้คือ Linux ไม่ไวต่อการบุกรุกเหมือนกับระบบปฏิบัติการอื่น สาเหตุหลักมาจากการไม่มีมัลแวร์ที่กำหนดเป้าหมาย * NIX อย่างไรก็ตามคุณต้องการทราบถึงวิธีการที่ระบบของคุณสามารถเข้าถึงได้
รหัสผ่าน
ประการแรกคุณควรเปลี่ยนรหัสผ่านเริ่มต้นสำหรับผู้ใช้ที่สามารถเข้าสู่ระบบได้ สำหรับ Debian นี้เป็นเพียงผู้ใช้เริ่มต้นPi สำหรับ Arch Linux นี่คือรูทผู้ใช้ขั้นสูง รหัสผ่านจะถูกเปลี่ยนเมื่อล็อกอินในฐานะผู้ใช้โดยพิมพ์passwd
บนบรรทัดคำสั่ง
นโยบายรหัสผ่านที่ปลอดภัยได้รับการสนับสนุนเนื่องจากจะค่อนข้างง่ายในการเรียกใช้การโจมตีด้วยพจนานุกรมเดรัจฉานกับผู้ใช้เริ่มต้นของคุณ เลือกรหัสผ่านที่มีความยาวปานกลางและเหมาะสม
ความสับสน
การเข้าถึงระยะไกลอาจเป็นช่องโหว่ด้านความปลอดภัยที่สำคัญที่สุด สิ่งที่เราสามารถใช้ที่นี่เป็นชื่อการรักษาความปลอดภัยจากความสับสน วิธีการทั่วไปของการโจมตีคือการสแกนช่วงของที่อยู่ IP สำหรับพอร์ตที่เปิดอยู่ ดังนั้นหนึ่งในการตอบโต้ที่ง่ายที่สุดที่เราสามารถใช้คือการเป็นผู้ใช้ที่ไม่ได้ใช้พอร์ตเริ่มต้น
สิ่งที่ต้องทำที่นี่คือการเปลี่ยนพอร์ตเริ่มต้นสำหรับโปรโตคอลที่ใช้กันทั่วไป ตัวอย่างเช่นพอร์ต SSH เริ่มต้นคือ 22 และ FTP คือ 21 บนระบบของฉัน SSH ใช้ 222 และ FTP 221 ซึ่งควรปิดบังโปรโตคอลเหล่านี้จากการโจมตีอัตโนมัติ
ความปลอดภัยในการเชื่อมต่อ
ประการแรกข้อกังวลด้านความปลอดภัยที่สำคัญที่สุดคือบัญชีรูทไม่สามารถเข้าสู่ระบบผ่าน SSH ได้ คุณสามารถปิดใช้งานการเข้าสู่ระบบรูทใน/etc/ssh/sshd_config
ไฟล์โดยการแสดงความคิดเห็นหรือลบบรรทัดนี้:
PermitRootLogin yes
ควรตั้งค่าเป็นไม่เป็นค่าเริ่มต้น แต่เป็นการดีที่สุดเพื่อให้แน่ใจ
ถ้าคุณใช้ SSH SSH Keys
เป็นจำนวนมากและมีความกังวลใจเกี่ยวกับชายคนหนึ่งในการโจมตีกลางพจนานุกรมโจมตีกับรหัสผ่านของคุณแล้วคุณสามารถใช้
การพิสูจน์ตัวตนแบบใช้คีย์มีข้อดีหลายประการมากกว่าการพิสูจน์ตัวตนด้วยรหัสผ่านตัวอย่างเช่นค่าคีย์ยากต่อการบังคับเดรัจฉานมากกว่ารหัสผ่านธรรมดา
ในการตั้งค่าการรับรองความถูกต้องของคีย์ SSH คุณต้องสร้างคู่ของคีย์ก่อน สิ่งนี้ทำได้ง่ายที่สุดในเครื่องไคลเอนต์ของคุณ (เครื่องที่คุณต้องการเข้าถึง Pi)
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
ในขณะที่คุณสามารถดูนี้ได้สร้างสองไฟล์คีย์ส่วนตัวและคีย์สาธารณะid_rsa
id_rsa.pub
คีย์ส่วนตัวเป็นที่รู้จักกันเฉพาะกับคุณและมันควรจะรักษาได้อย่างปลอดภัย ในทางตรงกันข้ามกุญแจสาธารณะสามารถแชร์ได้อย่างอิสระกับเซิร์ฟเวอร์ SSH ใด ๆ ที่คุณต้องการเชื่อมต่อ
ดังนั้นสิ่งที่เราต้องการทำคือคัดลอกกุญแจสาธารณะไปยัง Raspberry Pi เราสามารถทำได้อย่างง่ายดายมาก:
ssh-copy-id pi@address
pi
ชื่อผู้ใช้ Raspberry Pi อยู่ที่ไหนและaddress
เป็นที่อยู่ IP ของ Pi
ฉันจะย้ำอีกครั้งเราแจกจ่ายกุญแจสาธารณะ รหัสส่วนตัวเป็นของคุณ กดค้างไว้อย่างแน่นหนาเพื่อปล่อยกุญแจนั้นจะทำลายความปลอดภัยของระบบ
The Arch wikiมีคำอธิบายที่ยอดเยี่ยมเกี่ยวกับวิธีการทำงาน:
เมื่อเซิร์ฟเวอร์ SSH มีพับลิกคีย์ของคุณในไฟล์และเห็นว่าคุณร้องขอการเชื่อมต่อจะใช้พับลิกคีย์ของคุณเพื่อสร้างและส่งการท้าทายให้คุณ ความท้าทายนี้เป็นเหมือนข้อความที่เข้ารหัสและจะต้องได้รับการตอบสนองที่เหมาะสมก่อนที่เซิร์ฟเวอร์จะอนุญาตให้คุณเข้าถึง สิ่งที่ทำให้ข้อความที่เข้ารหัสนี้มีความปลอดภัยโดยเฉพาะคือใครบางคนที่มีคีย์ส่วนตัวสามารถเข้าใจได้ ในขณะที่สามารถใช้รหัสสาธารณะเพื่อเข้ารหัสข้อความได้ แต่ก็ไม่สามารถใช้เพื่อถอดรหัสข้อความเดียวกันได้ มีเพียงคุณผู้ถือกุญแจส่วนตัวเท่านั้นที่จะสามารถเข้าใจความท้าทายได้อย่างถูกต้องและสร้างการตอบสนองที่ถูกต้อง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการรักษาความปลอดภัยของการตรวจสอบคีย์สาธารณะ, วิกิพีเดียมีคำอธิบายอย่างละเอียด
ด้วยความปลอดภัยของ SSH คุณสามารถทำการถ่ายโอนข้อมูลที่เข้ารหัสและปลอดภัย ในทางปฏิบัติทุกการเชื่อมต่อพอร์ตอื่น ๆ สามารถส่งผ่าน SSH หากจำเป็น คุณสามารถส่งต่อเซสชัน X ผ่าน SSH เพื่อให้ปรากฏในเครื่องอื่น
เป็นตัวอย่างที่น่าสนใจเมื่อวานนี้ฉันใช้ Eclipse บนเดสก์ท็อปของฉันดูบน Raspberry Pi ของฉันและควบคุมเมาส์และคีย์บอร์ดจาก Netbook ของฉัน นั่นคือพลังของ SSH
สิทธิ์
การอนุญาตของไฟล์เป็นจุดเริ่มต้นของระบบรักษาความปลอดภัย Linux มีผลกับผู้ที่สามารถดูไฟล์และโฟลเดอร์ของคุณและสามารถปกป้องข้อมูลของคุณได้อย่างสำคัญ ตัวอย่างเช่นล็อกอินเข้าสู่ Raspberry Pi ในฐานะผู้ใช้ปกติและรัน:
cat /etc/shadow
shadow
ไฟล์มีรหัสผ่านที่เข้ารหัสสำหรับผู้ใช้ในระบบดังนั้นเราจะไม่ต้องการเพียงเกี่ยวกับทุกคนที่จะดูมัน! ดังนั้นคุณควรเห็นคำตอบนี้:
cat: /etc/shadow: Permission denied
เราสามารถดูสาเหตุของเรื่องนี้ได้โดยดูที่การอนุญาตของไฟล์:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
สิ่งนี้บอกเราว่าไฟล์นั้นเป็นเจ้าของโดย root และมีเพียงเจ้าของเท่านั้นที่มีสิทธิ์อ่าน / เขียน ลองแยกผลลัพธ์ออกมา
-rw-------
นี่คือสถานะของการอนุญาต บิตแรกบอกประเภทของไฟล์ ( -
หมายถึงไฟล์ปกติ) สามบิตถัดไปแสดงถึงการกระทำที่มีให้กับเจ้าของไฟล์ สามบิตที่สองเป็นตัวแทนของกลุ่มและสามบิตสุดท้ายมีไว้สำหรับคนอื่น ๆหรือคนอื่น ๆ ดังนั้นไดเรกทอรีที่มีสิทธิ์อย่างเต็มที่จะมีลักษณะเช่นนี้:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
นั่นคืออ่านเขียนและดำเนินการอนุญาตสำหรับเจ้าของกลุ่มและคนอื่น ๆ
ส่วนที่สำคัญต่อไปคือชื่อทั้งสอง root root
ในกรณีของเรา ผู้ใช้คนแรกเป็นเจ้าของไฟล์ ประการที่สองคือกลุ่มผู้ใช้ ตัวอย่างเช่นมันจะเป็นเรื่องธรรมดาที่จะเห็น:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
สิ่งนี้จะอนุญาตการเข้าถึงแบบอ่าน / เขียนสำหรับผู้ใช้pi
ในโฮมไดเร็กตอรี่ของเขาและอ่านการเข้าถึงสำหรับผู้ใช้รายอื่นทั้งหมด
สิทธิ์ส่วนใหญ่มักอ้างถึงและควบคุมโดยใช้ค่าฐานแปด ตัวอย่างเช่นหากเราต้องการตั้งค่า rw เฉพาะเจ้าของเราจะพิมพ์:
chmod 600 /path/to/file
นี่เป็นภาพรวมพื้นฐานสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการอนุญาตไฟล์ Linux นี่เป็นบทความที่ดี
ความเข้าใจนี้มีความสำคัญเมื่อรักษาความปลอดภัยไฟล์และโฟลเดอร์ ตัวอย่างเช่นสมมติว่าเราเพิ่งตั้งค่าคีย์ SSH เราไม่ต้องการให้ผู้ใช้รายอื่นเห็นใน~/.ssh
ไดเรกทอรีของเราหรือพวกเขาจะสามารถใช้กุญแจส่วนตัวของเราได้ ดังนั้นเราจึงลบสิทธิ์การอ่านของพวกเขา:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
ฉันหวังว่าสิ่งนี้จะช่วยขจัดข้อกังวลบางอย่างของคุณด้วยการรักษาความปลอดภัยของ Linux จากนี้คุณจะสามารถเห็นว่ามันเป็นระบบที่ค่อนข้างปลอดภัยและหากคุณระมัดระวังคุณควรไม่มีปัญหาด้านความปลอดภัย
su
ให้พวกเขา