Xóa tất cả các lệnh fail2ban trong Ubuntu Linux


16

Làm cách nào để xóa tất cả các lệnh fail2ban trong Ubuntu? Tôi đã thử mọi cách nhưng tôi không nhận được.

Tôi chỉ muốn xóa tất cả các lệnh cấm - nhưng tôi không biết bất kỳ địa chỉ IP nào.


1
Các lệnh cấm thường được thực hiện trên các địa chỉ IP thông qua tường lửa của bạn, vì vậy bạn nên xem các quy tắc tường lửa.
Julie Pelletier

Vâng tôi biết. nhưng tôi muốn xóa tất cả các lệnh cấm mà không cần nói địa chỉ ip
Patrick

Câu trả lời:


26

Cập nhật câu trả lời

Kể từ phiên bản 0.10.0 fail2ban-client, unbanlệnh có thể được sử dụng theo hai cách:

unban --all                              unbans all IP addresses (in all
                                         jails and database)
unban <IP> ... <IP>                      unbans <IP> (in all jails and
                                         database)

Hơn nữa, các restart <JAIL>, reload <JAIL>reloadlệnh bây giờ cũng có --unbantùy chọn.

Câu trả lời cũ

fail2ban sử dụng iptablesđể chặn lưu lượng. Nếu bạn muốn xem các địa chỉ IP hiện đang bị chặn, hãy nhập

iptables -L -n

và tìm kiếm các chuỗi khác nhau được đặt tên fail2ban-something, trong đó somethingtrỏ đến nhà tù fail2ban (ví dụ, Chain f2b-sshdđề cập đến nhà tù sshd). Nếu bạn chỉ muốn xóa khối cho một địa chỉ IP duy nhất <IP>cho một nhà tù nhất định<JAIL> , fail2ban cung cấp ứng dụng khách của riêng nó:

fail2ban-client set <JAIL> unbanip <IP>

Ngoài ra, bạn có thể sử dụng số dòng. Đầu tiên, liệt kêiptables quy tắc với số dòng:

iptables -L -n --line-numbers

Tiếp theo bạn có thể sử dụng

iptables -D fail2ban-somejail <linenumber> 

để loại bỏ một dòng duy nhất từ ​​bảng. Theo tôi biết, không có tùy chọn để chọn một phạm vi số dòng, vì vậy tôi đoán bạn sẽ phải bọc lệnh này trong một vòng lặp for:

for lin in {200..1}; do
   iptables -D fail2ban-somejail $lin
done

Ở đây tôi đã làm số 200 lên. Kiểm tra đầu ra của riêng bạn với lệnh --line-numbersvà lưu ý rằng dòng cuối cùng (với RETURN) sẽ ở lại. Xem bình luận của @ roaima dưới đây để biết lý do đằng sau việc đếm ngược.


Cảm ơn @roaima! Tôi sẽ cập nhật câu trả lời phù hợp.
ph0t0nix

1
@roaima Có nó (ít nhất là trong zsh và bash): echo {5..1}sẽ dẫn đến 5 4 3 2 1.
ph0t0nix

Bạn đã cứu tôi. Cảm ơn rất nhiều. Vui lòng thêm một lệnh đầy đủ vì tôi phải tìm ra rằng tôi cần fail2ban-client trong lệnh của bạn. (Bởi vì tôi là một người mới)
sebastian.roibu

Câu trả lời cũ vẫn được lưu trong bộ nhớ cache trên DuckDuckGo, đã nói điều tương tự như @roaima - snipboard.io/0oZkXy.jpg
Ari

14

Cách tốt nhất để bỏ chặn tất cả các IP, là đặt thời gian chờ thành 1 giây, sau đó tất cả IP sẽ được giải phóng ngay lập tức.

fail2ban-client set JailName bantime 1

Sau đó, bạn có thể thiết lập thời gian cấm thích hợp trở lại.

