panyalindungan server Linux Ubuntu. Naon anu kudu dipigawé heula

panyalindungan server Linux Ubuntu. Naon anu kudu dipigawé heula
Habib M'henni/Wikimedia Commons, CC BY-SA

Kiwari, ngangkat server dina hosting mangrupikeun sababaraha menit sareng sababaraha klik beurit. Tapi langsung saatos peluncuran, anjeunna mendakan dirina dina lingkungan anu mumusuhan, sabab anjeunna kabuka ka sadayana Internét sapertos awéwé polos dina disko rocker. Panyeken bakal gancang mendakanana sareng ngadeteksi rébuan bot otomatis skrip anu ngajalajah jaringan milarian kerentanan sareng salah konfigurasi. Aya sababaraha hal anu anjeun kedah laksanakeun saatos peluncuran pikeun mastikeun panyalindungan dasar.

eusi

Pamaké non-root

Hambalan munggaran nyaéta nyieun pamaké non-root pikeun diri. Intina nyaéta yén pangguna root hak husus mutlak dina sistem, sarta lamun ngidinan anjeunna administrasi jauh, mangka anjeun bakal ngalakukeun satengah karya pikeun hacker, ninggalkeun ngaran pamaké valid pikeun anjeunna.

Kituna, anjeun kudu nyieun pamaké séjén, sarta mareuman administrasi jauh via SSH pikeun root.

Pamaké anyar dimimitian ku paréntah useradd:

useradd [options] <username>

Lajeng kecap akses ditambahkeun pikeun eta kalawan paréntah passwd:

passwd <username>

Tungtungna, pamaké ieu perlu ditambahkeun kana grup nu boga hak pikeun ngaéksekusi paréntah elevated sudo. Gumantung kana distribusi Linux, ieu tiasa janten grup anu béda. Contona, dina CentOS jeung Red Hat, pamaké ditambahkeun kana grup wheel:

usermod -aG wheel <username>

Dina Ubuntu eta ditambahkeun kana grup sudo:

usermod -aG sudo <username>

Konci tinimbang kecap akses SSH

Brute force atanapi sandi bocor mangrupikeun vektor serangan standar, janten langkung saé pikeun nganonaktipkeun auténtikasi sandi dina SSH (Secure Shell) sareng nganggo auténtikasi konci.

Aya rupa-rupa program pikeun ngalaksanakeun protokol SSH, sapertos lsh и dropbear, tapi anu pang populerna nyaéta OpenSSH. Masang klien OpenSSH dina Ubuntu:

sudo apt install openssh-client

Pamasangan server:

sudo apt install openssh-server

Ngamimitian daemon SSH (sshd) dina server Ubuntu:

sudo systemctl start sshd

Otomatis ngamimitian daemon dina unggal boot:

sudo systemctl enable sshd

Perlu dicatet yén bagian server OpenSSH kalebet bagian klien. Maksudna, ngaliwatan openssh-server Anjeun tiasa nyambung ka server séjén. Sumawona, tina mesin klien anjeun, anjeun tiasa ngamimitian torowongan SSH tina server jauh ka host pihak katilu, teras host pihak katilu bakal nganggap server jauh salaku sumber pamundut. A fitur pisan gunana pikeun masking sistem Anjeun. Tempo artikel pikeun detil "Tips Praktis, Conto, sareng Torowongan SSH".

Dina mesin klien, biasana henteu aya rasa pikeun masang server anu lengkep pikeun nyegah kamungkinan sambungan jauh ka komputer (kusabab kaamanan).

Janten, pikeun pangguna énggal anjeun, anjeun kedah mimiti ngahasilkeun konci SSH dina komputer dimana anjeun bakal ngaksés server:

ssh-keygen -t rsa

Konci publik disimpen dina file .pub sarta Sigana mah a string of acak karakter nu dimimitian ku ssh-rsa.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

Teras, tina handapeun akar, jieun diréktori SSH dina server dina diréktori bumi pangguna sareng tambahkeun konci umum SSH kana file. authorized_keys, ngagunakeun pangropéa téksu sapertos Vim:

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

