$ journalctl --since="2012-10-30 18:17:16"
$ journalctl --since "20 min ago"
$ journalctl --since yesterday
$ journalctl --since "2015-01-10" --until "2015-01-11 03:00"
$ journalctl --since 09:00 --until "1 hour ago"
$ journalctl -n
$ journalctl _UID=33 --since today
$ journalctl -u nginx.service
$ journalctl -u nginx.service --since today
$ journalctl -u nginx.service -f
$ journalctl -u nginx.service -u php-fpm.service --since today
$ journalctl -p err -b
$ journalctl --no-pager
$ journalctl -b -u nginx.service -o json
$ journalctl -b -u nginx.service -o json-pretty
$ journalctl --disk-usage
$ journalctl --vacuum-size=1G
$ journalctl --vacuum-time=1years
审计日志
auditctl -l
auditctl -w /etc/passwd -p rxwa
vi /etc/audit/audit.rules
ausearch -f /etc/passwd|grep useradd
aureport
一、整理列表100多项;
二、写成脚本,自动化批处理功能;
三、自动化运维工具(ansible、puppet、saltstack、cf)
2.pure-ftp
修改/etc/pure-ftpd/pure-ftpd.conf
#vi /etc/pure-ftpd/pure-ftpd.conf
确保以下行未被注释掉(并且值为以下值),如果没有该行,请添加:
ChrootEveryone yes
AllowUserFXP no
AllowAnonymousFXP no
重启ftp服务
#/etc/init.d/pure-ftpd restart"
"参考配置操作
编辑别名文件vi /etc/aliases,删除或注释掉下面的行
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
#root: marc
补充操作说明
更新后运行/usr/bin/newaliases,使改变生效 "
"1.编辑别名文件vi /etc/mail/aliases,删除或注释掉下面的行
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
#root: marc
2.修改后运行命令:/usr/bin/newaliases,使改变生效 "
"1.修改telnet回显信息
修改文件/etc/issue 和/etc/issue.net中的内容:
#echo "" Authorized users only. All activity may be monitored and reported "" > /etc/issue
#echo "" Authorized users only. All activity may be monitored and reported "" > /etc/issue.net
可根据实际需要修改该文件的内容,但是不要出现系统敏感信息,如redhat,suse等。
2.重启服务:
Suse9:
编辑/etc/pam.d/passwd文件
配置:
auth required pam_tally.so deny=5 unlock_time=600
account required pam_tally.so
Suse10,Suse11:
编辑/etc/pam.d/common-auth文件
配置:auth required pam_tally.so deny=5 unlock_time=600 no_lock_time
编辑/etc/pam.d/common-account文件
配置:account required pam_tally.so
如果返回值为0,说明数据包转发功能已经关闭,为1则开启。
关闭数据包转发功能:
命令: #sysctl -w net.ipv4.ip_forward=0 "
"限制能够访问NFS服务的IP范围:
编辑文件:vi /etc/hosts.allow
增加一行:portmap: 允许访问的IP"
"编辑/etc/host.conf文件:
multi off #关闭多IP绑定
补充操作说明
Redhat 默认没有/etc/host.conf文件,要先新建一个host.conf文件 "
"编辑/etc/host.conf文件:
nospoof on #关闭IP伪装
补充操作说明
Redhat 默认没有/etc/host.conf文件,要先新建一个host.conf文件 "
#! /bin/bash
#vesion 1.1 20190505
#author by (jxwpx)
ipadd=ifconfig -a | grep Bcast | awk -F "[ :]+" '{print $4}' | tr "\n" "_"
cat <<EOF
linux基线检查脚本
Author(jxwpx)
linux基线配置规范设计
输出结果"/tmp/${ipadd}_checkResult.txt"
EOF
echo "IP: ${ipadd}" >> "/tmp/${ipadd}_checkResult.txt"
user_id=whoami
echo "当前扫描用户:${user_id}" >> "/tmp/${ipadd}_checkResult.txt"
scanner_time=date '+%Y-%m-%d %H:%M:%S'
echo "当前扫描时间:${scanner_time}" >> "/tmp/${ipadd}_checkResult.txt"
echo ""
echo "账号策略检查中..."
echo ""
#编号:GOOANN-Linux-02-01-01
#项目:帐号与口令-用户口令设置
#合格:Y;不合格:N
#不合格地方
passmax=cat /etc/login.defs | grep PASS_MAX_DAYS | grep -v ^# | awk '{print $2}'
passmin=cat /etc/login.defs | grep PASS_MIN_DAYS | grep -v ^# | awk '{print $2}'
passlen=cat /etc/login.defs | grep PASS_MIN_LEN | grep -v ^# | awk '{print $2}'
passage=cat /etc/login.defs | grep PASS_WARN_AGE | grep -v ^# | awk '{print $2}'
echo "GOOANN-Linux-02-01-01:" >> "/tmp/${ipadd}_checkResult.txt"
if [ $passmax -le 90 -a $passmax -gt 0 ];then
echo "Y:口令生存周期为${passmax}天,符合要求" >> "/tmp/${ipadd}_checkResult.txt"
else
echo "N:口令生存周期为${passmax}天,不符合要求,建议设置不大于90天" >> "/tmp/${ipadd}_checkResult.txt"
fi
if [ $passmin -ge 6 ];then
echo "Y:口令更改最小时间间隔为${passmin}天,符合要求" >> "/tmp/${ipadd}_checkResult.txt"
else
echo "N:口令更改最小时间间隔为${passmin}天,不符合要求,建议设置大于等于6天" >> "/tmp/${ipadd}_checkResult.txt"
fi
if [ $passlen -ge 8 ];then
echo "Y:口令最小长度为${passlen},符合要求" >> "/tmp/${ipadd}_checkResult.txt"
else
echo "N:口令最小长度为${passlen},不符合要求,建议设置最小长度大于等于8" >> "/tmp/${ipadd}_checkResult.txt"
fi
if [ $passage -ge 30 -a $passage -lt $passmax ];then
echo "Y:口令过期警告时间天数为${passage},符合要求" >> "/tmp/${ipadd}_checkResult.txt"
else
echo "N:口令过期警告时间天数为${passage},不符合要求,建议设置大于等于30并小于口令生存周期" >> /"/tmp/${ipadd}_checkResult.txt"
fi
echo ""
echo "账号是否会主动注销检查中..."
echo ""
checkTimeout=$(cat /etc/profile | grep TMOUT | awk -F[=] '{print $2}')
if [ $? -eq 0 ];then
TMOUT=cat /etc/profile | grep TMOUT | awk -F[=] '{print $2}'
if [ $TMOUT -le 600 -a $TMOUT -ge 10 ];then
echo "Y:账号超时时间${TMOUT}秒,符合要求" >> "/tmp/${ipadd}_checkResult.txt"
else
echo "N:账号超时时间${TMOUT}秒,不符合要求,建议设置小于600秒" >> "/tmp/${ipadd}_checkResult.txt"
fi
else
echo "N:账号超时不存在自动注销,不符合要求,建议设置小于600秒" >> "/tmp/${ipadd}_checkResult.txt"
fi
#编号:GOOANN-Linux-02-01-02
#项目:帐号与口令-root用户远程登录限制
#合格:Y;不合格:N
#不合格地方
echo ""
echo "检查root用户是否能远程登录限制..."
echo ""
Ansible/Saltstack(master->minion)
Ansible软件特点
1.ansible不需要单独安装客户端,SSH相当于ansible客户端。
2.ansible不需要启动任何服务,仅需安装对应工具即可。
3.ansible依赖大量的python模块来实现批量管理。
4.ansible配置文件/etc/ansible/ansible.cfg
实现从管理机man01到其他机器的密钥认证
0.ansible借助公钥批量管理
#利用非交换式工具实现批量分发公钥与批量管理服务器
[root@man01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.31
[root@man01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.41
[root@man01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.7
1.安装ansible
[root@man01 ~]# yum install ansible -y
2.配置ansible
[root@man01 ~]# vim /etc/ansible/hosts
[jxwpx]
192.168.1.31
192.168.1.41
3.验证ansible
[root@man01 ~]# ansible jxwpx -m ping
192.168.1.7 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.1.31 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.1.41 | SUCCESS => {
"changed": false,
"ping": "pong"
}
#批量执行命令
[root@man01 ~]# ansible jxwpx -m command -a "df -h"
#2.如果没有给对应的主机下发公钥,可以使用密码的方式进行添加
192.168.1.41 ansible_ssh_user='root' ansible_ssh_pass='1' ansible_ssh_port='22'
3.定义主机清单
[web]
192.168.1.7
[nfs]
192.168.1.31
[backup]
192.168.1.41
[jxwpx:children]
web
nfs
backup
[root@man01 ~]# ansible web --list-hosts #web
hosts (1):
192.168.1.7
[root@man01 ~]# ansible nfs --list-hosts #nfs
hosts (1):
192.168.1.31
[root@man01 ~]# ansible backup --list-hosts #rsync
hosts (1):
192.168.1.41
[root@man01 ~]# ansible jxwpx --list-hosts #集中所有的小组,用于执行一些基础的配置
hosts (3):
192.168.1.31
192.168.1.41
192.168.1.7
1、命令 -> 文件 = 脚本
2、模块 -> 文件 = 剧本
安装 配置 启动
1.command命令模块
[root@man01 ~]# ansible jxwpx -a "hostname"
[root@man01 ~]# ansible jxwpx -m shell -a "ifconfig|grep eth0" -f 50
2.yum安装模块
#推送脚本文件至远程,远程执行脚本文件
[root@man01 ~]# ansible jxwpx -m yum -a "name=httpd state=installed"
name ---指定要安装的软件包名称
state ---指定使用yum的方法
installed,present ---安装软件包
removed,absent ---移除软件包
latest ---安装最新软件包
3.copy模块
[root@man01 ~]# ansible jxwpx -m copy -a "src=/etc/hosts dest=/tmp/test.txt owner=www group=www mode=0600"
[root@man01 ~]# ansible jxwpx -m copy -a "src=/etc/hosts dest=/tmp/test.txt backup=yes"
[root@man01 ~]# ansible jxwpx -m copy -a "content='bgx' dest=/tmp/jxwpx"
src --- 推送数据的源文件信息
dest --- 推送数据的目标路径
backup --- 对推送传输过去的文件,进行备份
content --- 直接批量在被管理端文件中添加内容
group --- 将本地文件推送到远端,指定文件属组信息
owner --- 将本地文件推送到远端,指定文件属主信息
mode --- 将本地文件推送到远端,指定文件权限信息
4.service服务模块
[root@man01 ~]# ansible jxwpx -m service -a "name=crond state=stopped enabled=yes"
name --- 定义要启动服务的名称
state --- 指定服务状态是停止或是运行
started --- 启动
stopped --- 停止
restarted --- 重启
reloaded --- 重载
enabled --- 是否让服务开启自启动
1.安装
[root@man01 ~]# ansible web -m yum -a "name=httpd state=installed"
2.配置
[root@man01 ~]# ansible web -m copy -a "content='This is Ansible' dest=/var/www/html/index.html"
3.启动
[root@man01 ~]# ansible web -m service -a "name=httpd state=started"
转载于:https://blog.51cto.com/jxwpx/2404147