Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีรักษาความปลอดภัย Linux Home Server

วิธีรักษาความปลอดภัย Linux Home Server

มีเหตุผลมากมายที่จะตั้งค่า home server คุณอาจใช้มันเป็น media server, file server หรือแม้แต่ local backup server โดยพื้นฐาน ไฟล์ของคุณที่ไม่จำเป็นต้องออนไลน์เป็นผู้สมัครใจที่ดีสำหรับ home server การตั้งค่า home server ที่ขับเคลื่อนด้วย Linux ค่อนข้างง่าย โดยเฉพาะวันนี้ แต่การเก็บรักษาเซิร์ฟเวอร์นั้นให้ปลอดภัยเป็นเรื่องอื่นหมด Security สามารถซับซ้อนได้ จนสำคัญเท่าไหร่

ติดตั้งเฉพาะสิ่งที่คุณต้องการอย่างแน่นอน

หนึ่งในวิธีที่ง่ายที่สุดในการรักษา home server ให้ปลอดภัยคือคิดถึงความปลอดภัยตั้งแต่ต้น เริ่มจากการติดตั้ง คุณไม่แน่ใจว่าต้องการแอปพลิเคชันหรือบริการไหม? อย่าติดตั้ง คุณสามารถติดตั้งภายหลังได้เสมอ

หากคุณติดตั้ง Linux มาแล้วหลายครั้ง นี่จะง่ายขึ้น แทนที่จะคั่นกับค่าเริ่มต้น ใช้โหมดที่ให้คุณควบคุมการติดตั้งมากที่สุด บางครั้งชื่อว่า "expert mode" หรืออย่างนั้น

การติดตามตัวเลือกการติดตั้งอย่างระมัดระวังสามารถประหยัดเวลาปิดบริการเพื่อเหตุผลความปลอดภัยภายหลัง

ตั้งค่า sudo

ก่อนที่คุณจะไปขั้นตอนอื่น คุณต้องตั้งค่า sudo ทำไม? เพราะเมื่อเราทำเสร็จที่นี่ คุณจะล็อกอินเซิร์ฟเวอร์ผ่าน SSH และคุณจะไม่สามารถล็อกอินเป็น root account ได้ เพื่อทำการเปลี่ยนแปลงเพิ่มเติมใดๆ กับระบบของคุณ คุณจะต้องใช้ sudo

ขั้นแรก ตรวจสอบว่าคุณสามารถใช้ sudo ได้แล้วหรือยัง จากบัญชีผู้ใช้ของคุณ รันคำสั่งต่อไปนี้ด้วย username ของคุณแทน USERNAME:

sudo -lU USERNAME

หากคุณเห็นข้อความแสดงว่า username ของคุณสามารถรัน "(ALL) ALL" หรืออย่างนั้น คุณพร้อมไปขั้นต่อไป

ตอนนี้ เป็น root account บนเซิร์ฟเวอร์ของคุณ รันคำสั่งต่อไปนี้เพื่อแก้ไขไฟล์ "/etc/sudoers" หากคุณชอบตัวแก้ไขอื่น ใช้แทน nano

EDITOR=nano visudo

แก้ไขไฟล์ให้รวมสิ่งต่อไปนี้ ด้วย username ของคุณแทน USERNAME:

USERNAME ALL=(ALL) ALL

ตั้งค่า SSH

วิธีรักษาความปลอดภัย Linux Home Server

คุณอาจมี SSH เปิดใช้งานบน home server ของคุณแล้ว คุณน่าจะมีจริงๆ เพราะนี่มักเป็นวิธีที่คุณโต้ตอบกับเซิร์ฟเวอร์

ขั้นแรก ตรวจสอบให้แน่ใจว่า OpenSSH ติดตั้งแล้ว หากคุณใช้ distro อื่น คำสั่งของคุณจะแตกต่าง แตชื่อแพ็กเกจควรค่อนข้างสม่ำเสมอ บน Ubuntu ให้รัน:

sudo apt install openssh-server

การใช้ key-based authentication ปลอดภัยกว่า password authentication มาก ดังนั้นเราจะตั้งค่า SSH ให้ทำงานแบบนี้ เพื่อทำเช่นนี้ ตรวจสอบให้แน่ใจว่าคุณกำลังทำงานบน client ที่คุณวางแผนจะเชื่อมต่อกับเซิร์ฟเวอร์ ไม่ใช่เซิร์ฟเวอร์เอง ขั้นแรก ต้องแน่ใจว่าคุณไม่มี SSH keys อยู่แล้ว:

