รูปที่ 1
รูปที่ 2
Secure Shell (SSH) คือ Network Protocol ที่ใช้ในการแลกเปลี่ยนข้อมูลโดยช่องทางที่ปลอยภัย (Secure Channel) ระหว่างอุปกรณ์เครือข่ายสองตัว เช่น การ Remote จาก Notebook ไปยัง Linux Server หรืออุปกรณ์ Network ปลายทาง เช่น Router CISCO เป็นต้น ที่เราคุ้นเคยคือการ Remote ด้วย Telnet จาก Notebook ไปยังอุปกรณ์หรือ Server ต่างๆ ซึ่ง Secure Shell (SSH) นำมาแทนการ Telnet ด้วยเหตุผลทางด้านความปลอดภัย เนื่องจากการส่งข้อมูลจะอยู่ในรูปแบบตัวอักษร (Plaintext) ที่มีการเข้ารหัสข้อมูล (Encryption) เพื่อให้ข้อมูลเป็นความลับและให้สามารถส่งข้อมูลผ่านเครือข่าย Internet ได้อย่างสมบูรณ์ สามารถใช้งาน SSH ผ่านโปรแกรมประยุกต์ (Applications) ได้มากมายบนระบบปฏิบัติการ UNIX, Microsoft Windows, Apple Mac และ Linux โปรแกรมประยุกต์ (Applications) เช่น Putty ,Secure Shell Client , Open Secure Shell เป็นต้น Port มาตรฐานของ SSH คือ TCP port 22
ตัวอย่างการ Config Secure Shell (SSH) Server บน Linux
โดยปกติ Secure Shell (SSH) Server จะมีติดตั้งอยู่ใน Unix หรือ Linux ทุกค่ายอยู่แล้ว สามารถตรวจสอบได้ด้วย netstat ตามด้านล่าง
[root@linux-jodoi ~]# netstat -tanp|grep ssh
tcp 0 0 :::22 :::* LISTEN 2406/sshd
แต่ถ้าไม่มีสามารถติดตั้งเพิ่มเติมได้ด้วย yum หรือ apt-get ก็ได้เช่น
# yum -y install openssh-server openssh-clients
ในการปรับแต่งค่า config ของ SSH ใน Linux Server นั้นทำได้โดยปรับแต่งที่ file sshd_config ดังนี้
[root@linux-jodoi ~]# vi /etc/ssh/sshd_config
#Port 22
Port 54321 ( ค่าเดิมเป็น port 22 ทำการเปลี่ยนเป็น 54321 ควรมีอย่างน้อย 5 หลัก )
#Protocol 2,1
Protocol 2 ( Protocol เลือกเป็น version 2 จะมีความปลอดภัยกว่า )
#ServerKeyBits 768
ServerKeyBits 1024 (เป็นคีย์ที่ใช้ในการเข้ารหัส ควรเปลี่ยนให้มากขึ้น )
#PermitRootLogin yes
PermitRootLogin no ( ไม่ควร ให้ user root login ได้ เพราะจะไม่รู้ว่า user ใดเข้ามาในระบบบ้างและเสี่ยงเกินไปที่ admin เข้ามาได้โดยตรง )
#MaxAuthTries 6
MaxAuthTries 3 ( ใส่ password ผิดได้ไม่เกิน 3 ครั้ง )
#PasswordAuthentication yes
#PermitEmptyPasswords no
PermitEmptyPasswords no (การใช้รหัสผ่านในการ log in และห้ามใช้รหัสผ่านที่ว่างเปล่า )
PasswordAuthentication yes (การใช้รหัสผ่านในการ log in และห้ามใช้รหัสผ่านที่ว่างเปล่า )
#Banner /some/path
Banner /home/jodoi/banner.txt ( สร้าง Banner หรือข้อความต้อนรับก่อนเข้า Server )
:wq! ( save และออกจาก file config )
ต่อไปเป็นการสร้าง file banner.txt ตามที่กำหนดไว้ใน config file
[root@linux-jodoi ~]# vi /home/jodoi/banner.txt
#################################################
#################################################
############# Jodoi Server ###########
############# Please do not hack Me ###########
############# http://www.jodoi.com ###########
#################################################
#################################################
:wq!
สั่ง restart service sshd
[root@linux-jodoi ~]# /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[root@linux-jodoi ~]#
ตรวจสอบ service sshd ว่า run อยู่หรือไม่และ port เปลี่ยนหรือไม่
[root@linux-jodoi ~]# netstat -tanp |grep ssh
tcp 0 0 :::54321 :::* LISTEN 4447/sshd
สามารถดูตัวอย่างการ Config ใน Linux Server เป็นวีดีโอได้ตามด้านล่างนะครับ
SSH server บน Router Cisco
ตัวอย่างขั้นตอนการ configure SSH server บน Router CISCO แบบ RSA authentication.
1. กำหนด Host name ให้ Router เช่น กำหนด hostname เป็น Jodoi-Router
Router(config)#hostname Jodoi-Router
2.กำหนด domain name ให้ Router เช่น กำหนด domain name เป็น jodoi.org
Router(config)#ip domain-name jodoi.org
3. สร้าง RSA key
Router(config)#crypto key generate rsa
4. สร้าง username และ password สำหรับการ SSH เช่น สร้าง username jodoi และใช้ password เป็น cisco
Router(config)#username jodoi password cisco
5. ให้ทำ access-list อนุญาตเฉพาะ traffic ที่มาจาก subnetwork ที่กำหนดเท่านั้น
ตัวอย่าง อนุญาติเฉพาะ Network 10.10.10.0 255.255.255.0 ที่เหลือห้ามทั้งหมด
Router(config)#access-list 23 permit 10.10.10.0 0.0.0.255
6. จำกัดการ access ไปที่ VTY line interface ด้วย access-class. และบังคับให้ใช้ SSH เท่าน้นด้วย transport input ssh
Router(config)#line vty 0 15
Router(config-line)#login local
Router(config-line)#transport input ssh
Router(config-line)#access-class 23 in
Router(config-line)#exit
7. กำหนด SSH Version ของ SSH
การ Configure SSH v1:
Jodoi-Router(config)#ip ssh version 1
การ Configure SSH v2:
Jodoi-Router(config)#ip ssh version 2
การ Configure SSH v1 and v2:
Jodoi-Router(config)#no ip ssh
การ Remote ผ่าน SSH Server นั้นต้องหาโปรแกรม SSH Client มาติดตั้งและใช้งานเช่น โปรแกรม putty หรือ SSH Secure Shell Client ดังรูปด้านล่าง
ถ้า connect ได้ จะเป็นดังรูปด้านล่างนะครับ
ข้อแนะนำเพิ่มเติมนะครับ ถึงแม้ว่ามีการตั้งค่าที่ Config ที่ปลอดภัยแล้ว การกำหนด User และ Password มีความสำคัญมาก ไม่ควรให้บุคคลภายนอกรู้ และควรเปลี่ยน Password อย่างน้อยทุก 3 เดือน และตรวจสอบ Log File เป็นประจำนะครับ
เพิ่มเติมการตรวจสอบว่ามีใคร Remote เข้ามาที่ Router CISCO เราหรือไม่นะครับ ด้วย command who และ command show control-plane host open-ports ตามรูปด้านล่างนะครับ
ดูตัวอย่างการ Config SSH Server เป็นวีดีโอได้ตามด้านล่างนะครับ
หวังว่าบทความนี้ คงจะเป็นประโยชน์ไม่มากก็น้อยนะครับ
เรียบเรียงโดย อาจารย์เกรียงศักดิ์ นามโคตร ( อาจารย์ดอย ) Mr.Jodoi