Akses file audit linux. Pengerasan Keras Linux. Kami memilih alat untuk audit keamanan yang komprehensif. Menjalankan Tes Individual di Lynis

Sebagian besar perusahaan dan sistem multikomponen seperti GETAH , OracleDB gunakan dalam platform mereka berdasarkan sistem operasi linux . Mengingat hal ini, perhatian yang begitu dekat diberikan kepada mereka oleh auditor TI. Hari ini di artikel kami akan menyajikan kepada Anda beberapa alat gratis yang disajikan dalam bentuk skrip dan menggunakan mekanisme OS biasa untuk memberikan audit cepat terhadap konfigurasi keamanan.

Perintah dan skrip sistem berikut yang digunakan untuk audit cepat opsi keamanan sistem OS Linux didasarkan pada rekomendasi audit keamanan yang diterbitkan oleh komunitas ISACA dalam manual Program Jaminan/Audit Keamanan Sistem Operasi UNIX/LINUX.

1.Memverifikasi Akun

1.1 Buat daftar semua pengguna
Daftar pengguna disimpan di /etc/passwdfile. Untuk mendapatkan daftar pengguna, Anda dapat menggunakan skrip berikut:

  1. bin/bash
  2. # userlistinthesystem.sh
  3. # menghitung dan Daftar pengguna "nyata" yang ada di sistem.
  4. echo “[*] Pengguna yang ada (diurutkan berdasarkan abjad):”
  5. grep '/bin/bash' /etc/passwd | grep -v 'akar' | cut-f1
  6. -d':' | menyortir
  7. echo -n “[*] Jumlah pengguna sebenarnya ditemukan: “
  8. grep '/bin/bash' /etc/passwd | grep -v 'akar' | wc -l
1.2 Daftar akun yang diblokir
Selama audit, Anda perlu memeriksa daftar pengguna yang diblokir dan tidak diblokir ( nama akun ). Perintah berikut akan berfungsi untuk ini:
  1. #!/bin/bash
  2. # passwd –s nama akun

