Server təhlükəsizliyinin artırılması üsulları
Salam əziz oxucular, Əvvəllər saytlarımızı yerləşdirmək üçün sadə standart hostinq hesablarına ehtiyacımız olsa da, indi hər sayt üçün bir server icarəyə götürmüşük. Belə olduqda, əsas server idarəetməsini öyrənmək qaçılmaz oldu. Hesab edirəm ki, idarəetmə başlığı altında server təhlükəsizliyinin ən vacib alt başlıq olduğunu xatırlatmağa ehtiyac yoxdur. Bu səbəbdən bu yazıda öz serverlərinizi idarə edərkən ala biləcəyiniz əsas təhlükəsizlik tədbirlərinə qısaca toxunmaq istədim.
1. Root user girişinin bağlanması
İstənilən şirkətdən cloud serveri (və ya hər hansı digər növ server) aldığınız zaman o sizə quraşdırılmış əməliyyat sistemi ilə verilir. Bundan əlavə, aldığınız bildiriş e-poçtuna kök istifadəçinin parolu daxildir. Kök istifadəçi adı standart olduğundan, hakerlər yalnız saytınıza edilən hücumlarda parolu təxmin etməlidirlər. Bu səbəbdən kök istifadəçi ilə giriş dərhal qadağan edilməlidir/bloklanmalıdır. Budur, sırasıyla bu nöqtədə edəcəyik.
1. SSH vasitəsilə sistemə root olaraq daxil olmaq: SSH istifadəsini buradakı yazımda ətraflı izah etdiyim üçün bir daha bu mövzuya toxunmayacağam.
2. Sudo səlahiyyətinə malik yeni istifadəçinin yaradılması: Bunu CentOS Linux distro olan serverlərdə etmək üçün aşağıdakı əmrləri bir-bir yerinə yetirmək kifayətdir.
$ adduser orxan//Yeni user əlavə edir $ passwd orxan//Yeni user-in şifrəsini təyin edir $ gpasswd -a demo wheel //Yeni userə root icazəsi verək
3. Root ilə sistemə girişin qarşısının alınması: Bunun üçün SSH vasitəsilə serverə uzaqdan qoşulmağa imkan verən SSH daemon parametrlərini dəyişdirməlisiniz. Əvvəlcə /etc/ssh/sshd_config adlı faylı vi və ya nano kimi mətn redaktoru ilə açın.
$ nano /etc/ssh/sshd_config
Xətti aşağıdakı kimi #PermitRootLogin yes olaraq dəyişdikdən sonra faylı saxlayıb bağlayırıq.
[php]PermitRootLogin no[/php]
Nəhayət, SSH-ni yenidən işə salırıq.
$ systemctl reload sshd
Qeyd: Sistemə yalnız xüsusi istifadəçinin daxil olmasını istəyirsinizsə, eyni fayla AllowUsers orxan ifadəsini əlavə edin.
Artıq root ilə SSH vasitəsilə serverə qoşulmaq mümkün deyil. Siz yalnız öz istifadəçi adınızı və aşağıdakı kimi bir əmrdən istifadə edərək qoşula bilərsiniz.
$ ssh demo@SERVER_IP_ADDRESS
2. SSH Portunun dəyişdirilməsi
Serverlərə edilən hücumların 90%-i standart SSH portu olan 22-ci portda edilir. SSH portunu fərqli nömrələnmiş porta dəyişdirmək, görə biləcəyiniz ən təsirli, asan və sürətli təhlükəsizlik tədbirlərindən biridir. Defolt (22) SSH portunu belə dəyişə bilərsiniz:
Əvvəlcə SSH vasitəsilə serverinizə qoşulun: ssh username@servername
Sonra mətn redaktoru (nano, vi və s.) ilə SSH konfiqurasiya faylını açın: vi /etc/ssh/ssh_config və ya nano /etc/ssh/ssh_config. Konfiqurasiya faylının adı da sshd_config ola bilər, siz müvafiq qovluqda ls əmrini verməklə bunu yoxlaya bilərsiniz.
Faylda #Port 22 deyən sətri tapın, əvvəldəki # işarəsini çıxarın, 22 rəqəminin yerinə 4354 kimi fərqli bir rəqəm yazın, faylı yadda saxlayın və bağlayın. Seçdiyiniz yeni port nömrəsi 0 ilə 65,535 (64k) arasında dəyişə bilər.
Nəhayət, CentOS üçün xidmət sshd restart əmri ilə SSH-ni yenidən başladın və ya Ubuntu üçün sudo restart ssh.
Port dəyişdirmək üçün budur. Artıq yuxarıda qeyd olunduğu kimi istədiyiniz portdan serverə qoşula bilərsiniz.
Bundan sonra serverinizə SSH vasitəsilə qoşulduqda, əlaqə əmrinə qeyd etdiyiniz port nömrəsini aşağıdakı kimi əlavə etmək kifayətdir.
$ ssh -p port nömrəsi username@servername
// Nümunə: ssh -p 55555 [email protected]
3. SSH Açar Cütlüyünün İstifadəsi
Alınacaq ehtiyat tədbirləri ilk növbədə istifadəçilərin təxmin/sınaq edərək serverə qoşulmasının qarşısını almaq üçün olduğundan, SSH vasitəsilə daxil olarkən istifadəçi adı və şifrə yerinə SSH Açar Cütlüyündən istifadə edə bilərsiniz. Bu üsul sayəsində istifadəçi adı və parol daxil edilmir, əvəzində kompüterinizdə quraşdırılmış şifrələnmiş SSH açarı ilə serverdəki şifrələnmiş SSH açarı müqayisə edilir və uyğun gələrsə, serverlə əlaqə qurulur. Bunu necə edəcəyinizi düşünürsünüzsə, SSH (Secure Shell) adlı məqaləmi oxuya bilərsiniz.
4. Firewall quraşdırılması
CentOS-un ən yaxşı cəhətlərindən biri onun hazır və yüksək keyfiyyətli Firewall xidməti olan Firewalld olmasıdır. Firewalld-un bir çox parametrləri olsa da, onu işə salmaq sizi çox yaxşı qoruyur. Bu xidməti başlamaq üçün aşağıdakı əmrdən istifadə edə bilərsiniz.
sudo systemctl start firewalld.service
Firewalld-dan istifadə edərkən sizə lazım olan ən vacib iki məsələni bu məqalələrdən tapa bilərsiniz:
5. Fail2Ban-dan istifadə
DDoS və Brute Force hücumlarının qarşısını almağın ən təsirli yollarından biri serverə giriş cəhdlərini məhdudlaşdırmaqdır. Bu proses üçün Fail2Ban ehtiyaclarınızı qarşılayacaq. Fail2Ban-ın istifadəsini buradakı məqaləmdə ətraflı izah etdim. Müvafiq məqaləni oxumaqla saytınıza test/təxmin tərzi hücumlarının qarşısını ala bilərsiniz.
6. Lazımsız Xidmətləri söndürün
Serverdə çoxlu xidmətlər/xidmətlər var. Buna görə də, mümkün hücum zamanı yeni xidmətin işə salınmasını izləmək çətindir. Bununla belə, nə qədər çox xidmət işləsə, bir o qədər potensial təhlükələr var. Buna görə də lazımsız xidmətləri söndürmək ən yaxşı addımdır.
Aşağıdakı əmrlə CentOS və oxşar Linux distrolarında hansı xidmətlərin işlədiyini görə bilərsiniz:
$ /sbin/chkconfig --list |grep '3:on'
İstənilən servisi söndürmək üçün aşağıdakı komandadan də istifadə edə bilərsiniz.
$ chkconfig servis_ismi off
7. Açıq Portları yoxlayın
Məlum olduğu kimi, serverimizə qoşulmalar “port” adlanan keçid nöqtələri vasitəsilə həyata keçirilir. Belə ki, hər hansı bir hücum olarsa, açıq limanlardan biri mütləq hədəfə alınacaq. Lazımsız portları, eləcə də lazımsız xidmətləri yoxlamaq və onları bağlı saxlamaq faydalıdır. Aşağıdakı komanda ilə siz dinləyən portları və bu portlardan hansı xidmətlərin istifadə etdiyini sadalaya bilərsiniz.
$ netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1004/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 380/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 822/cupsd tcp6 0 0 :::22 :::* LISTEN 380/sshd tcp6 0 0 ::1:631 :::* LISTEN 822/cupsd
Əgər serverinizdə firewalld aktivdirsə, aşağıdakı əmrlə firewallda icazə verilən portları sadalaya bilərsiniz.
$ firewall-cmd --list-ports
Firewallda istənilən porta icazə vermək üçün aşağıdakı komandadan istifadə edə bilərsiniz.
firewall-cmd --permanent --add-port=21/tcp
Güman edirəm ki, təhlükəsizlik anlayışının sonu yoxdur desəm, Kibertüəhlüksəzilik mütəxəssislərinə haqqsızlıq etməz olmaram. Bu yazıda ağlıma ilk gələn və vazkeçilməz hesab etdiyim tədbirləri qeyd etdim.