Hanya izinkan NAS internal untuk berkomunikasi melalui ssh


1

Saya memiliki NAS internal yang saya tidak pernah ingin dapat membuat koneksi keluar pada apa pun kecuali SSH.

Saya percaya aturan berikut pada router saya akan memblokir semua lalu lintas keluar untuk NAS saya pada 192.168.1.100:

iptables -P OUTPUT --sumber 192.168.1.100 -m state --state NEW -j DROP

Yang tidak jelas tentang saya adalah bagaimana saya mengizinkan koneksi TCP keluar pada port 22.

Jawaban:


0

Aturan yang Anda tentukan mungkin atau mungkin tidak berfungsi untuk memblokir akses - perhatikan bahwa Anda menggunakan "-A" yang berarti menambahkan aturan ke akhir tabel. Jika ada aturan sebelumnya yang memungkinkan akses maka itu akan menimpa aturan. Juga, aturan yang Anda miliki tidak perlu rumit.

Untuk menjawab pertanyaan yang Anda ajukan adalah

iptables -I OUTPUT -j DROP
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT

Ini menetapkan aturan di awal tabel input untuk menjatuhkan semua lalu lintas. Ini kemudian menyisipkan aturan sebelum mengizinkan koneksi SSH keluar. Sayangnya ini tidak mungkin untuk melakukan apa yang Anda inginkan karena (a) itu berarti bahwa setiap layanan yang Anda jalankan pada NAS tidak akan berfungsi dengan baik dan (b) pencarian DNS tidak akan berhasil dan (c) Memblokir ICMP dapat merusak banyak hal - meskipun bekerja sebagian besar waktu.

Bergantung pada apa yang Anda coba lakukan, Anda dapat menyesuaikan aturan sehingga memungkinkan ICMP, koneksi masuk dan SSH dan koneksi sebagai berikut:

   iptables -I OUTPUT -m state --state NEW -j DROP
   iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
   iptables -I OUTPUT -p icmp -j ACCEPT
   iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT
   iptables -I OUTPUT -p tcp --dport 53 -j ACCEPT
   iptables -I OUTPUT -p udp --dport 53 -j ACCEPT

Saya perhatikan bahwa aturan ini fokus pada lalu lintas keluar. Meskipun ini dapat bekerja dengan aman, seringkali lebih baik untuk menangani lalu lintas masuk - terutama jika Anda mengetahui rentang alamat IP dan / atau port yang harus diizinkan untuk terhubung. Anda akan melakukan ini menggunakan rantai INPUT. Mungkin kira-kira seperti itu

iptables -I INPUT -j DROP
iptables -I INPUT -p tcp --sport 53 -j ACCEPT
iptables -I INPUT -p udp --sport 53 -j ACCEPT
iptables -I INPUT -p tcp --sport 22 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -I INPUT -s 172.16.0.0/20 -j ACCEPT

Yang akan memungkinkan orang-orang di LAN Anda (dengan asumsi mereka berada dalam blok RFC1918 yang umum) untuk berkomunikasi dengan perangkat Anda di semua protokol, dan memungkinkan ICMP, DNS dan SSH dari mana saja.

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.