Linux系统安全配置

1、物理安全
    硬件服务器,关闭从CD/DVD等这些方面的软启动方式。同时也可以设置BIOS密码,并且要有限制访问的策略与各类流程管控。
还可以禁用USB设备来达到安全的目的:
    centos7x 安装dconf-editor,搜索automount,将automount及automount open值设为false
    或者使用下面的命令将USB的驱动程序删除
    mv /lib/modules/3.10.0-862.el7.x86_64/kernel/drivers/usb/storage/usb-storage.ko.xz
2、保证系统最新
    保证系统无其它漏洞存在,比如:已经有的漏洞要及时的修复。保证系统包含了最新版本的补丁、安全修复和可用内核
    yum updates
    yum check-update
    经常关注国内外关于、系统最新漏洞以及补丁发布的信息了

 

3、最小化处理原则
    安装系统,还是常用的软件,都必须遵守这个原则:最小化安装,同时也是减少漏洞存在的可能性。
对于系统一些不必要的服务、端口,建议关闭。
    chkconfig --list |grep "3:on"
    systemctl stop services

 

4. 登录与连接
    第一步:就是除了非必要情况,杜绝使用root用户登录,可以使用sudo来进行提权操作,然后利用系统命令将/etc/sudoers文件锁定(除root用户之外的用户无权限修改)。
    第二步:建议修改SSH配置文件,比如默认端口号22,禁止root密码登录(有些自有机房的还可以直接禁用root用户通过SSH协议登录)等
    [root@congcong ~]# vim /etc/ssh/sshd_config
    #Port 22
    可修改成其它端口号,常用IP+22混合使用
    #PermitRootLogin yes
    将yes改成No
    #PermitEmptyPasswords no
    打开注释即可
    #AllowUsers username
    指定特定的用户通过SSH协议进行远程连接

 

5、用户管理
    Linux是一个可多用户并行操作的系统,所以,系统也对用户进行了划分:超级用户与普通用户。两者权限不同,因此,能干的事也有所不同

    设置用户密码:
    这个可以通过系统命令passwd来进行设置,一般建议使用强度比较复杂的密码,且各个系统中相同的用户使用不同的密码(日常可以使用管理器来管理)。
    
    临时用户管理:
    对于这种需要的临时用户管理,一般是使用过后可以删除,也可以在一段时间后将其锁定不让其再登录,在下次需要登录时再次开启权限。
删除用户很简单,可以使用系统命令userdel -r username 进行删除。
    锁定用户其实就是修改用户的属性:
    usermod -L mingongge     #锁定用户
    usermod -U mingongge    #解锁用户

 

6、文件管理
    文件管理指的是存储用户信息的重要文件:/etc/passwd、/etc/shadow这两个文件。
    将此两个文件锁定除了root用户之外的用户无权限修改与访问。

 

7、启用防火墙

 

8、软件包的管理
    系统安装的软件,我们使用RPM包管理器来管理,对于使用yum命令列出来的软件,在对其进行删除、卸载时
    yum -y remove software-package-name
    rpm -e software-package-name 对于有依赖的加上参数 --nodeps

 

9、禁用Crtl+Alt+Del 重启
    按下Crtl+Alt+Del组合键后,都会使用服务器重启,对于线上服务器来说是绝对不友好的一个安全因素,必须禁止
    centos 7.x 
    cat /etc/inittab
    vim /usr/lib/systemd/system/ctrl-alt-del.target
    上面文件中的配置注释掉之后,reboot命令会不生效了:
    ctrl-alt-del.target这是reboot.target的软链接。最终的方法是:移动掉这个文件到其它目录,然后重载配置文件使用其它生效,如果再需要这个功能就只需要重新添加这个软件链接即可

  

10、监控用户行为
    安装sa和ac命令:    yum install psacct -y
    ac 统计用户连接时间
    ac       #显示所有用户连接总时间
    ac -p    #显示每个用户连接时间
    ac -d    #显示每天所有用户连接总时间
    ac silence      #显示指定用户连接时间
    ac -d silence   #显示指定用户每天连接时间

    sa 输出用户活动信息
    sa      #显示所有用户执行命令情况
    sa -u   #按用户显示执行命令情况
    sa -m   #按进程显示执行命令情况
    sa -p   #按使用率显示执行命令情况

    lastcomm 输出最近执行命令信息
    lastcomm            #显示所有执行命令
    lastcomm silence    #显示指定用户执行命令
    lastcomm ls         #显示指定命令执行情况

    其他
    last        #查看最近用户登录成功列表
    last -x     #显示系统关机、重新开启等信息
    last -a     #将IP显示在最后一列
    last -d     #对IP进行域名解析
    last -R     #不显示IP列
    last -n 3   #显示最近3条
    lastb       #查看最近用户登录失败的列表

 

11、定期检查日志
    将系统及其重要的日志保存在本服务器之外的专业日志服务器上,从而避免黑客通过分析日志来入侵系统及应用,以下是常见的日志文件:
    /var/log/message  --记录系统日志或当前活动日志
    /var/log/auth.log   --身份认证日志
    /var/log/kern.log   --内核日志
    /var/log/cron.log   --Crond日志(crontab定时任务日志)
    /var/log/maillog    --邮件服务日志
    /var/log/boot.log   --系统启动日志
    /var/log/mysqld.log  --Mysql数据库日志
    /var/log/secure     --认证日志
    /var/log/utmp or /var/log/wtmp  --登录日志
    /var/log/yum.log   --yum日志

  

12、数据备份
    重要的生产数据,必须本地、异地、不同介质备份及保存,同时还需要定期检查数据的完整性、可用性。

  

13、安全工具
    对于系统来说,常用的安全扫描工具是必备的,比如:扫描开放端口nmap。对于系统中的WEB应用等来说,可以使用一些开源的工具:IBM AppScan、SQL Map等,同样这类的商用产品也很多。
    对于文件有文件加密工具,对于系统还有一些入侵检测、漏洞扫描工具,无论是开源还是商业,都是可以根据实际需求与企业成本来决定使用哪一款工具。  

  

posted @ 2020-03-19 17:01  MlxgzZ  阅读(464)  评论(0编辑  收藏  举报