Buku "Kali Linux dari pengembang"

gambar Hai, habrozhiteli! Penulis akan memperkenalkan Anda langkah demi langkah pada dasar-dasar dan kemampuan Kali Linux. Buku ini menawarkan kursus singkat tentang bekerja dengan baris perintah Linux dan konsep-konsepnya, menjelaskan skenario instalasi khas untuk Kali Linux. Setelah membaca buku ini, Anda akan belajar cara mengkonfigurasi, men-debug dan melindungi Kali Linux, serta bekerja dengan manajer paket yang kuat dari paket distribusi Debian. Pelajari cara memasang Kali Linux dengan benar di lingkungan apa pun, termasuk jaringan perusahaan besar. Akhirnya, Anda harus berkenalan dengan topik yang kompleks: mengkompilasi kernel, membuat gambar ISO Anda sendiri, enkripsi industri dan perlindungan profesional atas informasi rahasia.


Bab 7. Perlindungan dan kontrol Kali Linux


Segera setelah Anda mulai menggunakan Kali Linux untuk tugas-tugas yang lebih rahasia dan profil tinggi, Anda kemungkinan besar harus mengambil keamanan instalasi Anda lebih serius. Dalam bab ini, pertama-tama kita membahas kebijakan keamanan, menyoroti poin paling penting dalam menentukannya, dan memperhatikan beberapa ancaman terhadap sistem Anda dan Anda sebagai profesional keamanan. Kami juga akan membahas langkah-langkah keamanan untuk laptop dan desktop dan mempertimbangkan firewall dan penyaringan paket secara terpisah. Sebagai kesimpulan, kami akan menyentuh alat pemantauan dan strategi dan menunjukkan cara paling efektif untuk menggunakannya untuk mendeteksi potensi ancaman terhadap sistem Anda.

7.1. Definisi Kebijakan Keamanan


Tidak tepat membahas keamanan secara umum, karena konsep ini mewakili berbagai konsep, alat, dan prosedur yang tidak universal. Memilih di antara mereka membutuhkan representasi akurat dari tujuan Anda. Perlindungan sistem dimulai dengan jawaban atas beberapa pertanyaan. Implementasi yang terburu-buru dan sembrono dari seperangkat utilitas yang sewenang-wenang menyebabkan risiko salah mendefinisikan aspek keamanan.

Yang terbaik adalah mengidentifikasi tujuan tertentu. Pendekatan yang tepat untuk menyelesaikan masalah ini akan menjadi jawaban untuk pertanyaan-pertanyaan berikut.

1. Apa yang Anda coba lindungi? Kebijakan keamanan akan berbeda tergantung pada apa yang ingin Anda lindungi: komputer atau data. Dalam kasus terakhir, Anda juga perlu tahu informasi mana yang perlu dilindungi.

2. Apa yang Anda coba lindungi dari? Dari kebocoran data rahasia? Dari kehilangan informasi yang tidak disengaja? Dari kerugian yang disebabkan oleh kegagalan dalam penyediaan layanan?

3. Siapa yang Anda coba lindungi dari? Langkah-langkah keamanan akan sangat berbeda untuk melindungi terhadap kesalahan ketik dari pengguna sistem yang sederhana dan melindungi terhadap kelompok pengganggu tertentu.

Istilah "risiko" biasanya digunakan untuk secara umum mendefinisikan faktor-faktor ini: apa yang perlu dilindungi, apa yang harus dicegah, dan melalui kesalahan siapa itu bisa terjadi. Pemodelan risiko membutuhkan jawaban untuk ketiga pertanyaan. Berdasarkan model yang dihasilkan, Anda dapat mengembangkan kebijakan keamanan dan menerapkannya menggunakan tindakan spesifik.

Bruce Schneier, seorang pakar keamanan global (bukan hanya komputer), sedang mencoba untuk melawan salah satu mitos keamanan utama dengan bertindak di bawah moto: "Keamanan adalah suatu proses, bukan produk." Aset yang perlu dilindungi berubah dari waktu ke waktu, seperti halnya ancaman dan sarana yang tersedia untuk penyerang potensial. Sekalipun kebijakan keamanan pada awalnya dirancang dan diterapkan secara ideal, Anda tidak boleh berhenti di situ. Komponen risiko berkembang, dan metode untuk mencegahnya harus dikembangkan sesuai.