vim /home/user_name/.ssh/authorized_keys

Tungtungna, setel idin anu leres pikeun file:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

sareng robih kapamilikan ka pangguna ieu:

chown -R username:username /home/username/.ssh

Di sisi klien, anjeun kedah netepkeun lokasi konci rahasia pikeun auténtikasi:

ssh-add DIR_PATH/keylocation

Ayeuna anjeun tiasa log in ka server dina nami pangguna nganggo konci ieu:

ssh [username]@hostname

Saatos otorisasina, anjeun tiasa nganggo paréntah scp pikeun nyalin file, utiliti sshfs pikeun masang sistem file atanapi diréktori jarak jauh.

Disarankeun ngadamel sababaraha salinan cadangan tina konci pribadi, sabab upami anjeun nganonaktipkeun auténtikasi kecap konci sareng leungit, maka anjeun moal ngagaduhan cara pikeun log in kana server anjeun nyalira.

Sakumaha didadarkeun di luhur, dina SSH anjeun kudu nganonaktipkeun auténtikasi pikeun root (ieu alesan urang ngamimitian pamaké anyar).

Dina CentOS / Red Hat kami mendakan jalurna PermitRootLogin yes dina file config /etc/ssh/sshd_config jeung ngarobahna:

PermitRootLogin no

Dina Ubuntu tambahkeun garis PermitRootLogin no kana file config 10-my-sshd-settings.conf:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Saatos marios yén pangguna énggal ngoténtikasi ku koncina, anjeun tiasa nganonaktipkeun auténtikasi sandi pikeun ngaleungitkeun résiko bocor sandi atanapi gaya kasar. Ayeuna, pikeun ngaksés server, panyerang kedah kéngingkeun konci pribadi.

Dina CentOS / Red Hat kami mendakan jalurna PasswordAuthentication yes dina file config /etc/ssh/sshd_config sareng robih sapertos kieu:

PasswordAuthentication no

Dina Ubuntu tambahkeun garis PasswordAuthentication no pikeun berkas 10-my-sshd-settings.conf:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

Pikeun parentah pikeun ngaktipkeun auténtikasi dua-faktor via SSH, tingali di dieu.

firewall

Firewall mastikeun yén ngan ukur lalu lintas dina palabuhan anu anjeun langsung ijinkeun bakal angkat ka server. Ieu ngajaga ngalawan eksploitasi palabuhan anu ngahaja diaktipkeun sareng jasa anu sanés, anu ngirangan pisan permukaan serangan.

Sateuacan masang firewall, anjeun kedah mastikeun yén SSH kalebet dina daptar pangaluaran sareng moal diblokir. Upami teu kitu, saatos ngamimitian firewall, urang moal tiasa nyambung ka server.

Distribusi Ubuntu hadir sareng Firewall Uncomplicated (Wow), sareng nganggo CentOS/Red Hat - firewalld.

Ngidinan SSH dina firewall dina Ubuntu:

sudo ufw allow ssh

Dina CentOS / Red Hat nganggo paréntah firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Saatos prosedur ieu, anjeun tiasa ngamimitian firewall.

Dina CentOS / Red Hat, mimitian layanan systemd pikeun firewalld:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Dina Ubuntu kami nganggo paréntah di handap ieu:

sudo ufw enable

Gagal2Ban

palayanan Gagal2Ban nganalisa log on server jeung cacah jumlah usaha aksés ti unggal alamat IP. Setélan netepkeun aturan pikeun sabaraha usaha aksés anu diidinan pikeun interval anu tangtu - saatos alamat IP ieu diblokir pikeun waktos anu ditangtukeun. Contona, hayu urang ngidinan 5 usaha auténtikasi SSH gagal dina 2 jam, lajeng meungpeuk alamat IP dibikeun pikeun 12 jam.

Masang Fail2Ban dina CentOS sareng Red Hat:

sudo yum install fail2ban

Pamasangan dina Ubuntu sareng Debian:

sudo apt install fail2ban

peluncuran:

