<![CDATA[Latest posts for the topic "Cấu hình và sử dụng các log files của hệ thống"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Cấu hình và sử dụng các log files của hệ thống Nguồn: Section 18.3, chương 18, phần II - LPI Nhiều sự kiện xảy ra trên hệ thống Linux của bạn nên được log lại cho mục đích quản trị. Linux sử dụng hệ thống syslogd để hiển thị và lưu thông tin miêu tả về các sự kiện này. Hệ thống này cho phép kiểm soát chặt chẽ logging của các messages từ kernel, từ các tiến trình đang chạy trên hệ thống, hoặc các hệ thống từ xa. Thông báo có thể hiển thị trên console, trong log files và trên màn hình text của người dùng trong hệ thống Phần 1. Cấu hình syslogd Những hành vi của syslogd được kiểm soát bởi file cấu hình của nó - /etc/syslog.conf (trên fedora 8 đã đổi thành rsyslog.conf). File text này cho biết những gì được log và log vào đâu. Mỗi dòng sẽ chứa đựng lời chỉ dẫn theo dạng
facility.level action 
Lời chỉ dẫn này được định nghĩa như sau: facility: đại diện cho đối tượng tạo ra thông báo (kernel, process), nó có thể nhận những giá trị sau:
  • auth: sử dụng cho những sự kiện bảo mật authpriv: các thông báo liên quan đến kiểm soát truy cập và bảo mật cron: cron daemon daemon: sử dụng bởi các tiến trình hệ thống và các daemons khác kern: các thông báo từ kernel lpr: hệ thống in ấn mark: những thông báo được generated bởi bản thân syslogd. Nó chỉ chứa một biến timestamp và một chuỗi "--MARK--". news: hệ thống tin tức syslog: những thông báo được generated bởi bản thân syslogd. user: thông báo về cấp người dùng chung uucp: hệ thống con UUCP local0 to local7: dự trữ cho sử dụng nội bộ
Việc sử dụng facility cho phép bạn kiểm soát địa chỉ đến của messages dựa trên nguồn gốc của nó. level: xác định một ngưỡng mà messages sẽ được logged. level có thể nhận các giá trị sau:
  • debug: các messages ở chế độ debug info: messages mang thông tin notice: messages mang tính chất thông báo warning (hoặc warn): messages cảnh báo err (hoặc error): messages lỗi crit: messages nguy hiểm alert: messages về các hành động phải được thực hiện ngay emerg (hoặc panic): messages khi hệ thống không thể dùng được nữa
Ngoài ra còn một mức đặc biệt được gọi là none, mức này sẽ disable facility đi cùng. level định nghĩa một số lượng các bản ghi chi tiết trong log file. Dấu sao [*] có thể được sử dụng để miêu tả cho tất cả các facilities hoặc tất cả các levels. action: đại diện cho địa chỉ của messages tương ứng với facility.level. action có thể là một tên file, một host name đứng trước ký tự @, hoặc một danh sách người dùng ngăn cách bằng dấu phảy, hoặc một dấu *. Để hiểu rõ hơn về tất cả thành phần cũng như tham số này, bạn cần đọc man 5 syslog.conf Ví dụ, để theo dõi các daemon bạn có thể thêm 1 dòng vào /etc/syslog.conf như sau: Code:
# Define a new log file for daemon facility
daemon.*                           /var/log/daemon.log
Bạn cần restart syslog để thay đổi này có hiệu lực: Code:
$ sudo /sbin/service syslog restart
Shutting down kernel logger:                               [  OK  ]
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
Starting kernel logger:                                    [  OK  ]
Tiếp theo bạn cần reboot để daemon.log được tạo trong /var/log Để test, bạn có thể sử dụng tiện ích logger để gửi messages đến facility bằng shell script: Code:
$ logger -p daemon.notice "This is a notice"
Thông báo "This is a notice" sẽ xuất hiện trong /var/log/daemon.log
# cat /var/log/daemon.log | grep notice Dec 1 20:45:08 localhost quanta: This is a notice  
Ví dụ về /etc/rsyslog.conf trên Fedora 8 của tớ: Code:
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*							/dev/console

# Define a new log file for daemon facility
daemon.*                                               /var/log/daemon.log

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none		/var/log/messages

# The authpriv file has restricted access.
authpriv.*						/var/log/secure

# Log all the mail messages in one place.
mail.*							-/var/log/maillog


# Log cron stuff
cron.*							/var/log/cron

# Everybody gets emergency messages
*.emerg							*

# Save news errors of level crit and higher in a special file.
uucp,news.crit						/var/log/spooler

# Save boot messages also to boot.log
local7.*						/var/log/boot.log

#
# INN
#
news.=crit                                        /var/log/news/news.crit
news.=err                                         /var/log/news/news.err
news.notice                                       /var/log/news/news.notice
(Hết phần 1) Đọc tiếp: Phần 2. Log File Rotation]]>
/hvaonline/posts/list/16534.html#99058 /hvaonline/posts/list/16534.html#99058 GMT
Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#99081 /hvaonline/posts/list/16534.html#99081 GMT Re: Cấu hình và sử dụng các log files của hệ thống

