"Không có trắng hay đen, chỉ có những sắc thái xám. Chúng ta không thể nói là tốt hay xấu."
Và đôi khi chúng ta cần đào sâu vào những sắc thái xám và tìm kiếm các vấn đề trước khi chúng xảy ra. Một trong những kiểm tra này có thể là tìm kiếm các nỗ lực đăng nhập SSH không thành công. May mắn thay, Ubuntu đi kèm một giải pháp đủ đơn giản nhưng đủ mạnh để phát hiện hầu hết các trường hợp mà ai đó để mật khẩu yếu và các cuộc tấn công bằng vũ lực xảy ra.
Mỗi lần cố gắng đăng nhập vào máy chủ SSH đều được ghi lại trong một tệp có tên auth.log nằm tại/var/log/auth.log bởi daemon rsyslog.
Người quản trị có thể xem qua các bản ghi để xem có lưu lượng truy cập lạ nào không. Tệp nhật ký chứa nhiều thông tin ở dạng văn bản thuần túy nhưng không dễ để đọc hết tất cả thông tin đầu ra. Chúng ta cần học cách sử dụng grep để tìm kiếm qua tệp nhật ký và trong ví dụ này, chúng ta sẽ tập trung vào các lần thử không thành công.
Lệnh này sẽ cài đặt OpenSSH và các thành phần phụ thuộc của nó. Bạn sẽ thấy rằng có nhiều gói bổ sung cũng đang được cài đặt vì OpenSSH yêu cầu khá nhiều gói để hoạt động bình thường.
Sau khi cài đặt, bạn có thể bật ssh bằng cách nhập lệnh sau vào cửa sổ terminal:
Bạn sẽ thấy đầu ra tương tự như hình ảnh bên dưới trong cửa sổ terminal nếu lệnh thành công:
Các lệnh sau có thể được sử dụng để dừng SSH trên máy Ubuntu trong trường hợp bạn muốn tắt nó:
Nó có thể được khởi động lại bằng cách chạy:
Để kiểm tra xem máy chủ SSH có đang chạy không, bạn có thể sử dụng lệnh sau:
Bạn sẽ thấy đầu ra tương tự trong terminal:
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng máy chủ SSH đã chạy và được bật, có nghĩa là nó sẽ chạy khi khởi động.
Bạn sẽ thấy đầu ra tương tự trong thiết bị đầu cuối của mình:
Các lệnh sau có thể được sử dụng để hiển thị các lần đăng nhập SSH không thành công trong CentOS hoặc RHEL trong phiên bản được sửa đổi một chút của lệnh trên:
Ngoài ra, chúng ta có thể xem nhật ký sử dụng daemon Systemd với lệnh journalctl:
Để hiển thị danh sách tất cả các địa chỉ IP chịu trách nhiệm cho các lần đăng nhập SSH không thành công, kèm theo số lần thử bên cạnh, bạn có thể sử dụng lệnh này:
Việc thỉnh thoảng xảy ra một lần đăng nhập không thành công là điều không thể tránh khỏi. Tuy nhiên, việc xác định các lần đăng nhập không thành công vào máy chủ của bạn vẫn rất quan trọng. Điều quan trọng là phải xác định các địa chỉ IP thường xuyên truy cập vào máy chủ SSH của bạn và thực hiện các hành động cần thiết.
Và đôi khi chúng ta cần đào sâu vào những sắc thái xám và tìm kiếm các vấn đề trước khi chúng xảy ra. Một trong những kiểm tra này có thể là tìm kiếm các nỗ lực đăng nhập SSH không thành công. May mắn thay, Ubuntu đi kèm một giải pháp đủ đơn giản nhưng đủ mạnh để phát hiện hầu hết các trường hợp mà ai đó để mật khẩu yếu và các cuộc tấn công bằng vũ lực xảy ra.
Mỗi lần cố gắng đăng nhập vào máy chủ SSH đều được ghi lại trong một tệp có tên auth.log nằm tại/var/log/auth.log bởi daemon rsyslog.
Người quản trị có thể xem qua các bản ghi để xem có lưu lượng truy cập lạ nào không. Tệp nhật ký chứa nhiều thông tin ở dạng văn bản thuần túy nhưng không dễ để đọc hết tất cả thông tin đầu ra. Chúng ta cần học cách sử dụng grep để tìm kiếm qua tệp nhật ký và trong ví dụ này, chúng ta sẽ tập trung vào các lần thử không thành công.
Cài đặt OpenSSH
OpenSSH là dịch vụ cung cấp quyền truy cập từ xa an toàn vào hệ thống dưới dạng giao thức lớp ứng dụng, dịch vụ này cũng bao gồm chương trình dòng lệnh scp. Đăng nhập với tư cách là người dùng root hoặc chuyển sang người dùng có quyền sudo, sau đó sử dụng lệnh bên dưới để cài đặt OpenSSH:
Mã:
sudo apt-get update
Mã:
sudo apt-get install openssh-server -y
Sau khi cài đặt, bạn có thể bật ssh bằng cách nhập lệnh sau vào cửa sổ terminal:
Mã:
sudo systemctl enable ssh
Các lệnh sau có thể được sử dụng để dừng SSH trên máy Ubuntu trong trường hợp bạn muốn tắt nó:
Mã:
sudo systemctl stop ssh
Mã:
sudo systemctl start ssh
Mã:
sudo systemctl status ssh
Trong ảnh chụp màn hình ở trên, bạn có thể thấy rằng máy chủ SSH đã chạy và được bật, có nghĩa là nó sẽ chạy khi khởi động.
Cách tìm tất cả các lần đăng nhập SSH không thành công
Một lần đăng nhập không thành công có thể do nhiều lý do gây ra chứ không chỉ do lỗi khai thác đăng nhập tự động. Một nỗ lực đăng nhập không thành công có thể xảy ra khi:- Người dùng có thể nhập sai mật khẩu của mình.
- Cố gắng sử dụng mật khẩu không đúng để đăng nhập.
- Máy chủ đang bị tấn công bằng cách dùng vũ lực và tin tặc đang cố gắng đoán mật khẩu bằng các tập lệnh tự động.
Mã:
grep "Failed password" /var/log/auth.log
Các lệnh sau có thể được sử dụng để hiển thị các lần đăng nhập SSH không thành công trong CentOS hoặc RHEL trong phiên bản được sửa đổi một chút của lệnh trên:
Mã:
grep "Failed" /var/log/secure
Mã:
grep "authentication failure" /var/log/secure
Mã:
journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
Mã:
grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr