Saya punya beberapa masalah keamanan dengan server saya, beberapa pengguna SSH telah mengatur kebakaran alias memberikan masalah.
Aku ingin:
- Lacak login dan keluar pengguna
- Lacak aktivitas SSH ini, untuk menemukan aktivitas jahat apa pun
- Cegah pengguna menghapus log
Saya tidak banyak dari sys admin dan saya cukup berpengalaman dalam hal ini, jadi saran apa pun akan sangat diterima dan sangat membantu. :)
unset HISTFILE
di dalam bash, dan kemudian riwayat bash mereka tidak akan direkam.~/.bash_history
atau~/.bashrc
) akan muncul di$HISTFILE
. Tetapi itu sendiri bisa sangat sah (misalnya pengguna hanya ingin menjalankanzsh
, atau ingin mengatur opsi mereka sendiri di alternatifbashrc
).[PENOLAKAN] Saya menyadari bahwa saya terlambat ke pesta, tetapi saya ingin menempelkan jawaban yang saya berikan ke pertanyaan lain , karena saya merasa seperti itu dapat menawarkan wawasan yang baik kepada pembaca, dan pertanyaan ini tampaknya menjadi tujuan tempat untuk info ssh dasar.
Ada masalah serupa yang mengejutkan saya setelah membaca pertanyaan ini di sini di AskUbuntu dan memeriksa VPS saya, hanya untuk melihat banyak upaya brute force. Saat itulah saya memutuskan untuk mengambil tindakan.
Sekarang sesuai dengan pertanyaan yang saya tautkan, jika Anda ingin melihat upaya login yang gagal pada mesin Anda lebih dari ssh (bisa berupa upaya brute force atau apa pun), coba ketikkan ini:
Jika output terdiri dari beberapa baris, itu adalah banyak upaya brute force, terutama jika mereka terjadi di antara interval pendek, Anda mungkin ingin melakukan tindakan berikut:
Ubah file konfigurasi ssh
Untuk melakukan ini, buka file yang terletak di / etc / ssh / sshd_config dengan editor favorit Anda, seperti ini
vim /etc/ssh/sshd_config
.1. Cobalah untuk memindahkan ssh dari port 22 : Sekarang cari baris yang bertuliskan:
dan komentari Port 22, dan gunakan siapa saja yang Anda suka. Contoh:
Harap diingat bahwa port di bawah 1024 perlu izin khusus (root). Saya tidak tahu bagaimana ini bisa mengganggu itu, tetapi saya hanya mengatakan.
2. Nonaktifkan login Root melalui ssh : Karena nama pengguna root dapat diprediksi dan menyediakan akses lengkap ke sistem Anda, memberikan akses tanpa batas ke akun ini melalui SSH adalah tidak bijaksana. Temukan baris yang membaca PermitRootLogin dan atur ke no .
3. Nonaktifkan otentikasi kata sandi : Hasilkan dan gunakan kunci SSH untuk masuk ke sistem Anda. Tanpa kata sandi diaktifkan, penyerang perlu menebak (atau mencuri) kunci pribadi SSH Anda untuk mendapatkan akses ke server Anda. Sesuatu yang sangat sangat sulit. Lanjutkan untuk menemukan baris yang membaca PasswordAuthentication dan set ke no
!PERINGATAN! Sebelum melakukannya, silakan baca panduan ini di sini tentang cara mengatur otentikasi sertifikat.
CATATAN: Setelah Anda melakukan perubahan, gunakan
sudo /etc/init.d/ssh restart
. Untuk menyambung ke port lain melalui penggunaan ssh:ssh [email protected] -p <port_number>
.Siapkan firewall
Silakan lihat panduan ini tentang cara mengatur firewall yang sangat kuat dan efektif, yang terintegrasi ke Linux, IPTables .
Siapkan skrip untuk membantu Anda dengan keamanan
Salah satu yang saya gunakan secara pribadi dan cepat terlintas dalam pikiran adalah Fail2Ban . Fail2ban akan memantau file log Anda untuk upaya login yang gagal. Setelah alamat IP melebihi jumlah upaya otentikasi maksimum, alamat itu akan diblokir pada tingkat jaringan dan acara akan dicatat
/var/log/fail2ban.log
. Untuk menginstalnya:sudo apt-get install fail2ban
Periksa riwayat perintah melalui ssh
Ada perintah linux, bernama
history
, yang memungkinkan Anda untuk melihat perintah mana yang telah diinput hingga saat itu. Coba ketikkanhistory
terminal untuk melihat semua perintah hingga saat itu. Ini bisa membantu jika Anda root .Untuk mencari perintah tertentu, coba:
history | grep command-name
Untuk mendaftar semua perintah setelah ssh :
fc -l ssh
Anda juga dapat mengedit perintah menggunakan vi (belum mencobanya, meskipun saya menganggap itu berfungsi juga):
fc -e vi
Anda juga dapat menghapus riwayat :
history -c
CATATAN: Jika Anda bukan penggemar perintah,
history
ada juga file di direktori home Anda (cd ~
), bernama .bash_history (jika Anda menggunakan bash) yang Anda bisacat
melihat semua yang telah diketikkan dalam bash shell.sumber
Sedikit berlebihan, tetapi Anda dapat melihat semua yang dijalankan pada sistem Anda menggunakan "konektor acara proses":
http://www.outflux.net/blog/archives/2010/07/01/reporting-all-execs/
sumber
sumber
Selain dari login itu sendiri, tidak ada cara yang aman untuk melacak / mencatat tindakan pengguna setelah mereka masuk, dengan asumsi mereka memiliki pengetahuan dasar Linux mereka akan dapat menonaktifkan shell logging atau hanya menjalankan perintah dari shell lain (misalnya python).
Sebaliknya Anda harus konservatif dalam menyediakan akses ssh, apakah mereka benar-benar membutuhkannya? Sangat tidak umum untuk memberikan akses ssh kecuali Anda berada di bisnis penyedia shell.
sumber