281 wrote:
bồ có thể cho link bản "nguồn" không? cám ơn trước. 
Bạn vui lòng search LPI trong box "Thông tin về các địa chỉ và tài liệu hữu ích". Có ít nhất nil và bác Golden Autumn đã up quyển này lên. ]]>
/hvaonline/posts/list/16534.html#99090 /hvaonline/posts/list/16534.html#99090 GMT
Re: Cấu hình và sử dụng các log files của hệ thống Phần 2. Log File Rotation Phần lớn các distro sẽ cài đặt một cấu hình syslog mặc định cho bạn, bao gồm logging to messages và các log files khác trong /var/log. Để ngăn cản những files này ngày càng trở nên cồng kềnh và khó kiểm soát, một hệ thống quay vòng log file (a log file rotation scheme) nên được cài đặt. Hệ thống cron đưa ra các lệnh để thiết lập những log files mới, những file cũ được đổi tên bằng cách thay một con số ở hậu tố. Với loại quay vòng này, /var/log/messages của ngày hôm qua sẽ trở thành messages.1 của ngày hôm nay và một messages mới được tạo. Sự luân phiên này được cấu hình cho một số lượng lớn các file, và các log files cũ nhất sẽ được xoá khi sự luân phiên bắt đầu chạy. Ví dụ trong /var/log của tớ có các messages sau: messages, messages.1, messages-20071111, messages-20071118, ... Tiện ích thi hành rotation là logrotate. Lệnh này được cấu hình sử dụng cho một hoặc nhiều files - được xác định bởi các tham số đi cùng. File cấu hình mặc định là /etc/logrotate.conf. Ví dụ với Fedora 8 trên máy tớ: Code:
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.
Trong ví dụ này, bạn sẽ thấy:
  • Hệ thống sẽ quay vòng log files hàng tuần Lưu lại những thông tin logs đáng giá trong 4 tuần Sử dụng định dạng Ngày tháng thêm vào để làm hậu tố của log files (20071111, 20071118, ...) Thông tin về sự quay vòng log của các gói RPM nằm trong /etc/logrotate.d rotation được thiết lập cho 2 files: /var/log/wtmp/var/log/btmp
]]>
/hvaonline/posts/list/16534.html#99134 /hvaonline/posts/list/16534.html#99134 GMT
Re: Cấu hình và sử dụng các log files của hệ thống Phần 3. Examining Log Files Bạn có thể học được nhiều về cách hoạt động của hệ thống bằng cách xem lại các log files được tạo. Một lúc nào đó sẽ cần thiết để gỡ rối vấn đề gặp phải từ những thông tin đã được logged đó. Phần lớn các log files có dạng plain text, nó rất dễ dàng để xem lại với một vài lệnh như: tail, less, và grep Một dòng thông báo log được tạo với các thông tin sau, ngăn cách bởi 1 khoảng trắng (space)
  • Date/time Origin hostname Message sender Message text
