Theo dừi và phõn tớch logfile

Một phần của tài liệu Máy chủ Linux (Trang 29 - 40)

Trờn cỏc hệ thống núi chung và cỏc hệ thống Unix/Linux núi riờng. Cỏc file log giữ một vai trũ rất quan trọng. Nú như là một hộp đen của hệ thống, nú sẽ ghi lại mọi thứ xảy ra trờn hệ thống của bạn, một cỏch cực kỳ chi tiết...Chẳng hạn như Bash Log...Khi hoạt động nú sẽ ghi lại toàn những thao tỏc, những Command đó được sử dụng trong suụt quỏ trỡnh làm việc với Shell Bash. Một số phiờn bản của Unix thường lưu giữ file log ở: /usr/adm Một số phiờn bản mới hơn của Unix (trong đú cú BSD, Linux, Solaris...) thỡ cỏc file log được lưu giữ ở: /var/log Thường thỡ ở bờn trong những thư mục này bạn sẽ tỡm được cỏc thụng tin về log. Điều đú cú nghĩa là bạn cú khả năng nắm trong tay toàn bộ những gỡ đó xảy ra trờn hệ thống của mỡnh.Dưới đõy là tờn một số log thụng dụng và chức năng của nú:

acct hoặc pacct

Ghi lại những Command được sử dụng bởi mọi user trờn hệ thống. aculog

Ghi lại thụng tin về hoạt động của dial-out-modem. lastlog

Ghi lại thời gian đăng nhập thành cụng gần nhất của cỏc user cũng như cỏc lần đăng nhập khụng thành cụng.

loginlog

Ghi lại những đợt đăng nhập xấu (đang cố gắng đăng nhập nhưng chưa thành cụng = > thường là kẻ tấn cụng đang cố gắng đoỏn Password để login).

messages

Ghi lại những bản ghi mà đầu ra hệ thống đến Shell và những thụng bỏo khỏc được phỏt sinh từ syslog.

sulog

Ghi lại những command của SU (một chương trỡnh khỏ tiện dụng trờn Unix/Linux). utmp

Ghi lại mỗi người dựng hiện thời đăng nhập. wtmp

Ghi lại cỏc thụng tin về người dựng đăng nhập cũng như thoỏt ra. Và quỏ trỡnh Shutdown, Startup hệ thống.

vold.log

Ghi lại những lỗi khi sử dụng cỏc thiết bị Multimedia như: CD ROM, Floopy Disk... xferlog

Ghi lại quỏ trỡnh hoạt động FTP.

Trờn đõy là một số file log cơ bản và quan trọng của hệ thống. Ngoài ra nú cũn cú rất nhiều file log như: ftplog, maillog, httpdlog...Thường thỡ vị trớ và chức năng của cỏc file log thường được cấu hỡnh và lưu giữ ở: /etc/syslog.conf bạn cú thể biết thờm chi tiết ở đõy.

Trờn nhiều hệ thống Unix cho phộp người quản trị mạng quản trị cỏc hệ thống của họ một cỏch toàn diện (cũn được gọi là chế độ kiểm toỏn C2 - C2 Audition) được cụng nhận bởi US Department of Denfense. C2 sẽ kiểm toỏn những phương tiện núi chung và gỏn ID Audit tới mỗi nhúm của cỏc tiến trỡnh liờn quan, bắt đầu khi Login. Tiếp đú những mẫu nhất định của hệ thống được gọi bởi mỗi tiến trỡnh được ghi lại với Audit ID. Những thủ tục này bao gồm quỏ trỡnh gọi đúng và mở file, thay đổi thư mục, hay là việc thay đổi cỏc tham số người dựng... Dự sự uỷ nhiệm cho nội dung chung cho quỏ trỡnh log. Nhưng ở đú khụng cú tiờu chuẩn được cụng nhận núi chung nào cho khuụn dạng. Chớnh vỡ vậy mà từng nhà cung cấp C2 Audition lại cú những khuụn dạng log khỏc nhau, sự điều khiển, sự định vị của cỏc file log cũng khỏc nhau. Một vấn đề đỏng chỳ ý khi sử dụng chế độ kiểm toỏn C2 Audition là nú cú thể tiờu tốn khỏ nhiều khụng gian đĩa cứng của bạn trong một thời gian ngắn.

lastlog

