Linux安全防护

一、Linux基本防护
1)账号安全
    1.设置账号有效期
        chage工具
            -d 0 登录账号之后必须强制修改密码
            -E yyyy-mm-dd  指定失效日期
            -l 查看用户信息
    [root@culver07 ~]# useradd bob
    [root@culver07 ~]# chage -d 0 bob
    [root@culver07 ~]# chage -E 2020-07-24 bob
    [root@culver07 ~]# chage -l bob
    最近一次密码修改时间                    :密码必须更改
    密码过期时间                    :密码必须更改
    密码失效时间                    :密码必须更改
    帐户过期时间                        :7月 24, 2020
    两次改变密码之间相距的最小天数        :0
    两次改变密码之间相距的最大天数        :99999
    在密码过期之前警告的天数    :7

    2.账号的锁定/解锁
        passwd命令
            -l  锁定
            -u  解锁
            -S  查看状态
    [root@culver07 ~]# useradd jim
    [root@culver07 ~]# echo 123456|passwd –stdin jim
    更改用户 jim 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@culver07 ~]# passwd -u jim
    解锁用户 jim 的密码。
    passwd: 操作成功
    [root@culver07 ~]# passwd -l jim
    锁定用户 jim 的密码 。
    passwd: 操作成功
    [root@culver07 ~]# passwd -S jim
    jim LK 2020-07-22 0 99999 7 -1 (密码已被锁定。)

    3.强制定期修改密码
        配置文件配置/etc/login.defs    对新建的用户有效
    [root@culver07 ~]# vim /etc/login.defs 
     25 PASS_MAX_DAYS   99999        ==>>密码的最大有效期
     26 PASS_MIN_DAYS   0            ==>>最低多少天必须修改密码
     27 PASS_MIN_LEN    5            ==>>密码的最低长度
     28 PASS_WARN_AGE   7            ==>>密码过期前多少天提醒

    4.伪装登录提示
        配置文件/etc/issue,/etc/issue.net 
            分别适用于本地,远程登录
            默认会提示内核,系统等版本信息
    [root@culver07 ~]# cat /etc/issue
    \S
    Kernel \r on an \m
    [root@culver07 ~]# cat /etc/issue.net 
    \S
    Kernel \r on an \m    

2)文件系统安全
    1.程序和服务控制
        禁用非必要的系统服务(使用systemctl,chkconfig工具)

    2.锁定/解锁保护文件
        EXT3/EXT4的文件属性控制
            chattr,lasttr
        +,-控制方式
            属性i 不可变
            属性a 仅可追加
[root@culver07 ~]# chattr +i /etc/hosts
[root@culver07 ~]# echo “1232 www.qq.dd” >> /etc/hosts
-bash: /etc/hosts: 权限不够
[root@culver07 ~]# chattr -i /etc/hosts

二、用户切换与提权
1)su切换用户身份
    1.切换与提权的应用场景
        切换用户身份
            ssh远程管理
            运维测试
        提升执行权限
            管理权限细分

    2.    su切换的基本用法
        快速切换为其他指定的用户
        普通用户执行时,需要验证目标用户的口令
        root执行时,无需验证口令
        命令格式:
            用法1:su [-] [目标用户]
            用法2:su [-] -c “命令” [目标用户]
[root@culver07 ~]# su – jim -c “mkdir /home/jim/test”

    3. 分析su切换的使用情况
        安全日志/var/log/secure
            记录su验证,shell开启与关闭
[root@culver07 ~]# tail /var/log/secure
Jul 22 12:07:09 culver07 su: pam_unix(su-l:session): session opened for user jim by root(uid=0)   ==>>su切换登入成功
Jul 22 12:07:09 culver07 su: pam_unix(su-l:session): session closed for user jim  ==>>su会话断开

2)sudo提升执行权限
    1.sudo提权的基本用法
        Super or another Do,超级执行
            管理员预先为用户设置执行许可
            被授权用户有权执行授权的命令,验证自己的口令
        执行授权命令
            用法:sudo 提权命令
        查看提权命令
            用法:sudo -l

    2.配置sudo提权
        修改方法:
            方法1:visudo
            方法2:vim /etc/sudoers
        授权记录格式
            用户 主机列表=命令列表
