Làm cách nào để chặn tất cả các lần đăng nhập root bằng cách sử dụng denyhost và hoặc fail2ban?


8

Tôi hiện đang chặn tất cả thông tin đăng nhập ssh bằng root. Nhưng tôi muốn đi thêm một dặm và chặn địa chỉ IP của khách hàng đã cố gắng đăng nhập bằng root. Tôi hiện đang có denyhosts và fail2ban thiết lập và hoạt động, tôi có thể sử dụng denyhosts và hoặc fail2ban để chặn địa chỉ IP của những người cố gắng đăng nhập bằng root không?

Câu trả lời:


2

Tùy thuộc vào bản phân phối của bạn, chỉnh sửa /etc/fail2ban/jail.conf Cập nhật [ssh]phần để hiển thị một cái gì đó như thế này

[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
bantime = 3600
maxretry = 3

Thay đổi các thông số theo yêu cầu. Nó không đặc biệt chặn root, nhưng mọi nỗ lực đều thất bại. Hãy cẩn thận với maxretrybantime. Nếu bạn thất bại với mật khẩu của chính mình, trong khi maxtretryđược đặt ở mức thấp, bạn sẽ tự chặn mình bantime. Khởi động lại fail2ban.

Tôi sẽ không cố gắng chặn IP mãi mãi vì rất nhiều nỗ lực đến từ các IP động có thể chặn một số người dùng hợp pháp tại một thời điểm sau đó.

(Một số bản phân phối cung cấp tệp jail.options cho các sửa đổi của bạn. Đây là nơi ưa thích để đặt các thay đổi của bạn vì nó không bị ảnh hưởng bởi các bản cập nhật ghi đè lên conf.)


4
thông tin tốt, nhưng tôi nghĩ rằng anh ấy muốn biết cách chặn tất cả thông tin đăng nhập bằng cách sử dụng root người dùng ... không thể thấy điều đó trong câu trả lời của bạn. có lẽ bạn đã quên điều đó
Mose

17

Sao chép mã này vào một tệp mới /etc/fail2ban/filter.d/sshd-root.conf:

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

[Definition]

_daemon = sshd

failregex = ^%(__prefix_line)sFailed (?:password|publickey) for root from <HOST>(?: port \d*)?(?: ssh\d*)?$

ignoreregex = 

XIN VUI LÒNG TUYỆT VỜI rằng bạn có thể phải chỉnh sửa failregex để xác định chính xác các lần thử đăng nhập gốc không thành công - sử dụng:

fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd-root.conf

để kiểm tra rằng nó xác định các mục nhật ký chính xác.

Sau đó, bạn cần chỉnh sửa jail.local của mình để sử dụng bộ lọc mới - thêm một cái gì đó như:

[ssh]

enabled  = true
port     = 1:65535
filter   = sshd-root
logpath  = /var/log/auth.log
bantime  = 604800
maxretry = 3

Rõ ràng bạn nên điều chỉnh các giá trị này theo nhu cầu của bạn. Các cài đặt ở trên sẽ loại bỏ tất cả các gói đến từ địa chỉ IP vi phạm sau ba lần đăng nhập với quyền root và sẽ phát hành lại IP sau một tuần.


1
Điều này thực sự xứng đáng là câu trả lời được chấp nhận, vì nó thực sự trả lời câu hỏi.
Peelman

Đây chắc chắn là câu trả lời chính xác. Tốt nhất để vô hiệu hóa đăng nhập gốc trong cấu hình sshd và sau đó đặt maxretry thành 1 trong jail.conf.
antasea

1

Vì mặc định /etc/fail2ban/filter.d/sshd.confđã có regex cho AllowUsers và DenyUsers ...

...
^%(__prefix_line)sUser .+ from <HOST> not allowed because not listed in AllowUsers\s*$
^%(__prefix_line)sUser .+ from <HOST> not allowed because listed in DenyUsers\s*$
...

Sau đây sẽ:

  • Cho phép kết nối exampleusernametừ các IP bên ngoài
  • roothoặc bất kỳ kết nối nào trên mạng cục bộ (192.168.0. *)

Dòng `/ etc / ssh / sshd_config ':

AllowUsers exampleusername *@192.168.0.* *@localhost *@127.0.0.1

Và trong /etc/fail2ban/jail.conf:

ignoreip = 127.0.0.1/8 192.168.0.2/255
...
...
[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 1
findtime = 99999999 
bantime  = 99999999

0

Làm thế nào bạn chặn đăng nhập ssh? / bin / false hoặc tùy chọn sshd_config DenyUsers?

Tôi không thể nghĩ ra câu trả lời nào trong đầu, nhưng IIRC denyhosts phân tích tệp nhật ký, vì vậy hãy xem liệu bạn có nhận được một mục không thành công trong tệp nhật ký không sau khi một người nào đó cố gắng đăng nhập vào root với nó bị vô hiệu hóa


2
Tôi đã chỉnh sửa tập tin cấu hình ssh /etc/ssh/sshd_configvà thay đổi PermitRootLogintừ có thành không. Tôi không biết điều này có liên quan hay không, nhưng tôi đã cài đặt rssh để chỉ cho phép một số người dùng đăng nhập bằng sftp nhưng không cho phép ssh.
samwell

Bạn đã kiểm tra các tệp nhật ký ssh nếu nó có lỗi đăng nhập người dùng không thành công?
MitziMeow

Có, tôi có thể thấy rằng có nhiều lần đăng nhập người dùng không thành công bởi nhiều địa chỉ IP khác nhau mà tôi không nhận ra.
samwell

sau đó denyhosts sẽ hoạt động
MitziMeow
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.