Ghi lại thời gian đăng nhập thành cụng gần nhất của cỏc user cũng như cỏc lần đăng nhập khụng thành cụng. Nú sẽ được trỡnh bày trong file Log như sau:

login: ti

password: books2sell

Last login: Tue Jul 12 07:49:59 on tty01

Khi sử dụng lệnh "finger" nếu như nú khụng bị cấm thỡ ta cũng cú những thụng tin tương tự:

% finger tim

Login name: tim In real life: Tim Hack Directory: /Users/tim Shell: /bin/csh Last login Tue Jul 12 07:49:59 on tty01 No unread mail

No Plan. %

Một số hệ thống Unix cũn hiển thị ra màn hỡnh thụng tin của quỏ trỡnh đăng nhập thành cụng cũng như cỏc quỏ trỡnh đăng nhập khụng thành cụng khi người dựng đăng nhập thành cụng vào hệ thống.

login: tim

password: books2sell

Last successful login for tim : Tue Jul 12 07:49:59 on tty01 Last unsuccessful login for tim : Tue Jul 06 09:22:10 on tty01 (adsbygoogle = window.adsbygoogle || []).push({});

Để đảm bảo an toàn, phỏt hiện và ngăn chặn sớm cỏc cuộc tấn cụng đột nhập, người dựng trong hệ thống nờn luyện thúi quen kiểm tra thời gian đăng nhập sau mỗi lần đăng nhập. Nếu thời gian khụng tương ứng chớnh xỏc với thời gian lần cuối cựng mà chỳng ta sử dụng hệ thống...Điều này cú nghĩa là đó cú ai đú sử dụng account của bạn. Nếu như điều đú xảy ra thỡ bạn phải ngay lập tức đổi Password và thụng bỏo cho cỏc Admin biết điều này. Thật khụng may, theo thiết kế của lastlog thỡ nội dung của file của những phiờn đăng nhập lần trước sẽ được ghi đố lờn ở tại mỗi phiờn đăng nhập. Theo kết quả, nếu người dựng sơ xuất trong chốc lỏt, hay thụng bỏo Login được làm sạch khỏi màn hỡnh, người dựng sẽ khụng cũn chỳ ý được đến khoảng thời gian đỏng ngờ.

Một cỏch khắc phục cho sự bất thường này là định kỳ sao chộp cỏc file log đú. Theo C2 Audition thỡ để an toàn cứ 6 giờ bạn lại thực hiện thao tỏc sao chộp này.

mv /var/adm/lastlog.3 /var/adm/lastlog.4 mv /var/adm/lastlog.2 /var/adm/lastlog.3

mv /var/adm/lastlog.1 /var/adm/lastlog.2 cp /var/adm/lastlog /var/adm/lastlog.1

Nếu khụng quen dựng lệnh bạn cú thể sử dụng "mc" (midnight commander). Nú sẽ giỳp thực hiện cụng việc này một cỏch dễ dàng hơn. Việc này sẽ đảm bảo nội dung của lastlog được thụng suốt trong vũng 6 giờ. Nếu cú thể bạn nờn làm cụng việc sao lưu mỗi ngày. Ở cỏc Server lớn thường sử dụng ổ băng (tape) để lưu trữ dữ liệu đề phũng khi dữ liệu trục trặc vỡ giỏ thành lưu trữ của ổ băng thường rẻ hơn nhiều so với ổ cứng.Khi đó lưu giữ được lastlog bạn cần phải đọc được thụng tin của nú một cỏch toàn diện, bao quỏt. Bạn cú thể sử dụng đoạn Script Perl dưới đõy để thực hiện cụng việc đú.

#!/usr/local/bin/perl

$fname = (shift || "/var/adm/lastlog");

$halfyear = 60*60*24*365.2425/2; # pedantry abounds setpwent;

while (($name, $junk, $uid) = getpwent) { $names{$uid} = $name;

}endpwent; endpwent;

open(LASTL, $fname);

for (uid = 0; read(LASTL, $record, 28); $uid++) { ( $time, $line, $host) = unpack('l A8 A16', $record); next unless $time;

$host = "($host)" if $host;

($sec, $min, $hour, $mday, $mon, $year) = localtime($time); $year += 1900 + ($year < 70 ? 100 : 0);

print $names{$uid}, $line, "$mday/$mon";

print (time - $time > $halfyear) ? "/$year" : " "$hour:$min"; print " $hostn";

}

close LASTL;

