Configure SSH Daemon In Linux CentOS 7

Click To View With Unicode Font

System ကို update လုပ္ ၿပီး လိုအပ္ေသာ binary packages မ်ားကို install ျပဳလုပ္ ပါမည္။

# yum update
# yum install nmap net-tools bind-utils traceroute policycoreutils-python NetworkManager-tui open-vm-tools open-ssh -y

System ၏ IP, Netmask, Gateway, DNS ႏွင့္ DNS Search Path မ်ားကို လိုအပ္သလို ေျပာင္းလဲရန္အတြက္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# nmtui

Network Setting မ်ား Host Name မ်ား ႏွင့္ update လုပ္ထားျခင္းေၾကာင့္ kernel မ်ားေျပာင္းလဲသြားၿပီး ျဖစ္ပါသည္။ ထို႔ေၾကာင့္ system ကို restart ခ်ရန္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# init 6

SSH Daemon ကို System Setup လုပ္သည္ႏွင့္ စတင္ေစရန္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# systemctl enable sshd.service

SSH Daemon ကို start လုပ္ရန္အတြက္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# systemctl start sshd.service

SSH Daemon ကို  restart လုပ္ရန္အတြက္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# systemctl restart sshd.service

SSH Deamon ၏ status ကိုၾကည့္ရန္ႏွင့္ debug ျပဳလုပ္ႏိုင္ရန္ ေအာက္ပါ command ကို အသံုးျပဳေဆာင္ရြတ္ပါမည္။

# systemctl status sshd.service -l

System message တြင္လည္း ၾကည့္ႏိုင္ပါသည္။

# tail -f /var/log/message

SSH Service ကို အသံုးျပဳ၍ System ကို login လုပ္ေသာအခါ Security ပိုမိုေကာင္းမြန္ေစရန္ SSH Protocol Version မ်ားေျပာင္းလဲျခင္း၊ Default Standard Port Number 22 တြင္ အသံုးမျပဳပဲ အျခား Non-Standard Port Number တြင္ ထား၍ အသံုးျပဳျခင္း Login ဝင္ရန္ စတင္လိုက္သည္ႏွင့္  Info Alert Message ေပးရန္၊ Login success ျဖစ္ေသာ အခါ Greeting Message ကို ျပရန္ႏွင့္ Password ျဖင့္ Login ဝင္ျခင္း အစား Public Key အသံုးျပဳ၍ Login ဝင္ျခင္းမ်ားကို Configuration လက့္ေတြ႔ ျပဳလုပ္ သြားမွာ ျဖစ္ပါသည္။

SSH ကို login ဝင္သည္ႏွင့္ တၿပိဳက္နက္ Message ေပးရန္ issue.net ဖိုင္ကို အသံုးျပဳရမည္ျဖစ္ၿပီး လည္းေကာင္း ဖိုင္သည္ /etc ေအာက္တြင္႐ွိပါသည္။  မိမိေပးလိုေသာ Info Alert Message အား issue.net တြင္ ေရးသားရန္အတြက္ ေအာက္ပါအတိုင္းေဆာင္ရြတ္ပါမည္။

# vi /etc/issue.net
d5d ႐ိုက္ၿပီး အားလံုး ျဖတ္ျပစ္ပါမည္။ ထို႔ေနာက္ i ကို ႐ိုက္ၿပီး ေအာက္ပါအတိုင္းေရးသြင္းပါမည္။

                    /******************************************************
                    *                               - Authorized Person Only -                             *
                   *****************************************************/

Esc key ကိုနိပ္ၿပီး :wq ႐ိုက္ကာ save လုပ္ပါမည္။

SSH ကို login ဝင္ၿပီးေနာက္ Greeting Message ေပးရန္အတြက္ motd ဖိုင္ကို အသံုးျပဳမည္ျဖစ္ၿပီး လည္ေကာင္းဖိုင္သည္လည္း /etc ေအာက္တြင္႐ွိပါသည္။ မိမိေပးလိုေသာ Greeting Message အား motd တြင္ ေရးသားရန္အတြက္ ေအာက္ပါအတိုင္းေဆာင္ရြတ္ပါမည္။

# vi /etc/motd
d5d ႐ိုက္ၿပီး အားလံုး ျဖတ္ျပစ္ပါမည္။ ထို႔ေနာက္ i ကို ႐ိုက္ၿပီး ေအာက္ပါအတိုင္းေရးသြင္းပါမည္။

                         Hello, Welcome back. Have a nice day.

Esc key ကိုနိပ္ၿပီး :wq ႐ိုက္ကာ save လုပ္ပါမည္။

