Điểm:2

fail2ban không sử dụng loại khối DROP

lá cờ cn

Sử dụng Ubuntu 20.04 LTS, tôi có cái này trong /etc/fail2ban/jail.local:

[MẶC ĐỊNH]
bantime = 3600
lệnh cấm = iptables
blocktype = drop


[sshd]
đã bật = đúng
giao thức = tcp
cổng = ssh
bộ lọc = sshd
logpath = /var/log/auth.log
thử lại tối đa = 3

Nhưng đây là những gì tôi thấy khi tôi liệt kê các quy tắc iptables:

â°â# iptables -L f2b-sshd -n -v
Chuỗi f2b-sshd (1 tài liệu tham khảo)
 pkts byte đích prot chọn không tham gia đích nguồn
   13 1356 TỪ CHỐI tất cả -- * * 222.187.232.205 0.0.0.0/0 từ chối với icmp-port-không thể truy cập
   18 1516 TỪ CHỐI tất cả -- * * 221.181.185.153 0.0.0.0/0 từ chối với icmp-port-không thể truy cập
   17 1064 TỪ CHỐI tất cả -- * * 222.186.180.130 0.0.0.0/0 777 55854 TRẢ LẠI tất cả -- * * 0.0.0.0/0 0.0.0.0/0

Vấn đề là nó sử dụng REJECT (với ICMP) thay vì DROP.

action.d/iptables.conf chứa nội dung này:

# Tùy chọn: cấm hành động
# Notes.: lệnh thực hiện khi cấm một IP. Hãy chăm sóc rằng
# lệnh được thực thi với quyền người dùng Fail2Ban.
# Thẻ: Xem trang man.conf(5)
# Giá trị: CMD
#
actionban = <iptables> -I f2b-<tên> 1 -s <ip> -j <blocktype>

Đây là tệp hành động iptables mặc định, được vận chuyển cùng với gói apt fail2ban chính thức cho phiên bản HĐH này.

Cũng đã thử thêm "blocktype=drop" vào bên dưới [sshd] nhưng không có tác dụng.

Tôi không chắc cách gỡ lỗi này, vì dịch vụ fail2ban không ghi lại các lệnh iptables thực tế.

Tôi đang thiếu gì?

lá cờ jp
Dom
Bạn nên đặt DROP trong action.d/iptables-common.conf, blocktype
lá cờ cn
Có hai vấn đề với điều đó. Cái đầu tiên là một cấu hình toàn cầu. Sau đó, tôi sẽ không thể đặt các loại khối khác nhau cho các bộ lọc khác nhau. Vấn đề thứ hai là iptables-common.conf là một phần của gói fail2ban. Nếu tôi thay đổi điều đó và sau đó, một phiên bản fail2ban mới xuất hiện, thì nó sẽ bị ghi đè. Tôi thậm chí sẽ không để ý. Hoặc có thể nó sẽ không bị ghi đè và điều đó có thể phá vỡ hoàn toàn hành động iptables.
lá cờ jp
Dom
Sau đó, bạn có thể sử dụng: action = iptables-multiport[blocktype="DROP", port="22,2222", name=sshd], đặt trong phần [sshd] của bạn
Điểm:1
lá cờ il

Để cung cấp một số tham số cho hành động của một nhà tù, bạn phải đặt hoạt động với tất cả các tham số (cũng thường được cung cấp trong phần mặc định của tù.conf) hoặc trong trường hợp cấm hành động, bạn có thể sử dụng một cái gì đó như thế:

[một số_tù]
banaction = %(known/banaction)s[blocktype=DROP]

Liên quan đến chủ đề DROP so với REJECT, cuộc thảo luận đã quá cũ so với chính hệ thống con bộ lọc mạng, với nhiều ưu/nhược điểm cho cả hai bên.
Liên quan đến mối quan tâm cấm, xem https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516 để biết chi tiết.

lá cờ cn
Vâng, tôi đồng ý với DROP vs REJECT. Tôi có một số bộ lọc được sử dụng cho các cuộc tấn công khuếch đại DNS. Đối với những thứ đó, DROP tốt hơn (vì các yêu cầu có địa chỉ nguồn giả mạo, do đó, việc gửi lại từ chối ICMP thực sự giúp ích cho kẻ tấn công ...)
Điểm:0
lá cờ cn

Tôi đã chấp nhận giải pháp @sebres nhưng tôi muốn thêm một số lỗi.

Đối với lệnh cấm iptables-allports, loại khối từ chối có thể có khoảng trắng bên trong. Bạn cần trích dẫn điều đó.

Ví dụ:

[sshd]
banaction=iptables_allports[blocktype="REJECT --reject-with icmp-port-unreachable"]

Điều thú vị thứ hai: cả lệnh cấm và cấu hình tù đều có một tham số gọi là "giao thức". Lần đầu tiên tôi bối rối khi cấu hình bên dưới không đưa ra bất kỳ lỗi nào, nhưng nó không chặn các yêu cầu UDP:

[tên-ddos]
banaction=iptables_allports[blocktype=DROP,protocol=all]

Nó xảy ra bởi vì tôi đã bỏ lỡ giao thức = tất cả cài đặt từ nhà tù. Bạn cần chỉ định giao thức = tất cả ở cấp độ tù:

[tên-ddos]
banaction=iptables_allports[blocktype=DROP,protocol=all]
giao thức = tất cả

Lý do cho điều này là phần được đặt tên-ddos tạo ra một chuỗi mới trong iptables và các ip bị cấm đang tạo ra các quy tắc bên trong chuỗi đó. Nếu bạn không chỉ định giao thức = tất cả ở cấp độ tù, thì chuỗi sẽ được xác định như sau:

Chuỗi INPUT (chính sách DROP 22 gói, 952 byte)
 pkts byte đích prot chọn không tham gia đích nguồn         
 1371 229K tên-ddos tcp -- * * 0.0.0.0/0 0.0.0.0/0           

Đúng là lệnh cấm sẽ tạo ra các quy tắc với proto=all bên trong chuỗi, nhưng bản thân chuỗi sẽ không được sử dụng cho các gói không phải tcp. Kết luận là bạn cần chỉ định giao thức = tất cả ở cả cấp độ tù và lệnh cấm (nếu nó hỗ trợ), nếu không nó sẽ không hoạt động.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.