Pada masa kini, menaikkan pelayan pada pengehosan memerlukan beberapa minit dan beberapa klik tetikus. Tetapi sejurus selepas pelancaran, dia mendapati dirinya berada dalam persekitaran yang bermusuhan, kerana dia terbuka kepada seluruh Internet seperti seorang gadis yang tidak bersalah dalam disko rocker. Pengimbas akan mencarinya dengan cepat dan mengesan beribu-ribu bot skrip automatik yang menjelajah rangkaian mencari kelemahan dan salah konfigurasi. Terdapat beberapa perkara yang perlu anda lakukan sejurus selepas pelancaran untuk memastikan perlindungan asas.
Langkah pertama ialah mencipta pengguna bukan root untuk diri sendiri. Maksudnya ialah pengguna root keistimewaan mutlak dalam sistem, dan jika anda membenarkan dia pentadbiran jauh, maka anda akan melakukan separuh kerja untuk penggodam, meninggalkan nama pengguna yang sah untuknya.
Oleh itu, anda perlu mencipta pengguna lain, dan melumpuhkan pentadbiran jauh melalui SSH untuk root.
Pengguna baharu dimulakan dengan arahan useradd:
useradd [options] <username>
Kemudian kata laluan ditambah untuknya dengan arahan passwd:
passwd <username>
Akhir sekali, pengguna ini perlu ditambah kepada kumpulan yang mempunyai hak untuk melaksanakan arahan yang dinaikkan sudo. Bergantung pada pengedaran Linux, ini mungkin kumpulan yang berbeza. Contohnya, dalam CentOS dan Red Hat, pengguna ditambahkan pada kumpulan wheel:
usermod -aG wheel <username>
Dalam Ubuntu ia ditambahkan pada kumpulan sudo:
usermod -aG sudo <username>
Kunci bukannya kata laluan SSH
Brute force atau kebocoran kata laluan ialah vektor serangan standard, jadi lebih baik untuk melumpuhkan pengesahan kata laluan dalam SSH (Secure Shell) dan sebaliknya menggunakan pengesahan kunci.
Terdapat pelbagai program untuk melaksanakan protokol SSH, seperti lsh ΠΈ dropbear, tetapi yang paling popular ialah OpenSSH. Memasang klien OpenSSH pada Ubuntu:
sudo apt install openssh-client
Pemasangan pelayan:
sudo apt install openssh-server
Memulakan daemon SSH (sshd) pada pelayan Ubuntu:
sudo systemctl start sshd
Mulakan daemon secara automatik pada setiap but:
sudo systemctl enable sshd
Perlu diingatkan bahawa bahagian pelayan OpenSSH termasuk bahagian klien. Iaitu, melalui openssh-server anda boleh menyambung ke pelayan lain. Selain itu, dari mesin pelanggan anda, anda boleh memulakan terowong SSH dari pelayan jauh ke hos pihak ketiga, dan kemudian hos pihak ketiga akan menganggap pelayan jauh sebagai sumber permintaan. Ciri yang sangat berguna untuk menutup sistem anda. Lihat artikel untuk butiran "Petua Praktikal, Contoh dan Terowong SSH".
Pada mesin pelanggan, biasanya tidak masuk akal untuk memasang pelayan lengkap untuk mengelakkan kemungkinan sambungan jauh ke komputer (atas sebab keselamatan).
Jadi, untuk pengguna baharu anda, anda perlu menjana kekunci SSH pada komputer dari mana anda akan mengakses pelayan:
ssh-keygen -t rsa
Kunci awam disimpan dalam fail .pub dan kelihatan seperti rentetan aksara rawak yang bermula dengan ssh-rsa.
Kemudian, dari bawah akar, buat direktori SSH pada pelayan dalam direktori rumah pengguna dan tambah kunci awam SSH pada fail authorized_keys, menggunakan editor teks seperti Vim:
Di sisi pelanggan, anda perlu menentukan lokasi kunci rahsia untuk pengesahan:
ssh-add DIR_PATH/keylocation
Kini anda boleh log masuk ke pelayan di bawah nama pengguna menggunakan kekunci ini:
ssh [username]@hostname
Selepas kebenaran, anda boleh menggunakan arahan scp untuk menyalin fail, utiliti sshfs untuk melekapkan sistem fail atau direktori dari jauh.
Adalah dinasihatkan untuk membuat beberapa salinan sandaran kunci peribadi, kerana jika anda melumpuhkan pengesahan kata laluan dan kehilangannya, maka anda tidak akan mempunyai sebarang cara untuk log masuk ke pelayan anda sendiri sama sekali.
Seperti yang dinyatakan di atas, dalam SSH anda perlu melumpuhkan pengesahan untuk root (inilah sebab kami memulakan pengguna baharu).
Pada CentOS/Red Hat kita dapati baris PermitRootLogin yes dalam fail konfigurasi /etc/ssh/sshd_config dan mengubahnya:
PermitRootLogin no
Pada Ubuntu tambah baris PermitRootLogin no ke fail konfigurasi 10-my-sshd-settings.conf:
Selepas mengesahkan bahawa pengguna baharu mengesahkan dengan kunci mereka, anda boleh melumpuhkan pengesahan kata laluan untuk menghapuskan risiko kebocoran kata laluan atau kekerasan. Kini, untuk mengakses pelayan, penyerang perlu mendapatkan kunci peribadi.
Pada CentOS/Red Hat kita dapati baris PasswordAuthentication yes dalam fail konfigurasi /etc/ssh/sshd_config dan ubah seperti ini:
PasswordAuthentication no
Pada Ubuntu tambah baris PasswordAuthentication no untuk memfailkan 10-my-sshd-settings.conf:
Untuk arahan tentang mendayakan pengesahan dua faktor melalui SSH, lihat di sini.
tembok api
Firewall memastikan bahawa hanya trafik pada port yang anda benarkan secara langsung akan pergi ke pelayan. Ini melindungi daripada eksploitasi port yang didayakan secara tidak sengaja dengan perkhidmatan lain, yang sangat mengurangkan permukaan serangan.
Sebelum memasang tembok api, anda perlu memastikan bahawa SSH disertakan dalam senarai pengecualian dan tidak akan disekat. Jika tidak, selepas memulakan tembok api, kami tidak akan dapat menyambung ke pelayan.
Pengedaran Ubuntu disertakan dengan Firewall Tidak Rumit (ufw), dan dengan CentOS/Red Hat - firewalld.
Perkhidmatan Fail2Ban menganalisis log pada pelayan dan mengira bilangan percubaan capaian daripada setiap alamat IP. Tetapan menentukan peraturan untuk bilangan percubaan akses yang dibenarkan untuk selang waktu tertentu - selepas itu alamat IP ini disekat untuk tempoh masa tertentu. Sebagai contoh, mari kita benarkan 5 percubaan pengesahan SSH yang gagal dalam masa 2 jam, kemudian sekat alamat IP yang diberikan selama 12 jam.
Selain SSH, Fail2Ban boleh melindungi perkhidmatan lain pada pelayan web nginx atau Apache.
Kemas kini keselamatan automatik
Seperti yang anda ketahui, kelemahan baharu sentiasa ditemui dalam semua program. Selepas maklumat diterbitkan, eksploitasi ditambahkan pada pek eksploitasi yang popular, yang digunakan secara besar-besaran oleh penggodam dan remaja apabila mengimbas semua pelayan berturut-turut. Oleh itu, adalah sangat penting untuk memasang kemas kini keselamatan sebaik sahaja ia muncul.
Pada pelayan Ubuntu, kemas kini keselamatan automatik didayakan secara lalai, jadi tiada tindakan lanjut diperlukan.
Pada CentOS/Red Hat anda perlu memasang aplikasi dnf-automatik dan hidupkan pemasa:
SSH dibangunkan pada tahun 1995 untuk menggantikan telnet (port 23) dan ftp (port 21), jadi pengarang program, Tatu Iltonen port 22 yang dipilih secara lalai, dan telah diluluskan oleh IANA.
Sememangnya, semua penyerang mengetahui port SSH yang sedang dijalankan - dan mengimbasnya bersama-sama dengan port standard yang lain untuk mengetahui versi perisian, untuk menyemak kata laluan root standard, dan sebagainya.
Menukar port standard - kekeliruan - beberapa kali mengurangkan jumlah trafik sampah, saiz log dan beban pada pelayan, dan juga mengurangkan permukaan serangan. Walaupun beberapa mengkritik kaedah "perlindungan melalui ketidakjelasan" ini (keselamatan melalui ketidakjelasan). Sebabnya ialah teknik ini bertentangan dengan asas perlindungan seni bina. Oleh itu, sebagai contoh, Institut Piawaian dan Teknologi Kebangsaan AS di "Panduan Keselamatan Pelayan" menunjukkan keperluan untuk seni bina pelayan terbuka: "Keselamatan sistem tidak seharusnya bergantung pada kerahsiaan pelaksanaan komponennya," kata dokumen itu.
Secara teorinya, menukar port lalai adalah bertentangan dengan amalan seni bina terbuka. Tetapi dalam amalan, jumlah trafik berniat jahat sebenarnya dikurangkan, jadi ini adalah langkah yang mudah dan berkesan.
Nombor port boleh dikonfigurasikan dengan menukar arahan Port 22 dalam fail konfigurasi / etc / ssh / sshd_config. Ia juga ditunjukkan oleh parameter -p <port> Π² SSHD. Pelanggan dan program SSH sftp juga menyokong pilihan -p <port>.
Parameter -p <port> boleh digunakan untuk menentukan nombor port apabila menyambung dengan arahan ssh dalam linux. DALAM sftp ΠΈ scp parameter digunakan -P <port> (modal P). Arahan baris perintah mengatasi sebarang nilai dalam fail konfigurasi.
Jika terdapat banyak pelayan, hampir semua tindakan untuk melindungi pelayan Linux ini boleh diautomasikan dalam skrip. Tetapi jika terdapat hanya satu pelayan, maka lebih baik untuk mengawal proses secara manual.
Sebagai iklan
Pesan dan mulakan segera! Penciptaan VDS sebarang konfigurasi dan dengan mana-mana sistem pengendalian dalam masa seminit. Konfigurasi maksimum akan membolehkan anda tampil sepenuhnya - 128 teras CPU, 512 GB RAM, 4000 GB NVMe. Epik π