Tôi có cần khôi phục các quy tắc iptable mỗi khi khởi động không?


18

Mỗi lần tôi khởi động lại, tôi mất các quy tắc iptables khiến tôi mất quá nhiều thời gian để vào. Tôi biết tôi có thể lưu chúng và khôi phục chúng khi khởi động , nhưng dù sao cũng có thể lưu chúng mãi mãi? Tôi có thực sự cần phải khôi phục chúng khi khởi động không? Nghiêm túc?

Vấn đề là tôi có một danh sách rất lớn các IP trong đó tôi sử dụng một vòng lặp while để tải chúng vào. Việc này có thể mất tới 10 phút.

Đây là máy chủ FTP của tôi. Đó là một vm nhỏ với ram 1gb và sức mạnh xử lý rất ít. Có rất nhiều IP vì tôi đã từ bỏ khá nhiều trên lục địa châu Á. Tôi không cần họ tấn công máy chủ FTP của tôi hàng ngày bằng vũ lực. Tôi cũng chặn gov. màn hình, bộ theo dõi và kẻ gửi thư rác.

Đây là vòng lặp while tôi sử dụng để tải trong danh sách.

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

Câu hỏi của bạn hơi mơ hồ, khi bạn nói 'lưu chúng mãi mãi' tôi nghĩ bạn có ý nghĩa như trong một tập tin, nhưng sau khi đọc phần còn lại, nó có vẻ như những gì bạn thực sự muốn nói là bạn không muốn tải lại chúng một cách thủ công lúc khởi động mọi lúc. Ngoài ra, tôi nghĩ rằng số quy tắc cần được tải lại sẽ giống nhau nên sẽ mất một lúc nhưng bạn sẽ không phải thực hiện thủ công, theo câu trả lời của pankaj.
Jeff Welling

Câu trả lời:


21

Đầu tiên, tạo một tệp có nội dung iptables-save:

sudo iptables-save > /etc/iptables_rules

Việc bạn đặt tệp ở đâu không quan trọng, tất cả những gì bạn phải làm là đảm bảo rằng dòng tiếp theo đề cập đến cùng một tệp. Tiếp theo, mở /etc/rc.localvà thêm dòng này:

/sbin/iptables-restore < /etc/iptables_rules

Từ giờ trở đi, mỗi khi máy tính của bạn khởi động hoặc khởi động lại iptables sẽ tải các quy tắc từ tệp mà bạn đã chỉ định.


1
Tôi nhận -bash: /etc/iptables_rules: Permission deniedlệnh đầu tiên. Đó là lạ sử dụng sudo và tất cả.
capdragon

5
Tôi đã phải sử dụng sudo sh -c '/sbin/iptables-save > /etc/iptables.save'để có được xung quanh Permission deniedlỗi. Tham khảo
capdragon

Bạn có thể tạo tệp trong bất kỳ thư mục nào, không bắt buộc phải tạo tệp trong / etc /
pankaj sharma

8
Tôi không khuyên bạn nên sử dụng /etc/rc.localcho việc này. Nó được thực thi muộn hơn so với phần còn lại của hệ thống khởi động và có khả năng khiến hệ thống của bạn ở trạng thái không được tường lửa. Tôi sẽ đề nghị đặt tập lệnh một dòng này vào /etc/network/if-up.d/firewall(tệp mới). Điều này đảm bảo nó sẽ được thực thi mỗi khi bạn kích hoạt giao diện mạng của mình.
gertvdijk

2
Các lỗi quyền là bình thường / dự kiến. sudo chỉ áp dụng cho lệnh trước ">", việc chuyển hướng tệp được thực hiện riêng bởi shell của bạn.
ImaginaryRobots

16
apt-get install iptables-persistent

Khi cài đặt, nó sẽ lưu cấu hình iptables hiện tại của bạn. Nếu không, bạn có thể lưu chúng vào các tệp này (tùy thuộc vào v4 hoặc v6) và iptables-continent sẽ tải chúng khi khởi động :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

1

Nếu bạn có nhiều quy tắc, bạn cũng nên xem xét sử dụng ipset kết hợp với iptables. Ipset sử dụng bảng cơ sở dữ liệu được lập chỉ mục và nhanh hơn rất nhiều so với iptables khi tìm kiếm địa chỉ để quyết định chấp nhận hay từ chối.

http://ipset.netfilter.org/index.html

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.