Fail2ban là một công cụ mã nguồn mở, hoạt động bằng cách theo dõi tệp logcủa hệ thống và chặn các địa chỉ IP có hành vi tấn công brute force.. Với khảnăng tích hợp nhiều dịch vụ phổ biến
Trang 1BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG THƯƠNG TP HỒ CHÍ MINH
-BÁO CÁO MÔN HỌC QUẢN TRỊ HỆ THỐNG MẠNG
Đề tài:
Sử dụng các công cụ bảo mật : Fail2ban
GV: Đinh Huy Hoàng
Sinh viên thực hiện : Trần Anh Quân 2033223949
Kiệt 203
Sang
Khoa Minh
TP.HCM,08 tháng 10/2024
Trang 2LỜI MỞ ĐẦU
Trước tiên, em xin gửi lời cảm ơn chân thành đến Thầy Đinh Huy Hoàng đã tậntình hướng dẫn và truyền đạt kiến thức giúp em hoàn thành tốt đề tài này.Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin và sự kết nối toàncầu qua mạng internet, vấn đề an ninh mạng trở nên vô cùng cấp thiết Các hệthống máy chủ luôn là mục tiêu của những cuộc tấn công, đặc biệt là các cuộctấn công brute force nhằm chiếm quyền truy cập trái phép Trong bối cảnh đó,Fail2ban ra đời như một giải pháp đơn giản nhưng hiệu quả, giúp bảo vệ hệthống khỏi các cuộc tấn công dạng này
Fail2ban là một công cụ mã nguồn mở, hoạt động bằng cách theo dõi tệp logcủa hệ thống và chặn các địa chỉ IP có hành vi tấn công brute force Với khảnăng tích hợp nhiều dịch vụ phổ biến như SSH, HTTP, và FTP, Fail2ban đã trởthành một công cụ quan trọng giúp các quản trị viên hệ thống tăng cường bảomật
Với tầm quan trọng của an ninh mạng, em đã lựa chọn đề tài “Tìm hiểu và triểnkhai Fail2ban trong bảo mật hệ thống” nhằm giúp mọi người có cái nhìn tổngquan hơn về các mối nguy tiềm ẩn và giải pháp bảo vệ hệ thống mạng một cáchhiệu quả
1 Tính cấp thiết của đề tài:
Trong bối cảnh an ninh mạng ngày càng trở nên phức tạp, các cuộc tấn côngbrute force và các nỗ lực truy cập trái phép vào hệ thống mạng đang gia tăngmột cách đáng kể Đặc biệt, với các dịch vụ quan trọng như SSH và FTP, cáccuộc tấn công dạng này có thể gây hậu quả nghiêm trọng như mất dữ liệu hoặcchiếm quyền điều khiển hệ thống
Việc áp dụng các giải pháp bảo mật như Fail2ban là cực kỳ cần thiết để giảmthiểu rủi ro từ các cuộc tấn công mạng Fail2ban giúp phát hiện và ngăn chặncác địa chỉ IP có hành vi đáng ngờ thông qua phân tích log, từ đó tăng cườngkhả năng phòng thủ cho hệ thống
Trang 3Sự gia tăng sử dụng mạng internet và các dịch vụ mạng trong các tổ chức,doanh nghiệp làm cho việc bảo vệ hệ thống trở nên quan trọng hơn bao giờ hết.Fail2ban cung cấp một giải pháp đơn giản nhưng hiệu quả để bảo vệ hệ thốngkhỏi các cuộc tấn công.
4 Đối tượng nghiên cứu:
Các chuyên gia trong lĩnh vực an ninh mạng và bảo mật hệ thống
Quản trị viên hệ thống, những người chịu trách nhiệm bảo vệ an toàn dữ liệu và
Trang 4 Fail2ban theo dõi các tệp log của hệ thống (như /var/log/auth.log trên Linux) và khi phát hiện các mẫu hoạt động bất thường, như nhiều lần đăng nhập thất bại, nó sẽ chặn địa chỉ IP gây ra vấn đề đó.
1.2 Chức năng chính của Fail2ban
Phát hiện và chặn IP: Dựa trên các tệp log, Fail2ban sẽ phát hiện các hành
vi tấn công và chặn các IP có hành vi xấu trong một khoảng thời gian nhất định
Tích hợp với firewall: Fail2ban có thể tự động cấu hình tường lửa của hệ thống để ngăn chặn truy cập từ các IP nghi ngờ
Hỗ trợ đa dịch vụ: Nó có thể giám sát nhiều dịch vụ khác nhau như SSH, FTP, HTTP(S), Postfix, Apache/Nginx, và nhiều dịch vụ khác
1.3 Cách thức hoạt động của Fail2ban?
Theo dõi log: Fail2ban quét các tệp log của hệ thống để phát hiện các mẫu lỗi đăng nhập hoặc các dấu hiệu tấn công khác
Phát hiện bất thường: Nếu phát hiện nhiều lần đăng nhập thất bại hoặc hành vi nghi ngờ từ một địa chỉ IP, Fail2ban sẽ thực hiện hành động, thường là chặn IP đó
Chặn IP: Fail2ban sử dụng các quy tắc firewall (như iptables trên Linux)
để ngăn chặn truy cập từ IP đó trong một khoảng thời gian (thường là vài phút đến vài giờ)
Tùy chỉnh hành động: Quản trị viên có thể tùy chỉnh Fail2ban để thực hiện các hành động khác như gửi email cảnh báo hoặc thực hiện các lệnh shell
Actions (Hành động): Khi một sự kiện xấu được phát hiện, Fail2ban có thể thực hiện các hành động như chặn IP, gửi email, hoặc thực thi một lệnh tùy chỉnh
1.5 Ưu điểm của Fail2ban
Tăng cường an ninh hệ thống:
Trang 5Ngăn chặn hiệu quả các cuộc tấn công brute force, đặc biệt là với các dịch vụ nhạy cảm như SSH.
Hỗ trợ nhiều dịch vụ, giúp quản trị viên bảo vệ nhiều phần của hệ thống
Dễ dàng cấu hình và sử dụng:
Fail2ban dễ dàng cài đặt, cấu hình và mở rộng
Các file cấu hình đơn giản, có thể tùy chỉnh để giám sát và xử lý các hành
Cần cấu hình đúng thời gian chặn (ban time) để đảm bảo an ninh
Phụ thuộc vào tệp log:
Fail2ban phụ thuộc vào việc log của dịch vụ phải đầy đủ và chính xác Nếu log không ghi lại hết các hành vi cần giám sát, Fail2ban sẽ bỏ sót cáctấn công
Có thể tiêu tốn tài nguyên hệ thống:
Trên hệ thống có nhiều dịch vụ, Fail2ban có thể sử dụng nhiều tài nguyênkhi phải liên tục theo dõi và phân tích log
1.7 Cấu hình Fail2ban
Cấu hình chung (/etc/fail2ban/fail2ban.conf):
Thiết lập các thông số chung như loglevel (mức độ log), logtarget (nơi lưu log), và các hành động mặc định
Cấu hình jail (/etc/fail2ban/jail.conf):
Mỗi jail đại diện cho một dịch vụ (ví dụ: SSH, Apache), nơi cấu hình các thông số giám sát và chặn
Các thông số quan trọng: bantime (thời gian chặn IP), findtime (thời gian theo dõi các lần đăng nhập thất bại), và maxretry (số lần đăng nhập thất bại trước khi chặn IP)
1.8 Kết Luận
Fail2ban là một công cụ mạnh mẽ giúp bảo vệ hệ thống khỏi các cuộc tấncông brute force và đăng nhập trái phép Với khả năng tùy chỉnh cao và
hỗ trợ nhiều dịch vụ, Fail2ban phù hợp với hầu hết các hệ thống Linux
Ưu điểm của nó nằm ở tính dễ sử dụng, miễn phí và tự động bảo vệ, nhưng vẫn cần phải cấu hình cẩn thận để đảm bảo an ninh tốt nhất Dù
Trang 6không phải là giải pháp toàn diện, Fail2ban là một lớp bảo mật hữu ích để
2.2 Mục tiêu: Thiết lập kết nối bảo mật, Quản lý hệ thống từ xa, Khắc phục các vấn
Trang 7Bước 2: Cài đặt SSH SEVER: Thông qua lệnh sudo apt install openssh-server
Trang 8Bước 3: Khởi động và kiểm tra
- Khởi động SSH SEVER:
- Kiểm tra trạng thái của SSH:
Trang 9 Active: active (running): Dịch vụ SSH đang hoạt động.
Main PID: ID tiến trình chính của dịch vụ SSH.
Tasks: Số lượng tác vụ đang được xử lý bởi dịch vụ này.
Memory: Bộ nhớ đang được sử dụng bởi dịch vụ.
-Bước 4 : Tạo User và Thực hiện kết nối:
Thêm 1 user mới bằng câu lệnh sudo adduser force-badname Security
Trang 10-Khởi chạy thêm 1 virtual khác và thực hiện kết nối đến máy chủ đã thiết lập SSH SERVER:
-Bước 5 : Lập lại các bước đã thực hiện để tạo thêm 1 User mới (Non Security)
Trang 11Chương 3 CÀI ĐẶT VÀ CẤU HÌNH CÔNG
CỤ FAIL2BAN CHO MÁY CHỦ SECURITY
3.1 Mục đích cài đặt FAIL2BAN
Fail2ban là một công cụ mạnh mẽ để bảo vệ máy chủ của bạn khỏi tấn công Brute Force và các cuộc tấn công trực tuyến khác bằng cách tự động chặn các địa chỉ IP cố gắng đăng nhập sai quá nhiều lần vào hệ thống của bạn
3.2 Các bước cài đặt FAIL2BAN
Bước 1: Cài đặt Fail2ban
- Hai câu lệnh để cài đặt Fail2ban:
sudo apt-get update
sudo apt-get install fail2ban
Bước 2: Cấu hình Fail2ban
- Sử dụng câu lệnh: sudo nano /etc/fail2ban/jail.local để cấu hình:-
Trong đó:
enabled : Đặt thành true để kích hoạt cấu hình
port : Cổng mà bạn muốn theo dõi (vd: SSH port là ssh)
filter : Loại bộ lọc sử dụng (vd: ssh cho SSH)
logpath : Đường dẫn đến tệp nhật ký.
maxretry : Số lần thử đăng nhập sai trước khi IP bị chặn.
bantime : Thời gian ban IP sau khi vượt quá maxretry lần
Bước 3: Khởi động và kiểm tra Fail2ban
- Khởi động chạy Fail2ban:
Trang 12Kích hoạt Fail2ban khởi động cùng hệ thống:
Sử dụng lệnh sau để kiểm tra trạng thái Fail2ban và xem danh sách các IP bị chặn:
3.3 Kết luận
Fail2ban rất mạnh mẽ và linh hoạt, giúp bảo vệ hệ thống khỏi các cuộc tấn côngmột cách tự động và hiệu quả thông qua việc điều chỉnh các quy tắc bảo mật dựa trên tìnhhình thực tế
Chương 4 Cài đặt Hydra để tấn công bằng phương pháp Brute-force cho máy chủ Hacker
Bước 1: nháy chuột phải vào dấu 3 gạch ở cuối, chọn clone
Trang 13Bước 2 : đặt tên bạn cần đặt và chọn file bạn cần lưu
Trang 14bước 3: chọn cái cuối cùng của Mac Address Policy
Trang 15Bước 4: chọn root
Trang 16Bước 5; nhập password
Trang 17Bước 6: nhập sudo apt install hydra
Trang 18Bước 7: nếu chưa update hydra, chúng ta nhập nhập lệnh sudo apt update
Trang 19Bước 8: nếu hiện như vậy chúng ta chọn yes ( bấm chữ Y) để tiếp tục
Trang 21- Lấy kết quả để so sánh với với máy chủ Security
5.2 Các bước thực hiện
5.2.1 Bước 1 - Chuẩn bị file paswords.txt cho cuộc tấn công
Ảnh 5.1: Thông tin file passwords.txtTrong đó, đảm bảo rằng sẽ có mật khẩu chính xác cho cuộc thử nghiệm tấn công bằng phương pháp brute-force
5.2.2 Bước 2 - Tiến hành tấn công
Trang 22Ảnh 5.2: Lệnh đăng tấn công brute-forceGiải thích lệnh tấn công như sau:
hydra: Công cụ bẻ khóa mật khẩu.
-l NonSecurity: Tên người dùng là "NonSecurity".
-P /home/minh/Desktop/passwords.txt: Địa chỉ chứa danh sách mật khẩu
dùng để tấn công
ssh://192.168.0.184: Địa chỉ IP của máy chủ SSH mà bạn đang tấn công.
5.2.3 Bước 3 – Xem kết quả tấn công
Ảnh 5.3: Kết quả của cuộc tấn công
Trang 235.2.4 Bước 4 – Đăng nhập vào tài khoản sau khi xác định được mật khẩu đúng
Ảnh 5.4: Thực hiện đăng nhập vào tài khoản nạn nhân
5.3 Kết luận
Vì máy chủ NonSecurity chưa có một hệ thống bảo mật nào, nên việc tấn công để dò
ra được mật khẩu cũng sẽ tương đối có phần dễ dàng
5.4 Dùng Hydra để tấn công user Security trên máy chủ Security 5.4.1 Mục tiêu thử nghiệm
- Tấn công vào tài khoản Security của máy chủ có địa chỉ IP là 192.168.0.238
- Lấy kết quả để so sánh với với máy chủ NonSecurity
5.4.2 Các bước thực hiện
5.4.2.1 Bước 1 - Chuẩn bị file paswords.txt cho cuộc tấn công
Tương tự như ở phần 1.2.1 Bước 1
Trang 245.4.2.2 Bước 2 - Tiến hành tấn công
Ảnh 5.5: Tấn công vào tài khoản Security ở máy chủ Security
Giải thích lệnh tấn công như sau:
hydra: Công cụ bẻ khóa mật khẩu.
-l Security: Tên người dùng là "Security".
-P /home/minh/Desktop/passwords.txt: Địa chỉ chứa danh sách mật khẩu
dùng để tấn công
ssh://192.168.0.184: Địa chỉ IP của máy chủ SSH mà bạn đang tấn công.
Trang 255.4.2.3 Bước 3 – Xem kết quả tấn công
Ảnh 5.6: Kết quả của cuộc tấn công
5.4.2.4 Bước 4 – Đăng nhập vào tài khoản sau khi xác định được mật khẩu đúng
Ảnh 5.7: Tiến hành đăng nhập vào tài khoản nạn nhân
Lúc này sẽ không đăng nhập được vì bị từ chối kết nối từ máy chủ
Trang 265.4.2.5 Bước 5 - Kiểm tra ở tình hình ở phía máy chủ
Ảnh 5.8: Tình hình ở phía máy chủ Security
5.5 Kết luận
Vì ở phía máy chủ Security đã có hệ thống bảo vệ Fail2ban nên khi ở máy chủ Hacker cố gắng tấn công bằng brute-force, máy chủ Security đã kiểm tra hành
vi đáng ngờ ở vị IP Hacker nên đã chặn IP của Hacker đó
TÀI LIỆU THAM KHẢO
[1] "Fail2ban Documentation" - Fail2ban official guide
Trang 27[2] "How to Set Up Fail2ban on Debian 11" - Vultr Documentation.
[3] "Fail2ban Setup Guide" - Hostinger Tutorials
[4] "Defending SSH with Fail2ban" - Linode Documentation
TP HCM, ngày 07 tháng 10 năm 2024
XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN
GV Đinh Huy Hoàng