systemctl start fail2ban
systemctl enable fail2ban

Program ieu ngagaduhan dua file konfigurasi: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. larangan larangan dieusian dina file kadua.

Jail pikeun SSH diaktipkeun sacara standar sareng setélan standar (5 usaha, interval 10 menit, larangan 10 menit).

[DEFAULT] ignorecommand=bantime=10m findtime=10m maxretry=5

Salian SSH, Fail2Ban tiasa ngajagi jasa sanés dina nginx atanapi pangladén wéb Apache.

Apdet kaamanan otomatis

Sakumaha anjeun terang, kerentanan anyar terus-terusan dipendakan dina sadaya program. Saatos inpormasina diterbitkeun, eksploitasi ditambah kana bungkus eksploitasi anu populer, anu sacara umum dianggo ku peretas sareng rumaja nalika nyeken sadaya server sakaligus. Ku alatan éta, penting pisan pikeun masang apdet kaamanan pas aranjeunna muncul.

Dina server Ubuntu, apdet kaamanan otomatis diaktipkeun sacara standar, jadi euweuh aksi salajengna diperlukeun.

Dina CentOS / Red Hat anjeun kedah masang aplikasina dnf-otomatis sareng hurungkeun timer:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

Pariksa timer:

sudo systemctl status dnf-automatic.timer

Ngarobah palabuhan standar

SSH dikembangkeun taun 1995 pikeun ngagentos telnet (port 23) sareng ftp (port 21), janten panulis program éta, Tatu Iltonen. port dipilih 22 sacara standar, sarta geus disatujuan ku IANA.

Alami, sadaya panyerang sadar kana port SSH mana anu dijalankeun - sareng nyekenna sareng sesa palabuhan standar pikeun milarian versi parangkat lunak, mariksa kecap akses root standar, sareng saterasna.

Ngarobih palabuhan standar - obfuscation - sababaraha kali ngirangan jumlah lalu lintas sampah, ukuran log sareng beban dina server, sareng ogé ngirangan permukaan serangan. Sanajan sababaraha ngritik metoda ieu "perlindungan ngaliwatan obscurity" (kaamanan ngaliwatan obscurity). Alesanna nyaéta téknik ieu sabalikna tina dasar panyalindungan arsitéktur. Ku alatan éta, contona, National Institute of Standards and Technology AS di "Panduan Kaamanan Server" nunjukkeun kabutuhan arsitéktur server kabuka: "Kaamanan sistem henteu kedah ngandelkeun rasiah palaksanaan komponénna," saur dokumen.

Sacara téoritis, ngarobih palabuhan standar bertentangan sareng prakték arsitektur terbuka. Tapi dina prakna, jumlah lalulintas jahat sabenerna ngurangan, jadi ieu téh ukuran basajan tur éféktif.

Jumlah port bisa ngonpigurasi ku cara ngarobah diréktif Port 22 dina file config / Jsb / ssh / sshd_config. Éta ogé dituduhkeun ku parameter -p <port> в ssh. SSH klien sareng program sftp ogé ngarojong pilihan -p <port>.

parameter -p <port> bisa dipaké pikeun nangtukeun jumlah port nalika nyambungkeun jeung paréntah ssh dina linux. DI sftp и scp parameter dipaké -P <port> (modal P). Parentah garis paréntah overrides sagala nilai dina file konfigurasi.

Upami seueur server, ampir sadaya tindakan ieu pikeun ngajagi server Linux tiasa otomatis dina naskah. Tapi lamun aya ngan hiji server, éta hadé pikeun ngadalikeun prosés sacara manual.

salaku iklan

Mesen sareng ngamimitian langsung! Nyiptakeun VDS sagala konfigurasi tur kalawan sistem operasi naon dina hiji menit. Konfigurasi maksimum bakal ngidinan Anjeun pikeun datang kaluar ka fullest - 128 cores CPU, 512 GB RAM, 4000 GB NVMe. Epik 🙂

panyalindungan server Linux Ubuntu. Naon anu kudu dipigawé heula

sumber: www.habr.com