Saya ingin memblokir akses ke port 6379 di server saya, tetapi saya masih ingin terhubung secara internal. Aplikasi redis-server berjalan pada port itu dan saya ingin terhubung hanya secara lokal (127.0.0.1). Bagaimana saya bisa melakukan ini?
Saya ingin memblokir akses ke port 6379 di server saya, tetapi saya masih ingin terhubung secara internal. Aplikasi redis-server berjalan pada port itu dan saya ingin terhubung hanya secara lokal (127.0.0.1). Bagaimana saya bisa melakukan ini?
Jawaban:
Untuk melakukan ini, Anda perlu memastikan bahwa aturan IPTables Anda dikonfigurasi dengan benar. Ubuntu secara umum membiarkan server mereka terbuka lebar secara default, itulah sebabnya saya masih tidak merekomendasikan penggunaannya sebagai server kecuali Anda sudah mengetahui cara melakukannya dengan benar.
Saya membayangkan iptables -L -nv
penampilan Anda seperti ini, ya?
# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
pkts bytes target prot opt in out source destination
Itu kosong dan terbuka lebar. Ubuntu IPTables HowTo mungkin akan membantu sedikit dengan ini. ( https://help.ubuntu.com/community/IptablesHowTo )
Saya merekomendasikan sesuatu seperti ini, yang memungkinkan SSH pada antarmuka apa pun dan tcp 6379 antarmuka apa pun tetapi yang tidak Anda inginkan:
*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Anda kemudian akan menyimpan file ini di /etc/iptables.rules.
Jelas, port lain yang ingin Anda buka secara khusus harus ditambahkan.
Catatan: Saya telah menambahkan 6379 baris khusus untuk kejelasan. Bagian bawah ACCEPT tepat sebelum COMMIT benar-benar akan mengizinkan ini karena semua koneksi loopback harus diizinkan pada sistem Linux untuk operasi yang tepat.
Anda juga harus meletakkan aturan di file / etc / network / interfaces Anda, untuk memastikan bahwa aturan tersebut ditambahkan saat antarmuka muncul dan tidak lebih baru dalam proses boot. Disarankan menambahkan sesuatu seperti ini:
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
Sunting: Untuk memuat konfigurasi ini pada awalnya, Anda perlu menjalankan perintah iptables-restore yang dirujuk di atas:
iptables-restore < /etc/iptables.rules
Yah, saya akan menyarankan untuk menggunakan "firewall tidak rumit" (ufw), yang juga direkomendasikan oleh kanonik. Membaca dan menulis iptables terlalu rumit untuk tugas penguncian port sesekali.
Lihat di sini: https://wiki.ubuntu.com/UncomplicatedFirewall
Sesuatu seperti
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
Harus bekerja