[root@culver07 ~]# visudo        
93 mike localhost,svr1=/sbin/*,!/sbin/ifconfig eth0         ==>>允许mike以root权限执行/sbin/下的所有命令,但是,禁止修改eth0网卡的参数
94 %wheel  ALL=(ALL)       NOPASSWD:ALL                 ==>>wheel组的用户无需验证可以执行所有命令

    3.分析sudo提权的使用情况
        修改全局配置,启用日志
[root@culver07 ~]# vim /etc/sudoers    
 64 Defaults    logfile=”/var/log/sudo”
[root@culver07 ~]# tail /var/log/sudo

    4.sudo别名设置
        提高可重用性,易读性
        简化配置,使记录更有条理
[root@culver07 ~]# visudo             ==>>别名的名称必须全大写
 96 User_Alias OPERATORS=jerry,tom,jike
 97 Host_Alias MAILSERVERS=mail,smtp,pop,svr7
 98 Cmnd_Alias SOFTMGR=/bin/rpm,/usr/bin/yum     
 99 OPERATORS MAILSERVERS=SOFTMGR

三、SSH访问控制
1.ssh防护概述
    存在的安全隐患
        密码嗅探,键盘记录
        暴力枚举账号,猜解密码
    常见的防护措施
        用户限制,黑白名单
        更改验证方式(密码–>密钥对)
        防火墙

2.sshd基本安全配置
    配置文件/etc/ssh/sshd_config
常见SSH服务器监听的选项如下:
Port 22                    //监听的端口为22
Protocol 2                //使用SSH V2协议
ListenAdderss 0.0.0.0    //监听的地址为所有地址
UseDNS no                //禁止DNS反向解析
常见用户登录控制选项如下:
PermitRootLogin no            //禁止root用户登录
PermitEmptyPasswords no        //禁止空密码用户登录
LoginGraceTime 2m            //登录验证时间为2分钟
MaxAuthTries 6                //最大重试次数为6

3.sshd黑白名单配置
    配置文件/etc/ssh/sshd_config
AllowUsers user            //只允许user用户登录,与DenyUsers选项相反    
AllowGroups group            //只允许group组用户登录,与DenyGroups选项相反

4.ssh验证方式控制
    口令验证
        检查登录用户的口令是否一致
    密钥验证
        检查客户端私钥与服务器上的公钥是否匹配
    配置文件/etc/ssh/sshd_config
PasswordAuthentication yes                //启用密码验证
PubkeyAuthentication yes                    //启用秘钥验证
AuthorsizedKeysFile .ssh/authorized_keys    //指定公钥数据库文件

5.创建ssh密钥对
        使用工具ssh-keygen
            可以手动指定加密算法(-t rsa或-t dsa)默认为RSA加密算法
[root@culver07 ~]# ssh-keygen
[root@culver07 ~]# ls -Al /root/.ssh/        
-rw——- 1 root root 1675 7月  21 18:35 id_rsa          ==>>私钥文件
-rw-r–r– 1 root root  393 7月  21 18:35 id_rsa.pub      ==>>公钥文件

6.部署ssh公钥
    方法一:通过ssh-copy-id自动部署
        好处:一步到位
        局限性:要求ssh口令认证可用
    方法二:通过FTP等方式上传,手动添加
        好处:灵活,使用范围广
        局限性:操作繁琐,易出错

四、Selinux安全防护
1.SELinux简介
    Security-Enhanced Linux
        一套强化Linux安全的扩展模块
        美国国家安全局主导开发
    SELinux的运行机制
        集成到Linux内核2.6以上
        操作系统提供可以定制的策略,管理工具

2.红帽的SELinux策略集
    SELINUXTYPE=targeted
        推荐,仅保护最常见/关键的网络服务,其他不限制
[root@culver07 ~]# sestatus  ==>>查看selinux的状态

3.SELinux模式控制
    方法一:修改kernel启动参数
        添加selinux=0以禁用
        添加enforcing=0设置SELinux为允许模式
    方法二:修改配置文件/etc/selinux/config
        设置SELINUX=disabled以禁用
        设置SELINUX=permissive宽松,允许模式
        设置SELINUX=enforcing强制模式
    临时控制:setenforce命令(disabled模式下不可用)
        设为1,对应强制模式
        设为0,对应宽松模式
[root@culver07 ~]# setenforce 0  ==>>设置宽松模式
[root@culver07 ~]# getenforce    ==>>查看当前状态

4.查看安全上下文
    Security Context,安全上下文
        为文件/目录/设备标记访问控制属性
    属性构成
        用户:角色:访问类型:选项
[root@culver07 ~]# ls -Z /bin/ls /etc/fstab 
-rwxr-xr-x. root root system_u:object_r:bin_t:s0       /bin/ls
-rw-r–r–. root root system_u:object_r:etc_t:s0       /etc/fstab

5.修改安全上下文
    使用chcon工具
        -t  指定访问类型
        -R  递归修改
    一般操作规律
        移动的文件,原有的上下文属性不变
        复制的文件,自动继承目标位置的上下文

6.重置安全上下文
    使用restorecon工具
        恢复所在位置的默认上下文属性
        -R 递归修改
    /.autorelabel文件
        下次重启后全部重置

7.调整SELinux布尔值
    使用getsebool
        -a  可列出所有布尔值
    使用setsebool设置
        -P 永久更改,重启后仍然有效
————————————————
转载自CSDN博主「SshikSsh」原创文章,
原文链接:https://blog.csdn.net/yy1506438689/article/details/107552836

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发