1.3 Melihat statistik untuk semua pengguna

  • Auditor harus memastikan bahwa tim ac disertakan dalam sistem, untuk ikhtisar aktivitas pengguna:
    1. #!/bin/bash
    Untuk melihat aktivitas sesi koneksi pengguna dengan total setiap hari, gunakan perintah:
    1. #!/bin/bash
    2. # ac -d
    Untuk menampilkan informasi tentang aktivitas sesi (dalam jam) koneksi pengguna "pengguna" :
    1. #!/bin/bash
    2. # pengguna ac
    1.4 Lihat aktivitas pengguna
    Aplikasi sistem psacct atau acct berjalan di latar belakang dan melacak aktivitas setiap pengguna di sistem, serta sumber daya yang mereka konsumsi. Untuk memeriksa aktivitas pengguna di sistem, jalankan skrip berikut:
    1. #!/usr/bin/envksh
    2. terakhir -Fa|awk '
    3. /wtmp dimulai/ ( selanjutnya; )
    4. /masih login/ ( selanjutnya; )
    5. $0 == mulai ulang (berikutnya;)
    6. NF > 0 (
    7. jika(NR > 1)
    8. printf("
      ”);
    9. printf("Pengguna:t%s
      ”, $1); # pengguna
    10. printf("Mulai:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. if($9 == "turun")
    12. printf("Akhir: matikan
      ”);
    13. printf("Akhir:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == “(“)
    15. t = $NF;
    16. h = "localhost";
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub(“[()]”, “”, t);
    20. printf("Waktu Aktif:t%s
      ", t);
    21. printf("Host Jarak Jauh:t%s
      ", h);
  • 2. Memeriksa kebijakan kata sandi

    2.1 Akun dengan password kosong
    Selama audit, Anda perlu memastikan bahwa tidak ada atau akun yang diblokir di sistem yang memungkinkan Anda masuk ke sistem tanpa memasukkan kata sandi. Aturan ini dapat diperiksa dengan perintah:

    # kucing /etc/shadow | awk -F: ($2==””)(cetak $1)’

    2.2 Pemeriksaan kerumitan kata sandi
    Selama audit, perlu untuk memeriksa pengaturan kompleksitas kata sandi untuk mengurangi risiko serangan brute-force (brute-force) atau kamus pada kata sandi. Pluggable Authentication Modules (PAM) harus digunakan untuk mengatur kebijakan ini pada sistem.
    Auditor dapat memeriksa pengaturan yang sesuai di file konfigurasi:

    # vi /etc/pam.d/system-auth

    2.3 Memeriksa kedaluwarsa kata sandi

    Sebagai bagian dari audit, Anda harus memeriksa pengaturan kedaluwarsa kata sandi. Untuk memeriksa waktu kedaluwarsa kata sandi, gunakan perintah mengubah. Keluaran perintah ini Informasi rinci tanggal kedaluwarsa kata sandi, dan tanggal terakhir diubah.
    Perintah berikut digunakan untuk melihat informasi tentang "usia" kata sandi:

    #chage -l nama pengguna

    Untuk mengubah waktu kedaluwarsa kata sandi untuk pengguna tertentu, Anda dapat menggunakan perintah di bawah ini:

    #chage - nama pengguna M 60
    #chage -M 60 -m 7 -W 7 nama pengguna

    Opsi (untuk mengatur tanggal kedaluwarsa kata sandi):
    -M - tanggal kedaluwarsa maksimum dalam beberapa hari.
    -m adalah tanggal kedaluwarsa minimum dalam beberapa hari.
    -W - pengaturan peringatan dalam beberapa hari.

    2.4 Penggunaan kata sandi berulang
    Pengaturan otorisasi dalam sistem harus mematuhi kebijakan kata sandi. File yang berisi riwayat kata sandi berada di /etc/security/opasswd.conf Untuk memeriksa, ikuti langkah-langkah berikut:

    untuk RHEL: buka file '/etc/pam.d/system-auth':

    # vi /etc/pam.d/system-auth

    untuk Ubuntu/Debian/Linux Mint: buka file '/etc/pam.d/common-password':

    # vi /etc/pam.d/common-password

    Tambahkan baris berikut ke bagian 'auth':

    auth cukup pam_unix.so likeauthnullok

    Untuk menonaktifkan penggunaan enam kata sandi terakhir, tambahkan baris berikut:

    Kata sandi cukup pam_unix.so nullokuse_authtok md5 bayangan ingat = 6

    Setelah menjalankan perintah, sistem akan menyimpan riwayat enam kata sandi sebelumnya, dan jika ada pengguna yang mencoba memperbarui kata sandi menggunakan salah satu dari enam kata sandi terakhir, dia akan menerima pesan kesalahan.

    3. Pengaturan koneksi aman
    Protokol koneksi jarak jauh Telnet dan Rlogin sudah sangat tua dan rentan, karena pengiriman kata sandi melalui jaringan dalam bentuk tidak terenkripsi. Protokol aman harus digunakan untuk koneksi jarak jauh dan aman Shell Aman (SSH). Auditor juga perlu memastikan pilihan tersebut login akar dinonaktifkan, port SSH default diubah, akses jarak jauh hanya diizinkan untuk pengguna resmi tertentu. Pengaturan yang akan diperiksa ada di file konfigurasi SSH:

    1. #vi /etc/ssh/sshd_config

    3.1 Masuk sebagai pengguna super (login root)

    Selama audit, auditor harus memverifikasi bahwa login jarak jauh dengan hak superuser root dilarang.

    # PermitRootLogin = ya
    3.2 Verifikasi login SSH akun layanan

    Selama audit, auditor harus memeriksa akun layanan dengan login SSH tanpa kata sandi. Biasanya, administrator sistem menggunakan fitur ini untuk diprogram backup, mentransfer file dan menjalankan skrip dalam mode kendali jarak jauh.

    Periksa pengaturan sshd_config Anda (/etc/ssh/sshd_config) sudah benar untuk terakhir kalinya.

    # PermitRootLogin tanpa kata sandi

    # RSAAotentikasi = ya

    #PubkeyAuthentication=ya

    3.3 Memeriksa daftar akses di DenyHosts dan Fail2ban
    Selama audit, perlu untuk memeriksa pengaturan daftar akses DenyHosts dan Fail2ban . Ini adalah skrip yang digunakan untuk memantau dan menganalisis log akses SSH dan melindungi dari serangan brute force kata sandi.

    Fitur DenyHost:

    • menyimpan dan melacak log dari file /var/log/secure , menandai semua upaya masuk yang berhasil dan gagal, dan memfilternya.
    • memonitor upaya login yang gagal
    • mengirimkan pemberitahuan email tentang host yang diblokir dan upaya masuk yang mencurigakan
    Fitur fail2ban:
    • Menyimpan dan melacak log dari file /var/log/secure dan /var/log/auth.log , /var/log/pwdfail
    • sangat dapat disesuaikan dan multi-utas
    • memonitor file log secara teratur

    4. Memeriksa log sistem
    Selama audit, Anda perlu memastikan bahwa daemon SysLog sedang berjalan, dan semua kejadian penting yang terjadi di sistem dicatat dalam log kejadian. Audit juga harus memastikan bahwa kebijakan retensi log peristiwa memperhitungkan persyaratan hukum dan kebijakan keamanan yang berlaku.

    4.1 Log peristiwa di Linux:

    /var/log/auth.log – log sistem otorisasi (login dan mekanisme otentikasi).
    /var/log/dpkg.log - log instalasi/penghapusan paket menggunakan dpkg.
    /var/log/yum.log - log instalasi/penghapusan paket menggunakan yum.
    /var/log/faillog - Log upaya login yang gagal dan batasnya untuk setiap akun.
    /var/log/kern.log – log kernel, (log rinci pesan dari kernel Linux).
    /var/log/maillog atau /var/log/mail.log – log server email.
    /var/log/wtmp – login log (mencatat waktu dan durasi semua pengguna sistem).
    /var/run/utmp - informasi tentang pengguna yang saat ini masuk ke sistem.
    /var/log/lastlog - catatan login sebelumnya.
    /var/log/boot - informasi yang dicatat selama boot sistem

    5. Melindungi file sistem

    5.1 Melindungi bootloader GRUB

    Untuk melindungi bootloader GRUB, administrator perlu menggunakan enkripsi kata sandi bentuk MD5 :

    # grub-md5-crypt

    Setelah menjalankan perintah, administrator perlu membuka file /boot/grub/menu.lst atau /boot/grub/grub.conf dan tambahkan kata sandi MD5:

    # vi /boot/grub/menu.lst

    #vi /boot/grub/grub.conf

    Kata sandi MD5 yang baru dibuat dapat ditambahkan ke file konfigurasi GRUB.

    5.2 Melindungi direktori boot /BOOT

    Selama audit, Anda perlu memeriksa status direktori / boot, karena inti dari sistem dan file terkait terletak di direktori / boot. Anda perlu memastikan bahwa direktori ini memiliki akses hanya baca, yang mencegah perubahan tidak sah pada file penting di sistem. Untuk memeriksa, buka file /etc/fstab dan periksa konfigurasinya:

    File harus berisi baris:

    LABEL=/boot /boot ext2 default,ro 1 2

    5.3 Memeriksa port terbuka dan koneksi aktif

    Skrip berikut dapat digunakan untuk memeriksa layanan yang berjalan di sistem:

    #!/bin/bash
    jika (($(ps -ef | grep -v grep | grep $layanan | wc -l) > 0))
    kemudian
    gema "$service sedang berjalan!!!"
    kalau tidak
    /etc/init.d/$layanan dimulai
    fi

    Melihat koneksi jaringan

    # netstat -anop
    atau
    # lsof -i(lsof -ni)
    atau
    #iptraf

    Port mendengarkan
    Menggunakan perintah Netstat, Anda dapat melihat semua port terbuka dan perintah terkait. Contoh skrip:

    # netstat-tulpn
    Skrip untuk pemindaian port adalah:
    pindai() (
    jika [[ -z $1 || -z$2]]; kemudian
    gema “Penggunaan: $0
    kembali
    fi
    host lokal=$1
    port lokal=()
    kasus $2 masuk
    *-*)
    IFS=- baca mulai akhir<<< “$2”
    untuk ((port=mulai; port<= end; port++)); do
    port+=($port)
    selesai
    ;;
    *,*)
    IFS=, baca -ra port<<< “$2”
    ;; *)
    port+=($2) ;;
    esac
    untuk port di “$(ports[@])”; melakukan
    alarm 1 "echo >/dev/tcp/$host/$port" &&
    gema "port $port terbuka" ||
    gema "port $port ditutup"
    selesai
    }

    firewall iptables

    Selama audit, Anda harus memeriksa konfigurasi firewall Linux untuk mencegah akses tidak sah. Untuk mengontrol lalu lintas, aturan harus dibuat di iptables yang akan memfilter paket masuk, keluar, dan diteruskan berdasarkan alamat IP dan nomor port TCP/UDP.

    # iptables -n -L -v --nomor baris

    Permintaan ICMP/siaran

    Selama audit, Anda perlu memverifikasi bahwa sistem dikonfigurasi untuk mengabaikan ping dan permintaan siaran. Untuk melakukan ini, pastikan file tersebut “/etc/sysctl.conf” menambahkan baris berikut:

    # abaikan permintaan ICMP:
    net.ipv4.icmp_echo_ignore_all = 1
    # abaikan permintaan siaran:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Memeriksa pembaruan yang diinstal

    Sistem harus menginstal pembaruan terbaru:

    # pembaruan yum
    # yum check-update

    6. Memeriksa pekerjaan CRON yang dijalankan secara otomatis

    Auditor harus memeriksa siapa yang diizinkan dan dilarang untuk mengeksekusi pekerjaan di cron. Akses Cron dikontrol menggunakan file /etc/cron.allow dan /etc/cron.deny.

    # gema SEMUA >>/etc/cron.deny

    7. Pemeriksaan Keamanan Paksa SELINUX

    Selama audit, penting untuk memeriksa status SELinux . Mekanisme ini harus diaktifkan di sistem.
    Ada tiga mode SELinux :

    • Menegakkan: Kebijakan SELinux ditegakkan. SELinux menolak akses berdasarkan aturan kebijakan SELinux.
    • Permisif: Kebijakan SELinux tidak diterapkan. SELinux tidak menolak akses, tetapi penolakan dicatat sebagai tindakan yang akan ditolak jika kebijakan ditetapkan untuk diberlakukan.
    • Dinonaktifkan: SELinux dinonaktifkan. Hanya aturan DAC diskrit yang digunakan.

    Selama audit, Anda dapat menggunakan skrip berikut untuk memeriksa status SELinux atau menggunakan perintah system-configselinux, getenforce, atau sestatus:

    DIAKTIFKAN=`cat /selinux/enforce`
    jika [ “$DIAKTIFKAN” == 1 ]; kemudian
    echo “SELinux diaktifkan, nonaktifkan? (ya Tidak):"
    membaca menonaktifkan
    if [ $disable == "ya" ]; kemudian
    gema "menonaktifkan selinux"
    setenforce 0
    fi
    fi

    Skrip LBSA untuk memeriksa opsi keamanan dasar

    LBSA (skrip Audit Keamanan Dasar Linux) adalah skrip audit konfigurasi keamanan Linux dasar. Skrip harus dijalankan dari baris perintah dengan hak istimewa akar, atau idealnya dijadwalkan untuk berjalan secara teratur menggunakan cron untuk memeriksa perubahan konfigurasi secara sistematis.

    Tujuan skrip ini adalah untuk mengaudit setelan keamanan dengan cepat dan mengunduh laporan yang menjelaskan kemungkinan setelan yang dapat diubah untuk memberikan tingkat keamanan yang lebih tinggi. Jika tidak ada rekomendasi untuk opsi apa pun, skrip hanya menampilkan satu baris dengan pemrosesan cek, dan keputusan akhir selalu ada di tangan administrator. Sebelum menjalankan tes, pengembang sangat menyarankan agar Anda membaca manual dan mempelajari bagian yang direkomendasikan untuk informasi lebih lanjut.

    Dalam edisi saat ini (Versi 1.0.49), skrip memindai opsi berikut:

    • kerentanan dalam pengaturan akun
    • kerentanan dalam pengaturan SSH
    • kerentanan dalam direktori sementara dan direktori sistem file yang dimuat ke dalam RAM (misalnya, di /tmp, /var/tmp /dev/)
    • izin file, status direktori sistem
    • -konfigurasi layanan DRBD dan Hearbeat

    Skripnya cukup besar, jadi kami tidak menaruhnya di halaman.

    Lakukan audit keamanan server sebulan sekali untuk mendeteksi kemungkinan masalah yang terkait dengan penetrasi penyusup ke server secara tepat waktu.

    Jika Anda tidak melihat tanda-tanda aktivitas pihak ketiga di VPS atau situs, lakukan rangkaian pemeriksaan dan penyesuaian berikut untuk melindungi server dari peretasan.

    Pengaturan lapisan aplikasi

    Jika CMS diinstal di server, periksa apakah semua pembaruan terbaru diinstal.

    Joomla

    Temukan file changelog.txt di direktori root situs, tempat Anda akan menemukan informasi tentang versi CMS. Jika kedaluwarsa, perbarui Joomla.

    Wordpress

    Cari file wp-includes/version.php untuk informasi versi CMS. Jika sudah usang, perbarui Wordpress.

    DLE

    Cari file engine/data/config.php, cari baris version_id dan pastikan versinya up to date.

    Periksa juga file engine/ajax/updates.php dan upgrade/index.php ($dle_version parameter).

    1C-Bitrix

    Cari file /bitrix/modules/main/classes/general/version.php, di mana Anda akan menemukan informasi tentang versi CMS. Periksa juga file /bitrix/admin/update_system.php. Jika versinya kedaluwarsa, perbarui 1C-Bitrix.

    Drupal

    Temukan file changelog.txt di direktori root situs, tempat Anda akan menemukan informasi tentang versi CMS. Jika kedaluwarsa, perbarui Drupal.

    Periksa versi kernel di file /modules/system/system.info.

    Juga, Anda dapat mendeteksi versi CMS melalui panel kontrol.

    Memeriksa server web.

    Apache

    Buka file konfigurasi Apache (bergantung pada versinya, ini mungkin file httpd.conf, httpd2.conf, apache.conf, apache2.conf) dan periksa apakah itu berisi arahan yang menonaktifkan keluaran informasi tentang versi web pelayan:

    ServerTokensProd

    Jika arahan ini tidak ada, tambahkan dan simpan file.

    Cari file secure.conf, buka untuk dilihat, dan periksa isinya dengan contoh berikut:

    Opsi + Termasuk -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Batas Indeks Opsi Pesan izinkan, tolak Izinkan dari semua php_admin_value open_basedir "." Pilihan-Indeks Tindakan php-cgi /php-bin/php

    secure.conf Anda seharusnya tidak jauh berbeda dari contoh di atas.

    Periksa MPM yang diinstal dengan perintah

    Apachectl -V

    Untuk keamanan yang lebih kuat, gunakan mpm_itk kecuali jika Anda benar-benar membutuhkan mpm_prefork.

    Jika Anda ingin mengubah MPM, lakukan penginstalan ulang setelah membuat salinan cadangan dari file konfigurasi. Setelah penginstalan ulang, periksa apakah pemilik situs dan semua direktorinya adalah penggunanya.

    Nginx

    Buka file konfigurasi server web (nginx.conf), buka bagian http dan periksa apakah berisi arahan yang membatasi jumlah koneksi dari satu alamat IP:

    Limit_zone membatasi $binary_remote_addr 5m; limit_conn slimits 10; atau (untuk versi terbaru) limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;

    Jika arahan ini tidak ada, tambahkan dan simpan file.

    Blokir beberapa agen pengguna untuk memblokir lalu lintas yang tidak diinginkan. Di bagian http dari file konfigurasi Nginx, tambahkan direktif

    If ($http_user_agent ~* LWP::Simple|BBBike|wget|msnbot) (return 403;)

    Blokir spam rujukan dengan menambahkan arahan ke bagian http dari file konfigurasi Nginx

    If($http_referer ~*(sayang|untuk dijual|gadis|perhiasan|cinta|nudit|organik|poker|porno|seks|remaja))(kembali 403;)

    manajer ISP

    Lakukan pemeriksaan berikut di panel kontrol ISPmanager.

    Periksa apakah akses ke panel kontrol dibatasi oleh alamat IP.

    Siapkan pencadangan data jika tidak diaktifkan. Kami merekomendasikan menggunakan drive eksternal untuk cadangan untuk mencegah kehilangan data bersama dengan arsip.

    PHP

    Buka file konfigurasi php.ini dan tambahkan arahan berikut.

    Expose_php=Mati - matikan transmisi informasi versi PHP di header HTTP; sql.safe_mode=Aktif - aktifkan mode aman SQL; post_max_size=8M - batas ukuran untuk data yang dikirimkan dengan metode POST; disable_functions exec, system, passthru, proc_open, shell_exec - nonaktifkan beberapa fungsi untuk alasan keamanan.

    NTP

    Di file konfigurasi NTP (/etc/ntp.conf secara default), tambahkan baris untuk menonaktifkan permintaan rekursif:

    Batasi kod default terbatas nomodifikasi notrap nopeer noquery batasi -6 kod default terbatas nomodifikasi notrap nopeer noquery batasi 127.0.0.1 batasi -6::1

    Mengikat

    Tempatkan baris berikut di file named.conf untuk menonaktifkan kueri rekursif:

    Izinkan-rekursi ( 127.0.0.1; 82.146.32.0/19; 78.24.216.0/21; 92.63.96.0/20; 62.109.0.0/19; 188.120.224.0/19; 149.154.64.0/21; 37.230.112.15; 37.230.112.15; 248.0/21; );

    Memeriksa pemilik direktori situs

    Periksa siapa yang memiliki direktori utama situs dan semua subdirektorinya.

    Di bilah alat ISPmanager, buka bagian "Sistem" -> "Manajer file" dan buka direktori situs. Pastikan kolom Pemilik dan Grup ditujukan untuk pengguna yang memiliki situs tersebut. Untuk mengubah atribut ini, klik tombol Attributes pada toolbar.

    Nama pemilik situs yang valid adalah apache, www, www-data jika Anda menggunakan mpm_prefork. Kami merekomendasikan penggunaan mpm_itk untuk meningkatkan keamanan.

    Jika situs tersebut berisi folder bersama (misalnya, upload, tmp), maka nama pemiliknya 777. Pastikan pengguna ini disetel hanya ke direktori yang diperlukan dengan menjalankan perintah

    Temukan ./ -perm 0777

    Ini akan menemukan semua folder dan file yang dimiliki oleh 777.

    Pengaturan tingkat sistem operasi

    pemburu

    Gunakan utilitas rkhunter untuk mengidentifikasi potensi kerentanan server.

    Untuk menginstal utilitas, gunakan perintah:

    Yum install rkhunter - CentOS OS apt-get install rkhunter - Debian/Ubuntu OS make all install clean -C /usr/ports/security/rkhunter atau pkg install rkhunter - FreeBSD OS

    Untuk memperbarui basis data utilitas ini, jalankan perintah

    Rkhunter --update

    Rkhunter --propupd

    Jalankan pemeriksaan sistem dengan perintah

    Rkhunter -c --cs2

    Selama proses verifikasi, Anda perlu menekan tombol Enter beberapa kali untuk melanjutkan. Setelah selesai, ringkasan hasil tes akan muncul.

    Hasil pemeriksaan ditempatkan di file log /var/log/rkhunter/rkhunter.log, tinjau untuk peringatan dan kesalahan.

    sysctl

    Gunakan utilitas sysctl untuk mengelola parameter kernel sistem. Buka file konfigurasi utilitas /etc/sysctl.conf dan masukkan baris berikut.

    Nonaktifkan kemampuan untuk merutekan lalu lintas masuk, karena penyerang dapat menggunakan kemampuan ini untuk memalsukan alamat IP:

    net.ipv4.conf.all.accept_source_route = 0

    Nonaktifkan balasan untuk permintaan ICMP melalui saluran siaran - ini akan membantu mencegah serangan smurf:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Nonaktifkan pencatatan pesan kesalahan yang tidak valid:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Aktifkan perlindungan luapan memori:

    Kernel.exec-shield=1 (CentOS)

    Aktifkan penggunaan memori ASLR:

    kernel.randomize_va_space = 2

    Nonaktifkan kemampuan untuk meneruskan pesan ICMP:

    net.ipv4.conf.all.accept_redirects=0 net.ipv4.conf.default.accept_redirects=0

    Jika Anda tidak menggunakan VPN atau aplikasi khusus lainnya di server, nonaktifkan penerusan:

    Net.ipv4.conf.all.forwarding=0

    Aktifkan perlindungan banjir SYN - penggunaan cookie SYN:

    Net.ipv4.tcp_syncookies=1

    Tetapkan jumlah upaya untuk mengirim paket SYN-ACK:

    Net.ipv4.tcp_synack_retries = 3

    Tetapkan waktu setelah server memeriksa koneksi jika sudah lama tidak digunakan (standarnya adalah 2 jam):

    Net.ipv4.tcp_keepalive_time=1800

    Tetapkan jumlah pemeriksaan koneksi sebelum diakhiri:

    Net.ipv4.tcp_keepalive_probes=3

    Setel batas waktu soket dalam status FIN-WAIT-2:

    net.ipv4.tcp_fin_timeout=30

    fstab

    Periksa file konfigurasi fstab (/etc/fstab), yang berisi informasi tentang disk, partisi, dan perangkat penyimpanan, serta cara pemasangannya di sistem.

    Di /etc/fstab

    Perhatikan bahwa partisi non-root harus memiliki opsi nodev. Jika /tmp dipasang pada partisi terpisah, tambahkan nodev, noexec, nosuid untuk partisi tersebut.

    rsyslog

    Periksa file log sistem /etc/rsyslog.conf.

    Lihat /etc/rsyslog.conf

    Perhatikan baris berikut, yang akan terlihat seperti:

    Pastikan juga file log tidak kosong, mis. logging sudah benar.

    sudo

    Periksa apakah utilitas sudo (atau su) dikonfigurasi dengan benar, yang memungkinkan pengguna menjalankan perintah dan program tertentu sebagai root. Pengaturan untuk utilitas ini terletak di file konfigurasi /etc/sudoers atau /usr/local/etc/sudoers. Buka untuk diedit

    Di /etc/sudoers

    Temukan baris yang tertulis secara default dan izinkan superuser root untuk menjalankan perintah apa pun.

    Untuk memberikan hak istimewa kepada semua pengguna untuk menjalankan perintah sebagai root, tambahkan baris berikut:

    ALL ALL=/bin/su atau ALL ALL=/usr/bin/su

    Untuk memberi pengguna tertentu hak istimewa untuk menjalankan hanya perintah tertentu sebagai root, tambahkan baris:

    %users ALL=/sbin/mount - grup pengguna hanya dapat menggunakan sudo dengan perintah mount user ALL=/sbin/mount - pengguna pengguna hanya dapat menggunakan sudo dengan perintah mount

    Pengaturan tingkat jaringan

    Periksa port mana yang terbuka di server dan layanan mana yang menggunakannya dengan menjalankan perintah

    Netstat -tuplnw | awk "(cetak $4,$NF)" | urutkan | uniq

    Misalnya, entri 127.0.0.1:53 748/bernama berarti layanan bernama menggunakan port 53. Periksa apakah hanya yang diperlukan yang ada di antara layanan yang berjalan, nonaktifkan yang lainnya.

    FTP

    Tetapkan rentang port yang akan digunakan untuk mode FTP pasif. Untuk melakukan ini, buka file konfigurasi server FTP Anda untuk diedit dan tambahkan baris:

    untuk vsftpd.conf:

    pasv_min_port=1028 pasv_max_port=1048

    untuk proftpd.conf:

    Port Pasif 1028 1048

    Jangan gunakan protokol FTP kecuali benar-benar diperlukan, gunakan SFTP sebagai gantinya. Jika FTP masih diperlukan, tambahkan baris berikut ke file konfigurasi:

    untuk vsftpd.conf:

    Xferlog_enable=YA (log ftp) anonymous_enable=TIDAK (tolak koneksi pengguna anonim) anon_upload_enable=TIDAK anon_mkdir_write_enable=TIDAK

    untuk proftpd.conf:

    di bagian ... hapus semua bagian dan tambahkan baris

    DenyAll DenyAll

    iptables

    Periksa apakah firewall dikonfigurasi dengan benar. Untuk iptables jalankan perintah

    Iptables-nL

    Perintah ini mencetak semua aturan firewall iptables ke baris perintah. Selain itu, aturan ini dapat dilihat dan diedit di file konfigurasi firewall /etc/sysconfig/iptables - untuk OS CentOS, /etc/network/if-up.d/ispmgrfw - untuk OS Debian/Ubuntu.

    Dalam aturan firewall, tutup semua port kecuali yang digunakan oleh layanan yang berjalan di server. Untuk melakukan ini, ubah garisnya

    :INPUT TERIMA :TERIMA MAJU :TERIMA OUTPUT ke :INPUT DROP :FORWARD DROP :OUTPUT DROP

    Untuk membuka port yang diperlukan, tambahkan baris seperti

    A INPUT -p tcp -m tcp --dport 53 -j TERIMA -A INPUT -p udp -m udp --dport 53 -j TERIMA -A INPUT -p tcp -m multiport --olahraga 53,80,25,443,953 -j MENERIMA

    di mana 53 adalah nomor port yang akan dibuka.

    Sebelum membuat perubahan pada file konfigurasi firewall, buat salinan file kerja.

    Aturan firewall dapat dikonfigurasi dari panel kontrol ISPmanager.

    SSH

    Buka file konfigurasi SSH:

    Lihat /etc/ssh/sshd_config

    Pastikan baris berikut tidak dikomentari:

    Protokol 2 (untuk menggunakan versi kedua protokol) IgnoreRhosts yes (jangan gunakan file .rhost) HostbasedAuthentication no (jangan autentikasi host) PermitRootLogin no (tolak akses root) PermitEmptyPasswords no (jangan gunakan kata sandi kosong) PermitUserEnvironment no (larang pengguna mengatur variabel lingkungan) PasswordAuthentication yes (izinkan otentikasi kata sandi)

    Aktifkan SFTP dengan menambahkan baris berikut ke sshd_config:

    Subsistem sftp /usr/lib/openssh/sftp-server

    Periksa antrian surat untuk luapan dan pastikan tidak ada pesan spam di antara pesan tersebut.

    Jalankan perintah mailq dan lihat daftar pesan. Jika daftarnya sangat besar, periksa secara selektif pesan yang mungkin merupakan spam. Dengan pengidentifikasi (misalnya, BD65F10DEE4) tentukan pengirim surat. Memerintah

    Exim -Mvh message_id

    menampilkan header email, dan perintah

    Exim -Mvb message_id

    akan menampilkan isi pesan.

    Di antara header pesan, kolom Dari: berisi pengirim, dan X-PHP-Originating-Script berisi skrip tujuan pengiriman pesan.

    Perangkat lunak

    Periksa perangkat lunak server untuk kerentanan.

    OS Cent OS

    Jalankan perintah yang mencantumkan file perangkat lunak yang diinstal yang baru saja dimodifikasi:

    Rpm -qVa - untuk menampilkan semua file, rpm -qVa | awk "$2!="c" (print $0)" - untuk mencetak file kecuali log.

    Analisis file mana yang telah diubah dan bagaimana caranya, menggunakan nilai parameter berikut:

    S - ukuran file dimodifikasi M - izin default dimodifikasi 5 - MD5 checksum dimodifikasi D - nomor mayor/minor untuk perangkat dimodifikasi L - tautan simbolik dimodifikasi U - pemilik file dimodifikasi G - grup dimodifikasi T - tanggal modifikasi file (mtime) dimodifikasi) c - file konfigurasi d - file dokumentasi g - file tidak termasuk dalam paket l - file lisensi r - file README

    Misalnya, garis S.5....T. c /etc/httpd/conf/httpd.conf artinya httpd.conf adalah file konfigurasi, ukurannya, checksum dan tanggal modifikasi terakhir telah diubah. Karena ini adalah file konfigurasi, perubahan ini tidak mencurigakan.

    Perhatikan file yang nilai checksumnya berubah tanpa alasan yang jelas. Untuk file seperti itu, jalankan perintah:

    Stat /usr/sbin/sshd && file /usr/sbin/sshd di mana usr/sbin/sshd adalah jalur ke file.

    Sebagai hasil dari perintah tersebut, informasi mendetail tentang perubahan file ini ditampilkan di layar.

    Jalankan perintah:

    Yum --pembaruan keamanan

    untuk menginstal pembaruan keamanan.

    OS Debian

    Jalankan perintah yang memeriksa checksum MD5 untuk program yang diinstal:

    # apt-get install debsums # debsums -c

    Jalankan perintah berikut untuk memeriksa pembaruan keamanan:

    # echo 'deb http://security.debian.org wheezy/updates main contrib non-free' >> /etc/apt/sources.list # grep security /etc/apt/sources.list > /etc/apt/secsrc .list # apt-get -s -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" perbarui

    Untuk menginstal pembaruan keamanan, jalankan perintah:

    # apt-get -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" perbarui

    Verifikasi bahwa semua repositori memiliki rekonsiliasi gpg dengan menjalankan perintah:

    # grep -ri gpgcheck /etc/yum.conf # grep -ri gpgcheck /etc/yum.repos.d/ Pastikan garisnya seperti: gpgcheck=1 # grep -ri AllowUnauthenticated /etc/apt/

    Baris formulir

    APT::Dapatkan::Izinkan "benar" yang tidak diautentikasi;

    seharusnya tidak.

    Layanan yang Tidak Digunakan

    OS Cent OS

    chkconfig --daftar

    Chkconfig --del service_name di mana service_name adalah nama layanan.

    OS Debian

    Jalankan perintah yang mencantumkan layanan yang tidak digunakan:

    sysv-rc-conf

    Untuk menonaktifkan startup layanan yang tidak digunakan, jalankan perintah:

    Sysv-rc-conf off service_name di mana service_name adalah nama layanan.

    Keamanan server Linux sangat penting untuk melindungi data Anda, hak milik intelektual, serta waktu di tangan kerupuk. Untuk keamanan sistem operasi Linux menjawab Administrator sistem. Pada artikel ini, kita akan melihat dua puluh hal yang perlu Anda lakukan dengan sistem operasi Linux Anda agar tetap aman dan terlindungi setiap saat. Jika ini komputer rumah, lalu tentang keamanan, mungkin, tidak masuk akal untuk terlalu khawatir, kata sandi yang kuat dan memblokir akses ke port dari Internet sudah cukup. Tetapi dalam kasus server publik, Anda harus memperhatikan untuk memastikan perlindungannya.

    Instruksi ini akan berfungsi untuk distribusi apa pun, apakah Anda menggunakan CentOS, Red Hat atau Ubuntu, Debian.

    1. Enkripsi komunikasi

    Semua data yang dikirimkan melalui jaringan terbuka untuk pemantauan. Oleh karena itu, perlu untuk mengenkripsi data yang dikirimkan, jika memungkinkan menggunakan kata sandi, kunci, atau sertifikat.

    Gunakan scp, ssh , rsync, atau sftp untuk mentransfer file. Anda juga dapat memasang sistem file jarak jauh ke direktori home Anda menggunakan alat seperti shhfs.

    GnuPG memungkinkan Anda mengenkripsi dan menandatangani data Anda dengan kunci pribadi khusus. Ada juga fungsi untuk manajemen kunci dan akses ke kunci publik.

    Fugu adalah alat transfer file SFTP grafis. SFTP sangat mirip dengan FTP, tetapi seluruh sesi dienkripsi. Ini berarti bahwa tidak ada kata sandi atau perintah yang dikirimkan secara jelas. Oleh karena itu, transfer semacam itu kurang rentan terhadap pihak ketiga. Anda juga dapat menggunakan FileZilla, ini lintas platform klien FTP dengan dukungan untuk FTS melalui SSH / TLS dan Protokol Transfer File SSH (SFTP).

    OpenVPN adalah klien VPN yang efisien dan ringan dengan dukungan untuk enkripsi SSH.

    2. Cobalah untuk tidak menggunakan FTP, Telnet, Rlogin dan RSH

    Di sebagian besar jaringan, nama pengguna, kata sandi dari perintah FTP, Telnet, RSH dapat dicegat oleh seseorang di jaringan yang sama menggunakan packet sniffer. Solusi umum untuk masalah ini adalah menggunakan OpenSSH, SFTP, atau SFTP, yang menambahkan SSL atau TLS ke FTP biasa. Jalankan perintah berikut untuk menghapus NIS, RSH, dan layanan usang lainnya:

    yum hapus inetd xinetd ypserv tftp-server telnet-server rsh-serve

    3. Kurangi jumlah perangkat lunak

    Apakah Anda benar-benar membutuhkan semua layanan web yang terinstal? Jangan menginstal yang tidak perlu perangkat lunak untuk menghindari kerentanan dalam program ini. Gunakan manajer paket Anda untuk melihat program yang diinstal dan hapus semua yang tidak perlu:

    daftar yum diinstal
    paket daftar $ yum
    $ yum hapus paket

    dpkg --daftar
    $ dpkg --info paket
    paket $ apt-get hapus

    4. Satu mesin - satu layanan

    Jalankan layanan berbeda di server terpisah, atau mesin virtual. Ini membatasi jumlah layanan yang dapat dikompromikan. Misalnya, jika penyerang dapat meretas Apache, maka dia akan mendapatkan akses ke seluruh server. Termasuk layanan seperti MySQL, server Surel dan seterusnya. Anda dapat menggunakan perangkat lunak seperti XEN atau OpenVZ untuk virtualisasi.

    5. Selalu perbarui kernel dan perangkat lunak Linux

    Menerapkan tambalan keamanan adalah bagian yang sangat penting untuk menjaga keamanan server Linux. Sistem operasi menyediakan semua alat untuk menjaga sistem tetap mutakhir dan memutakhirkan ke versi baru. Semua pembaruan keamanan harus diterapkan sesegera mungkin. Di sini, Anda juga perlu menggunakan manajer paket Anda. Sebagai contoh:

    Atau untuk sistem berbasis Debian:

    sudo apt update && sudo apt upgrade

    Anda dapat mengatur Red Hat atau Fedora untuk mengirimi Anda pemberitahuan email saat pembaruan keamanan baru tersedia. Anda juga dapat menyesuaikan pembaruan otomatis melalui cron, atau Anda dapat menggunakan aptcron Debian untuk memberi tahu Anda untuk memutakhirkan sistem Anda.

    6. Gunakan ekstensi keamanan di Linux

    Sistem operasi Linux hadir dengan berbagai tambalan keamanan yang dapat digunakan untuk melindungi dari kesalahan konfigurasi atau malware. Tetapi Anda juga dapat menggunakan sistem kontrol akses tambahan untuk aplikasi seperti SELinux atau AppArrmor.

    SELinux menyediakan berbagai kebijakan keamanan untuk kernel Linux. Di sini dimungkinkan untuk mengontrol akses ke sumber daya sistem apa pun menggunakan peran. Sumber daya tertentu hanya dapat diakses oleh program yang perannya memungkinkan, dan bahkan hak pengguna super pun tidak masalah. SELinux sangat meningkatkan keamanan sistem Linux, karena bahkan root dianggap sebagai pengguna biasa di sini. Rincian lebih lanjut dijelaskan dalam artikel terpisah.

    7. Akun pengguna dan kata sandi yang kuat

    Gunakan perintah useradd dan usermod untuk membuat dan mengelola akun pengguna. Pastikan Anda memiliki kata sandi yang baik dan kuat, setidaknya harus berisi delapan karakter, sebaiknya dalam kasus yang berbeda, di antaranya harus ada karakter atau angka khusus. Misalnya, 8 karakter, tujuh di antaranya huruf dan satu karakter atau angka. Gunakan alat seperti John the ripper untuk menemukan kata sandi pengguna yang lemah di server, dan konfigurasikan pam_cracklib.so untuk menerapkan kebijakan kata sandi.

    8. Ganti kata sandi dari waktu ke waktu

    Perintah ubah memungkinkan Anda untuk menentukan jumlah hari sebelum tanggal perubahan kata sandi paksa. Informasi ini digunakan oleh sistem untuk menentukan kapan pengguna harus mengubahnya. Pengaturan ini ada di /etc/login.defs. Untuk menonaktifkan penuaan kata sandi, masukkan perintah berikut:

    ubah -l nama pengguna

    Untuk mendapatkan informasi tentang tanggal kedaluwarsa kata sandi, masukkan perintah:

    Anda juga dapat mengonfigurasi semuanya secara manual, di file /etc/shadow:

    (pengguna): (kata sandi): (terakhir diubah):(max_days): (minimum_days): (Peringatan):(menonaktifkan):(garis_kedaluwarsa):

    • Hari minimum- interval minimum antara perubahan kata sandi, yaitu seberapa sering pengguna dapat mengubah kata sandi.
    • Hari maksimum- berapa hari kata sandi akan valid, setelah periode ini pengguna akan dipaksa untuk mengubah kata sandi.
    • Peringatan- jumlah hari setelah itu pengguna akan diperingatkan bahwa dia perlu mengubah kata sandinya.
    • expiry_string- jumlah hari sejak 1 Januari 1970 saat akun akan dinonaktifkan sepenuhnya.

    ubah -M 60 -m 7 -W 7 nama pengguna

    Juga diinginkan untuk mencegah pengguna menggunakan kata sandi lama, jika tidak, semua upaya untuk memaksa mereka mengubah kata sandi akan dibatalkan.

    9. Blokir Akun Setelah Upaya Login Gagal

    Pada sistem operasi Linux, Anda dapat menggunakan perintah faillog untuk melihat upaya login pengguna yang gagal. Anda juga dapat menggunakannya untuk membatasi upaya login yang gagal. Semua informasi tentang upaya login yang gagal disimpan di file /var/log/faillog. Untuk melihatnya, ketik:

    Dan untuk menetapkan batas upaya login untuk akun tertentu, gunakan:

    faillog -r -u pengguna

    Anda juga dapat memblokir atau membuka blokir akun secara manual menggunakan perintah passwd. Untuk memblokir penggunaan:

    passwd -l pengguna

    Dan untuk membuka kunci:

    passwd -u pengguna

    Dianjurkan juga untuk memeriksa apakah ada akun dengan kata sandi kosong di sistem. Untuk melakukan ini, jalankan:

    awk -F: "($2 == "") (cetak)" /etc/shadow

    Periksa juga apakah ada pengguna dengan grup atau id 0. Seharusnya hanya ada satu pengguna, dan ini adalah root. Anda dapat memeriksa dengan perintah ini:

    awk -F: "($3 == "0") (cetak)" /etc/passwd

    Seharusnya hanya ada satu baris:

    root:x:0:0:root:/root:/bin/bash

    Jika ada yang lain, hapus saja. Pengguna, dan terutama kata sandinya yang lemah, adalah salah satu hal paling rentan yang dapat merusak keamanan di linux.

    10. Nonaktifkan Login Pengguna Super

    Untuk menjaga keamanan sistem linux Anda, jangan pernah masuk sebagai root. Anda dapat menggunakan sudo untuk mendapatkan izin yang diperlukan dan menjalankan perintah yang diinginkan sebagai root. Perintah ini memungkinkan Anda untuk tidak mengungkapkan kata sandi pengguna super ke admin lain, dan juga berisi alat untuk memantau, membatasi, dan melacak tindakan.

    11. Keamanan fisik server

    Keamanan server Linux harus menyertakan keamanan fisik. Anda harus membatasi akses fisik ke konsol server. Atur BIOS agar tidak mendukung booting dari media eksternal seperti DVD, CD, USB. Tetapkan juga kata sandi pada bootloader BIOS dan GRUB untuk melindungi pengaturannya.

    12. Nonaktifkan layanan yang tidak perlu

    Nonaktifkan semua layanan dan daemon yang tidak digunakan. Juga jangan lupa untuk menghapus layanan ini dari startup. Anda dapat membuat daftar semua layanan aktif di sistem Red Hat dengan perintah:

    chkconfig --daftar | grep "3: aktif"

    Untuk menonaktifkan layanan, gunakan:

    pemberhentian layanan
    layanan $ chkconfig mati

    Temukan semuanya membuka program port:

    Hal yang sama dapat dilakukan dengan pemindai nmap:

    nmap -sT -O localhost

    Gunakan iptables untuk menutup semua port yang seharusnya tidak dapat diakses dari jaringan. Atau berhenti layanan yang tidak perlu seperti yang dijelaskan di atas.

    13. Hapus server X

    Server X di komputer server sepenuhnya opsional. Anda tidak perlu menjalankan lingkungan grafis di server Apache atau Email khusus. Hapus perangkat lunak ini untuk meningkatkan keamanan dan kinerja.

    14. Siapkan Iptables

    iptables adalah program ruang pengguna untuk mengonfigurasi firewall Netfilter yang dibangun di dalam kernel. Ini memungkinkan Anda untuk memfilter semua lalu lintas dan hanya mengizinkan jenis lalu lintas tertentu. Juga gunakan sistem TCPWrappers - ACL untuk memfilter akses internet. Anda dapat mencegah banyak jenis serangan DOS dengan iptables. Keamanan jaringan di Linux adalah aspek yang sangat penting dari keamanan sistem secara keseluruhan.

    15. Siapkan kernel

    File /etc/sysctl.conf menyimpan pengaturan kernel yang dimuat dan diterapkan selama startup sistem.

    Aktifkan perlindungan buffer overflow execshield:

    kernel.exec-shield=1
    kernel.randomize_va_space=1

    Aktifkan Perlindungan IP Spoofing:

    net.ipv4.conf.all.rp_filter=1

    Nonaktifkan penerusan alamat IP:

    net.ipv4.conf.all.accept_source_route=0

    Abaikan permintaan siaran:

    net.ipv4.icmp_echo_ignore_broadcasts=1
    net.ipv4.icmp_ignore_bogus_error_messages=1

    Catat semua paket palsu:

    net.ipv4.conf.all.log_martians=1

    16. Partisi hard drive Anda

    Pemisahan perangkat keras ke dalam partisi tergantung pada tujuan file meningkatkan keamanan OS Linux. Disarankan untuk membuat bagian terpisah untuk direktori tersebut:

    • /rumah
    • /var dan /var/tmp

    Buat partisi terpisah untuk direktori root Apache dan server FTP. Buka file /etc/fstab dan atur opsi khusus untuk partisi yang diinginkan:

    • noexec- jangan jalankan program apa pun atau file yang dapat dieksekusi di partisi ini, hanya skrip yang diizinkan
    • nodev- jangan izinkan perangkat simbolis atau khusus di partisi ini.
    • nosuid- jangan izinkan akses SUID / SGID untuk program dari bagian ini.

    17. Gunakan Batasan Ruang Disk

    Batasi ruang disk yang tersedia untuk pengguna. Untuk melakukannya, buat kuota disk di /etc/fstab, pasang ulang sistem file, dan buat database kuota disk. Ini akan meningkatkan keamanan di Linux.

    18. Nonaktifkan IPv6

    Protokol Internet IPv6 generasi berikutnya akan menggantikan IPv4 yang sudah digunakan di masa mendatang. Tetapi saat ini tidak ada alat yang memungkinkan Anda memeriksa keamanan jaringan berbasis IPv6. Banyak distribusi Linux mengizinkan IPv6 secara default. Peretas dapat mengirimkan lalu lintas yang tidak diinginkan dan admin tidak akan dapat melacaknya. Jadi jika Anda tidak membutuhkan layanan ini, nonaktifkan saja.

    19. Nonaktifkan binari SUID dan SGID yang tidak digunakan

    Semua file yang dapat dieksekusi yang bendera SUID atau SGID diaktifkan berpotensi berbahaya. Bendera ini berarti program akan dijalankan dengan hak pengguna super. Dan ini berarti bahwa jika program tersebut memiliki semacam kerentanan atau bug, maka lokal atau pengguna jarak jauh dapat menggunakan file ini. Temukan semua file tersebut dengan perintah berikut:

    temukan / -perm +4000

    Temukan file dengan set bendera SGID:

    temukan / -perm +2000

    Atau kita bisa menggabungkan semuanya dalam satu perintah:

    temukan / \(-perm -4000 -o -perm -2000 \) -cetak
    $ find / -path -prune -o -type f -perm +6000 -ls

    Anda harus mempelajari setiap file yang ditemukan secara mendetail untuk memahami seberapa banyak file ini atau itu dibutuhkan.

    20. File Publik

    Juga diinginkan untuk menemukan file yang dapat dimodifikasi oleh semua pengguna di sistem. Untuk melakukannya, gunakan perintah berikut:

    temukan /dir -xdev -ketik d \(-perm -0002 -a ! -perm -1000 \) -print

    Sekarang Anda perlu memeriksa apakah hak untuk grup dan pemilik setiap file ini disetel dengan benar dan apakah ini menimbulkan risiko keamanan.

    Juga diinginkan untuk menemukan semua file yang bukan milik siapa pun:

    temukan /dir -xdev \(-nouser -o -nogroup \) -print

    21. Gunakan sistem otentikasi terpusat

    Tanpa sistem autentikasi terpusat, data pengguna menjadi tidak konsisten, yang dapat menyebabkan kredensial basi dan lupa akun yang seharusnya sudah lama dihapus. Layanan terpusat akan memungkinkan Anda mempertahankan kendali atas akun pengguna dan data autentikasi di berbagai sistem Linux dan Unix. Anda dapat menyinkronkan data autentikasi antar server. Tapi jangan gunakan layanan NIS, lebih baik lihat ke arah Open DAP.

    Salah satu implementasi yang menarik dari sistem tersebut adalah Kerberos. Ini memungkinkan pengguna untuk diautentikasi menggunakan kunci rahasia di jaringan tempat paket dapat dicegat dan dimodifikasi. Kerberos menggunakan kunci simetris untuk mengenkripsi data dan membutuhkan Pusat Manajemen Kunci untuk berfungsi. Anda dapat mengatur login jarak jauh, salinan jarak jauh, salinan aman file antara sistem dan tugas lain dengan tingkat keamanan yang tinggi.

    22. Pencatatan dan audit

    Siapkan logging dan audit untuk mengumpulkan dan menyimpan semua upaya login yang gagal dan upaya peretasan. Secara default, semua log, atau setidaknya sebagian besar, terletak di folder /var/log/. Secara lebih rinci, kami berbicara tentang apa yang menjadi tanggung jawab orang-orang tertentu dalam artikel terpisah.

    Anda dapat menonton log dengan utilitas seperti logwatch atau logcheck. Mereka sangat menyederhanakan membaca log. Anda tidak dapat melihat seluruh file, tetapi hanya acara yang Anda minati, serta mengirimkan pemberitahuan ke alamat email Anda sendiri.

    Pantau sistem dengan layanan auditd. Program menulis ke disk semua peristiwa audit yang Anda minati. Semua pengaturan audit disimpan di file /etc/audit.rules Saat startup sistem, layanan membaca semua aturan dari file ini. Anda dapat membukanya dan mengonfigurasi semua yang Anda butuhkan, atau menggunakan utilitas terpisah - auditctl. Anda dapat mengatur poin-poin berikut:

    • Peristiwa startup dan shutdown sistem
    • Tanggal dan waktu acara
    • Peristiwa pengguna (misalnya, akses ke file tertentu)
    • Jenis acara (edit, akses, hapus, tulis, perbarui, dll.)
    • Berhasil atau gagalnya saat mengeksekusi suatu event
    • Merekam Pengaturan Jaringan Ubah Acara
    • Merekam perubahan pengguna dan grup
    • Memantau perubahan file

    23. Lindungi server OpenSSH Anda

    Izinkan hanya penggunaan protokol 2:

    Nonaktifkan login sebagai pengguna super:

    24. Instal IDS

    IDS atau Intrusion Detection System berupaya mendeteksi aktivitas yang mencurigakan dan berbahaya seperti serangan DOS, pemindaian port, atau bahkan mencoba meretas komputer dengan memantau lalu lintas jaringan.

    Merupakan praktik yang baik untuk menyebarkan perangkat lunak tersebut sebelum sistem dibuat tersedia dari Internet. Anda dapat menginstal AIDE, itu adalah HIDS (Host based IDS) yang dapat mengontrol semua aspek perangkat dalam sistem Anda.

    Snort adalah perangkat lunak pendeteksi intrusi jaringan. Itu mampu menganalisis dan mencatat paket dan menganalisis lalu lintas jaringan secara real time.

    25. Lindungi file dan direktori Anda

    Linux memiliki perlindungan yang sangat baik terhadap akses tidak sah ke file. Namun, izin yang ditetapkan oleh Linux dan berkas sistem berarti apa-apa ketika penyerang memiliki akses fisik ke komputer dan hanya dapat terhubung HDD komputer ke sistem lain untuk menyalin data Anda. Tetapi Anda dapat dengan mudah melindungi file Anda dengan enkripsi:

    • Untuk mengenkripsi dan mendekripsi file dengan kata sandi, gunakan GPG
    • Anda juga dapat melindungi file dengan OpenSSL
    • Enkripsi direktori dilakukan dengan ecryptfs
    • TrueCrypt adalah alat enkripsi disk gratis untuk Windows dan Linux

    temuan

    Sekarang keamanan OS linux di komputer Anda akan sangat meningkat. Jangan lupa untuk mengatur kata sandi yang kompleks dari waktu ke waktu. Tulis alat keamanan sistem favorit Anda di komentar.

    Pada artikel ini, kita akan mengenal utilitas utama untuk pengerasan Linux. Dalam bahasa Rusia, ini disebut sesuatu seperti "memeriksa tingkat keamanan sistem Linux dan menilai kebenaran konfigurasi dalam hal keamanan informasi." Tentunya kami tidak hanya akan mengulas program-program tersebut, tetapi juga memberikan contoh penggunaannya.

    Auditor Anda sendiri, atau keamanan Anda sendiri

    Administrator, dan terlebih lagi, auditor IS sering menghadapi tugas untuk memeriksa keamanan jumlah yang besar tuan rumah dalam waktu yang sangat singkat. Dan tentu saja, ada alat khusus di segmen Perusahaan untuk mengatasi masalah tersebut, misalnya, seperti pemindai keamanan jaringan. Saya yakin semuanya - dari sumber terbuka mesin OpenVAS hingga produk komersial seperti Nessus atau Nexpose - diketahui oleh pembaca kami. Namun, perangkat lunak ini biasanya digunakan untuk mencari perangkat lunak yang sudah usang dan rentan, lalu menjalankan manajemen tambalan. Selain itu, tidak semua pemindai mempertimbangkan beberapa fitur spesifik dari mekanisme keamanan bawaan Linux dan produk sumber terbuka lainnya. Dan yang tak kalah pentingnya, harga masalah itu penting, karena hanya perusahaan yang mengalokasikan anggaran untuk bisnis ini yang mampu membeli produk komersial.

    Itulah mengapa hari ini kita akan berbicara tentang seperangkat utilitas yang didistribusikan secara bebas yang dapat mendiagnosis tingkat keamanan sistem saat ini, menilai potensi risiko, misalnya, "layanan tambahan" yang muncul di Internet, atau konfigurasi default yang tidak aman, dan bahkan menyarankan opsi untuk memperbaiki kekurangan yang ditemukan. Keuntungan lain menggunakan alat ini adalah kemampuan untuk mereplikasi skrip pengujian pertanian tipikal dari sejumlah sistem Linux dan membentuk basis pengujian yang terdokumentasi dalam bentuk log dan laporan terpisah.

    Aspek Praktis Audit Keamanan

    Jika dilihat dari sudut pandang auditor, maka pendekatan pengujian dapat dibagi menjadi dua jenis.

    Pertama- ini adalah kepatuhan dengan apa yang disebut persyaratan kepatuhan, di sini keberadaan elemen keamanan wajib yang ditentukan dalam standar internasional atau "praktik terbaik" diperiksa. Contoh klasiknya adalah persyaratan PCI DSS untuk sistem TI pembayaran, SOX404, seri NIST-800, .

    Kedua- ini adalah pendekatan yang murni rasional berdasarkan pertanyaan "Apa lagi yang bisa dilakukan untuk meningkatkan keamanan?". Tidak ada persyaratan wajib - hanya pengetahuan Anda, kepala yang cerdas, dan tangan yang terampil. Misalnya, memperbarui versi kernel dan / atau paket aplikasi, mengaktifkan, memaksa, menyiapkan firewall.

    Segala sesuatu yang berkaitan dengan pendekatan kedua biasanya disebut istilah khusus. pengerasan, yang juga dapat didefinisikan sebagai "tindakan yang ditujukan untuk memperkuat tingkat keamanan awal sistem operasi (atau program) terutama dengan cara biasa."

    Kepatuhan terhadap persyaratan kepatuhan biasanya diperiksa sebagai persiapan untuk melewati audit wajib seperti PCI DSS atau audit sertifikasi lainnya. Kami akan lebih memperhatikan komponen Pengerasan. Semua pengembang besar menawarkan produk mereka Pedoman Pengerasan- panduan berisi tip dan rekomendasi tentang cara meningkatkan keamanan, dengan mempertimbangkan mekanisme keamanan reguler dan spesifikasi perangkat lunak. Jadi, Red Hat, Debian, Oracle, Cisco memiliki manual serupa.

    INFO

    Pengerasan adalah istilah dari dunia keamanan informasi, yang mengacu pada proses memastikan keamanan suatu sistem (program) dengan mengurangi kerentanannya dan, biasanya, hanya menggunakan utilitas standar atau mekanisme perlindungan.

    sudo apt-get update sudo apt-get install lynis

    Dan untuk distribusi berorientasi RPM (setelah menambahkan repositori yang sesuai):

    Yum instal linus -y

    Instalasi di macOS:

    $ brew search lynis $ brew install lynis

    Untuk memulai Lynis, cukup menentukan setidaknya satu kunci. Misalnya, untuk menjalankan semua pengujian yang tersedia, Anda harus menentukan sakelar -c (centang semua, centang semua):

    # Suite pengujian sistem audit sudo lynis tipikal # Suite pengujian sistem audit sudo lynis lengkap -c # Pindai sistem audit host jarak jauh jarak jauh







    Sebelum audit, itu selalu ide yang baik untuk memeriksa apakah versi baru Lynis:

    Info pembaruan Lynis && pemeriksaan pembaruan lynis

    Utilitas Lynis, selain yang standar, memiliki satu mode lagi - lari tanpa hak:

    Audit Lynis --pentest

    Jika ingin mencantumkan nama auditor yang memulai pengujian, cukup tambahkan parameter -auditor :

    Sistem audit Sudo lynis -c -auditor Daddy

    Pada setiap tahap audit, proses verifikasi dapat dilanjutkan (Enter) atau dihentikan secara paksa (Ctrl+C). Hasil pengujian yang dilakukan akan ditulis ke log Lynis di /var/log/lynis.log . Harap perhatikan bahwa log akan ditimpa setiap kali utilitas diluncurkan.

    Untuk menguji secara sistematis dalam mode otomatis, Anda dapat menetapkan tugas yang sesuai ke penjadwal Cron menggunakan sakelar -cronjob. Dalam hal ini, utilitas akan berjalan sesuai dengan templat (konfigurasi) yang ditentukan dan tidak akan menampilkan pesan, pertanyaan, atau peringatan interaktif apa pun. Semua hasil akan disimpan ke log. Misalnya, berikut adalah skrip peluncuran utilitas dengan konfigurasi default sebulan sekali:

    #!/bin/sh AUDITOR="otomatis" DATE=$(tanggal +%Y%m%d) HOST=$(nama host) LOG_DIR="/var/log/lynis" REPORT="$LOG_DIR/laporan-$( HOST).$(TANGGAL)" DATA="$LOG_DIR/laporan-data-$(HOST).$(TANGGAL).txt" cd /usr/local/lynis ./lynis -c –auditor "$(AUDITOR)" --cronjob > $(LAPORAN) mv /var/log/lynis-report.dat $(DATA) # Selesai

    Simpan skrip ini ke direktori /etc/cron.monthly/lynis. Dan jangan lupa untuk menambahkan jalur untuk menyimpan log (/usr/local/lynis dan /var/log/lynis), jika tidak, mungkin tidak berfungsi dengan benar.

    Anda dapat melihat daftar semua perintah yang tersedia untuk menelepon:

    Lynis menunjukkan perintah

    Sangat penasaran dapat melihat pengaturan dari konfigurasi default:

    Pengaturan acara Lynis

    Instruksi singkat untuk bekerja dengan utilitas:

    pria lynis

    Opsi untuk kemungkinan status berdasarkan hasil pemeriksaan terbatas pada daftar berikut: TIDAK ADA, LEMAH, SELESAI, DITEMUKAN, TIDAK DITEMUKAN, OKE, PERINGATAN.


    Menjalankan Tes Individual di Lynis

    Dalam praktiknya, mungkin hanya perlu melakukan beberapa tes. Misalnya, jika server Anda hanya menjalankan fungsi Mail Server atau Apache. Kita dapat menggunakan opsi -tests untuk ini. Sintaks perintahnya adalah sebagai berikut:

    Lynis -menguji "Uji-ID"

    Jika Anda merasa sulit untuk memahaminya karena banyaknya ID pengujian, maka Anda dapat menggunakan parameter grup -test-category . Dengan opsi ini, Lynis hanya menjalankan ID pengujian yang termasuk dalam kategori tertentu. Misalnya, kami berencana untuk menjalankan tes firewall dan kernel:

    ./lynis -tests-category "kernel firewall"

    Selain itu, fungsionalitas Lynis diperluas dengan berbagai plugin yang dapat Anda tambahkan sendiri, atau Anda dapat meletakkan yang baru di direktori yang sudah ada.

    Saran Koreksi

    Semua Peringatan akan dicantumkan setelah hasil. Masing-masing dimulai dengan teks peringatan, kemudian tes yang menghasilkannya ditunjukkan dalam tanda kurung di sebelahnya. Baris berikutnya menyarankan solusi untuk masalah tersebut, jika ada. Bahkan, baris terakhir adalah URL tempat Anda dapat melihat detailnya dan menemukan rekomendasi tambahan tentang cara memperbaiki masalah.

    Profil

    Profil yang mengelola audit ditentukan dalam file dengan ekstensi .prf terletak di direktori /etc/lynis. Profil default diberi nama yang dapat diprediksi: default.prf . Pengembang tidak menyarankan untuk mengeditnya secara langsung: setiap perubahan yang ingin Anda lakukan pada audit sebaiknya ditambahkan ke file custom.prf yang terletak di direktori yang sama.

    Terus tersedia untuk anggota saja

    Opsi 1. Bergabunglah dengan komunitas "situs" untuk membaca semua materi di situs

    Keanggotaan dalam komunitas selama periode yang ditentukan akan memberi Anda akses ke SEMUA materi Peretas, meningkatkan diskon kumulatif pribadi Anda, dan memungkinkan Anda mengumpulkan peringkat Skor Xakep profesional!