Apa cara yang benar untuk membuka berbagai port di iptables

56

Saya telah menemukan artikel yang menasihati sebagai berikut:

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT

Dan yang lain menyatakan bahwa hal di atas tidak akan berfungsi dan iptables hanya mendukung beberapa deklarasi port dengan --multiportopsi tersebut.

Apakah ada cara yang benar untuk membuka banyak port dengan iptables?

Paul Whalley
sumber
Pertanyaan terkait: iptables dan beberapa port
Cristian Ciupitu

Jawaban:

60

Ini cara yang benar:

iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT

Sebagai contoh. Sumber di sini .

Nathan C
sumber
5
Jika Anda tidak tahu keadaan aturan -Iagak lebih aman daripada -A.
user9517 mendukung GoFundMonica
@ Ya, bisakah Anda menjelaskan alasan di balik itu?
jayhendren
2
@ jayhendren banyak aturan akan memiliki aturan tetapkan standar semuanya, misalnya -A INPUT -j REJECT --reject-with icmp-host-prohibiteddi akhir INPUT dan tabel lainnya. Menggunakan -Amenambahkan aturan di akhir tabel, setelah aturan akhir sehingga tidak akan dianggap sebagai netfilter bekerja berdasarkan pertandingan pertama yang menang. Menggunakan -Isisipan aturan di awal tabel dan karenanya akan selalu dipertimbangkan.
user9517 mendukung GoFundMonica
4
@Setapi bagaimanapun, beberapa aturan juga memiliki aturan di awal yang menyaring atau paket ratelimit, jadi ada baiknya untuk menunjukkan bahwa -Itidak selalu lebih aman jika Anda tidak tahu aturan tersebut.
jayhendren
3
@ jayhendren saya pikir Anda baru saja melakukannya dan juga perhatikan saya katakan agak tidak selalu .
user9517 mendukung GoFundMonica
54

Apa yang dikatakan kepada Anda benar, meskipun Anda salah menuliskannya (lupa --dport).

iptables -A INPUT -p tcp --dport 1000:2000 akan membuka lalu lintas masuk ke port TCP 1000 hingga 2000 inklusif.

-m multiport --dportshanya diperlukan jika kisaran Anda ingin membuka tidak kontinyu, misalnya -m multiport --dports 80,443, yang akan membuka HTTP dan HTTPS hanya - bukan yang di antaranya.

Perhatikan bahwa urutan aturan itu penting, dan (seperti yang disinggung oleh Iain dalam komentarnya di tempat lain) adalah tugas Anda untuk memastikan bahwa aturan apa pun yang Anda tambahkan ada di tempat yang akan efektif.

MadHatter
sumber
1
Saya bisa menyinggung di sini juga jika Anda ingin;)
user9517 mendukung GoFundMonica
1
Hee hee hee! Lanjutkan, maka, pesan itu layak untuk diulang!
MadHatter
2
Ini jawaban yang benar; lebih teliti.
Andrew Kozak
10

TL; DR tapi ...

Rentang port murni tanpa modul multiport: iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT

Contoh pengali ekivalen: iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT

... dan variasi tentang multi port dengan multi rentang (ya, ini juga memungkinkan): iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT

... dan contoh multi port multi range yang setara dengan negasi: iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT

Memiliki phun.

Bloodman
sumber