Iptables: Bagaimana mengizinkan hanya satu ip melalui port tertentu?

25

Bagaimana saya bisa di server ubuntu saya, di Iptables hanya membolehkan satu alamat IP pada port tertentu?

Terima kasih

Anonim12345
sumber

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
Cristian Ciupitu
sumber
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
ketidakjelasan
sumber
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

BillThor
sumber