Lưu ý: /var/adm/lastlog : Đõy là vị trớ file lastlog trờn cỏc hệ thống Unix. Bạn cú thể sửa đổi lại sao cho nú phự hợp với vị trớ trờn hệ thống của bạn. Đoạn Script này bắt đầu bằng việc kiểm tra cỏc dũng lệnh, nếu khụng khả thi, nú sẽ sử dụng chế độ mặc định. Tiếp đú nú sẽ tớnh toỏn số giõy trong nửa năm, để xỏc định được khuụn dạng của đầu ra thụng tin (để in màn hỡnh những thụng tin đăng nhập 6 thỏng trước đõy. Kế đến nú sẽ xõy dựng một mảng UIDS tới những tờn đăng nhập. Sau sự khởi tạo trờn, đoạn Script sẽ đọc một phần bản ghi trong file lastlog, cỏc bản ghi binaries sẽ được mở ra và giải mó và sau đú nú được in ra màn hỡnh. Lastlog chỉ ghi lại thời gian đăng nhập chứ nú khụng ghi lại lại chi tiết quỏ trỡnh chi tiết sử dụng acc. File log wtmp sẽ thực hiện việc này.

utmp và wtmp

Unix theo dừi cỏc hoạt động của người dựng bởi file log cú tờn là /etc/utmp. Đõy là file nhị phõn cho đứa đựng một bản ghi cho mỗi hàng tty. File log thứ 2 là /var/amd/wtmp cú nhiệm vụ ghi lại tất cả cỏc quỏ trỡnh đăng nhập lần thoỏt ra ngoài. Trong một sụ phiờn bản Unix của Berkeley thỡ trong utmp và wtmp thường chứa đựng:

- Tờn của của cỏc thiết bị đầu cuối được sử dụng để đăng nhập. - Tờn đăng nhập.

- Hostname mà kết nối bắt đầu từ, nếu đăng nhập được thực hiện qua 1 mạng. - Thời gian mà người dựng đăng nhập.

Trong một số hệ thống V Unix, file wtmp được đặt ở /etc/wtmp và được dựng cho mục đớch kiểm toỏn. Trờn hệ thống AT&T V.3.2 thỡ nú chứa đựng cỏc thụng tin:

- Số hiệu dũng cuối. - Tờn thiết bị.

- Quỏ trỡnh ID của login shell. - Code biểu thị kiểu mục.

- Thoỏt khỏi tỡnh trạng của tiến trỡnh. - Thời gian mà mỗi mục được thực hiện.

Phần mở rộng wtmpx được sử dụng bởi Solaris, IRIX và cỏc hệ thống SRV4 Unix chứa đựng những thụng tin sau:

- Tờn truy nhập (cú thể lờn đến tối đa 32 ký tự thay vỡ 8 ký tự). - inittab id.

- Tờn của thiết bị đầu cuối (cú thể lờn đến tối đa 32 ký tự thay vỡ 12 ký tự). - Process ID của tiến trỡnh đăng nhập. (adsbygoogle = window.adsbygoogle || []).push({});

- Thoỏt khỏi tỡnh trạng của tiến trỡnh. - Thời gian mà mỗi mục được thực hiện. - Session ID.

- Remote host name (cho những sự đăng nhập bắt nguồn qua một mạng)

Lệnh "ps" đưa cho bạn một vài thụng tin về tài khoản chớnh xỏc hơn của người dựng hiện thời sử dụng hệ thống của bạn hơn là những lệnh: who, whodo, users và finger. Vỡ trong một vài trường hợp nhưng người dựng cú thể cho phộp những quỏ trỡnh chạy mà khụng cú tờn sử dụng của họ xuất hiện bờn trong /etc/utmp và /var/adm/wtmp.

Tuy nhiờn who, finger, users lại cú một vài lợi thế hơn ps: - Chỳng cho khuụn dạng thụng tin đầu ra dễ đọc hơn ps.

- Đụi khi chỳng đưa ra thụng tin hữu hiệu hơn so với ps như tờn của những remote host từ xa.

- Đặc biệt là chỳng chạy nhanh hơn ps một cỏch đỏng kể.

Quyền hạn (Permission) trờn file /etc/utmp đụi khi cú thể được ghi bởi bất kỳ người dựng nào trờn hệ thống. Điều này thật nguy hiểm, bởi cỏc file log sẽ bị sửa đổi lung tung với mục đớch khụng tốt. Bạn cần thiết lập lại quyền hạn (Permission) một cỏch an toàn hơn.

rwx-rw-r (Owner-Group-Other) Ta sử dụng dũng lệnh sau:

root@localhost#: chmod 755 file_log

Last Program

Mỗi thời gian người dựng đăng nhập được ghi vào Log. Unix sẽ tạo một bản ghi trong wtmp. Last program sẽ trỡnh bày nội dung của file trong một mẫu dạng cú thể hiểu được. Nú sẽ trỡnh bày tất cả cỏc quỏ trỡnh đăng nhập, thoỏt ra trờn mỗi thiết bị. Cuối cựng nú sẽ trỡnh bày toàn bộ nội dung của file. Bạn cú thể ngừng tiến trỡnh này bằng cỏch nhấn CTRL + C.

localhost@#: last

dpryor ttyp3 std.com Sat Mar 11 12:21 - 12:24 (00:02) simsong ttyp2 204.17.195.43 Sat Mar 11 11:56 - 11:57 (00:00) simsong ttyp1 204.17.195.43 Sat Mar 11 11:37 still logged in dpryor console Wed Mar 8 10:47 - 17:41 (2+06:53)

devon console Wed Mar 8 10:43 - 10:47 (00:03)

simsong ttyp3 pleasant.cambrid Mon Mar 6 16:27 - 16:28 (00:01) dpryor ftp mac4 Fri Mar 3 16:31 - 16:33 (00:02)

dpryor console Fri Mar 3 12:01 - 10:43 (4+22:41)

simsong ttyp2 pleasant.cambrid Thu Mar 2 20:08 - 21:08 (00:59)

Trờn một vài hệ thống SVR4 bạn cú thể sử dụng lệnh "who -a" để xem nội dung của file wtmp. Trong màn hỡnh này bạn cú thể theo dừi cỏc phiờn đăng nhập từ ngày 7/3: simsong, dpryor, devon, dpyror (again), and simsong (again), 2 người dựng là dpryor và devon đăng nhập tới Console. Ngoài ra log cũn cho ta biết dpryor và devon cũng đó sử dụng FTP, tờn của những trạm đầu cuối cũng được xuất hiện ở đõy. Ngoài ra last cũn cú thể cho ta thụng tin chi tiết về một người dựng hoặc một thiết bị đầu cuối ra màn hỡnh. Nếu bạn cung cấp một người dựng thỡ nú sẽ hiển thị chi tiết thụng tin đăng nhập và thoỏt ra của người đú. Hoặc tương tự bạn cung cấp cho nú tờn một thiết bị đầu cuỗi thỡ nú sẽ hiển thị thụng tin đăng nhập và thoỏt ra riờng cho thiết bị đầu cuối đú.

root@localhost#: last dpryor

dpryor ttyp3 std.com Sat Mar 11 12:21 - 12:24 (00:02) dpryor console Wed Mar 8 10:47 - 17:41 (2+06:53) dpryor ftp mac4 Fri Mar 3 16:31 - 16:33 (00:02) dpryor console Fri Mar 3 12:01 - 10:43 (4+22:41) dpryor ftp mac4 Mon Feb 27 10:43 - 10:45 (00:01) dpryor ttyp6 std.com Sun Feb 26 01:12 - 01:13 (00:01) dpryor ftp mac4 Thu Feb 23 14:42 - 14:43 (00:01) dpryor ftp mac4 Thu Feb 23 14:20 - 14:25 (00:04) dpryor ttyp3 mac4 Wed Feb 22 13:04 - 13:06 (00:02) dpryor console Tue Feb 21 09:57 - 12:01 (10+02:04)

Tinh chỉnh wtmp File log wtmp sẽ tiếp tục tăng kớch thước rất nhanh trờn ổ cứng chớnh vỡ vậy rất khú theo dừi nội dung của nú. Do đú cú rất nhiều Shell Unix được viết ra để tinh chỉnh wtmp (theo tuần hoặc theo thỏng). Hầu hết chỳng được thực thi một cỏch tự động bởi Cron. Chẳng hạn như đoạn Script sau:

#!/bin/sh # zero the log file

cat /dev/null >/var/adm/wtmp

Bạn muốn sao chộp wtmp, để cú thể tham chiếu với những lần đăng nhập bờn trong thỏng trước đõy. Để thực hiện việc này bạn cần Add thờm những dũng lệnh dưới đõy vào Shell Script ở trờn:

# make a copy of the log file and zero the old one rm /var/adm/wtmp.old

ln /var/adm/wtmp /var/adm/wtmp.old cp /dev/null /var/adm/wtmp.nul mv /var/adm/wtmp.nul /var/adm/wtmp

Tương tự! để thực hiện việc này với last sẽ cú dũng lệnh sau:

root@localhost#: last -f /var/adm/wtmp.old

Tuy nhiờn cú thể last khụng ch phộp bạn chỉ rừ một file wtmp khỏc để tỡm kiếm thụng qua. Nếu muốn kiểm tra lần sao chộp file log trước đõy và bạn đang sử dụng một trong cỏc hệ thống này thỡ ta sẽ phải thiết lập file wtmp sau (đó sao chộp và cập nhật) vào trong nguyờn bản của nú. Bạn cú thể sử dụng Shell Script sau để thực hiện việc đú:

#!/bin/sh mv /var/adm/wtmp /var/adm/wtmp.real mv /var/adm/wtmp.old /var/adm/wtmp last $* mv /var/adm/wtmp /var/adm/wtmp.old mv /var/adm/wtmp.real /var/adm/wtmp (adsbygoogle = window.adsbygoogle || []).push({});

Bất kỳ người dựng nào đăng nhập hay thoỏt ra đều sẽ được ghi vào file log wtmp.old khi lệnh được thực hiện.

Trờn một vài hệ thống V Unix (Solaris). Cỏc quỏ lần đăng nhập thất bại sẽ được ghi vào file log /var/adm/loginlog. Tuy nhiờn trờn một số hệ thống lại khụng cú. Ta cú thể tạo nú bằng cỏc lệnh sau:

root@localhost#: touch /var/adm/loginlog root@localhost#: chmod 600 /var/adm/loginlog root@localhost#: chown root /var/adm/loginlog

Sau khi được khởi toạ nú sẽ ghi lại những lần đăng nhập khụng thành cụng.

Thường đõy là những lần đănh nhập với mục đớch xấu (cú thể kẻ tấn cụng đang cố gắng bẻ khoỏ để đăng nhập vào hệ thống). Cỏc hệ thống V Unix sẽ tự động ngăn chặn một đăng nhập trong một khoảng thời gian nếu như sau 5 lần mà vẫn khụng thành cụng (để đề phũng trường hợp tấn cụng bằng Brute Force). Tất nhiờn Unix sẽ ghi lại chi tiết 5 lần đăng nhập khụng thành cụng này.

root@localhost#: cat /var/adm/loginlog simsong:/dev/pts/8:Mon Nov 27 00:42:14 2001 simsong:/dev/pts/8:Mon Nov 27 00:42:20 2001 simsong:/dev/pts/8:Mon Nov 27 00:42:26 2001 simsong:/dev/pts/8:Mon Nov 27 00:42:39 2001 simsong:/dev/pts/8:Mon Nov 27 00:42:50 2001 3.4 Cài đặt và nõng cấp hệ thống 3.4.1 Linux OpenSSL Server

Tổng quan:

Hầu hết cỏc phần mềm như IMAP&POP, Samba, OpenLDAP, FTP, Apache và những phần mềm khỏc đều yờu cầu cụng việc kiểm tra tớnh xỏc thực (authentication) của người sử dụng trước khi cho phộp sử dụng cỏc dịch vụ này. Nhưng mặc định việc truyền tải sự xỏc minh thụng tin người sử dụng và mật khẩu (password) ở dạng văn bản thuần tỳy nờn cú thể được đọc hoặc thay đổi bởi một người khỏc. Kỹ thuật mó húa như SSL sẽ đảm bảo tớnh an toàn và nguyờn vẹn của dữ liệu, với kỹ thuật này thụng tin truyền trờn mạng ở dạng điểm nối điểm được mó húa. Một khi OpenSSL đó được cài đặt trờn Linux server, ta cú thể sử dụng nú như một cụng cụ thứ ba cho phộp cỏc ứng dụng khỏc dựng tớnh năng SSL.

Sự diễn giải về OpenSSL:

Dự ỏn OpenSSL là một kết quả của sự cộng tỏc nhằm phỏt triển một kỹ thuật bảo mật dạng thương mại, đầy đủ cỏc đặc trưng và là bộ cụng cụ mó nguồn mở thực thi cỏc

Một phần của tài liệu Máy chủ Linux (Trang 29 - 40)