Nội dung
I. Giới Thiệu
Việc giữ và bảo trì cũng như phân tích các nhật ký (tức là báo cáo về các sự kiện đã diễn ra trong một khoảng thời gian nhất định hoặc đang diễn ra) là một trong những nhiệm vụ cơ bản và thiết yếu nhất của một quản trị viên hệ thống Linux. Trong trường hợp quản lý người dùng, việc xem xét các nhật ký đăng nhập và đăng xuất của người dùng (cả thất bại và thành công) có thể cảnh báo chúng ta về bất kỳ vi phạm bảo mật tiềm ẩn hoặc việc sử dụng hệ thống mà không được ủy quyền.
Ví dụ, đăng nhập từ xa từ địa chỉ IP không rõ hoặc tài khoản được sử dụng ngoài giờ làm việc hoặc trong thời gian nghỉ phép nên làm đỏ mắt chúng ta. Ngoài ra, việc xem xét các hoạt động đăng nhập của người dùng khởi động lại có thể tiết lộ thời gian hoạt động và lịch sử khởi động lại của hệ thống.
Trên hệ thống CentOS, lịch sử đăng nhập của người dùng được lưu trữ trong các tệp nhị phân sau:
- /var/run/utmp (ghi nhật ký các phiên hiện đang mở) được sử dụng bởi công cụ who và w để hiển thị ai hiện đang đăng nhập và họ đang làm gì, đồng thời cũng theo thời gian hoạt động để hiển thị thời gian hoạt động của hệ thống.
- /var/log/wtmp (lưu trữ lịch sử kết nối với hệ thống) được công cụ cuối cùng sử dụng để hiển thị danh sách những người dùng đăng nhập lần cuối.
- /var/log/btmp (ghi lại các lần đăng nhập thất bại) được tiện ích Lastb sử dụng để hiển thị danh sách các lần đăng nhập thất bại gần đây nhất.
- Với
utmpdump
là một công cụ dùng để hiển thị nội dung của tệputmp
hoặcwtmp
dưới dạng văn bản. Tệputmp
chứa thông tin về các phiên đăng nhập hiện tại trên hệ thống, trong khiwtmp
lưu trữ lịch sử đăng nhập và đăng xuất. Cả hai tệp này thường được sử dụng trên các hệ thống UNIX và Linux để theo dõi và quản lý hoạt động của người dùng. utmpdump
cho phép người dùng xem và phân tích dữ liệu từ tệputmp
vàwtmp
, giúp họ hiểu rõ hơn về các hoạt động đăng nhập và đăng xuất trên hệ thống.utmpdump
là một công cụ hữu ích giúp người quản trị có cái nhìn tổng quan về hoạt động của người dùng trên hệ thống, từ đó hỗ trợ trong việc quản lý, bảo mật, và giám sát.
II. Hướng dẫn cách sử dụng Utmpdump
Trong khi phần lớn các tệp nhật ký trên hệ thống đều có định dạng văn bản thuần túy, như /var/log/messages, /var/log/cron, và /var/log/maillog, thì các tệp nhật ký như utmp và wtmp lại lưu trữ dưới dạng nhị phân (binary) . Điều này tạo ra sự khác biệt quan trọng trong cách chúng ta truy cập và hiển thị nội dung của chúng.
Để xem thông tin trong các tệp nhật ký văn bản, chúng ta thường sử dụng các lệnh như less, more, tail, và head ,…. Đặc biệt là khi làm việc với những tệp có kích thước lớn. Tuy nhiên, do tính chất nhị phân (binary) của utmp và wtmp, chúng ta không thể sử dụng các lệnh truyền thống này. Đó chính là lý do mà công cụ như utmpdump trở nên cần thiết, giúp chúng ta có thể hiển thị và phân tích các tệp nhật ký này một cách hiệu quả.
Để hiển thị nội dung của các file utmp, thực hiện các lệnh sau:
utmpdump /var/run/utmp
utmpdump /var/log/wtmp
utmpdump /var/log/btmp | more
Giải Thích Về Các Trường Hiển Thị Khi Dùng utmpdump:
Ba trường hợp đầu ra trong utmp
, btmp
, và wtmp
đều có định dạng đầu ra tương tự. Tuy nhiên, có một số khác biệt quan trọng:
- Thứ tự bản ghi:
- Trong
utmp
vàbtmp
: Bản ghi được sắp xếp theo thứ tự thời gian. - Trong
wtmp
: Thứ tự bản ghi ngược lại so vớiutmp
vàbtmp
.
- Trong
- Cấu trúc mỗi dòng nhật ký:
- Trường 1: Mã định danh phiên.
- Trường 2: PID.
- Trường 3: Có thể là:
~~
: Biểu thị thay đổi cấp độ chạy hoặc khởi động lại hệ thống.bw
: Quá trình chờ khởi động.- Một chữ số: Số TTY.
- Ký tự và chữ số: Thiết bị đầu cuối giả.
- Trường 4: Tên người dùng, thông tin khởi động lại hoặc runlevel.
- Trường 5: TTY hoặc PTY chính.
- Trường 6: Tên máy chủ từ xa.
- Trường 7: Địa chỉ IP của hệ thống từ xa.
- Trường 8: Ngày và giờ tạo bản ghi.
Lưu ý rằng nếu thông tin DNS không có sẵn, cả trường 6 và trường 7 sẽ hiển thị thông tin tương tự về địa chỉ IP của hệ thống từ xa.
III. Một số Vi Dụ Về Lệnh utmpdump
1. Kiểm tra thời gian truy cập với user root
utmpdump /var/log/wtmp | grep root
Ở hình trường cuối cùng thấy rõ thời gian đã truy cập vào phiên làm việc của user: root
. Dựa vào trường cuối để lọc dữ kiện cần theo thời gian cần.
2 . Kiểm tra lọc theo IP được xác định trước.
- Nghi ngờ IP lạ đăng nhập bao nhiêu lần, để đi phân sâu hơn để có hướng đưa IP và danh sách blacklist.
- Theo hình ở trên tạm lấy IP: 115.73.162.211, để đi kiểm tra số lần login vào.
#Lọc theo IP: 115.73.162.211
utmpdump /var/log/wtmp | grep 115.73.162.211
#Đếm số lần truy cập thêm | wc -l
utmpdump /var/log/wtmp | grep 115.73.162.211 | wc -l
Ở hình thì IP: 115.73.162.211 có 8 lần truy cập
3. Kiểm tra user đăng nhập failed login
utmpdump /var/log/btmp
- Trong đầu ra của
/var/log/btmp
, mỗi dòng nhật ký tương ứng với một lần đăng nhập không thành công (ví dụ: sử dụng mật khẩu không chính xác hoặc ID người dùng không tồn tại). - Đăng nhập bằng ID người dùng không tồn tại được đánh dấu trong hình ảnh trên, điều này có thể cảnh báo bạn rằng ai đó đang cố xâm nhập vào hệ thống của bạn bằng cách đoán tên tài khoản thường được sử dụng.
- Điều này đặc biệt nghiêm trọng trong trường hợp tty1 được sử dụng, vì điều đó có nghĩa là ai đó đã truy cập vào thiết bị đầu cuối trên máy của bạn.
4. Hiển thị thông tin đăng nhập và đăng xuất cho mỗi phiên người dùng.
utmpdump /var/log/wtmp
- Trong tệp
wtmp
, mỗi dòng thường chứa thông tin về một sự kiện đăng nhập hoặc đăng xuất. - Trường đầu tiên trong mỗi dòng xác định loại sự kiện:
- Sự kiện đăng nhập mới được đánh dấu bằng số
7
. - Sự kiện đăng xuất được đánh dấu bằng số
8
.
- Sự kiện đăng nhập mới được đánh dấu bằng số
- Trường thứ ba chứa ID của thiết bị đầu cuối (TTY) mà người dùng đã đăng nhập hoặc đăng xuất. TTY thường liên kết với một phiên làm việc terminal hoặc một cửa sổ terminal ảo.
- Trường thứ tư chứa tên người dùng (username) liên quan đến sự kiện đó.
Ngoài ra, các trường khác trong mỗi dòng có thể chứa thông tin bổ sung như thời gian đăng nhập, địa chỉ IP nếu có, thông tin về máy chủ từ xa nếu đăng nhập từ xa, và nhiều thông tin khác liên quan đến sự kiện đăng nhập và đăng xuất.
IV. Lời Kết
Đăng nhập không thành công vào hệ thống có thể là dấu hiệu của một cuộc tấn công đang diễn ra hoặc một nỗ lực xâm nhập. Khi bạn thấy nhiều lần đăng nhập không thành công từ cùng một nguồn hoặc địa chỉ IP, đặc biệt là trên tty1, đây có thể là một tín hiệu đáng ngại.
- Xác định Nguyên Nhân:
- Đầu tiên, xác định xem nguyên nhân của sự cố là gì. Có thể là một cuộc tấn công brute-force, nỗ lực xâm nhập thông qua SSH, hoặc một lỗ hổng bảo mật trước đó của hệ thống.
- Phân tích IP và Địa Điểm:
- Sử dụng
whois
để tra cứu thông tin chi tiết về địa chỉ IP đó. - Kiểm tra xem IP có phải là IP độc lập hay thuộc một mạng lưới lớn, dấu hiệu của một cuộc tấn công tự động.
- Nếu IP thuộc một quốc gia khác và không liên quan đến hoạt động thường xuyên của hệ thống, có thể là một tín hiệu cảnh báo.
- Sử dụng
- Kiểm tra Logs:
- Đối với
/var/log/auth.log
hoặc các tệp nhật ký tương tự: Tìm kiếm thông tin về IP hoặc tên người dùng được sử dụng trong cuộc tấn công. - Xem xét các yêu cầu đăng nhập thành công gần đây để xác định xem có bất kỳ IP nào khác từ cùng một khu vực hay không.
- Đối với
- Cập nhật và Bảo Mật:
- Áp dụng các bản vá bảo mật mới nhất.
- Tăng cường các biện pháp an ninh như tăng cường quy tắc tường lửa, sử dụng MFA (Multi-Factor Authentication), và kiểm tra các dịch vụ không cần thiết đang chạy trên hệ thống.
- Khôi phục và Phục hồi:
- Nếu có dấu hiệu của một cuộc tấn công hoặc nghi ngờ về an toàn của dữ liệu, hãy xem xét việc khôi phục từ một bản sao lưu an toàn.
- Đảm bảo rằng tất cả các dữ liệu quan trọng đã được sao lưu đều đầy đủ và đảm bảo rằng quá trình khôi phục sẽ không tạo ra thêm lỗ hổng bảo mật.
- Học và Điều chỉnh:
- Phân tích và đánh giá lại các biện pháp bảo mật hiện có và xem xét việc cải thiện chúng dựa trên kinh nghiệm từ sự cố.
- Hãy học từ những gì đã xảy ra và đảm bảo rằng các biện pháp phòng ngừa và giám sát được cập nhật và hiệu quả.
Lưu ý rằng, một cuộc tấn công có thể là một cơ hội để bạn nâng cấp và cải thiện hệ thống bảo mật. Tuy nhiên, việc đảm bảo an toàn của dữ liệu và hệ thống là trên hết.