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-save
và 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.conf
sử 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.local
vì 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.local
có 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/rules
cho 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.v4
và /etc/iptables/rules.v6
cho 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-persistent
gói sẽ làm điều này.