Bagaimana cara mengganti port ssh di sistem operasi linux CentOS 7 ?
SSH atau yang lebih di kenal dengan Secure shell, merupakan protokol jaringan kriptografi untuk komunikasi data antar perangkat komputer yang di nilai lebih aman. protokol ini banyak di gunakan di beberapa aplikasi moderen pada saat proses authentifikasi. Secara default ssh melakukan komunikasi melalui protokol TCP (Transmission Control Protocol) dengan menggunakan port 22 dan tentunya hampir semua pengguna ssh mengetahui port default tersebut.
Untuk itu dengan mengganti port default tersebut, dan membuat hanya anda yang mengetahui nomor portnya, maka hal ini di anggap akan meningkatkan penilaian sistem keamanan dari pada anda menggunakan port default yang sudah di ketahui oleh banyak pengguna.
Pada tutorial kali ini, kita akan membahas tengan cara mengganti port ssh default di perangkat virtual server yang menggunakan sistem operasi CentOS 7.
Sebelum memulai :
Sebelum mulai mengikuti tutorial berikut, maka pastikan telah memiliki beberapa hal berikut :
- Server vps atau dedicated server yang menggunakan sistem operasi CentOS 7
- Akses sebagai root ke vps tersebut.
Tahapan
- Sesuaikan port baru di file konfigurasi ssh daemon
- Membuka port tersebut di firewal
Tutorial
Mengganti konfigurasi port
Untuk mengganti port ssh, anda harus mengubah nilai port pada file konfigurasi ssh daemon yang bisa di temukan di : /etc/ssh/sshd_config. namun sebelum melakukan perubahan apapun tentunya akan lebih baik apabila membuat file backup atas file tersebut, apabila terjadi kesalihan konfigurasi maka akan dapat di kembalikan seperti semula dengan mudah.
Untuk membuat file backup bisa dengan menggunakan perintah berikut :
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.orig.$(date +%F)
Dengan begitu anda telah memiliki file backup atas file sshd_config
Selanjutnya silahkan lakukan perubahan pada file /etc/ssh/sshd_config dengan mengguanakn editor yang sukai, namun dalam tutorial kali ini, saya akan menggunakan editor vim . apabila editor vim belum terinstall di mesin anda, maka silahakan lakukan instalasi terlebih dahulu dengan mengetik perintah berikut :
yum install vim # lakukan hanya pada saat vim belum terinstall
Dan untuk meng-edit file config ssh gunakan perintah berikut :
vim /etc/ssh/sshd_config
Selanjutnya, silahkan anda cari baris dengan tulisan : Port 22 atau #Port 22
Apaabila yang anda temukan adalah baris yang di awali dengan tanda # (tanda pagar) maka itu artinya baris tersebut di nonaktifkan atau hanya komentar saja, silahkan hilangkan tanda # (tanda pagar) untuk mengaktifkan konfigurasi tersebut, dan selanjutnya ganti nilai 22 dengan nilai port ssh yang anda kehendaki, misalkan Port 2222 dan simpan konfigurasi tersebut.
Menyesuaikan konfigurasi port di firewall
Umumnya di CentoOS instalasi baru akan menyertakan SELinux, SELinux atau Security Enhanced Linux merupakan fitur keamanan yang ada secara default pada keluarga distro RHEL, CentOS, Fedora dan seterusnya, dan apabila firewall di vps anda aktif, maka anda perlu mengkonfigurasikan port ssh baru tersebut di firewall agar di izinkan untuk beroperasi.
Secara default SELinux hanya mengizinkan port 22 untuk koneksi ke ssh, kita dapat mengganti port default tersebut dengan menggunakan perintah berikut :
semanage port -a -t ssh_port_t -p tcp 2222
Selanjutnya, coba lakukan verifikasi apakah port 2222 sudah ada di list port untuk ssh dengan menggunakan perintah berikut :
semanage port -l | grep ssh
Tampilan outputnya :
ssh_port_t tcp 2222, 22
Selanjutnya kita harus mengzinkan port 2222 untuk melewati firewall dengan perintah berikut :
firewall-cmd --permanent --zone=public --add-port=2222/tcp
Dan agar konfigurasi tersebut terimplementasikan ke firewall, jalankan perintah berikut :
firewall-cmd --reload
Terakhir, untuk memastikan seluruh konfigurasi tersebut terimplementasikan maka :
Lakukan restart ssh daemon-nya dengan perintah :
systemctl restart sshd.service
Dan lakukan verifikasi port berapa yang saat ini di gunakan oleh ssh daemon dengan perintah :
ss -tnlp|grep ssh
Tampilan outputnya :
LISTEN 0 128 *:2222 *:* users:(("sshd",pid=3414,fd=3)) LISTEN 0 128 :::2222 :::* users:(("sshd",pid=3414,fd=4))
Troubleshoot
Ketika melakukan proses restart ssh dengan perintah : systemctl status sshd.service dan mendaptkan error Failed to start OpenSSH server daemon.
● sshd.service - OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Tue 2018-02-06 13:47:26 UTC; 19s ago Docs: man:sshd(8) man:sshd_config(5) Process: 10871 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=255) Main PID: 10871 (code=exited, status=255) Feb 06 13:47:26 vpn.frenzifed.com systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a Feb 06 13:47:26 vpn.frenzifed.com systemd[1]: Failed to start OpenSSH server daemon. Feb 06 13:47:26 vpn.frenzifed.com systemd[1]: Unit sshd.service entered failed state. Feb 06 13:47:26 vpn.frenzifed.com systemd[1]: sshd.service failed.
- Umumnya hal ini lebih di karenakan firewall memblokir port ssh yang baru saja di tambahkan. oleh karena itu anda perlu membuka blokir port tersebut terlebih dahulu sebelum melakukan restart sshd services.