轉一位大神的筆記。
日志管理:
1、基於服務的
2、基於時間的
/var/log/wtmp,/var/run/utmp,/var/log/lastlog(lastlog),/var/log/btmp(lastb)
3、基於進程的
accton /var/account/pacct; 打開進程監控
lastcomm 顯示
accton 關閉
4、基於rsyslog日志,軟件:syslog,rsyslog,syslog-ng
syslog:/etc/syslog.conf
rsyslog:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
syslog-ng:/etc/syslog-ng.conf
[root@asianux4 ~]# rpm -qa |grep syslog
rsyslog-5.8.10-8.AXS4.x86_64
kern.* /dev/console
內核的所有錯誤日志,都會發送給/dev/console控制台。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
除了mail,authpriv,cron這三類日志不發送到/var/log/messages文件外,其它的的有消息錯誤級為info的都會發送到/var/log/messages.
authpriv.* /var/log/secure
用戶認證的消息,所有錯誤級別都發送到/var/log/secure
mail.* -/var/log/maillog
郵件服務器的消息,所有錯誤級別都發送到/var/log/maillog日志
在終端一執行以下命令
[root@asianux4 ~]# mail user1 user2
Subject: test mail
alsdjfalsdfjalsdfjklasdf
.
EOT
在終端二執行以下命令
[root@asianux4 ~]# tail -f /var/log/maillog
以下為顯示的結果。
Sep 18 16:53:14 asianux4 postfix/pickup[5394]: 0701BA97A: uid=0 from=<root>
Sep 18 16:53:14 asianux4 postfix/cleanup[5579]: 0701BA97A: message-id=<20150918085314.0701BA97A@asianux4.localdomain>
Sep 18 16:53:14 asianux4 postfix/qmgr[1773]: 0701BA97A: from=<root@asianux4.localdomain>, size=499, nrcpt=2 (queue active)
Sep 18 16:53:14 asianux4 postfix/local[5581]: 0701BA97A: to=<user1@asianux4.localdomain>, orig_to=<user1>, relay=local, delay=0.17, delays=0.09/0.07/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Sep 18 16:53:14 asianux4 postfix/local[5581]: 0701BA97A: to=<user2@asianux4.localdomain>, orig_to=<user2>, relay=local, delay=0.18, delays=0.09/0.07/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Sep 18 16:53:14 asianux4 postfix/qmgr[1773]: 0701BA97A: removed
表示root用戶發送了一封郵件給user1和user2,並且發送成功。
*.* /dev/tty1
將所有消息的所有錯誤級別的日志發送給/dev/tty1
authpriv.debug /var/log/sshd.log
將安全認證相關的debug錯誤日志,發送給/var/log/sshd.log文件
cron.* /var/log/cron
將crond計划任務的所有錯誤日志發送給/var/log/cron文件
uucp,news.crit /var/log/spooler
將uucp和news消息類型,錯誤級別為crit的發送到/var/log/spooler
local7.* /var/log/boot.log
記錄linux引導的過程,並將日志寫到/var/log/boot.log文件中。
實例:
將所有linux系統的日志,發送到遠程的日志服務器上,遠程的日志服務器IP地址為192.168.232.100.
在日志客戶端上的配置:
[root@asianux4 ~]# vim /etc/rsyslog.conf
*.* @192.168.232.100:514(采用514/udp協議),如果@@192.168.232.100:514表示采用514/tcp協議,則日志服務器也需要開啟514/tcp端口。
[root@asianux4 ~]# service rsyslog restart
在日志服務器上的配置:
[root@logserver ~]# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
[root@logserver ~]# service rsyslog restart
logserver ip: 10.6.65.180/24
補充網卡eth0,eth1沒有顯示,真實網卡顯示成eth2,eth3的故障。
解決辦法:
[root@asianux4 ~]# rm /etc/sysconfig/network-scripts/ifcfg-eth* -rf
[root@asianux4 ~]# rm /etc/udev/rules.d/70-persistent-net.rules -rf
[root@asianux4 ~]# reboot
[root@asianux4 ~]# setup 重新設置IP地址。
日志的轉儲:
linux系統日志的轉儲軟件是logrotate.只是一個命令,沒有以服務的方式呈現。
相關的配置文件:
[root@asianux4 log]# ll /etc/logrotate.conf 主配置文件
[root@asianux4 log]# ll /etc/logrotate.d/* 輔助配置文件
[root@asianux4 log]# ll /etc/cron.daily/logrotate每天轉儲的腳本。
[root@asianux4 log]# vim /etc/logrotate.conf
3 weekly 每周轉儲,daily,monthly,hourly
6 rotate 4 轉儲4次
9 create 644 root root 轉儲后,創建日志文件,定義權限、用戶、工作組。
12 dateext 轉儲時在文件末尾添加日期。 messages-20150914
15 compress 轉儲后壓縮 messages-20150914.gz
18 include /etc/logrotate.d 包含其它的配置文件
21 /var/log/wtmp { 為wtmp日志定義轉儲策略。
22 monthly 每月轉儲
23 create 0664 root utmp 轉儲后,創建wtmp文件,權限為664,用戶為root,工作組為utmp
24 minsize 1M wtmp至少達到1M時,才轉儲。如果wtmp沒有到1M,就算超過了一個月也不會轉儲,
25 rotate 1 轉儲一次
26 }
27
28 /var/log/btmp { 為btmp日志文件定義轉儲策略
29 missingok 文件是否為空都會轉儲
30 monthly 每月轉儲
31 create 0600 root utmp
32 rotate 1
33 }
[root@asianux4 log]# cd /etc/logrotate.d/
[root@asianux4 logrotate.d]# ls
cups httpd ppp sssd tomcat6 vsftpd yum
dracut numad psacct syslog up2date wpa_supplicant
[root@asianux4 logrotate.d]# cat syslog 定義轉儲策略為默認策略,轉儲后,重啟rsyslog日志服務。
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
[root@asianux4 logrotate.d]#
實例:
將所有認證消息authpriv,錯誤級別為debug級別的,發送到/var/log/sshd.log文件,設置每天轉儲,轉儲365次,轉儲時壓縮,大小到達1M時自動轉儲。
[root@asianux4 logrotate.d]# vim /etc/rsyslog.conf 在文件末尾添加以下內容。
authpriv.debug /var/log/sshd.log
[root@asianux4 logrotate.d]# service rsyslog restart
[root@asianux4 logrotate.d]# vim /etc/logrotate.d/sshd.log
/var/log/sshd.log {
daily
rotate 365
compress
minsize 1M
}
[root@asianux4 logrotate.d]# /etc/cron.daily/logrotate
iptables防火牆的配置
linux系統的防火牆,默認情況下打開。
防火牆上默認有四個表,每一個表上擁有不同的鏈,在每一個鏈上都不同的規則。
在默認的filter表中,有三條鏈,分別是輸入鏈INPUT,輸出鏈OUTPUT,轉發鏈FORWARD.在每一個鏈上,都有不同的規則。
實現防火牆的軟件:
iptables 做ipv4/ipv6防火牆策略
ip6tables 專業的ipv6防火牆
arptables mac地址的防火牆。
[root@asianux4 ftp]# rpm -qa |grep iptables
iptables-ipv6-1.4.7-11.AXS4.x86_64
iptables-1.4.7-11.AXS4.x86_64
[root@asianux4 ftp]#
iptables的相關配置文件
/etc/sysconfig/iptables-config 防火牆的主配置文件
/etc/sysconfig/iptables iptables防火牆的規則保存文件
/etc/sysconfig/iptables.old iptables防火牆的第一版的規則保存文件
[root@asianux4 sysconfig]# iptables-save 保存iptables的規則
[root@asianux4 sysconfig]# iptables-restore < /etc/sysconfig/iptables 恢復規則
[root@asianux4 sysconfig]# iptables-save > /etc/sysconfig/iptables 保存iptables規則
[root@asianux4 sysconfig]# vim /etc/sysconfig/iptables-config
19 IPTABLES_SAVE_ON_STOP="no" 在關閉iptabbles服務時,是否自動保存
25 IPTABLES_SAVE_ON_RESTART="no" 在重啟iptabbles服務時,是否自動保存
防火牆的配置
方法一:使用iptables命令配置防火牆
方法二:使用setup命令配置防火牆。
方法三:直接將shell腳本,配置防火牆。
方法一:使用iptables命令配置防火牆
[root@asianux4 sysconfig]# iptables-restore < /etc/sysconfig/iptables
[root@asianux4 sysconfig]# iptables -I INPUT 2 -s 10.6.65.0/24 -p tcp --dport 21 -j ACCEPT
在INPUT鏈上的第2條上插入規則,允許10.6.65.0/24網段的所有主機訪問本要的21端口。
[root@asianux4 sysconfig]# iptables -nL 顯示iptables規則
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 10.6.65.0/24 0.0.0.0/0 tcp dpt:21
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 拒絕所有。
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
方法二:使用setup命令配置防火牆。
[root@asianux4 sysconfig]# setup
[root@asianux4 sysconfig]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@asianux4 sysconfig]#
[root@asianux4 sysconfig]# iptables-save 保存規則。
實例:
安裝vsftpd、httpd軟件包。啟動vsftpd和httpd服務器。設置iptables防火牆。允許用戶訪問ftp,拒絕用戶訪問www服務。
[root@asianux4 sysconfig]# mount /dev/cdrom /media
[root@asianux4 sysconfig]# rpm -qa |grep vsftpd
[root@asianux4 sysconfig]# rpm -qa |grep httpd
httpd-2.2.15-31.0.1.AXS4.x86_64
httpd-tools-2.2.15-31.0.1.AXS4.x86_64
[root@asianux4 sysconfig]# yum install vsftpd -y
[root@asianux4 sysconfig]# service vsftpd start
[root@asianux4 sysconfig]# service httpd start
[root@asianux4 sysconfig]# setup (在ftp上打*號)
在windows上測試。發現ftp可以訪問。http無法訪問。