บทความที่จะเอามาลงนีเขาอธิบาลเกี่ยวกับ shell ไว้ เหมาะกับมือใหม่ครับ
What are SSH, SFTP and SCP?
Secure Shell (SSH) เป็นโพรโตคอลในการสร้างการติดต่อเพื่อเข้าใช้งานระบบอย่างปลอดภัยมากกว่าการติดต่อแบบเดิมๆ ที่มีการส่งข้อมูลเป็นเพียงตัวอักษรเปล่าๆ (Plain text) โดยที่โพรโตคอลดังกล่าวจะทำการเข้ารหัสข้อมูลทุกอย่างไม่ว่าจะเป็น ชื่อผู้ใช้ รหัสผ่าน หรือข้อมูลอื่นๆ ก่อนที่จะทำการส่งไปยังเครื่องเซิร์ฟเวอร์ โดยปกตินิยมนำ SSH มาใช้งานแทน telnet เพราะมีความปลอดภัยมากกว่า
Secure File Transfer Protocol (SFTP) เป็นโพรโตคอลที่นำมาใช้แทน FTP โดยจะเป็นส่วนหนึ่งของ SSH ซึ่งจะมี sftpserv เป็นโปรแกรมที่รันอยู่ที่ฝั่งเซิร์ฟเวอร์ รอรับการติดต่อจากไคลเอ็นต์ผ่านทางคำสั่ง sftp บนระบบปฏิบัติการ linux และในระบบปฏิบัติการ Windows ก็มีโปรแกรมที่จะใช้สำหรับติดต่อและโอนถ่ายข้อมูลกับเซิร์ฟเวอร์ผ่าน SSH ด้วย เช่น SecureFX และ SSH Secure Shell Client เป็นต้น
Secure Copy (SCP) เป็นวิธีการหนึ่งในรับส่งข้อมูลข้ามระบบเครือข่าย โดยมีลักษณะเป็นการคัดลอกข้อมูลระหว่างเครื่อง 2 เครื่อง และอาศัยโพรโตคอล Secure Shell เช่นเดียวกับ SFTP ซึ่งจะแตกต่างกันที่ SFTP จะต้อง Login เข้าไปที่ระบบก่อนแล้วจึงสามารถที่จะรับส่งไฟล์ได้ แต่
SCP นั้นจะป้อนรหัสผ่านทุกครั้งที่ทำการรับส่งไฟล์
Why Use SSH?
วิธีการส่วนมากที่ผู้โจมตีใช้กันคือการดักขโมยข้อมูลระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ผ่านทางโพรโตคอล telnet ซึ่งข้อมูลที่ดักได้อาจจะเป็นชื่อที่ใช้ Login และรหัสผ่าน ที่ไม่ได้ถูกเข้ารหัสไว้ โดยใช้โปรแกรมประเภท Sniffer ทั่วๆไป ดังรูปที่ 1 และถ้าเกิดกรณีที่ผู้โจมตีดักขโมยชื่อผู้ใช้คือ root และรหัสผ่าน ความเสียหายที่ตามมาอาจจะมากจนเกินที่จะแก้ไขได้
ดังนั้นวิธีแก้ไขคือ ยกเลิกการใช้โพรโตคอล telnet โดยใช้โพรโตคอล SSH แทน และใช้ SFTP แทนโพรโตคอลของ FTP ทั้งนี้เพื่อความปลอดภัย
การปรับแต่งค่า Secure Shell Daemon
ในระบบปฏิบัติการ linux Red Hat เวอร์ชัน 7.2 นั้นมีแพ็กเกจ OpenSSH (มีแพ็กเกจชื่อ openssh) ที่มีทั้ง openssh-serv (สำหรับเซิร์ฟเวอร์) และ openssh-client (สำหรับไคลเอ็นต์) แพ็กเกจดังกล่าวต้องการแพ็กเกจ OpenSSL (มีแพ็กเกจชื่อ openssl) ดังนั้นก่อนการติดตั้ง openssh นั้นต้องติดตั้ง openssl ก่อนเสมอ
การปรับแต่งจะมุ่งเน้นไปที่การปรับแต่งค่าของ SSHD เป็น daemon ของฝั่งเซิร์ฟเวอร์ที่รอรับการติดต่อจากไคลเอ็นต์ ให้มีความปลอดภัยมากที่สุด โดยจะทำการแก้ไขในไฟล์ที่ชื่อ /etc/ssh/sshd_config ซึ่งรายละเอียดในไฟล์ที่สำคัญมีดังนี้ และให้ลบ # ที่อยู่หน้า option ต่อไปนี้
[code]# This is ssh server systemwide configuration file.
Port