Một đoạn messages điển hình, trông giống như sau: Code:
openvpn.net/howto.html#mitm for more info.
Nov 21 14:42:13 localhost openvpn[1964]: Re-using SSL/TLS context
Nov 21 14:42:13 localhost openvpn[1964]: LZO compression initialized
Nov 21 14:42:13 localhost openvpn[1964]: Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Nov 21 14:42:13 localhost openvpn[1964]: Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Nov 21 14:42:13 localhost openvpn[1964]: Local Options hash (VER=V4): '41690919'
Nov 21 14:42:13 localhost openvpn[1964]: Expected Remote Options hash (VER=V4): '530fdded'
Nov 21 14:42:13 localhost openvpn[1964]: Socket Buffers: R=[110592->131072] S=[110592->131072]
Nov 21 14:42:13 localhost openvpn[1964]: UDPv4 link local: [undef]
Nov 21 14:42:13 localhost openvpn[1964]: UDPv4 link remote: 192.168.1.3:1194
Nov 21 14:42:13 localhost openvpn[1964]: read UDPv4 [ECONNREFUSED]: Connection refused (code=111)
Trong trường hợp này, hostname là localhost và messages đến từ dịch vụ openvpn. Bất cứ lúc nào bạn cũng có thể xem lại nội dung log files của bạn bằng cách dùng less Code:
$ less /var/log/messages
hoặc tail Code:
$ tail -f /var/log/messages
Để tìm kiếm các thông báo xác định về mouse, bạn có thể dùng grep Code:
# grep '[Mm]ouse' /var/log/messages
Dec  8 00:15:28 smp kernel: Detected PS/2 Mouse Port.
Dec  8 10:55:02 smp gpm: Shutting down gpm mouse services:
Thông thường, nếu bạn sử dụng grep để tìm kiếm một item đặc biệt trong /var/log/messages, bạn sẽ cần phải tìm kiếm tất cả các rotated files với một wildcard (tạm dịch: ký tự đại diện). Chẳng hạn, để tìm kiếm tất cả các messages từ sendmail bạn cần: Code:
# grep 'sendmail:' /var/log/messages*
Khi bạn xác định vấn đề từ log files, hãy nhìn vào hostnamesender đầu tiên, sau đó là messages text. Trong nhiều trường hợp bạn có thể xác định được cái gì là sai từ thông báo đó. Thi thoảng, những thông báo lỗi đó chỉ là đầu mối, và việc xem lại toàn bộ các logs của bạn là cần thiết. Trong trường hợp này, sẽ hữu ích nếu bạn tạm thời thay đổi level trong /etc/syslog.conf thành debug để log lại nhiều thông tin hơn giúp bạn giải quyết vấn đề.]]>
/hvaonline/posts/list/16534.html#99178 /hvaonline/posts/list/16534.html#99178 GMT
Re: Cấu hình và sử dụng các log files của hệ thống Phần 4 (viết thêm): Logging syslog Messages to a Remote Linux Server Nguồn: http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch05_:_Troubleshooting_Linux_with_syslog Việc logging các thông báo của hệ thống đến một remote server cũng là một cách bảo mật tốt. Thuận lợi của việc này: + Tập trung các log files về một server trung tâm + Kiểm soát lỗi hoặc các hành động nguy hiểm một cách tốt hơn + Hành động xóa log files của kẻ xấu không thể xảy ra cùng một lúc nhất là khi bạn ngăn cản user truy cập đến logging server Cấu hình syslog cho server Theo mặc định thì syslog không nhận các thông báo từ remote clients. Để làm điều này bạn cần chỉnh /etc/sysconfig/syslog (trong Fedora 8 đã đổi thành rsyslog), và thêm một tuỳ chọn -r vào cuối tham số SYSLOGD_OPTIONS
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r # See syslogd(8) for more details SYSLOGD_OPTIONS="-m 0 -r" # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-x" # SYSLOG_UMASK=077 # set this to a umask value to use for all log files as in umask(1). # By default, all permissions are removed for "group" and "other".  
Nếu trên server bạn có dùng iptables, hãy chắc chắn rằng cổng 514 cho UDP đã được mở:
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT  
Nhớ restart iptables: Code:
# /sbin/service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]ntrack_ftp
Cấu hình cho client Syslog server đã có thể nhận các syslog messages. Ở client, bạn phải cấu hình để gửi messages đến nó. Để thực hiện điều này bạn cần sửa /etc/syslog.conf như sau: Code:
*.debug                                       @192.168.1.3
*.debug                                       /var/log/messages
Từ bây giờ, tất cả các messages có level là debug hoặc cao hơn đều được log tại server 192.168.1.3 cũng như tại local (/var/log/messages) Hãy nhớ là chúng ta cần restart lại syslog Code:
$ sudo /sbin/service syslog restart
Password:
Shutting down kernel logger:                               [  OK  ]
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
Starting kernel logger:                                    [  OK  ]
Test: Trên client, bạn thử: Code:
$ sudo /sbin/service openvpn stop
Shutting down openvpn:                                     [  OK  ]
Trên server, kiểm tra xem đã nhận được syslog messages chưa: Code:
# tail /var/log/messages
...
...
Dec  1 21:31:13 192.168.1.2 localhost openvpn[4507]: TCP/UDP: Closing socket
Dec  1 21:31:13 192.168.1.2 localhost openvpn[4507]: SIGTERM[hard,] received, process exiting
...
...
Như vậy, việc gửi logging messages đến remote server đã thành công.]]>
/hvaonline/posts/list/16534.html#101040 /hvaonline/posts/list/16534.html#101040 GMT
Re: Cấu hình và sử dụng các log files của hệ thống Code:
# Save boot messages also to boot.log
 local7.*						/var/log/boot.log
Để *.* cho /var/log/boot.log có nghĩa là tất cả các log messages sẽ được lưu trong file đó. Ngoài ra, nên thêm vào: Code:
# Save all authorization messages to auth.log
 auth,authpriv.*			/var/log/auth.log
Để lưu chuyên biệt các messages liên quan đến cấu hình, hoặc tinh chỉnh hệ thống. VD các sudo messages chẳng hạn. Đối với việc lưu log tập trung, phần cấu hình syslog clients, việc edit file /etc/hosts chỉ nên sử dụng trong trường hợp mạng LAN ko có DNS server, khai báo DNS name của tất cả các server có trong LAN. Nếu đã có DNS Server thì ko cần edit file /etc/hosts nữa mà sử dụng DNS name của syslog server. Ví dụ: Code:
# Log anything (except mail, news, authpriv, cron) of level info or higher.
 # Don't log private authentication messages!
 *.info;mail.none;news.none;authpriv.none;cron.none		/var/log/messages

 # Lưu tập trung các thông tin của /var/log/messages về server syslog.mycompany.com
 *.info;mail.none;news.none;authpriv.none;cron.none		@syslog.mycompany.com

 # Save all authorization messages to auth.log
 auth,authpriv.*			/var/log/auth.log

 # Lưu tất cả các authorization message về syslog server
 auth,authpriv.*			@syslog.mycompany.com
Ngoài ra, nếu mạng LAN có quá nhiều server cần lưu tập trung syslog messages, thì nên nghiên cứu sử dụng 1 phần mềm khác. Tui đề cử Balabit syslog-ng. Thử tìm hiểu nhé. ]]>
/hvaonline/posts/list/16534.html#101106 /hvaonline/posts/list/16534.html#101106 GMT
Re: Cấu hình và sử dụng các log files của hệ thống

lQ wrote:
Tutor rất hay, nhưng có 1 chỗ ko chuẩn. Config của /etc/rsyslog.conf, phần Save boot messages also to boot.log, đúng ra phải là: Code:
# Save boot messages also to boot.log
 local7.*						/var/log/boot.log
