syslog是日志收集存储系统,负责记录遵守此服务的内核、程序的日志信息。可以理解为编年体的日志记录信息,一般记录为:“日期时间,主机,进程:事件”。syslog不仅可以记录本地的系统日志,也可以通过tcp, udp协议记录远程主机的程序日志信息。
syslog:系统日志,是一种服务,有两个进程
syslogd:记录应用程序相关的日志
klogd:记录相关的日志
rsyslog:是syslog的升级版,使用多线程并发记录本地或远程日志,支持存储日志信息在MySQL,PGSQL, Oracle等RDBMS中。同时拥有强大的过滤器功能,可以对日志中任意内容进行过滤。
rsyslog是CentOS 6以后的系统使用的日志系统,与之前的syslog日志系统相比,具有以下优点:
支持多线程
支持TCP、SSL、TLS、RELP等协议
强大的过滤器,可实现过滤日志信息中的任意部分
支持自定义输出格式
适用于企业级别日志记录需求
模块化
[root@localhost yum.repos.d]# yum -y install mariadb-server #准备数据库
MariaDB [(none)]> grant all on Syslog.* to 'loguser'@'192.168.79.%' identified by 'sigeling'; #进行授权,使对应主机可以使用loguser远程访问Syslog的所有内容。Syslog表是rsyslog-mysql软件包中的sql脚本生成的
[root@centos7 ~]# yum -y install rsyslog-mysql.x86_64 #安装rsyslog-mysql
[root@centos7 ~]# mysql -uloguser -h192.168.79.47 -psigeling < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #远程导入sql脚本,生成Syslog库和对应的表
[root@centos7 ~]# vim /etc/rsyslog.conf
#### MODULES ####
$Modload ommysql #支持mysql模块
$ModLoad imtcp #支持tcp协议通信
$InputTCPServerRun 514 #监听tcp514端口
#### RULES ####
*.* :ommysql:192.168.79.47,Syslog,loguser,sigeling #配置规则,所有设施的所有级别日志都存入远程数据库服务器中
[root@centos7 ~]# systemctl restart rsyslog.service
[root@localhost ~]# yum -y install httpd php php-mysql php-gd #另一台主机搭建lap环境
[root@localhost ~]# gzip -d loganalyzer-3.6.5.tar.gz #安装loganalyzer
[root@localhost ~]# tar -xf loganalyzer-3.6.5.tar
[root@localhost ~]# cp /root/loganalyzer-3.6.5 ./ -r
[root@localhost /var/www/html/]# ln -s loganalyzer-3.6.5/src/ loganalyzer
[root@localhost ~]# cd loganalyzer
[root@localhost loganalyzer]# touch config.php #创建配置文件,并改权限为666,之后直接访问http://HOST:port/loganalyzer即可,根据loganalyzer提供的步骤进行
[root@localhost loganalyzer]# chmod 666 config.php
文件传输协议FTP:
File Transfer Protocol早期的三个应用级协议之一
基于C/S架构
双通道协议:数据和命令连接
数据传输格式:二进制(默认)和文本
两种模式:服务器角度
主动(PORT Style):服务器主动连接
命令(控制):客户端:随机端口—>服务器:tcp21
数据:客户端:随机端口—>服务器:tcp20
被动(PASV style):客户端主动连接
命令(控制):客户端:随机端口—>服务器:tcp21
数据:客户端:随机端口—>服务器:随机端口
服务器被动模式数据端口示例:
227 Entering Passive Mode (172,16,0,1,224,59)
服务器数据端口为:224*256+59
用户认证方式:
匿名用户:ftp、anonymous,对应Linux用户ftp
系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow
虚拟用户:特定服务的专用用户,独立的用户/密码文件
[root@localhost ~]# yum -y install vsftpd #安装vsftpd软件包
[root@localhost ~]# vim /etc/vsftpd/vusers.txt #创建虚拟用户文件,奇数行为用户名,偶数行为密码
test1
pass
test2
pass
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# db_load -T -t hash -f vusers.txt vusers.db #对上面创建的虚拟用户文件进行hash计算,生成库文件vusers.db
[root@localhost vsftpd]# chmod 600 vusers.db #降低库文件的权限保证安全
[root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin vuser #服务器端创建新的用户用作映射(匿名用户等在客户端登录时在服务端以该用户的身份进行操作)
[root@localhost vsftpd]# chmod +rx /var/ftproot/
[root@localhost vsftpd]# chmod -w /var/ftproot/
[root@localhost vsftpd]# mkdir /var/ftproot/upload
[root@localhost vsftpd]# setfacl -m u:vuser:rwx /var/ftproot/upload #配置vuser用户在ftproot目录下的权限
[root@localhost tmp]# vim /etc/pam.d/vsftpd.db #在pam验证模块中对vsftpd相关验证做配置
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf #更改配置文件
guest_enable=YES
guest_username=vuser #指定访问用户的身份
pam_service_name=vsftpd.db #指定pam验证模块文件
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers.d/ #创建目录用于存放不同用户的权限配置文件
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/
[root@localhost vusers.d]# vim test1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost vusers.d]# systemctl restart vsftpd
[root@localhost vusers.d]# ss -ntl
LISTEN 0 32 :::21 :::*
[root@centos7 vsftpd]# lftp 192.168.79.37 #连接ftp
lftp 192.168.79.37:~> test1
Unknown command `test1'.
lftp 192.168.79.37:~> login
Usage: login []
lftp 192.168.79.37:~> login test1 pass
lftp [email protected]:~>
lftp [email protected]:~>
lftp [email protected]:~> ls
drwxrwxr-x 2 0 0 6 Aug 25 15:55 upload
lftp [email protected]:/>
[root@localhost ~]# yum -y install nfs-utils rpcbind #安装nfs
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# vim /etc/exports #指定本地何目录允许何主机以何权限访问
/backup/ 192.168.79.0/24(ro)
[root@localhost ~]# vim /etc/fstab
192.168.79.47:/backup/ /data/backup/ nfs ro 0 0
[root@localhost ~]# mount -a #加载fstab文件
[root@localhost backup]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 31G 3.7G 27G 13% /
devtmpfs 895M 0 895M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 10M 900M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda3 31G 37M 31G 1% /data
/dev/sda5 20G 33M 20G 1% /home
/dev/sda1 4.0G 174M 3.9G 5% /boot
tmpfs 182M 0 182M 0% /run/user/0
/dev/sr0 11G 11G 0 100% /media
192.168.79.47:/backup 30G 3.5G 27G 12% /data/backup
[root@localhost ~]# yum -y install samba #安装samba
[root@localhost ~]#
[root@localhost ~]# vim /etc/samba/smb.conf #更改配置文件
[smbshare]
comment = test
path = /tmp/test
write list = @admins root
create mask = 0664
directory mask = 0775
[root@localhost ~]# systemctl restart smb nmb
[root@localhost ~]# groupadd -r admins #创建admins组
[root@localhost ~]# groupadd -r admins
[root@localhost ~]# useradd -s /sbin/nologin -G admins testuser #创建testuser用户,不允许登录,属于admins组
[root@localhost ~]# smbpasswd -a testuser #使用smbpasswd工具对testuser进行加密
New SMB password:
Retype new SMB password:
Added user testuser.
[root@localhost ~]# mkdir /tmp/test #创建要共享的目录
[root@localhost ~]# chgrp admins /tmp/test #更改共享目录属组
[root@localhost ~]# chmod 2775 /tmp/test
[root@localhost ~]# semanage fcontext -a -t samba_share_t '/tmp/test(/.*)?' #更改selinux权限,开放samba_share
[root@localhost ~]# restorecon -vvFR /tmp/test/ #保存selinux配置
[root@localhost backup]# mount -o username=testuser //192.168.79.47/smbshare /tmp #使用用户testuser进行挂载
Password for testuser@//192.168.79.47/smbshare: ********
[root@localhost ~]# vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup =no
hosts allow = 192.168.79.0/24
[backup]
path = /data/backup/
comment = backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass
[root@localhost ~]# echo "rsyncuser:sigeling" > /etc/rsync.pass
[root@localhost ~]# chmod 600 /etc/rsync.pass
[root@localhost ~]# mkdir /data/backup/ -p
[root@localhost ~]# rsync --daemon #以守护进程的方式运行
[root@localhost data]# echo 'sigeling' > /etc/rsync.pass
[root@localhost data]# chmod 600 /etc/rsync.pass
[root@localhost data]# rsync -avz --password-file=/etc/rsync.pass /data/ [email protected]::backup #推送数据
[root@localhost ~]# vim inotify_rsync.sh
#!/bin/bash
SRC='/data/backup'
DEST='[email protected]::backup'
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete
,moved_to,close_write ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME
} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.l
og
done