Tốt hơn là để fail2ban thực hiện unban cho bạn. Đừng tự chỉnh sửa iptables.


1
Đây là câu trả lời đúng duy nhất ở đây. Fail2ban duy trì cơ sở dữ liệu cấm riêng của mình phải được xóa độc lập. Mỗi câu trả lời về việc xóa các quy tắc iptables đều bỏ qua rằng thời điểm fail2ban được khởi động lại, nó sẽ thêm lại các quy tắc bạn vừa xóa trở lại vào iptables. Ngoài ra, không phải mọi cấu hình fail2ban đều sử dụng iptables để thực hiện các lệnh cấm.
Cliff Armstrong

3
tìm tất cả các nhà tù vớifail2ban-client status
Flion

Tôi vừa ban hành lệnh này và đang xem số lượng IP trong trại giam của tôi giảm xuống 0 khi fail2ban xử lý nhà tù. Nó không xảy ra thực sự rất nhanh, nhưng không sao, có hơn năm ngàn mục trong tù. Câu trả lời tốt!
Eric M

4

Mới nhất fail2ban-client(0.10)unban -alllệnh. Nhà tù cũng có thể được "khởi động lại" riêng lẻ, xóa hiệu quả các lệnh cấm.

Nếu bạn có phiên bản cũ hơn, thủ thuật này có thể hoạt động đối với các lệnh cấm tạm thời tự động: xóa nhà tù chứa lệnh cấm sau đó khởi động lại fail2ban để nhà tù (hiện trống) sẽ được tạo lại.

$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban

-Có hay hay không? Hay - tất cả?
tự đại diện

3

Lưu cấu hình iptable vào tập tin

$ iptables-save > iptables.conf

Chỉnh sửa nó với bất kỳ trình chỉnh sửa nào bạn thích Than load config trở lại iptables

$ iptables-restore < iptables.conf

Đừng quên lưu trữ cấu hình bên trong iptables để nó sẽ được chọn khi khởi động lại

$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Đây là một trong những cách người ta có thể làm điều này. Cảm ơn.
Người dùng9102d82

3

1. dừng dịch vụ sẽ xóa tất cả các quy tắc được thêm bởi fail2ban

service fail2ban stop

2. nếu bạn không có bất kỳ quy tắc iptables nào khác, bạn có thể xóa nó

iptables -F

hãy cẩn thận: điều này sẽ xóa bất kỳ quy tắc nào khác trong iptables của bạn.


3

Đây là một oneliner đơn giản để unban toàn bộ nhà tù fail2ban theo cách thích hợp:

iptables -L f2b-recidive -n | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip

LƯU Ý: Lệnh iptables lấy tiền tố "f2b-" trước tên tù trong khi "fail2ban-client" tên tù thực sự


Đây là câu trả lời tốt nhất cho các phiên bản fail2ban dưới 0,10. Bạn có thể tiếp tục tạo một bí danh trong .bashrc như fail2ban-purge với một tham số để xóa toàn bộ tù. Chỉ cần thay thế từ lặp lại ở trên bằng $ 1 và sử dụng bí danh là fail2ban-purge <JAIL_NAME>.
ADDISON74

2

Do cách fail2banlàm việc, chỉ có hai giải pháp khả thi:

  • Tạo một kịch bản cấu hình tường lửa bao gồm các fail2bannhà tù và khởi động lại tường lửa.
  • Xóa các quy tắc tường lửa chặn các IP mà bạn muốn hủy bỏ.

2

Đây là tập lệnh tôi đang sử dụng để bỏ chặn tất cả các địa chỉ IP cho một ssh jail (chỉ cần thay thế sự xuất hiện của sshd bằng tên của nhà tù mà bạn cần ... ví dụ: mysqld-auth)

#!/bin/bash
j=$(iptables -L f2b-sshd | grep -c 'REJECT')
for ((i=1;i<=j;i++))
do
  fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep 'Banned IP list:' | cut -c23-)
done
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.