用几个简单的命令改善Linux安全

控制台安全 

密码生命周期 

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 [email protected]

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 /myscript 

chattr -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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章