Để *.* cho /var/log/boot.log có nghĩa là tất cả các log messages sẽ được lưu trong file đó.  
Cảm ơn bác lQ đã chỉ ra chỗ không chuẩn. Thực ra chỗ đó là do tớ test trên máy tớ trước khi đọc và viết cái tutor trên. Sau khi tìm đọc và hiểu rồi thì lại quên chỉnh lại. (Đã chỉnh lại trong bài viết trên)

lQ wrote:
Ngoài ra, nên thêm vào: Code:
# Save all authorization messages to auth.log
 auth,authpriv.*			/var/log/auth.log
Để lưu chuyên biệt các messages liên quan đến cấu hình, hoặc tinh chỉnh hệ thống. VD các sudo messages chẳng hạn. Đối với việc lưu log tập trung, phần cấu hình syslog clients, việc edit file /etc/hosts chỉ nên sử dụng trong trường hợp mạng LAN ko có DNS server, khai báo DNS name của tất cả các server có trong LAN. Nếu đã có DNS Server thì ko cần edit file /etc/hosts nữa mà sử dụng DNS name của syslog server. Ví dụ: Code:
# Log anything (except mail, news, authpriv, cron) of level info or higher.
 # Don't log private authentication messages!
 *.info;mail.none;news.none;authpriv.none;cron.none		/var/log/messages

 # Lưu tập trung các thông tin của /var/log/messages về server syslog.mycompany.com
 *.info;mail.none;news.none;authpriv.none;cron.none		@syslog.mycompany.com

 # Save all authorization messages to auth.log
 auth,authpriv.*			/var/log/auth.log

 # Lưu tất cả các authorization message về syslog server
 auth,authpriv.*			@syslog.mycompany.com
 
Cảm ơn bác về những góp ý này

lQ wrote:
Ngoài ra, nếu mạng LAN có quá nhiều server cần lưu tập trung syslog messages, thì nên nghiên cứu sử dụng 1 phần mềm khác. Tui đề cử Balabit syslog-ng. Thử tìm hiểu nhé.  
hì, phần này tớ đang đọc]]>
/hvaonline/posts/list/16534.html#101113 /hvaonline/posts/list/16534.html#101113 GMT
Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#101135 /hvaonline/posts/list/16534.html#101135 GMT Re: Cấu hình và sử dụng các log files của hệ thống

rcrackvn wrote:
không nên cấu hình syslogd chấp nhận remote logging, vì syslogd chấp nhận message từ remote client gửi tới UDP port 514, một người với mục đích xấu có thể viết 1 chương trình nho nhỏ để send junk data tới log server, nhanh chóng fill-up hết server disk space về lâu dài, hoặc fill up udp receive buffer tại log server ngay tức thời, dẫn tới việc drop các log data thực sự từ các client khác, hoặc khiến việc log audit về sau trở nên khó khăn hơn do phải parse 1 đống rác lẫn lộn với data hữu ích. 
Chào rcrackvn Bạn nghĩ sao nếu mình dùng syslog-ng để nhận remote logging thông qua TCP port 514 thay vì UDP. Hơn nữa mình cũng có thể kết hợp syslog-ng với ssh để thực hiện việc remote logging.