SSH Service ကို Default Standard Port 22 တြင္ အသံုး မျပဳပဲ Non-Standard Port 2112 တြင္း အသံုးျပဳ ေဆာင္ရြတ္ရန္ နွင့္ Default Standard Port ကို firewall တြင္ ဖယ္ရွာျပစ္ရန္ အတြက္ selinux တြင္ ျပဳျပင္ျခင္း၊ firewall တြင္ ျပဳျပင္ျခင္းမ်ားအား ေဆာင္ရြတ္မည္ ျဖစ္ပါသည္။

# semanage port -a -t ssh_port_t -p tcp 2112

selinux တြင္ tcp port 2112 ကို ထည့္သြင္းၿပီး လည္ေကာင္း သည္ ssh_port_t အမ်ိဳးအစားျဖစ္ေၾကာင္း ေၾကျငာျခင္းျဖစ္ပါသည္။

# firewall-cmd --set-default-zone=work

လက္႐ွိ zone မွ work zone သို႔ေျပာင္းျခင္းျဖစ္ပါသည္။

# firewall-cmd --zone=work --remove-service=ssh --permanent

SSH Default standard port 22 တြင္ အသံုးျပဳမည္ဟုေျပာထားေသာ service ကို firewall မွ အၿပီးတိုင္ ဖယ္႐ွာျခင္းျဖစ္ပါသည္။

# firewall-cmd --add-port 2112/tcp --permanent

Modified လုပ္ထားေသာ SSH Non-Standard port ကို firewall တြင္ ထည့္သြင္းျခင္းျဖစ္ပါသည္။

Public/Private Key ကို အသံုးျပု လ်င္ အသံုးျပဳလိုေသာ Client မွ Key Pair ကို Generate ျပဳလုပ္ၿပီး Public Key ကို Server site သို႔ေပးပို႔ရမည္ျဖစ္သည္။ Private Key ကို အသံုးျပဳထားေသာ Administrator မွ SSH Server သို့ Login ဝင္လ်ွင္ Password အစား အသံုးျပု နိုင္ပာသည္။Public/Private Key Generate လုပ္ျခင္း အသံုးျပဳျခင္း နည္းလမ္း အမ်ိဳးမ်ိဳး ႐ွိသည့္ အနက္ လက္႐ွိ စာေရးသူ အသံုးျပဳေနေသာ နည္းလမ္းအား ေဖၚျပေပး သြားမည္ ျဖစ္ပါသည္။

Bitvise SSH Client Software အား Download လုပ္ၿပီး Install ျပဳလုပ္ပါမည္။

Bitvise SSH Client Download Links

Bitvise SSH Client Software အား Lunch လုပ္ၿပီး ပံုတြင္ေတြျမင္ရသည့္ အတိုင္း Client Key Manager ကို Click တခ်က္နိပ္ပါမည္။ 


Bitvise SSH Client Application တြင္ Client Key Manager ကို ေတြ႔ျမင္ရပံု


Client Key Manager popup Window တြင္ Generate New ကိုေတြျမင္ရပံု

ပံုတြင္ေတြ႔ျမင္ရေသာ Client Key Manager မွ Generate New ကိုနိပ္ပါမည္။


Generate New Window ကိုေတြ႔ျမင္ရပံု

ပံုတြင္ ေတြျမင္ရသည့္ အတိုင္း ေရြးျခယ္ျခင္း ေရးသြင္းျခင္းမ်ားျပဳလုပ္ပါမည္။ Algorithm တြင္ RSA, Size တြင္ 2048, ႏွင့္ Passphrase ေနရာတြင္ mytopsecrect ကို ႐ိုက္ထည့္ၿပီး Generate ကိုနိပ္ပါမည္။


Client Key Manager တြင္ Generate လုပ္ထားေသာ Key ကိုေတြျမင္ရပံု


ပံုတြင္ ေတြျမင္ရေသာ Generate လုပ္ထားေသာ Key ကို select လုပ္ၿပီး Export ကို နိပ္လိုက္မည္ ဆိုပါက Export Public or Private Key Window ထြတ္ေပၚလာပါမည္။


Export Key Window ကိုေတြ႔ျမင္ရပံု

Public Key ကို Server သို႔ေပးပို႔ရမည္ျဖစ္ေသာေၾကာင့္ Export Public Key ႏွင့္ OpenSSH Format ကို ေရြးျခယ္ၿပီး Export button ကို Click လုပ္ပါမည္။



ေနရာေရြး ဖိုင္ name ေပးၿပီး save လုပ္ေပးရပါမည္။



Bitvise SSH Client တြင္ ပံုတြင္ျပထားသည့္အတိုင္း Host ေနရာတြင္ Server ၏ IP ၊ Port ေနရာတြင္ 22၊ Username တြင္ root၊ Initial method တြင္ password၊ Password ေနရာတြင္ root user ၏ password အာ ႐ိုက္ထည့္ၿပီး Login လုပ္ပါမည္။