Selain itu, kendala tambahan yang dapat membatasi rentang kebijakan yang tersedia harus dipertimbangkan. Apa yang siap Anda lakukan untuk melindungi sistem? Masalah ini sangat penting untuk pemilihan kebijakan. Sangat sering, jawabannya ditentukan hanya dari sudut pandang biaya tunai, tetapi unsur-unsur lain harus diperhitungkan, seperti kemungkinan ketidaknyamanan yang akan diderita pengguna sistem, atau penurunan kinerjanya.

Setelah risiko dimodelkan, Anda dapat berpikir tentang mengembangkan kebijakan keamanan yang sesuai.

Ada hal-hal ekstrem yang harus dipertimbangkan ketika memutuskan tingkat keamanan yang diperlukan. Di satu sisi, sangat sederhana untuk memberikan keamanan sistem dasar.

Sebagai contoh, jika suatu sistem yang didefinisikan untuk perlindungan hanya mencakup komputer bekas, yang hanya digunakan untuk menambah beberapa angka pada akhir hari, maka akan menjadi keputusan yang masuk akal untuk tidak melakukan sesuatu yang istimewa untuk melindunginya. Nilai sebenarnya dari sistem seperti itu rendah, dan nilai data sama sekali nol, karena tidak disimpan di komputer. Penyerang potensial yang menembus sistem ini hanya akan menerima kalkulator. Biaya melindungi sistem seperti itu kemungkinan lebih dari biaya peretasan.

Situasi sebaliknya akan menjadi kasus melindungi kerahasiaan data rahasia dengan cara yang paling lengkap dengan mengatasi segala batasan. Dalam hal ini, penghancuran total informasi (penghapusan file dengan aman, merobek-robek hard disk menjadi potongan-potongan kecil, kemudian melarutkan bagian-bagian ini dalam asam, dll.) Adalah solusi yang sesuai. Jika ada persyaratan tambahan bahwa data harus disimpan untuk penggunaan di masa mendatang (tidak harus dalam ketersediaan konstan) dan biayanya masih bukan penghalang, maka ide terbaik adalah menyimpan data pada pelat paduan iridium dan platinum di tempat perlindungan bom di bawah gunung di sekitar pegunungan. dunia, yang masing-masing (tentu saja) diklasifikasikan dan dilindungi oleh pasukan.

Meskipun metode ini mungkin tampak berlebihan, mereka mungkin merupakan solusi yang cocok untuk risiko tertentu, karena mereka memungkinkan Anda untuk mencapai tujuan Anda dengan batasan yang diberikan. Berdasarkan keputusan yang diinformasikan, tidak ada kebijakan keamanan yang cukup atau kurang memadai dari yang lain.

Kembali ke kasus yang lebih khas, sistem informasi dapat disegmentasi ke dalam subsistem yang kompatibel dan dominan independen. Semuanya memiliki persyaratan dan batasannya sendiri, oleh karena itu penilaian risiko dan pengembangan kebijakan keamanan harus dilakukan secara terpisah untuk masing-masing subsistem ini. Anda harus selalu ingat bahwa permukaan serangan kecil lebih mudah untuk melindungi daripada yang besar. Organisasi jaringan harus dirancang dengan cara ini: layanan yang rentan harus dikonsentrasikan pada sejumlah kecil komputer, dan yang terakhir harus dapat diakses melalui sejumlah minimum rute atau titik kontrol. Logikanya sederhana: lebih mudah untuk melindungi breakpoint daripada semua komputer yang rentan dari seluruh dunia luar. Pada titik inilah manfaat penyaringan jaringan (termasuk firewall) menjadi jelas. Penyaringan ini dapat diimplementasikan menggunakan peralatan khusus, tetapi solusi yang lebih sederhana dan lebih fleksibel adalah dengan menggunakan firewall perangkat lunak yang mirip dengan yang diintegrasikan ke dalam kernel Linux.

7.2. Kemungkinan langkah-langkah keamanan


Seperti disebutkan di atas, tidak ada jawaban tunggal untuk pertanyaan tentang bagaimana melindungi Kali Linux. Itu semua tergantung pada bagaimana Anda menggunakannya dan apa sebenarnya yang Anda coba lindungi.

