Đang tải lại iptables


29

Tôi đã thay đổi tệp cấu hình iptables /etc/iptables/filtertrong Ubuntu và muốn tải lại chúng. Tôi đọc trang người đàn ông và cũng googled nhưng không thể tìm thấy thông tin. Bất kỳ trợ giúp sẽ được đánh giá cao.


Bạn chưa cung cấp bất kỳ thông tin nào về phiên bản Ubuntu bạn đang sử dụng cũng như tìm kiếm trên web trước khi đăng câu hỏi này.

Câu trả lời:


28

Cách dễ nhất là khởi động lại (ngoài ra nếu bên dưới không hoạt động, hãy khởi động lại, kiểm tra xem điều đó có làm thay đổi không).

Dễ dàng thứ hai là khởi động lại các trình tiện ích bằng cách sử dụng các cấu hình iptables (google: restart daemon ub Ubuntu).

ví dụ (phụ thuộc vào cấu hình của bạn):

/etc/init.d/iptables restart  

/etc/init.d/networking restart  

/etc/init.d/firewall restart

5
Không có tệp theo tên /etc/init.d/iptables

1
mạng nào liên quan tồn tại trong /etc/init.d? cố gắng để khởi động lại đó.

2
/etc/init.d/networking khởi động lại?

1
Liên kết chết là chết.
Dustin Graham

@DustinGraham cảm ơn, liên kết bị hỏng được gỡ bỏ.
Juha

37

Thông thường các quy tắc tường lửa của bạn nằm trong tệp cấu hình /etc/iptables.firewall.rules

Để kích hoạt các quy tắc được xác định trong tệp của bạn, bạn phải gửi chúng đến iptables-restore(bạn có thể sử dụng tệp khác nếu bạn muốn):

sudo iptables-restore < /etc/iptables.firewall.rules

Và bạn có thể kiểm tra xem chúng đã được kích hoạt chưa:

sudo iptables -L

Nếu bạn muốn kích hoạt các quy tắc tương tự mỗi lần bạn khởi động máy tính, hãy tạo tệp này:

sudo nano /etc/network/if-pre-up.d/firewall

Với nội dung này:

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

Và cho phép nó thực hiện:

sudo chmod +x /etc/network/if-pre-up.d/firewall

Hy vọng nó sẽ giúp bạn =)

Tệp ví dụ cho /etc/iptables.firewall.rules:

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

4
Trên Ubuntu 14.10 tôi không có /etc/iptables.firewall.rulesnhưng sudo iptables-restore < /etc/iptables/rules.v4làm việc cho tôi.
timbo

4

Nếu bạn đã thực thi quy tắc của mình thì họ đã chạy và không cần tải lại. Trong trường hợp bạn có tệp cấu hình nhưng nó chưa được thực thi theo cách tốt nhất tôi từng thấy là sử dụng iptables-apply(tiện ích mở rộng iptables).

iptables-apply -t 60 your_rules_file

Điều này sẽ áp dụng các quy tắc trong 60 giây (10 theo mặc định) và hoàn nguyên chúng nếu bạn không xác nhận chúng. Điều này sẽ giúp bạn tiết kiệm trong trường hợp bạn bị ném ra khỏi hệ thống vì các quy tắc (ví dụ: nếu bạn đang hoạt động thông qua ssh).

Bạn có thể sử dụng như sau để thay thế:

iptables-restore < your_rules_file; sleep 60; iptables-restore < clean_rules

Không, tải lại là hoàn toàn cần thiết cho độ phân giải máy chủ DDNS. Nếu IP của bất kỳ máy chủ tham chiếu nào thay đổi, thì iptables cần phải được tải lại. Lý tưởng nhất là bạn sẽ làm điều này cứ sau 30 phút từ cron. Nó không thuận tiện để khởi động lại cứ sau 30 phút.
mckenzm


0

Sau khi googling một chút, đây là những gì tôi tìm thấy để khởi động lại iptables. . . sudo /etc/init.d/firewall khởi động lại


3
Không có tệp theo tên /etc/init.d/firewall

0

Nếu bạn muốn tải lại IPtables để xác thực các thay đổi bạn vừa thực hiện; bạn cũng có thể khởi động lại Apache bằng các dòng lệnh bên dưới:

/etc/init.d/apache2 dừng lại

/etc/init.d/apache2 bắt đầu

Các lệnh này có thể thay đổi tùy thuộc vào hương vị Ubuntu của bạn và các sửa đổi cuối cùng có thể đã được thực hiện trước đó.

Hi vọng điêu nay co ich.

Pierre

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.