Saya baru memulai dengan iptables dan menemukan sesuatu yang tidak saya mengerti.
FYI, saya mengikuti instruksi IptablesHowTo dari wiki Ubuntu .
Tabel nat dan mangle kosong, saya hanya bekerja dengan tabel filter sekarang.
Masalah
Jika saya menambahkan aturan iptables berikut:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... maka saya masih memiliki akses ke mesin saya melalui ssh, namun semua perintah iptables membutuhkan waktu sekitar satu atau dua menit untuk berjalan. Ini bukan masalah DNS, -n
tidak mengubahnya.
Solusinya
Jika saya menyiram tabel dan menambahkan tiga aturan ini sebagai gantinya, semuanya berfungsi dengan baik:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
Adakah yang bisa menjelaskan kepada saya, mengapa aturan pertama berdampak besar pada iptables? Saya mengerti bahwa ini memungkinkan sesi yang ditetapkan untuk menerima lalu lintas, tetapi mengapa saya membutuhkannya jika ssh terbuka?
sudo strace …
(dari shell root) untuk melihat apa yang diblokir.
sudo
apakah pencarian DNS dan jika ini diblokir, perintah akan lambat. Apakah semuaiptables
perintah Anda lainnya diawalisudo
?