GNU/Linux >> Belajar Linux >  >> Linux

Cara:Linux General – IPTables Dasar melalui Command Line

Pengantar

Panduan dasar untuk mengamankan akses ke server Anda dengan iptables.

Prasyarat

Server yang menjalankan CentOS 6.5 atau sebelumnya (petunjuk ini juga dapat bekerja di bawah distribusi Linux lainnya, meskipun dengan sedikit perubahan berdasarkan distribusi; artikel ini akan berfungsi dari CentOS 6.5)

Jika Anda belum memiliki server, pertimbangkan untuk mengaktifkan server pribadi virtual dari Atlantic.Net

iptables terpasang

Mulai dengan IPTables dasar melalui Command Line

Pertama, mari kita verifikasi bahwa iptables terinstal dan aktif (semua perintah ini akan memerlukan hak akses root, jadi pastikan bahwa pengguna Anda memiliki akses ke hak istimewa ini–atau, jika Anda lebih suka, naikkan ke root dan hindari kebutuhan untuk mengawali semua perintah Anda dengan 'sudo')

sudo service iptables status

status layanan iptables

Untuk server baru ini, iptables tidak berjalan, jadi saat ini mengizinkan semua lalu lintas masuk. Tidak bagus. Mari kita perbaiki.

Untuk membahas beberapa dasar, kami akan menyetel perilaku default untuk menghapus semua lalu lintas dan hanya mengizinkan lalu lintas tertentu (ini adalah praktik keamanan yang sering disebut "daftar putih"). Pertama-tama kami akan melakukan semuanya di baris perintah, lalu kami akan menyiapkannya agar aturan tersebut tetap ada di seluruh reboot.

Pertama, mari kita mulai layanan, lalu periksa untuk melihat apa yang berjalan.

sudo service iptables start
sudo service iptables status

Perhatikan bahwa kebijakan default di setiap rantai ini adalah menerima lalu lintas. Mari kita ubah default INPUT untuk menurunkan lalu lintas. (PERINGATAN:pastikan Anda memiliki setidaknya satu aturan ACCEPT dalam rantai INPUT untuk mengizinkan alamat IP workstation atau port 22 jika Anda mengakses server ini dari jarak jauh melalui ssh. Dalam output status iptables di atas, perhatikan bahwa lalu lintas TCP ke port 22 (“tcp dpt:22”) diterima. Jika aturan itu tidak ada, kita bisa mengunci diri dari server ini!)

sudo iptables -P INPUT DROP

'-P ‘ menunjukkan bahwa kami akan membuat perubahan pada keseluruhan kebijakan, ‘INPUT ' adalah rantai khusus yang akan diedit, dan 'DROP ' adalah target kebijakan default.

Sekarang, mari tambahkan beberapa aturan khusus.

Pertama, kami akan mengizinkan akses untuk lalu lintas HTTP dan HTTPS, yang kami ingin dapat diakses dari alamat IP mana pun. Saat menambahkan aturan ke iptables, penting untuk memperhatikan urutan aturan tersebut karena iptables mem-parsing aturan secara berurutan dan akan memproses lalu lintas sesuai dengan target yang ditunjukkan dalam aturan dan kemudian keluar dari rantai (dalam banyak kasus). Pada output di atas, perhatikan bahwa aturan terakhir akan menolak lalu lintas. Jika kita menambahkan aturan allow ke akhir rantai ini, aturan tersebut tidak akan pernah dipanggil, karena aturan penolakan di atasnya akan menolak lalu lintas dan berhenti memproses aturan berikut dalam rantai INPUT.

Jadi, mari kita cari tahu di nomor baris mana kita ingin menyisipkan aturan baru kita:

sudo iptables -nL INPUT --line-numbers

Status Iptables

'-nL ' menggabungkan beberapa bendera:'n ' melewatkan resolusi DNS (sehingga kita dapat melihat IP mana yang diperiksa oleh setiap aturan); ‘L ' mencantumkan setiap aturan dalam rantai yang ditunjukkan. Opsi terakhir, ‘–nomor-baris ', cukup tepat, menambahkan nomor baris ke setiap entri aturan. (Output ini mirip dengan apa yang bisa Anda dapatkan dengan 'sudo service iptables status ', tetapi perintah itu menyediakan aturan untuk semua rantai, sedangkan 'iptables ' perintah di atas memberi kita sarana untuk mempersempit ruang lingkup output dengan rantai individu.)

Dalam hal ini, kami akan memasukkan aturan kami tepat di atas aturan penolakan:

