Daftar putih memperbolehkan IP (masuk / keluar) menggunakan iptables

21

Saya memiliki beberapa rentang ip yang saya inginkan agar server saya dapat terhubung dan pengguna dapat terhubung. Segala sesuatu yang lain harus diblokir.

Bagaimana saya harus melakukannya dengan iptables?

OS saya adalah distribusi linux berbasis Debian.

Frank Bannister
sumber

Jawaban:

27

Saya sarankan mengambil alat konfigurasi firewall, Firestarter , dan pergi dari sana. Berikut adalah beberapa dasar untuk Anda.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
Zenham
sumber
3
Anda tahu Anda dapat memformat kode Anda dalam posting serverfault, menggunakan tombol 101010. Dengan begitu komentar Anda tidak akan keluar sebagai berteriak. Cukup pilih (seret mouse Anda ke atas) kode dan kemudian klik tombol 101010 di atas bidang teks.
Jason Tan
2
Ahhh terima kasih, aku tidak menyadarinya. Sekarang saya tahu :)
Zenham
1
+1 untuk YANG ADA, TERKAIT - terlalu banyak orang yang tidak melakukan ini.
Alnitak
1
Demi kasih tuhan, harap tetapkan aturan DROP default TERAKHIR! Saya mengunci diri saya (dan yang lainnya!) Keluar dari mesin dengan mengikuti urutan operasi itu.
Bendoh
1
Jawaban yang mengerikan. OP tidak mengatakan apa-apa tentang menjatuhkan semua koneksi saat ini. Sekarang saya terkunci karena saya menganggap jawaban teratas masuk akal.
omikes
14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Ini akan mengubah sistem Anda menjadi sistem yang tidak ada untuk komputer yang tidak diizinkan.

Kevin M.
sumber
7

Jika Anda ingin mengizinkan rentang sewenang-wenang daripada seluruh subnet, Anda dapat menggunakan modul iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

misalnya, akan memungkinkan lalu lintas yang datang dari semua mesin dengan alamat antara 192.168.1.30 dan 192.168.1.50.

Jika Anda ingin mengizinkan lalu lintas masuk dan keluar ke rentang IP yang sama, saya sarankan Anda membuat rantai spesifik yang memungkinkan IP tersebut dan menargetkan semua target input dan output untuknya:

--definisikan kebijakan default untuk membatalkan everithing:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

--membuat rantai baru:

iptables -N allowed_ips

--jika sumbernya adalah bagian dari rentang yang diizinkan, terima

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

--Jika tidak, kembali ke rantai penelepon untuk melanjutkan pemrosesan

iptables -A allowed_ips -j RETURN

--membuat semua lalu lintas masuk dan meninggalkan mesin melalui rantai baru kami

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

dan itu dia! tentu saja Anda mungkin memerlukan aturan tambahan, seperti yang mengizinkan semua lalu lintas dari / ke antarmuka lo, dll.

Thiagodrv
sumber
1

Setelah Anda puas dengan aturan Anda , Anda mungkin ingin menyimpannya . Komentar dalam tautan ini memiliki beberapa opsi tentang cara melakukannya.

Generator aturan iptables yang mudah digunakan untuk kebutuhan sederhana adalah ufw . Paket ini tersedia di debian tidak stabil.

Coba juga Firestarter . Tersedia dalam lenny.

Tidak sekarang
sumber
0

Anda juga dapat menggunakan ferm yang juga saya gunakan selama setahun terakhir dan telah banyak membantu saya dengan kasus-kasus seperti aturan firewall kondisional.

giomanda
sumber