Tôi đang lưu trữ các dịch vụ HTTP và HTTPS đặc biệt trên các cổng 8006 và 8007 tương ứng. Tôi sử dụng iptables để "kích hoạt" máy chủ; tức là định tuyến các cổng HTTP và HTTPS đến:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007
Công việc này như một cái duyên vậy. Tuy nhiên tôi muốn tạo một tập lệnh khác vô hiệu hóa máy chủ của tôi một lần nữa; tức là khôi phục iptables về trạng thái trước khi chạy các dòng trên. Tuy nhiên tôi đang gặp khó khăn trong việc tìm ra cú pháp để loại bỏ các quy tắc này. Điều duy nhất có vẻ hoạt động là một tuôn ra hoàn toàn:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Nhưng điều đó cũng sẽ xóa các quy tắc iptables khác không mong muốn.
-I
thay vì-A
choACCEPT
các dòng. Điều này là do thông thường, dòng cuối cùng (INPUT
ví dụ như chuỗi) là mộtDROP
hoặcREJECT
và bạn muốn quy tắc của mình đến trước đó.-A
đặt quy tắc mới sau quy tắc cuối cùng, trong khi-I
đặt quy tắc ở đầu.