Terminal windows ႏွင့္ အတူ sFTP Windows ပါ ပြင့္လာပါမည္။ sFTP Windows ၏ ဘယ္ဖက္ျခမ္းသည္ Client Site ၏ Explorer ျဖစ္ၿပီး ညာဖက္ျခမ္းသည္ ခ်ိတ္ဆက္ထားေသာ Server Site ၏ Explorer ျဖစ္ပါသည္။ Client Site ၏ Explorer Window တြင္ Generate လုပ္ထားေသာ Key File ကို ေရြးၿပီး right click နိပ္၍ upload လုပ္ပါမည္။


ထိုေနာက္ Terminal တြင္ 

# mkdir ~/.ssh
            
/root ေအာက္တြင္ .ssh directory ကို တည္ေဆာက္ျခင္းျဖစ္ပါသည္။

# cat id_rsa.pub >> ~/.ssh/authorized_keys

upload လုပ္ထားေသာ Public Key ဖိုင္တြင္ ေရးသာထားသည္မ်ာကို ဖတ္ၿပီး ~/.ssh/authorized_keys ဖိုင္အျဖစ္ျပန္တည္ေဆာက္ျခင္းျဖစ္ပါသည္။

# chmod 700 ~/.ssh
# chmod 600 ~/.ssh/authorized_keys

File Level Security သတ္မႇတ္ျခင္းျဖစ္ပါသည္။ 


ေနာက္တဆင့္ အေနျဖင့္ ssh configuration ကို ျပင္ဆင္ေတာ့မွာျဖစ္ပါသည္။ SSH Service Configuration ဖိုင္သည္ /etc/ssh/sshd_config ျဖစ္ပါသည္။

# vi /etc/ssh/sshd_config ႐ိုက္ၿပီး ဝင္ပါမည္။
i ကိုနိပ္ၿပီး insert mode ကို ဝင္ပါမည္။ ထ႔ိုေနာက္

# Port 22 အား
                    Port 2112 ဟုလည္းေကာင္း

# Protocol 2 အား
                        Protocol 2 ဟုလည္းေကာင္း

# Banner none အား
                            Banner /etc/issue ဟုလည္းေကာင္း

PasswordAuthentication yes အား
                                     PasswordAuthentication no ဟုလည္းေကာင္း

ေျပာင္းလဲ ျပင္ဆင္ ေရးသားၿပီးေနာက္ Esc key ကိုနိပ္ၿပီး :wq ႐ိုက္ကာ save လုပ္ပါမည္။

ssh service ကို restart ျပုလုပ္လ်င္ေသာ္လည္းေကာင္း firewall ကို reload ျပုလုပ္လ်င္ေသာ္လည္းေကာင္း လက္ရွိ ssh မွ login ဝင္ျပီးျပုလုပ္ေနလ်င္ disconnect ျဖစ္သြားနိုင္ျပီး အဆက္အသြယ္ ျပတ္ေတာက္ သြားႏိုင္ပါသျဖင့္ console ကေနသာ ဆက္လက္ေဆာင္ရြတ္ရန္ အထူးသတိျပဳေစလိုပါသည္။ အကယ္၍ မျဖစ္မေနေဆာင္ရြတ္ရမည္ဆိုပါက ပထမဦးစြာ ေဆာင္ရြတ္ထားသည္မ်ား မွန္ကန္မူ႔ ႐ွိမ႐ွိ ကို ထပ္မံစစ္ေဆးလိုပါသည္။ ေသျခာမွန္ကန္ၿပီဆိုပါက ေအာက္ပါ command ကို ႐ိုက္နိပ္ၿပီး Daemon မ်ားအား restart, reload ျပဳလုပ္ပါမည္။

# firewall-cmd --reload && systemctl restart sshd.service

Client Site မွ ျပန္လည္ခ်ိတ္ဆက္ရန္အတြက္SSH ျဖင့္ Login ဝင္ထားပါ က အားလံုး disconnect လုပ္ေပးရပါမည္။ 
Bitvise SSH Client တြင္ ပံုတြင္ျပထားသည့္အတိုင္း Host ေနရာတြင္ Server ၏ IP ၊ Port ေနရာတြင္ 2112၊ Username တြင္ root၊ Initial method တြင္ publickey၊ Clientkey ေနရာတြင္  Global 1 ထည့္ၿပီး Login လုပ္ပါမည္။


                                                  Client Site login with Public Key



                                         Host Key Verification With Port Number 2112



User Authentication Banner


Welcome Message


                                                Port 2112 Scan with nmap on SSH Server


CentOS 7 ကို အသံုးျပဳေဆာင္ရြတ္ထားျခင္းျဖစ္ပါသည္။