Câu trả lời:
Không có tùy chọn trong iptables sẽ làm cho quy tắc của bạn vĩnh viễn. Nhưng bạn có thể sử dụng iptables-savevà iptables-restoređể hoàn thành nhiệm vụ của bạn.
Đầu tiên thêm quy tắc iptable bằng lệnh bạn đã đưa ra.
Sau đó lưu quy tắc iptables vào một số tệp như /etc/iptables.confsử dụng lệnh sau:
$ iptables-save > /etc/iptables.conf
Thêm lệnh sau vào /etc/rc.localđể tải lại các quy tắc trong mỗi lần khởi động lại.
$ iptables-restore < /etc/iptables.conf
rc.localvì sẽ có một khoảng cách cửa sổ mở giữa bắt đầu dịch vụ và áp dụng chính sách tường lửa. Tôi thích sử dụng pre-up móc cho giao diện loopback trong /etc/network/interfacesđể khắc phục điều này.
rc.localcó thể có tác dụng như mong muốn, nhưng đó là một sự ngăn chặn trong tình huống này.
(Bởi vì nó được đề xuất để biến điều này thành một câu trả lời của riêng nó ...)
Trên cài đặt debian iptables-persistent.
Gói sẽ tự động tải /etc/iptables/rulescho bạn trong khi khởi động.
Bất cứ khi nào bạn sửa đổi các quy tắc của mình, hãy chạy /sbin/iptables-save > /etc/iptables/rulesđể lưu chúng. Bạn cũng có thể thêm nó vào trình tự tắt máy nếu muốn.
/etc/iptables/rules.v4và /etc/iptables/rules.v6cho IPv4 và IPv6 tương ứng. Nếu bạn muốn một bảng áp dụng cho cả hai loại kết nối, bạn phải lưu nó vào cả hai tệp quy tắc.
Sau khi cài đặt iptables-persistentở trên, bạn cũng có thể lưu quy tắc bằng lệnh ngắn hơn sau trên Ubuntu 16.04+:
sudo netfilter-persistent save
Và chúng cũng có thể được khôi phục trở lại như lần trước bạn đã lưu chúng với:
sudo netfilter-persistent reload
iptables-persistentgói sẽ làm điều này.