rcrackvn wrote:
Tốt hơn vẫn là viết cron job để scp logfile lên 1 server tập trung. 
Cảm ơn rcrackvn về góp ý này.]]>
/hvaonline/posts/list/16534.html#101141 /hvaonline/posts/list/16534.html#101141 GMT
Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#101150 /hvaonline/posts/list/16534.html#101150 GMT Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#101221 /hvaonline/posts/list/16534.html#101221 GMT Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#101309 /hvaonline/posts/list/16534.html#101309 GMT Re: Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#101341 /hvaonline/posts/list/16534.html#101341 GMT Re: Cấu hình và sử dụng các log files của hệ thống Phần 5: Cài đặt và cấu hình syslog-ng syslog-ng là một ứng dụng tổ hợp các tính năng của logrotatesyslog, nó cho phép tùy biến dễ dàng, và giàu tính năng hơn. Ưu điểm: + logging đáng tin cậy vì có thể truyền qua TCP + Không có sự quay vòng log files mà chúng được lưu theo vị trí mặc định + Cải thiện các log entries 1. Cài đặt Cả eventlogsyslog-ng các bạn đều có thể download từ website: www.balabit.com Code:
# wget http://www.balabit.com/downloads/files/eventlog/0.2/eventlog-0.2.5.tar.gz
--21:43:01--  http://www.balabit.com/downloads/files/eventlog/0.2/eventlog-0.2.5.tar.gz
Resolving www.balabit.com... 212.92.18.33
Connecting to www.balabit.com|212.92.18.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: `eventlog-0.2.5.tar.gz'

    [                 <=>                    ] 312,164     35.3K/s   in 8.6s   

21:43:29 (35.3 KB/s) - `eventlog-0.2.5.tar.gz' saved [312164]
Code:
# wget http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-2.0.6.tar.gz
--21:46:37--  http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-2.0.6.tar.gz
Resolving www.balabit.com... 212.92.18.33
Connecting to www.balabit.com|212.92.18.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: `syslog-ng-2.0.6.tar.gz'

    [                                  <=>   ] 369,302     15.2K/s   in 21s    

21:47:00 (17.0 KB/s) - `syslog-ng-2.0.6.tar.gz' saved [369302]
Tiến hành cài thư viện glib (nếu chưa có) Code:
$ yum -y install glib
Cài đặt eventlog Code:
# tar -zxvf eventlog-0.2.5.tar.gz
# cd eventlog-0.2.5
# ./configure
# make
# make install
Gán biến môi trường PKG_CONFIG_PATH Code:
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
Bước tiếp theo, cài syslog-ng Code:
# tar -zxvf syslog-ng-2.0.6.tar.gz
# cd syslog-ng-2.0.6
# ./configure --sysconfdir=/etc
# make
# make install
Quá trình cài đặt kết thúc, chúng ta sẽ có được các file cấu hình mẫu nằm trong thư mục contrib Code:
[root@localhost syslog-ng-2.0.6]# ls contrib
aix-packaging      init.d.solaris  Makefile.in         syslog-ng.conf.HP-UX
fedora-packaging   init.d.SunOS    README              syslog-ng.conf.RedHat
hpux-packaging     init.d.SuSE     relogger.pl         syslog-ng.conf.SunOS
init.d.HP-UX       lfs-packaging   rhel-packaging      syslog-ng.vim
init.d.RedHat      Makefile        syslog2ng
init.d.RedHat-7.3  Makefile.am     syslog-ng.conf.doc
Tạo một thư mục syslog-ng trong /etc và copy các scripts và file cấu hình mẫu đến nơi tương ứng (Tuỳ vào Distro bạn đang dùng mà chọn thư mục thích hợp) Code:
# mkdir /etc/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.init /etc/init.d/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.conf /etc/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.sysconfig /etc/sysconfig/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.logrotate /etc/logrotate.d/syslog-ng
Thay đổi quyền cho file /etc/init.d/syslog-ng Code:
# chmod 755 /etc/init.d/syslog-ng
Lúc này bạn cần tìm đúng vị trí của syslog-ng và cho init.d script trỏ đến đó Code:
# updatedb
# locate syslog-ng | grep bin
/usr/local/sbin/syslog-ng
# vi /etc/init.d/syslog-ng
...
#exec="/sbin/syslog-ng"
exec="/usr/local/sbin/syslog-ng"
...
Dừng syslog và khởi tạo syslog-ng Code:
# service syslog stop
# service syslog-ng start
Tạo một group logs và thêm các users cần dùng vào Code:
# groupadd logs
# usermod -G logs quanta
Cấu hình để syslog-ng khởi động ở lần reboot tiếp theo Code:
# chkconfig syslog off
# chkconfig syslog-ng on
Như vậy bạn đã cài đặt xong syslog-ng trên server. Phần tiếp theo chúng ta sẽ tìm hiểu về cách cấu hình syslog-ng trên server, và cấu hình syslog tại client.]]>
/hvaonline/posts/list/16534.html#101346 /hvaonline/posts/list/16534.html#101346 GMT
Re: Cấu hình và sử dụng các log files của hệ thống

azteam wrote:
Bài viết rất bổ ích về syslog. Cảm ơn bác quanta. Hiện tại em đang thử viết tool hoạt động như một IDS dựa trên phân tích syslog của webserver. Tuy nhiên còn đang mắc ở đoạn parse những syslogs (exam: apache log) này sang một chuẩn riêng. Nhân tiện cho em một số hướng giải quyết?. Thanks. 
Thử tìm hiểu về OSSEC xem. Đây là 1 Host-based IDS. Một trong những tính năng của nó là phân tích logs và phát ra những alerts theo những rules đã cài đặt trước. Vì lĩnh vực phân tích log khá rộng nên để thảo luận chi tiết và tránh đi xa chủ đề syslog này, đề nghị bạn mở 1 topic chuyên về phân tích logs. Nếu chỉ đào sâu công cụ OSSEC thì đặt tiêu đề có liên quan đến phần mềm này.]]>
/hvaonline/posts/list/16534.html#101350 /hvaonline/posts/list/16534.html#101350 GMT
Re: Cấu hình và sử dụng các log files của hệ thống 2. Cấu hình syslog-ng Lấy một ví dụ với /etc/syslog-ng/syslog-ng.conf trong Fedora 8: Code:
# syslog-ng configuration file.
#
# This should behave pretty much like the original syslog on RedHat. But
# it could be configured a lot smarter.
#
# See syslog-ng(8) and syslog-ng.conf(5) for more information.
# ...
#

options {
    sync (0);
    time_reopen (10);
    log_fifo_size (1000);
    use_dns (no);
    use_fqdn (no);
    create_dirs (yes);
    keep_hostname (yes);
};

source s_sys {
    file ("/proc/kmsg" log_prefix("kernel: "));
    unix-stream ("/dev/log");
    internal();
    # udp(ip(0.0.0.0) port(514));
    # tcp(ip(0.0.0.0) port(514));
};

destination d_cons { file("/dev/console"); };
destination d_mesg { file("/var/log/messages"); };
destination d_auth { file("/var/log/secure"); };
destination d_mail { file("/var/log/maillog" sync(10)); };
destination d_spol { file("/var/log/spooler"); };
destination d_boot { file("/var/log/boot.log"); };
destination d_cron { file("/var/log/cron"); };
destination d_mlal { usertty("*"); };

