2014-06-08 15 views
6

Làm cách nào để thêm hàng loạt tệp văn bản có khối IP vào IPTables bằng BASH (hoặc một ngôn ngữ kịch bản khác)? Hoặc có cách nào khác để chặn các dải địa chỉ này không?Làm cách nào để sử dụng bash để thêm hàng loạt tệp IP vào IPTables

EDIT: Nói cách khác là có cách nào để lập trình một cái gì đó để lặp qua tệp và tạo các mục có liên quan?

+0

Bạn có thiết lập về việc sử dụng webmin để quản lý các bức tường lửa? Nếu không, sau đó có một số tùy chọn để làm những gì bạn đang cố gắng làm. Không biết nhiều hơn về vấn đề thực tế (ví dụ: các yêu cầu http không hợp lệ để bắt đầu), thật khó để đưa ra câu trả lời chính xác. Bạn có thể muốn xem xét OSSEC, ví dụ, để chặn các yêu cầu spam. – Ketola

+0

https://kirkkosinski.com/2013/11/mass-blocking-evil-ip-addresses-iptables-ip-sets/ Hãy thử điều này. Có thể hữu ích –

+0

Tôi đã sử dụng Webmin để thêm các mục vào danh sách chặn IPtables (một chuỗi các dải từ chối). Tôi có thể tự nhập tất cả dữ liệu đó nhưng có vẻ như với tôi rằng phải có một cách dễ dàng hơn. –

Trả lời

11

Bạn có thể tạo vòng lặp trong tập lệnh cấu hình iptables của mình không? Một cái gì đó như

#!/bin/bash 
for x in $(cat ip_list.txt) 
do 
    iptables -A INPUT -s $x -j DROP 
done 

đâu tập tin ip_list.txt của bạn sẽ chỉ trông giống như

1.1.1.1 
2.2.2.2 
3.3.3.3 
etc 
+0

Chúng ta đang nói thực sự trong "/ etc/sysconfig/iptables-config" ? Tôi lấy nó sau đó tôi có thể làm điều đó mà không phá vỡ bất cứ điều gì? –

+1

Không, thông thường khi thao tác các quy tắc IPTables của bạn, mọi thứ được cấu hình trong một tập lệnh bash và sau đó áp dụng các quy tắc, bạn thực thi tập lệnh. Điều này cho phép bạn thực hiện bất kỳ voodoo bash script điển hình nào để giúp bạn với các quy tắc của bạn. Xem phần 3 trên trang này để biết ví dụ: http://wiki.centos.org/HowTos/Network/IPTables – Safado

+1

Giống như 'sed' s /.*/ iptables -A INPUT -s & -j DROP/'| sh' để tránh sử dụng vô ích của Cat và biến không được phép. – tripleee

0

số quá nhiều yêu cầu và sử dụng băng thông có thể được gây ra bởi chương trình từ các công cụ tìm kiếm cố gắng để thu thập thông trang web của bạn và cũng có khi các trang web như facebook hoặc linkedin tạo hình thu nhỏ vì ai đó đang liên kết đến trang web của bạn từ phương tiện truyền thông xã hội.

Để ngừng bot, bạn nên sử dụng tệp robots.txt trên trang web của mình. Đọc thêm về tệp và định cấu hình tệp tại robotstxt.org. Tôi nghĩ rằng cũng có một số bài viết về nó trên stackoverflow.

+0

Các chương trình tôi chưa gặp sự cố. Các máy chủ có thể xử lý một chút của Google Tôi đang nói về phạm vi với 20-30 kết nối hoạt động mỗi từ phạm vi thuộc về an toàn được biết đến bến cảng cho các loại lạm dụng. Ở cấp độ trang web robots.txt cho các tập lệnh được xử lý tốt và badBehaviour cho không. Một số phạm vi IP từ các công ty lưu trữ vẫn đang sử dụng nhiều hơn chia sẻ công bằng của CPU của tôi với quá nhiều kết nối. Ngắn của chỉ chặn tất cả Mỹ và Trung Quốc tôi chỉ đơn giản là để ngăn chặn danh sách rất lớn IP phạm vi thuộc về lưu trữ của đồng mà không có kinh doanh chọc máy chủ của tôi. –

2

Bạn có thể phân tích danh sách ip và kiểm tra xem địa chỉ IP đã được chặn hoặc no:

#!/bin/bash 

for i in $(cat iptables.log) 
do 
    /sbin/iptables -L -n -v | grep -q "${i}" 
    RETVAL=$? 
    if [ $RETVAL -ne 0 ]; then 
    /sbin/iptables -A INPUT -s "${i}" -j DROP 
    fi 
done 
Các vấn đề liên quan