Dengan iptables kernel benar-benar kosong ( iptables -F
), ini akan melakukan apa yang Anda minta:
# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
Ini mengatakan bahwa semua alamat LAN diizinkan untuk berbicara dengan port TCP 22, bahwa localhost mendapatkan pertimbangan yang sama (ya, 127. * bukan hanya 127.0.0.1), dan paket dari setiap alamat lain yang tidak cocok dengan dua aturan pertama tersebut secara tidak resmi dimasukkan ke dalam yang sedikit ember . Anda dapat menggunakan REJECT
alih-alih DROP
jika Anda menginginkan penolakan aktif (TCP RST) alih-alih menjadikan port TCP 22 lubang hitam untuk paket.
Jika LAN Anda tidak menggunakan blok 192.168.0. *, Anda secara alami perlu mengubah IP dan mask pada baris pertama untuk mencocokkan skema IP LAN Anda.
Perintah-perintah ini mungkin tidak melakukan apa yang Anda inginkan jika firewall Anda sudah memiliki beberapa aturan yang dikonfigurasi. (Katakan iptables -L
sebagai root untuk mencari tahu.) Yang sering terjadi adalah bahwa salah satu aturan yang ada mengambil paket yang Anda coba filter, sehingga menambahkan aturan baru tidak berpengaruh. Meskipun Anda dapat menggunakan -I
alih-alih -A
dengan iptables
perintah untuk menyambungkan aturan baru ke tengah-tengah rantai alih-alih menambahkannya, biasanya lebih baik untuk mengetahui bagaimana rantai diisi pada boot sistem dan memodifikasi proses itu sehingga aturan baru Anda selalu diinstal di urutan yang benar.
RHEL 7+
Pada sistem tipe RHEL terbaru, cara terbaik untuk melakukannya adalah dengan menggunakan firewall-cmd
atau yang setara dengan GUI. Ini memberitahu firewalld
daemon OS apa yang Anda inginkan, yang sebenarnya mengisi dan memanipulasi apa yang Anda lihat iptables -L
.
RHEL 6 dan Sebelumnya
Pada sistem tipe RHEL yang lebih lama, cara termudah untuk memodifikasi rantai firewall saat memesan adalah mengedit /etc/sysconfig/iptables
. Alat firewall GUI dan TUI OS agak sederhana, jadi setelah Anda mulai menambahkan aturan yang lebih rumit seperti ini, lebih baik kembali ke file konfigurasi lama yang bagus. Hati-hati, setelah Anda mulai melakukan ini, Anda berisiko kehilangan perubahan jika Anda pernah menggunakan alat firewall OS untuk memodifikasi konfigurasi, karena mungkin tidak tahu bagaimana berurusan dengan aturan buatan tangan seperti ini.
Tambahkan sesuatu seperti ini ke file itu:
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp --dport 22 -j DROP
Di mana Anda menambahkannya adalah bagian yang sulit. Jika Anda menemukan baris dalam file itu bicarakan --dport 22
, cukup ganti dengan tiga baris di atas. Kalau tidak, mungkin harus pergi sebelum baris pertama yang ada berakhir -j ACCEPT
. Secara umum, Anda harus terbiasa dengan cara iptables bekerja, di mana titik penyisipan yang benar akan terlihat jelas.
Simpan file itu, lalu katakan service iptables restart
untuk memuat ulang aturan firewall. Pastikan untuk melakukan ini saat masuk ke konsol, jika Anda merasa suntingan! Anda tidak ingin mengunci diri dari mesin saat masuk melalui SSH.
Kesamaan dengan perintah di atas bukan kebetulan. Sebagian besar file ini terdiri dari argumen untuk iptables
perintah. Perbedaan relatif terhadap di atas adalah bahwa iptables
perintah dijatuhkan dan INPUT
nama rantai menjadi rantai khusus RHEL-khusus RH-Firewall-1-INPUT
. (Jika Anda ingin memeriksa file lebih detail, Anda akan melihat sebelumnya di file di mana mereka pada dasarnya mengubah nama INPUT
rantai. Mengapa? Tidak bisa mengatakan.)