Iptables: Bagaimana mengizinkan hanya satu ip melalui port tertentu?


Jawaban:


48

Satu liner:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

Solusi yang lebih elegan:

iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777

Apakah Anda tahu jika saya juga harus menambahkan ini ke OUTPUT?
Anonymous12345

@ Camran: Anda harus lebih spesifik. Dalam kasus khusus ini, jika Anda mengganti INPUTdengan OUTPUTAnda akan memblokir beberapa paket yang dikirim menggunakan beberapa alamat server itu sendiri (dan tidak dialihkan / diteruskan). Saya ragu ini masuk akal, kecuali mungkin Anda ingin memblokir program yang mengikat beberapa antarmuka tertentu.
Cristian Ciupitu

1
Jangan lupa Anda juga dapat menentukan sumber Anda dalam rantai seperti:--src 1.2.3.4/30
deed02392

Bagaimana nantinya saya dapat menambahkan IP baru yang diizinkan ke rantai? Apakah saya harus menghapus DROP terlebih dahulu, lalu memasukkan pengguna baru dan memasukkan DROP lagi atau apakah ada solusi yang lebih baik?
maddo7

2
@Matithias:iptables -I xxx --src 7.8.9.10 -j ACCEPT
Cristian Ciupitu

0

Berikut adalah contoh dari salah satu sistem CentOS saya (alamat telah dikaburkan):

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT

pada centos, di mana membuat konfigurasi ini permanen? (di ubuntu, kita bisa menggunakan /etc/network/if-up.d/anyfile)
Kokizzu

pada CentOS itu adalah: service iptables save.
Martin Zeitler

0

Saya menggunakan shorewall untuk mengkonfigurasi tabel IP. Gunakan aturan suka menerima dari satu host ke port 123.

MENERIMA bersih: 192.0.2.1 $ FW tcp 1234

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.