#filter f_filter1   { facility(kern); };
filter f_filter2   { level(info..emerg) and
                     not facility(mail,authpriv,cron); };
filter f_filter3   { facility(authpriv); };
filter f_filter4   { facility(mail); };
filter f_filter5   { level(emerg); };
filter f_filter6   { facility(uucp) or
                     (facility(news) and level(crit..emerg)); };
filter f_filter7   { facility(local7); };
filter f_filter8   { facility(cron); };

#log { source(s_sys); filter(f_filter1); destination(d_cons); };
log { source(s_sys); filter(f_filter2); destination(d_mesg); };
log { source(s_sys); filter(f_filter3); destination(d_auth); };
log { source(s_sys); filter(f_filter4); destination(d_mail); };
log { source(s_sys); filter(f_filter5); destination(d_mlal); };
log { source(s_sys); filter(f_filter6); destination(d_spol); };
log { source(s_sys); filter(f_filter7); destination(d_boot); };
log { source(s_sys); filter(f_filter8); destination(d_cron); };

# vim:set ai ts=4 sw=4 sts=4 et:
Bạn có thể dễ dàng nhận ra file cấu hình của syslog-ng được chia thành các khối riêng rẽ: options, source, filter, destination, và log. Ý nghĩa cơ bản của các khối này như sau:
  • options: nơi chứa những tùy chọn toàn cục, những tuỳ chọn này có thể bị ghi đè (overridden) bởi 1 trong 4 sections sau source: chứa nguồn của thông báo, nó có thể là: files, local sockets hoặc remote hosts destination: đích đến của thông báo. Nó cũng có thể là: files, local sockets hoặc remote hosts filter: đây là một chức năng mạnh và linh động của syslog-ng. Bạn có thể dùng nó để lọc bất cứ log messages nào như là: syslogd chuẩn, log level, host names, hoặc một nội dung tùy ý như là một cụm ký tự hay một chuỗi số log: Khối này chứa các câu lệnh log, kết nối giữa: source, destination, filter để báo cho syslog-ng biết là chúng phải làm gì
Một khối options điển hình như sau: Code:
options {
    sync (0);
    time_reopen (10);
    log_fifo_size (1000);
    use_dns (no);
    use_fqdn (no);
    create_dirs (yes);
    keep_hostname (yes);
};
Những lệnh trong khối options này phải sử dụng những tuỳ chọn đã được định nghĩa trong /etc/syslog-ng/syslog-ng.conf. Ý nghĩa của từng tham số trong khối này: sync: Có bao nhiêu dòng messages sẽ được giữ lại ở hàng đợi output trước khi ghi ra đĩa. 0 là một tuỳ chọn ưa thích - điều đó có nghĩa là bạn sẽ ghi lại mọi thứ time_reopen: thời gian đợi (tính bằng s) trước khi những kết nối hỏng được thực hiện lại log_fifo_size: số dòng thông báo lớn nhất trong output queue. Output queue được hiểu là tất cả các destinations file use_dns (yes|no): dùng hay không dùng DNS use_fqdn (yes|no): Có dùng một tên miền đầy đủ thay vì một tên miền ngắn hay không create_dirs (yes|no): có cho phép tạo thư mục cho các file đích hay không keep_hostname (yes|no): Xác định xem có trust hostname trong các log messages hay không. Nếu keep_hostname có giá trị là yes và có 1 hostname trong message thì syslog-ng không làm gì cả. Ngược lại, nó luôn luôn ghi đè lên những thông tin từ nơi nhận message Source, Destination, và Filter Statements Phần này được cấu hình tùy ý. Để hiển cặn kẽ các thành phần cũng như tham số trong những khối này bạn cần đọc man 5 syslog-ng.conf Khối log sẽ đặt tất cả chúng (source, filter, destination) cùng nhau: Code:
log { source(s_sys); filter(f_filter2); destination(d_mesg); };
Enabling Remote Logging Chúng ta có thể gửi log messages từ các remote clients đến server với syslogd. Nhưng cách làm này là không an toàn và thông tin có thể bị mất bởi vì syslogd truyền bằng UDP packets. Đó là lý do bạn cần cài đặt syslog-ng trên client hosts. Thêm những dòng sau vào syslog-ng.conf trên server để cho phép nhận messages từ remote clients và dumps chúng ra một file trên host Code:
source s_remote { tcp(); };
destination d_clients { file("/var/log/HOSTS/$HOST/"); };
log { source(s_remote); destination(d_clients); };
Lúc này trên client host bạn có thể tập hợp tất cả các local messages và gửi chúng đến remote server như sau: Code:
#sample syslog-ng.conf for a remote client
source s_local { internal(); unix-stream("/dev/log"); file("/proc/kmsg" log_prefix("kernel: ")); };
destination d_loghost {tcp("192.168.1.2" port(514));};
log { source(s_local); destination(d_loghost); };
Hãy nhớ rằng, bất cứ khi nào bạn thay đổi syslog-ng.conf bạn cần khởi động lại syslog-ng: Code:
# /etc/init.d/syslog-ng restart
Kiểm tra mọi thứ Bây giờ bạn có thể chạy một vài phép thử đơn giản trên cả server và client. Thử tạo một login session mới trên server hoặc là chạy su hay sudo. Sau đó check /var/log/auth.log. Trên client bạn thử chạy bất cứ lệnh nào đó, sau đó kiểm tra xem có thư mục mới nào được tạo cho remote client trong /var/log/HOSTS hay không. Một cách khác là sử dụng lệnh logger: Code:
# logger "this is a test"
# logger -p auth.debug "this is a test"
Lệnh này sẽ tạo một dòng như sau trong logfiles:
Apr 1 16:08:42 localhost.localdomain logger: this is a test 
Như vậy là bạn đã có cái nhìn cơ bản về syslog-ng. Ở phần tiếp theo, bạn sẽ học cách điều chỉnh và tổ chức syslog-ng theo cách bạn muốn, và mã hóa tất cả các chuyển giao qua mạng bằng syslog-ng. ]]>
/hvaonline/posts/list/16534.html#101401 /hvaonline/posts/list/16534.html#101401 GMT
Re: Cấu hình và sử dụng các log files của hệ thống Code:
destination d_auth_log { file("/var/log/auth.log"); };

 filter f_filter9   { facility(auth) or facility(authpriv); };
 
 log { source(s_sys); filter(f_filter9); destination(d_auth_log); };