Di server

Jika Anda menggunakan Kali Linux di server publik, maka Anda harus melindungi layanan jaringan dengan mengubah semua kata sandi default yang dapat dikonfigurasi, dan mungkin dengan membatasi akses ke mereka menggunakan firewall (bagian 7.3 "Mengamankan layanan jaringan" dan 7.4 "Firewall atau packet filtering ”, masing-masing, lihat di bawah).

Jika Anda mentransfer informasi akun pengguna secara langsung di server atau di salah satu layanan jaringan, pastikan untuk mengatur kata sandi yang kuat (mereka harus tahan terhadap serangan brute force). Pada saat yang sama, Anda dapat mengonfigurasi program fail2ban, yang sangat menyulitkan pemecahan kata sandi dengan pencarian lengkap melalui jaringan (dengan memfilter alamat IP yang melebihi batas upaya login gagal). Anda dapat menginstal fail2ban menggunakan perintah apt update dan kemudian apt fail2ban.

Jika Anda menggunakan layanan web, konfigurasikan untuk bekerja melalui protokol HTTPS sehingga perantara jaringan tidak memantau lalu lintas Anda (yang mungkin termasuk otentikasi cookie).

Di laptop

Laptop dari spesialis pengujian penetrasi tidak memiliki risiko yang sama dengan server terbuka: misalnya, Anda kurang rentan terhadap serangan tidak disengaja oleh seorang cracker amatir, dan jika ini terjadi, Anda mungkin tidak akan memiliki layanan jaringan aktif pada saat ini.

Risiko nyata sering muncul ketika Anda bepergian dari satu klien ke klien lain. Misalnya, laptop Anda mungkin dicuri selama perjalanan atau disita oleh bea cukai. Inilah sebabnya mengapa layak menggunakan enkripsi disk penuh (lihat bagian "Menginstal pada sistem file yang sepenuhnya terenkripsi" dari Bagian 4.2) dan mungkin juga mengatur fungsi nuklir (lihat bilah samping "Mengatur kata sandi penghancuran diri untuk keamanan tambahan" pada Bab 9): data yang Anda yang dikumpulkan selama bekerja bersifat rahasia dan membutuhkan perlindungan maksimal.

Anda mungkin juga memerlukan aturan firewall (lihat bagian 7.4 di bawah), tetapi tidak untuk tujuan yang sama seperti di server. Anda mungkin ingin memblokir semua lalu lintas keluar kecuali lalu lintas yang dihasilkan oleh akses VPN Anda. Pengaturan ini mirip dengan pengaturan keamanan jaringan, jadi ketika VPN berhenti berfungsi, Anda akan segera melihat ini (alih-alih kembali ke akses jaringan lokal). Dengan demikian, Anda tidak memberikan alamat IP klien Anda saat menjelajahi web atau kegiatan jaringan lainnya. Selain itu, jika Anda melakukan interaksi internal lokal, yang terbaik adalah terus-menerus memantau aktivitas Anda untuk mengurangi kebisingan yang dibuat dalam jaringan, yang dapat menarik perhatian pelanggan dan sistem perlindungan mereka.

7.3. Perlindungan Layanan Jaringan


Disarankan agar Anda menonaktifkan layanan yang tidak Anda gunakan. Kali menyederhanakan tugas ini, karena sebagian besar layanan jaringan sudah dinonaktifkan secara default.
Selama layanan tetap dinonaktifkan, mereka tidak menimbulkan risiko keamanan. Namun, Anda harus berhati-hati ketika menyalakannya karena faktor-faktor berikut.

1. Secara default, mereka tidak memiliki firewall, jadi jika mereka mendengarkan semua antarmuka jaringan, mereka sebagian besar dapat diakses oleh publik.

2. Beberapa layanan tidak memiliki kredensial dan memungkinkan Anda untuk mengaturnya saat pertama kali digunakan; yang lain memiliki kredensial standar (dan karenanya dikenal luas). Pastikan Anda menetapkan kata sandi yang hanya diketahui oleh Anda.

3. Banyak layanan diberikan dengan hak akses root (dengan hak administrator penuh), sehingga konsekuensi dari akses yang tidak sah atau pelanggaran keamanan biasanya serius.

Kami tidak akan mencantumkan di sini semua alat yang datang dengan kredensial default. Sebagai gantinya, Anda harus memeriksa file README.Debian untuk paket masing-masing, serta halaman docs.kali.org dan tools.kali.org untuk mengetahui apakah layanan tersebut memerlukan pemeliharaan khusus untuk memastikan keamanan yang diperlukan.

Jika Anda memulai secara real time, maka kata sandi root adalah toor. Oleh karena itu, Anda tidak boleh mengaktifkan SSH sebelum mengubah kata sandi akun root atau sebelum menyiapkan pembatasan login berbasis kata sandi dalam konfigurasi akun.

Perhatikan juga fakta yang diketahui bahwa proyek BeEF (dari paket beef-xss yang sudah diinstal) memiliki kredensial default: nama pengguna daging sapi dan kata sandi daging sapi, yang disetel “secara paksa” dalam file konfigurasi.

7.4. Firewall atau penyaringan paket


Firewall adalah bagian dari peralatan komputer dengan perangkat keras, perangkat lunak, atau keduanya yang menganalisis paket jaringan masuk atau keluar (masuk atau keluar dari jaringan lokal) dan hanya melewati yang memenuhi kondisi tertentu yang telah ditentukan.

Gateway jaringan penyaringan adalah jenis firewall yang melindungi seluruh jaringan. Biasanya, ini diinstal pada komputer khusus yang dikonfigurasikan sebagai gateway ke jaringan sedemikian rupa sehingga dapat menganalisis semua paket yang masuk dan keluar dari jaringan. Atau, ada firewall lokal, yang merupakan layanan perangkat lunak yang berjalan di satu komputer tertentu, untuk menyaring atau membatasi akses ke sejumlah layanan di komputer itu atau, mungkin, untuk mencegah koneksi keluar dari spyware yang dapat dipasang oleh pengguna secara tidak sengaja atau sengaja.

Kernel Linux memiliki firewall netfilter bawaan. Tidak ada solusi tunggal untuk mengkonfigurasi firewall apa pun, karena persyaratan jaringan dan pengguna berbeda. Namun, Anda dapat mengontrol netfilter dari ruang pengguna menggunakan perintah iptables dan ip6tables. Perbedaan antara yang terakhir adalah bahwa yang pertama berfungsi untuk jaringan IPv4, sedangkan yang kedua bekerja pada IPv6. Karena kedua tumpukan protokol jaringan cenderung bekerja selama bertahun-tahun, kedua alat harus digunakan secara paralel. Anda juga dapat menggunakan utilitas fwbuilder berbasis GUI yang sangat baik, yang menyediakan representasi grafis dari aturan penyaringan.

Namun, jika Anda memutuskan untuk mengkonfigurasi netfilter (implementasi firewall Linux), maka kami akan melihat lebih dekat cara kerjanya.

Perilaku Pelindung Surge Netfilter

Filter Netfilter menggunakan empat tabel berbeda yang menyimpan aturan yang mengatur tiga jenis operasi pada paket:

1. filter mengacu pada aturan penyaringan (menerima, menolak atau mengabaikan suatu paket);

2. nat (Terjemahan Alamat Jaringan) mengacu pada terjemahan sumber atau alamat tujuan dan port paket;

3. mangle mengacu pada perubahan lain dalam paket IP (termasuk bidang ToS (Jenis Layanan) dan opsi);

4. raw memungkinkan perubahan manual lainnya pada paket sebelum mereka (paket) mencapai sistem pelacakan koneksi.

Setiap tabel berisi daftar aturan yang disebut rantai. Firewall menggunakan rantai standar untuk memproses paket berdasarkan kondisi yang telah ditentukan. Administrator dapat membuat rantai lain yang hanya akan digunakan ketika mentransfer salah satu rantai standar (langsung atau tidak langsung).

Tabel filter berisi tiga rantai standar:

1. INPUT - mengacu pada paket yang tujuannya adalah firewall itu sendiri;

2. OUTPUT - mengacu pada paket yang berasal dari firewall;

3. FORWARD - mengacu pada paket yang melewati firewall (yang bukan merupakan sumber atau tujuan).

Tabel nat juga memiliki tiga rantai standar:

1. PREROUTING - untuk mengganti paket segera setelah mereka tiba;

2. POSTROUTING - untuk mengubah paket ketika mereka siap untuk dikirim;

3. OUTPUT - untuk memodifikasi paket yang dihasilkan oleh firewall itu sendiri.

Rantai ini ditunjukkan dalam gambar. 7.1.

gambar

Setiap rantai adalah daftar aturan; setiap aturan adalah seperangkat kondisi dan tindakan yang dilakukan ketika kondisi terpenuhi. Saat memproses paket, firewall memindai rantai yang sesuai, satu aturan demi aturan, dan ketika kondisi untuk satu aturan terpenuhi, firewall melompat (maka parameter -j dalam perintah) ke tindakan yang ditentukan untuk melanjutkan pemrosesan. Jenis perilaku yang paling umum adalah standar, dan ada tindakan khusus untuk mereka. Melakukan salah satu tindakan standar ini mengganggu pemrosesan rantai, karena nasib paket-paket tersebut sudah ditentukan sebelumnya (tanpa memperhitungkan pengecualian yang disebutkan di bawah). Berikut ini adalah tindakan Netfilter.

1. ACCEPT (ACCEPT) - memungkinkan paket untuk bergerak lebih jauh di sepanjang rutenya.

2. Tolak - menolak paket menggunakan paket kesalahan ICMP (protokol pesan kontrol Internet) (tipe --reject-with for iptables menentukan jenis kesalahan untuk penolakan).

3. DROP - hapus (abaikan) paket.

4. LOG (REGISTER) - daftar (via daemon syslogd) pesan yang menjelaskan paket. Harap dicatat bahwa tindakan ini tidak mengganggu pemrosesan, dan eksekusi berantai berlanjut dari aturan berikutnya, oleh karena itu, pendaftaran paket yang ditolak membutuhkan aturan LOG dan Tolak / DROP. Parameter umum yang terkait dengan pendaftaran meliputi:

  • --log-level, dengan peringatan default, menunjukkan tingkat keparahan syslog;
  • --log-awalan memungkinkan Anda untuk menentukan awalan teks untuk membedakan antara pesan yang dicatat;
  • --log-tcp-sequence, --log-tcp-options dan --log-ip-options menunjukkan data tambahan yang harus ditempatkan dalam pesan: masing-masing nomor seri TCP, parameter TCP dan parameter IP.

5. ULOG - mendaftarkan pesan melalui ulogd, yang dapat diadaptasi lebih baik dan lebih efisien daripada syslogd untuk memproses sejumlah besar pesan; perhatikan bahwa tindakan ini, seperti LOG, juga mengembalikan pemrosesan ke aturan berikutnya dalam rantai panggilan.

6. chain_name - pergi ke rantai yang ditentukan dan mengevaluasi aturannya.

7. KEMBALI - batalkan pemrosesan rantai saat ini dan kembali ke rantai panggilan; jika rantai saat ini standar, maka tidak ada rantai panggilan, jadi tindakan default dilakukan sebagai gantinya (didefinisikan menggunakan parameter -P untuk iptables).

8. SNAT (hanya di tabel nat) - menerapkan Source Network Address Translation (SNAT). Parameter tambahan menjelaskan perubahan yang tepat untuk diterapkan, termasuk - ke-sumber alamat: parameter port, yang menentukan sumber baru dari alamat IP dan / atau port.

9. DNAT (hanya di tabel nat) - terapkan Destination Network Address Translation (DNAT). Parameter tambahan menjelaskan perubahan yang tepat untuk digunakan, termasuk parameter - ke alamat tujuan: port yang mendefinisikan sumber baru dari alamat IP dan / atau port.

10. MASQUERADE (hanya di tabel nat) - terapkan masking (kasus khusus Source NAT).

11. REDIRECT (hanya di tabel nat) - secara terbuka meneruskan paket ke port firewall ini sendiri. Anda dapat menggunakan proxy web untuk mengonfigurasi server terbuka, yang berfungsi tanpa konfigurasi di sisi klien, dan sementara klien yakin bahwa itu terhubung ke penerima, pesan sebenarnya melewati server proxy. Port parameter --to-ports menentukan port atau kisaran port tempat paket harus diteruskan.

Tindakan lain, terutama yang berkaitan dengan tabel mangle, tidak termasuk dalam ayat ini. Untuk daftar lengkap, lihat halaman manual iptables (8) dan ip6tables (8).

Sintaks untuk perintah iptables dan ip6tables


Perintah iptables dan ip6tables digunakan untuk mengelola tabel, rantai, dan aturan. Parameter -t tabel mereka menunjukkan tabel mana yang harus digunakan (secara default, tabel filter).

Tim

Parameter utama untuk berinteraksi dengan sirkuit tercantum di bawah ini.

1. -L rantai mencantumkan aturan yang terkandung dalam rantai. Digunakan dengan opsi -n untuk menonaktifkan resolusi nama (misalnya, iptables -n -L INPUT menampilkan aturan untuk paket yang masuk).

2. -N rantai menciptakan rantai baru. Anda dapat membuat rantai baru untuk berbagai tujuan, termasuk menguji layanan jaringan baru atau menolak serangan jaringan.

3. -X chain menghapus rantai yang kosong dan tidak terpakai (misalnya, iptables -X ddos-attack).

4. Aturan rantai menambahkan aturan pada akhir rantai yang diberikan. Ingat, aturan diproses dari atas ke bawah, jangan lupa untuk mempertimbangkan momen ini saat menambahkan aturan.

5. -A aturan rule_number rantai menyisipkan aturan sebelum aturan dengan nomor yang ditentukan. Seperti opsi -A, pertimbangkan urutan pemrosesan saat memasukkan aturan baru ke dalam rantai.

6. -D chain rule_number (atau -D chain rule) menghapus aturan dalam rantai; sintaks pertama menunjukkan bahwa aturan dengan nomor tertentu harus dihapus (perintah iptables -L --line-numbers menampilkan nomor aturan), dan yang kedua mengidentifikasi aturan yang akan dihapus oleh esensinya.

7. -F chain me-reset rantai (menghapus semua aturannya). Misalnya, untuk menghapus semua aturan yang terkait dengan paket keluar, Anda akan memasukkan perintah iptables -F OUTPUT. Jika tidak ada rantai yang ditentukan, maka semua aturan dalam tabel dihapus.

8. -Tindakan rantai mendefinisikan tindakan atau "kebijakan" default untuk rantai yang diberikan. Harap dicatat: kebijakan ini hanya berlaku untuk sirkuit standar. Untuk menghapus semua lalu lintas masuk secara default, Anda harus mengeluarkan perintah iptables -P INPUT DROP.

Aturannya

Setiap aturan didefinisikan sesuai dengan sintaks berikut: kondisi -j action action_parameters. Jika beberapa kondisi dijelaskan dalam satu aturan, maka kriteria adalah kombinasi (logis DAN) dari kondisi, yang memiliki batasan setidaknya sama dengan kondisi masing-masing individu.

Kondisi protokol -p cocok dengan bidang protokol paket IP. Nilai yang paling umum adalah tcp, udp, icmp dan icmpv6. Kondisi ini dapat dilengkapi dengan kondisi mengenai port TCP menggunakan parameter - port sumber-port dan port port -destination.



. , -p « , , ». .

-s -s / (source) . , -d -d / (destination).
-i , ; -o — , .

--state ( ipt_ conntrack ). NEW , , ESTABLISHED , , RELATED , , ( ftp- FTP).

iptables ip6tables, . , , — , .
, IP- 10.0.1.5 31.13.74.0/24 C , :

# iptables -A INPUT -s 10.0.1.5 -j DROP # iptables -A INPUT -s 31.13.74.0/24 -j DROP # iptables -n -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.1.5 0.0.0.0/0 DROP all -- 31.13.74.0/24 0.0.0.0/0 

Perintah iptables lain sering digunakan untuk memungkinkan lalu lintas jaringan untuk layanan atau port tertentu. Untuk memungkinkan pengguna terhubung ke SSH, HTTP, dan IMAP, Anda harus menjalankan perintah berikut:

 # iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT # iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT # iptables -n -L INPUT Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.1.5 0.0.0.0/0 DROP all -- 31.13.74.0/24 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 

Aturan kebersihan komputer yang baik adalah untuk membersihkan aturan lama dan tidak perlu. Cara termudah untuk menghapus aturan iptables adalah merujuk aturan dengan nomor baris, yang bisa Anda peroleh dengan menggunakan parameter --line-number. Hati-hati: saat Anda mereset aturan, semua aturan berikutnya dalam rantai akan dinomori ulang.

 # iptables -n -L INPUT --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP all -- 10.0.1.5 0.0.0.0/0 2 DROP all -- 31.13.74.0/24 0.0.0.0/0 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 # iptables -D INPUT 2 # iptables -D INPUT 1 # iptables -n -L INPUT --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 

Ada kondisi yang lebih spesifik, tergantung pada kondisi umum yang dijelaskan di atas. Lihat manual iptables (8) dan ip6tables (8) untuk informasi lebih lanjut.

Buat aturan


Setiap aturan baru membutuhkan satu panggilan ke iptables atau ip6tables. Memasukkan perintah-perintah ini secara manual bisa membosankan, sehingga panggilan biasanya disimpan dalam skrip, dan sebagai hasilnya, sistem secara otomatis dikonfigurasi sama setiap kali komputer melakukan booting. Script ini dapat ditulis dengan tangan, tetapi Anda mungkin juga tertarik untuk mempersiapkannya dengan alat tingkat tinggi seperti fwbuilder.

 # apt install fwbuilder 

Prinsipnya sederhana. Pada tahap pertama, jelaskan semua elemen yang akan terlibat dalam aturan baru:

1. Firewall itu sendiri dengan antarmuka jaringannya;

2. jaringan dengan rentang alamat IP yang sesuai;

3. server;

4. port milik layanan yang di-host di server.

Kemudian buat aturan menggunakan tindakan drag-and-drop sederhana, seperti yang ditunjukkan pada gambar. 7.2. Beberapa menu konteks dapat mengubah suatu kondisi (misalnya, menolaknya). Maka Anda perlu memilih dan mengkonfigurasi tindakan.

gambar

Sedangkan untuk IPv6, Anda bisa membuat dua set aturan yang berbeda untuk IPv4 dan IPv6, atau hanya membuat satu dan biarkan fwbuilder menerjemahkan aturan sesuai dengan alamat yang ditetapkan untuk objek.

Alat fwbuilder akan membuat skrip yang mengkonfigurasi firewall sesuai dengan aturan yang Anda tetapkan. Arsitektur modularnya memungkinkan Anda membuat skrip untuk berbagai sistem, termasuk iptables untuk Linux, ipf untuk FreeBSD dan pf untuk OpenBSD.

Aturan pengaturan untuk setiap boot


Untuk menerapkan aturan firewall setiap kali mesin dinyalakan, Anda harus mendaftarkan skrip konfigurasi dalam arahan file / etc / network / interfaces. Dalam contoh berikut, skrip disimpan di /usr/local/etc/arrakis.fw.

 auto eth0 iface eth0 inet static address 192.168.0.1 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 up /usr/local/etc/arrakis.fw 

Contoh ini mengasumsikan bahwa Anda menggunakan paket ifupdown untuk mengkonfigurasi antarmuka jaringan. Jika Anda menggunakan sesuatu yang lain (katakan NetworkManager atau systemd-networkd), maka rujuk ke dokumentasi yang sesuai untuk mengetahui cara menjalankan skrip setelah memulai antarmuka.

7.5. Monitoring dan logging


Kerahasiaan dan perlindungan data adalah aspek penting dari keamanan, tetapi sama pentingnya untuk memastikan ketersediaan layanan. Sebagai administrator dan spesialis keamanan, Anda harus memastikan bahwa semuanya berfungsi dengan baik, dan tanggung jawab Anda adalah mengidentifikasi perilaku abnormal dan kerusakan layanan secara tepat waktu. Perangkat lunak pemantauan dan pencatatan memainkan peran penting dalam aspek keamanan ini, memberikan pemahaman tentang apa yang terjadi dalam sistem dan jaringan.

Pada bagian ini, kita akan melihat sejumlah alat yang dapat digunakan untuk memantau beberapa aspek sistem Kali.

Memantau log dengan logcheck


Logcheck memonitor file-file log setiap jam secara default dan mengirimkan pesan-pesan log yang tidak standar ke pesan-pesan email kepada administrator untuk analisis lebih lanjut.

Daftar file yang dipantau disimpan di /etc/logcheck/logcheck.logfiles. Nilai default akan berfungsi dengan baik jika file /etc/rsyslog.conf belum sepenuhnya dibangun kembali.

Program logcheck dapat melaporkan menggunakan berbagai tingkat detail: paranoid (paranoid), server (server) dan workstation (untuk workstation). Mode paranoid sangat verbose dan mungkin harus dibatasi untuk server tertentu seperti firewall. Mode server digunakan secara default dan direkomendasikan untuk sebagian besar server. Mode workstation jelas dirancang untuk workstation dan sangat dikompresi, memfilter lebih banyak pesan daripada "saudara" lainnya.

Dalam ketiga kasus tersebut, centang log mungkin harus dikonfigurasikan untuk mengecualikan pesan tambahan (tergantung pada layanan yang diinstal) jika Anda tidak ingin menerima kumpulan email panjang yang tidak terdaftar. Karena mekanisme pemilihan pesan agak rumit, file /usr/share/doc/logcheck-database/README.logcheck-database.gz harus dibaca jika ada kesulitan.

Aturan yang berlaku dapat dibagi menjadi beberapa jenis:

1. mereka yang memenuhi syarat pesan sebagai upaya peretasan (disimpan dalam file di direktori /etc/logcheck/cracking.d/);

2. upaya hacking diabaikan (/etc/logcheck/cracking.ignore.d/);

3. orang-orang yang mengklasifikasikan pesan sebagai peringatan keamanan (/etc/logcheck/violations.d/);

4. peringatan keamanan yang diabaikan (/etc/logcheck/violations.ignore.d/);

5. Terakhir, pesan yang berlaku untuk pesan lain (diperlakukan sebagai peristiwa sistem).

File abaikan.d digunakan (jelas) untuk mengabaikan pesan. Misalnya, pesan yang ditandai sebagai upaya peretasan atau peringatan keamanan (sebagai aturan, disimpan di /etc/logcheck/violations.d/myfile) hanya dapat diabaikan oleh aturan di /etc/logcheck/violations.ignore.d/myfile atau dalam file /etc/logcheck/changes.ignore.d/myfile- ekstensi.

Kejadian sistem selalu dilaporkan, kecuali aturan di salah satu direktori /etc/logcheck/ignore.d.{paranoid, server, workstation} / tidak menunjukkan bahwa acara ini harus diabaikan. Tentu saja, hanya katalog yang dianggap memiliki tingkat rincian yang sama atau melebihi mode operasi yang dipilih.

Pemantauan aktivitas waktu nyata


Alat interaktif teratas menampilkan daftar proses yang sedang berjalan. Pengurutan default didasarkan pada beban prosesor saat ini dan dapat diperoleh dengan menggunakan kunci P. Pengurutan instruksi lainnya mengandung pengurutan berdasarkan memori yang ditempati (kunci M), total waktu prosesor (kunci T) dan pengidentifikasi proses (kunci N). Kunci k mengakhiri proses dengan pengidentifikasi yang dimasukkan. Kunci r mengubah prioritas proses.

Ketika suatu sistem tampak kelebihan beban, top adalah alat yang hebat untuk melihat proses mana yang bersaing untuk waktu CPU atau memakan terlalu banyak memori. Jadi, seringkali menarik untuk memeriksa apakah proses memakan sumber daya sesuai dengan layanan nyata yang harus di-host di komputer. Sebuah proses yang tidak diketahui yang berfungsi seperti www-data harus benar-benar menonjol dari daftar dan harus dipelajari, karena kemungkinan besar merupakan contoh perangkat lunak yang diinstal dan dijalankan pada sistem menggunakan kerentanan dalam aplikasi web.

Alat teratas sangat fleksibel, dan manualnya berisi informasi terperinci tentang cara menyesuaikan antarmuka dan menyesuaikannya dengan kebutuhan dan kebiasaan pribadi Anda.

Alat grafis monitor sistem gnome mirip dengan atas dan menyediakan fungsi yang kira-kira sama.

»Informasi lebih lanjut tentang buku ini dapat ditemukan di situs web penerbit
» Isi
» Kutipan

20% diskon kupon untuk Linux - Linux

Source: https://habr.com/ru/post/id422939/


All Articles