sudo iptables -I INPUT 5 -m tcp -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m tcp -p tcp --dport 443 -j ACCEPT

Daftar iptables dengan nomor baris

Apa artinya semua ini?

* ‘-saya ‘ menunjukkan bahwa kita akan menyisipkan aturan ini pada nomor baris yang ditunjukkan (nomor yang mengikuti nama rantai tempat kita menyisipkan aturan).

* ‘-m tcp -p tcp –dport 80 ' menentukan bahwa aturan ini akan cocok dengan paket TCP yang tiba dengan port tujuan 80 (atau 443, dalam kasus aturan kedua).

* ‘-j TERIMA ' menunjukkan bahwa, jika aturan ini cocok, maka "lompat" paket ini ke target ACCEPT (yang merupakan cara panjang untuk mengatakan bahwa itu diizinkan).

Perhatikan bahwa begitu kita memasukkan perintah pertama, aturan penolakan akan didorong ke bawah ke baris nomor 6, jadi itu sebabnya aturan kedua menyisipkan dirinya pada baris nomor 6.

Sekarang, mari tambahkan aturan untuk mengizinkan akses dari IP tertentu, apa pun jenis lalu lintas atau portnya.

sudo iptables -I INPUT 4 -s 192.168.0.1 -j ACCEPT

Di sini kami menyisipkan aturan ini tepat di atas aturan yang mengizinkan semua lalu lintas ssh pada baris 4. The '-s ' menentukan IP sumber. Kami juga dapat dengan mudah mengizinkan rentang IP sumber menggunakan notasi CIDR, jadi untuk mengizinkan seluruh rentang 192.168.0.0/24:

sudo iptables -I INPUT 4 -s 192.168.0.0/24 -j ACCEPT

Kami dapat membuat aturan ini lebih spesifik – katakanlah kami hanya ingin dapat ssh ke server ini dari alamat 192.168.0.1 itu. Ayo lanjutkan dan berikan komentar!

sudo iptables -R INPUT 4 -s 192.168.0.1 -m tcp -p tcp --dport 22 -j ACCEPT -m comment --comment "Only home workstation can ssh in"

Pertama, karena aturan ini akan menggantikan kita sebelumnya, perhatikan '-R '–ini berarti 'ganti' pada nomor baris yang ditunjukkan alih-alih menyisipkan. Aturan ini menggabungkan pemeriksaan IP sumber dan port tujuan, jadi untuk mengizinkan lalu lintas, kita harus mencocokkan keduanya. Opsi pencocokan akhir untuk komentar bersifat opsional, tetapi bisa sangat membantu saat membuat daftar aturan iptables untuk menunjukkan secara singkat mengapa aturan itu ada–yang bisa sangat membantu saat aturan iptables Anda lebih terlibat, atau saat ada aturan yang tidak ' tidak langsung terbukti dengan sendirinya ketika terdaftar (seperti yang untuk antarmuka loopback, yang telah saya tambahkan di komentar sebelumnya).

Kami dapat, pada titik ini, menghapus aturan yang mengizinkan IP apa pun untuk mengakses server ini melalui ssh:

sudo iptables –D INPUT 5

(‘-D ’ menentukan bahwa nomor baris yang ditunjukkan dalam rantai ini akan dihapus.)

Setelah selesai menambahkan aturan, pastikan untuk menyimpan:

sudo service iptables save

Ini akan menyimpan aturan iptables Anda yang sedang berjalan di /etc/sysconfig/iptables sehingga, saat Anda me-restart server Anda, itu akan secara otomatis memuat aturan yang telah Anda habiskan untuk masuk ke sini. Jika Anda ingin mengedit file iptables Anda dengan komentar yang lebih deskriptif (atau mengelola seperangkat aturan firewall yang lebih besar dan rumit), lihat artikel tentang Konfigurasi File IPTables Dasar.


Linux
  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Cara Shutdown atau Reboot Linux menggunakan Command Line

  3. Bagaimana cara mengidentifikasi rasa Linux tertentu melalui baris perintah?

  1. Cara menggunakan Perintah Su di Linux

  2. Bagaimana Cara Menghasilkan Gambar Cmyk Melalui Baris Perintah Di Linux?

  3. Cara Reboot Linux Menggunakan Command Line

  1. Cara Membuat File di Linux Menggunakan Terminal/Command Line

  2. Cara:Linux Umum – IPTables secara Umum

  3. potong tabel melalui baris perintah di Linux