Ko có lệnh log vào file auth.log thì lấy đâu ra file này để xem :-P. Cũng có thể ko cần định nghĩa d_auth_log mà lưu chung 2 facilities này trong cùng file /var/log/secure. * Khi thay đổi syslog-ng.conf, không nhất thiết phải restart service này mà chỉ cần reload cũng được. Nên kiểm tra syslog-ng.conf xem có chỗ nào cấu hình sai hay ko. Vì vậy, sau khi chỉnh syslog-ng.conf, thực hiện 02 lệnh sau: Code:
/usr/local/sbin/syslog-ng -s /etc/syslog-ng.conf
/etc/init.d/syslog-ng reload
(2 lệnh trên giả dụ file binary syslog-ng được cài tại /usr/local/sbin và file config nằm ở folder /etc/) Nếu câu lệnh kiểm tra ko xuất hiện thông báo nào thì có nghĩa là config ko bị lỗi. Ngược lại thì nên kiểm tra file config.]]>
/hvaonline/posts/list/16534.html#101432 /hvaonline/posts/list/16534.html#101432 GMT
Re: Cấu hình và sử dụng các log files của hệ thống

lQ wrote:

azteam wrote:
Bài viết rất bổ ích về syslog. Cảm ơn bác quanta. Hiện tại em đang thử viết tool hoạt động như một IDS dựa trên phân tích syslog của webserver. Tuy nhiên còn đang mắc ở đoạn parse những syslogs (exam: apache log) này sang một chuẩn riêng. Nhân tiện cho em một số hướng giải quyết?. Thanks. 
Thử tìm hiểu về OSSEC xem. Đây là 1 Host-based IDS. Một trong những tính năng của nó là phân tích logs và phát ra những alerts theo những rules đã cài đặt trước.  
OSSEC em sẽ tìm hiểu sau vì theo em biết nó khá rộng và phức tạp. Hiện tại em đang tìm hiểu về secwatch.

lQ wrote:
Vì lĩnh vực phân tích log khá rộng nên để thảo luận chi tiết và tránh đi xa chủ đề syslog này, đề nghị bạn mở 1 topic chuyên về phân tích logs. Nếu chỉ đào sâu công cụ OSSEC thì đặt tiêu đề có liên quan đến phần mềm này.  
Em sẽ mở topic mới về vấn đề trên. Thanks bác nhắc nhở.]]>
/hvaonline/posts/list/16534.html#101683 /hvaonline/posts/list/16534.html#101683 GMT
Re: Cấu hình và sử dụng các log files của hệ thống