ls ~/.ssh/

หากคุณเห็น "id_rsa" และ "id_rsa.pub" ในชื่อไฟล์ที่แสดง คุณมี SSH keys แล้ว ข้ามขั้นตอนถัดไป

ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"

ตอนนี้คุณจะคัดลอก SSH key ไปยังเซิร์ฟเวอร์ของคุณ:

ssh-copy-id USERNAME@SERVER

สำหรับ home server คุณอาจใช้ IP address สำหรับเซิร์ฟเวอร์แทนชื่อ หากคุณไม่รู้ชื่อเซิร์ฟเวอร์ ใช้ IP address แทน SERVER ด้านบน

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

sudo nano /etc/ssh/sshd_config

แก้ไขไฟล์ด้วยการตั้งค่าต่อไปนี้ การตั้งค่าเหล่านี้จะอยู่ในตำแหน่งต่างๆ ในไฟล์ ตรวจสอบให้แน่ใจว่าไม่มี duplicates เพราะเพียง instance แรกของการตั้งค่าจะถูกปฏิบัติ

ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no

ตอนนี้คุณต้อง restart SSH server ด้วยคำสั่งใดคำสั่งหนึ่งต่อไปนี้

บน Ubuntu ให้รัน:

sudo systemctl restart ssh

ตั้งค่า Firewall

ขึ้นอยู่กับบริการที่คุณรัน และเซิร์ฟเวอร์ของคุณเชื่อมต่ออินเทอร์เน็ตมากน้อยแค่ไหน คุณอาจต้องการรัน firewall มีตัวเลือกบ้างสำหรับนี้ แต่วิธีที่ทดสอบแล้วและแท้จริงบน Linux คือ iptables

การตั้งค่า iptools อยู่นอกขอบเขตของบทความนี้ แต่อย่ากังวล เรามีคู่มือสมบูรณ์สำหรับการตั้งค่า iptables บนเครื่องของคุณ

อีกวิธีที่ง่ายกว่าในการตั้งค่า firewall คือใช้ ufw คุณสามารถติดตั้งได้ด้วยคำสั่ง:

sudo apt install ufw

โดยค่าเริ่มต้น มันจะบล็อกพอร์ตทั้งหมด เพื่อเปิดใช้งานการเข้าถึงออนไลน์และ ssh ให้รันคำสั่ง ufw ต่อไปนี้เพื่อเปิดพอร์ต 80, 443 และ 22:

sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22

และสุดท้าย เปิดใช้งาน ufw service:

sudo ufw enable

อยู่ในสภาพอัปเดตเสมอ (Stay Up to Date)

วิธีรักษาความปลอดภัย Linux Home Server

เซิร์ฟเวอร์ง่ายที่จะลืม หากมันทำงานได้ แต่สิ่งนี้อันตราย ตรวจสอบให้แน่ใจว่า software ของคุณทันสมัย คุณสามารถใช้ unattended upgrades แต่นี่อาจไม่คาดเดาได้ วิธีที่ปลอดภัยที่สุดคือจัดตารางการบำรุงรักษาเซิร์ฟเวอร์ประจำสัปดาห์หรือรายเดือน เพื่อให้แน่ใจว่าทุกอย่างพร้อม

ขั้นตอนต่อไป (Where to Go from Here)

ตอนนี้คุณมีจุดเริ่มต้นที่ดีในการปกป้องเซิร์ฟเวอร์จากภัยคุกคามภายนอก แตถ้าคุณต้องการเข้าถึงเซิร์ฟเวอร์จากบ้าน ทุกประตูที่คุณเปิด อาจถูกใช้โดยผู้โจมตี และทุก open port เพิ่ม vulnerability ของคุณ

หนึ่งในวิธีที่ง่ายที่สุดในการเข้าถึงเครือข่ายบ้านจากภายนอกคือใช้ VPN ซึ่งอยู่นอกขอบเขตของบทความนี้ แต่อย่ากังวล เราคุ้มครองคุณไว้ ดูรายการ best secure VPN services ที่มีอยู่เพื่อความคิดเห็นว่าตัวเลือกของคุณคืออะไร