linux实训-系统日志
linux实训-系统日志
创建远程用户组和远程用户
创建远程用户组:
groupadd remoteGroup
创建用户,并加入到远程用户组中:
useradd -G remoteGroup remoteUser01
将ssh端口号改成2222
vim /etc/ssh/sshd_config
修改:
port: 2222
不允许root登陆ssh服务
修改:
PermitRootLogin no
不允许空密码的用户登陆
修改:
PermitEmptyPasswords no
使用口令认证方式
修改:
PasswordAuthention yes
重启ssd服务使之生效:
systemctl restart sshd
验证2222端口:
ssh 127.0.0.1
连接不上,说明22不能用了
使用2222:
ssh 127.0.0.1 -p 2222
成功,但是提示输入密码,ctr+c退出
测试root登陆:
ssh root@127.0.0.1 -p 2222
输入密码,提示无法登陆
测试空密码登陆:
ssh remoteUser01@127.0.0.1 -p 2222
不输入密码无法登陆,但remoteUser01还没设置密码,需要设置个密码:
echo remoteUser01:hello123 | chpasswd
再次登陆,输入密码:hello123,登陆成功
参考命令:
centos7 创建用户和组
groupadd RemoteGroup (创建组)
useradd -G RemoteGroup RemoteUser01 (创建用户并加入组)
id RemoteUser01 (查看用户信息)
参考操作:
centos7 ssh
vi /etc/ssh/sshd_config
编辑修改
Port 2222
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication yes(默认有了)
保存退出
systemctl restart sshd
测试
ssh -p 2222 127.0.0.1
配置centos7日志级别
- 系统登陆产生的日志级别为info
- 内核产生的日志级别为idebug
- 用户程序产生的日志为err
- 将日志同步到:192.168.1.2的日志服务器上,使用默认UDP缺省端口
- 日志保留6个月
centos7 rsyslog
vi /etc/rsyslog.conf
添加
auth.=info /var/log/auth.log
kern.=debug /var/log/kern.log
user.=err /var/log/user.log
. @192.168.1.2:514
保存退出
systemctl restart rsyslogcentos7 logrotate
vi /etc/logrotate.conf
编辑修改
#weekly(注释或者删除)
monthly
rotate 6 (修改为6)
保存退出
操作1到操作4
vim /etc/rsyslog.conf
auth.nfo /var/log/auth.log
kern.debug /var/log/kern.log
user.err /var/log/user.log
. @192.168.1.2:514
保存退出
日志保留6个月
主要修改:vi /etc/logrotate.conf
文件里的monthly和rotate两个参数
centos7 logrotate
vi /etc/logrotate.conf
编辑修改
#weekly(注释或者删除)
monthly
rotate 6 (修改为6)
保存退出
提取nginx服务器日志
提取nginx所有访问日志到/root/access.log
centos nignx日志
gzip -d /var/log/nginx/access.log-20220930.gz
gzip -d /var/log/nginx/access.log-20221001.gz
cat /var/log/nginx/access* > /root/access.log
查找并提取User-agent中包含”MSJ/1.0”的异常日志到/root/danger.log
> grep "MSJ/1.0" /root/access.log > /root/danger.log
web服务日志分析
查找包含远程指令的web访问日志,并导出到/root/dangerous.log
centos:
查询ps或whoami命令在访问日志中的出现频率,定位到是通过1.php文件实现远程登陆攻击,故只要将1.php的访问记录导出就是所有远程指令日志
grep ps | whoami /root/access.log
grep “1.php” /root/access.log > /root/dangerous.txt
对日志进行审批并定位事件,将涉及的文件复制到/root目录下
通过日志,可以知道,1.php的相对路径是:/hackable/uploads/1.php
找到nginx的服务器根目录:
whereis nginx
返回:
其中有个目录是:/usr/share/nginx
这个目录是nginx默认安装时的web根目录,但千万不要觉得它就是web根目录,具体是不是根目录,我们需要看nginx的配置文件:
vim /etc/nginx/conf.d/default.conf
发现配置的web的root目录是:/var/www/html
这个目录就是服务器根目录了,进入,找到hackable目录,再找到uploads目录
发现这个目录里和dangerous.log文件里出现的远程命令文件一致,所以没毛病,开始copy:
cp /usr/www/html/hackable/uploads/1.php /root
cp /var/www/html/hackable/uploads/svchost /root
提取mysql数据库日志并存档备份
- 提取binlog,并重命名为:mysql_server_log.sql,备份到 “/root“目录下
登陆数据库:
mysql -uroot -proot
查看下binlog最新名称:
show master status
其实考试的时候不需要这一步,直接到:”/var/lib/msql”目录下找到binlog后缀编号最大的就行了,直接copy
cp /var/lib/mysql/binlog.00004 /root/mysql_server_log.sql
正常的话,导出binlog备份 命令使用:
mysqlbinlog --no-defaults -u /var/lib/mysql/binlog.00004 > /root/mysql_server_log.sql
- 提取错误日志并重命名为:mysql_server_error.log,备份至”/root”目录
错误日志的默认路径:/var/log/mariadb
cat /var/log/mariadb/*.log > mysql_server_error.log