控制台安全
密码生命周期
Sudo的通知
SSH调优
使用Tripwire进行入侵检测
使用Firewalld
回归iptable
限制编译器
不可修改文件
用Aureport来管理SELinux
使用sealert工具
一、控制台安全
编辑/etc/securetty 文件的内容。该文件列出的是允许root用户登录的所有设备
只允许root用户去登录到一个终端之上,且强制所有其他用户都使用非root用户的身份进行登录。而如果确实需要root用户权限的时候,请使用su命令来获取。
二、密码生命周期
密码的生命周期就是允许你为密码指定一个有效的时间周期。时间到期后,系统将强制要求用户输入一个新的密码。这样有效地确保了密码的定期更换,以及密码在被偷盗、破解或为人所知的情况下能够迅速过期。
方法一:
chage -M 20 likegeeks
- M选项为likegeeks用户设置了有效期限为20天的密码
chage likegeeks
方法二:
/etc/login.defs中为所有用户设置默认值
PASS_MAX_DAYS 20
PASS_MIN_DAYS 0
PASS_WARN_AGE 5
三、Sudo的通知
sudo命令允许非root用户以root身份运行各种命令。你可以在/etc/sudoers文件中查到所有的sudo配置。可以禁止用户去运行那些root才能运行的命令。
当sudo命令被使用的时侯,你可以通过在文件中添加如下一行语句,以配置其向外发送电子邮件。
mailto yourname@yourdomain.com
mail_always on
四、SSH调优
/etc/ssh/sshd_config
改变SSH的原有端口到另一个未使用的端口上
Port 5555
更新PermitRootLogin的值为no来限制root的登录PermitRootLogin no
禁用无密码的通道,且改用公钥登录的方式
PasswordAuthentication no
PermitEmptyPasswords no
启用UseDNS的值
UseDNS yes
将GSSAPIAuthentication设为no
GSSAPIAuthentication no
配置ServerAliveInterval、ServerAliveCountMax和TCPKeepAlive的值来进行管控超时问题
ServerAliveInterval 15
ServerAliveCountMax 3
TCPKeepAlive yes
更长的连接
ClientAliveInterval 30
ClientAliveCountMax 5
指定被允许使用SSH的用户名
AllowUsers user1 user2
指定允许的组
AllowGroup group1 group2
询问一个验证码
ChallengeResponseAuthentication yes
五、使用Tripwire进行入侵检测
Tripwire是Linux安全里的重要工具之一。这是一种基于主机的入侵检测系统(HIDS)。它通过收集配置和文件系统的细节,并使用这些信息来提供系统先前与当前状态之间的参考点等方式进行工作。该过程监测文件或目录的属性包括:进去哪些被添加或修改了、谁修改的、修改了什么、何时修改的。因此它就是你文件系统的“看门狗”
访问EPEL存储库来获取Tripwire
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
rpm -ivh epel-release-7-9.noarch.rpm
yum install tripwire
创建本地和网站密钥:
tripwire-setup-keyfiles
定制Tripwire:
/etc/tripwire/twpol.txt更新Tripwire策略
tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt
初始化Tripwire数据库:
tripwire --init验证你的现有的策略文件:
tripwire --check额外去加固twpol.txt和twcfg.txt文件的安全
六、使用Firewalld
Firewalld的当前运行状态
firewall-cmd --state
列出预定义的区域
firewall-cmd --get-zones
设置默认区域
firewall-cmd --set-default-zone=
获取任何特定区域的所有相关信息
firewall-cmd --zone= --list-all
支持的服务
firewall-cmd --get-services
添加或删除额外的服务
firewall-cmd --zone= --add-service=
firewall-cmd --zone= --remove-service=
开放的端口
firewall-cmd --zone= --list-ports
管理TCP/UDP端口的增加与删除
firewall-cmd --zone= --add-port=
firewall-cmd --zone= --remove-port=
添加或删除端口的转发
firewall-cmd --zone= --add-forward-port=
firewall-cmd --zone= --remove-forward-port=
七、回归iptable
先禁用Firewalld:
systemctl disable firewalld
systemctl stop firewalld
安装 iptables:
yum install iptables-services
touch /etc/sysconfig/iptables
touch /etc/sysconfig/ip6tables
启动 iptables服务:
systemctl start iptables
systemctl start ip6tables
systemctl enable iptables
systemctl enable ip6tables
八、限制编译器
检查单个的数据包以确定其包含有哪些二进制文件。然后你需要限制这些二进制文件的权限
rpm -q --filesbypkg gcc | grep 'bin'
创建一个可以访问二进制文件的编译器的组名称
groupadd compilerGroup
赋予这个组能够改变任何二进制文件的所有权
chown root:compilerGroup /usr/bin/gcc
九、不可修改文件
不可修改文件是Linux系统中一种最为强大的安全特性。任何用户(即使是root用户),无论他们的文件权限是怎样的,都无法对不可修改文件进行写入、删除、重命名甚至是创建硬链接等操作。
使用chattr命令来将任何文件变得不修改:
chattr +i /myscriptchattr -i /myscript
十、用Aureport来管理SELinux
aureport工具被设计为创建一些基于列特征的报告,以显示在审计日志文件中所记录的那些事件。
aureport --avc
创建一个可执行文件的列表:
aureport -x
使用aureport来产生一个认证的全量报告:
aureport -au -i
认证失败的事件:
aureport -au --summary -i --failed
认证成功的事件的摘要:
aureport -au --summary -i --success
十一、使用Sealert工具
yum install setools
sealert -a /var/log/audit/audit.log