quanta wrote:
Phần 5: Cài đặt và cấu hình syslog-ng syslog-ng là một ứng dụng tổ hợp các tính năng của logrotatesyslog, nó cho phép tùy biến dễ dàng, và giàu tính năng hơn. Ưu điểm: + logging đáng tin cậy vì có thể truyền qua TCP + Không có sự quay vòng log files mà chúng được lưu theo vị trí mặc định + Cải thiện các log entries 1. Cài đặt Cả eventlogsyslog-ng các bạn đều có thể download từ website: www.balabit.com Code:
# wget http://www.balabit.com/downloads/files/eventlog/0.2/eventlog-0.2.5.tar.gz
--21:43:01--  http://www.balabit.com/downloads/files/eventlog/0.2/eventlog-0.2.5.tar.gz
Resolving www.balabit.com... 212.92.18.33
Connecting to www.balabit.com|212.92.18.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: `eventlog-0.2.5.tar.gz'

    [                 <=>                    ] 312,164     35.3K/s   in 8.6s   

21:43:29 (35.3 KB/s) - `eventlog-0.2.5.tar.gz' saved [312164]
Code:
# wget http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-2.0.6.tar.gz
--21:46:37--  http://www.balabit.com/downloads/files/syslog-ng/sources/2.0/src/syslog-ng-2.0.6.tar.gz
Resolving www.balabit.com... 212.92.18.33
Connecting to www.balabit.com|212.92.18.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/octet-stream]
Saving to: `syslog-ng-2.0.6.tar.gz'

    [                                  <=>   ] 369,302     15.2K/s   in 21s    

21:47:00 (17.0 KB/s) - `syslog-ng-2.0.6.tar.gz' saved [369302]
Tiến hành cài thư viện glib (nếu chưa có) Code:
$ yum -y install glib
Cài đặt eventlog Code:
# tar -zxvf eventlog-0.2.5.tar.gz
# cd eventlog-0.2.5
# ./configure
# make
# make install
Gán biến môi trường PKG_CONFIG_PATH Code:
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
Bước tiếp theo, cài syslog-ng Code:
# tar -zxvf syslog-ng-2.0.6.tar.gz
# cd syslog-ng-2.0.6
# ./configure --sysconfdir=/etc
# make
# make install
Quá trình cài đặt kết thúc, chúng ta sẽ có được các file cấu hình mẫu nằm trong thư mục contrib Code:
[root@localhost syslog-ng-2.0.6]# ls contrib
aix-packaging      init.d.solaris  Makefile.in         syslog-ng.conf.HP-UX
fedora-packaging   init.d.SunOS    README              syslog-ng.conf.RedHat
hpux-packaging     init.d.SuSE     relogger.pl         syslog-ng.conf.SunOS
init.d.HP-UX       lfs-packaging   rhel-packaging      syslog-ng.vim
init.d.RedHat      Makefile        syslog2ng
init.d.RedHat-7.3  Makefile.am     syslog-ng.conf.doc
Tạo một thư mục syslog-ng trong /etc và copy các scripts và file cấu hình mẫu đến nơi tương ứng (Tuỳ vào Distro bạn đang dùng mà chọn thư mục thích hợp) Code:
# mkdir /etc/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.init /etc/init.d/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.conf /etc/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.sysconfig /etc/sysconfig/syslog-ng
# cp contrib/fedora-packaging/syslog-ng.logrotate /etc/logrotate.d/syslog-ng
Thay đổi quyền cho file /etc/init.d/syslog-ng Code:
# chmod 755 /etc/init.d/syslog-ng
Lúc này bạn cần tìm đúng vị trí của syslog-ng và cho init.d script trỏ đến đó Code:
# updatedb
# locate syslog-ng | grep bin
/usr/local/sbin/syslog-ng
# vi /etc/init.d/syslog-ng
...
#exec="/sbin/syslog-ng"
exec="/usr/local/sbin/syslog-ng"
...
Dừng syslog và khởi tạo syslog-ng Code:
# service syslog stop
# service syslog-ng start
Tạo một group logs và thêm các users cần dùng vào Code:
# groupadd logs
# usermod -G logs quanta
Cấu hình để syslog-ng khởi động ở lần reboot tiếp theo Code:
# chkconfig syslog off
# chkconfig syslog-ng on
Như vậy bạn đã cài đặt xong syslog-ng trên server. Phần tiếp theo chúng ta sẽ tìm hiểu về cách cấu hình syslog-ng trên server, và cấu hình syslog tại client. 
hi mọi người, em đã làm theo hướng dẫn của bác quata như trên, trêm lab thì tất cả đều ok.. nhưng khi em triển khai thực tế. thì gặp lỗi này: Code:
libsyslog-ng.a(logsource.o): In function `log_source_init_instance':
/root/setupsyslog/syslog-ng-2.0.6/src/logsource.c:58: undefined reference to `g_assertion_message_expr'
collect2: ld returned 1 exit status
make[2]: *** [syslog-ng] Error 1
make[2]: Leaving directory `/root/setupsyslog/syslog-ng-2.0.6/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/setupsyslog/syslog-ng-2.0.6'
make: *** [all] Error 2
em dùng centos 5.6, các lib em đã cài đủ. mọi người có thể nói hộ em là do đâu ko?e xin cảm ơn.]]>
/hvaonline/posts/list/16534.html#249141 /hvaonline/posts/list/16534.html#249141 GMT
Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#250778 /hvaonline/posts/list/16534.html#250778 GMT Cấu hình và sử dụng các log files của hệ thống Code:
Name        : syslog-ng
Version     : 3.2.5
Release     : 1.el6
Architecture: x86_64
Size        : 1582418
Packager    : Fedora Project
Group       : System Environment/Daemons
URL         : http://www.balabit.com/network-security/syslog-ng
Repository  : epel
Summary     : Next-generation syslog server
Description :
syslog-ng, as the name shows, is a syslogd replacement, but with new
functionality for the new generation. The original syslogd allows
messages only to be sorted based on priority/facility pairs; syslog-ng
adds the possibility to filter based on message contents using regular
expressions. The new configuration scheme is intuitive and powerful.
Forwarding logs over TCP and remembering all forwarding hops makes it
ideal for firewalled environments.
]]>
/hvaonline/posts/list/16534.html#251217 /hvaonline/posts/list/16534.html#251217 GMT
Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#252369 /hvaonline/posts/list/16534.html#252369 GMT Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#252376 /hvaonline/posts/list/16534.html#252376 GMT Cấu hình và sử dụng các log files của hệ thống /hvaonline/posts/list/16534.html#252482 /hvaonline/posts/list/16534.html#252482 GMT