Tôi mới bắt đầu với iptables và tình cờ thấy điều gì đó tôi không thực sự hiểu.
FYI, tôi đã làm theo hướng dẫn của IptablesHowTo của Ubuntu wiki .
Các bảng nat và mangle trống, tôi chỉ làm việc với bảng bộ lọc ngay bây giờ.
Vấn đề
Nếu tôi thêm các quy tắc iptables sau:
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP
... sau đó tôi vẫn có quyền truy cập vào máy của mình thông qua ssh, tuy nhiên tất cả các lệnh iptables mất khoảng một hoặc hai phút để chạy. Đây không phải là vấn đề DNS, -n
không thay đổi nó.
Giải pháp
Thay vào đó, nếu tôi xóa bảng và thêm ba quy tắc này, mọi thứ sẽ hoạt động tốt:
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
Ai đó có thể giải thích cho tôi, tại sao quy tắc đầu tiên có tác động lớn như vậy đối với iptables? Tôi hiểu rằng nó cho phép các phiên được thiết lập để nhận lưu lượng truy cập, nhưng tại sao tôi cần nó nếu ssh được mở?
sudo strace …
(từ một vỏ gốc) để xem những gì nó đang chặn.
sudo
việc tra cứu DNS và nếu chúng bị chặn, lệnh sẽ bị chậm. Có phải tất cả cáciptables
lệnh khác của bạn có tiền tốsudo
?