• linux 安全基本防护 用户提权 ssh访问控制


    linu安全应用

    信息安全分类:
    物理安全:主机/机房环境
    系统安全:操作系统
    应用安全:各种网络服务,应用程序
    网络安全:网络访问控制,防火墙规则
    数据安全:信息的备份与恢复,加密解密
    管理安全:保障性的规范,流程,方法

    ——————————————————————————————————————————————————————
    linux基本防护:
    系统账号安全
    与用户相关的常用命令
    useradd userdel usermod shwan chage passwd
    与用户相关的配置文件
    /etc/passwd /etc/shadow /etc/login.defs
    管理用户passwd 选项 用户名
    选项
    -l:锁定
    -u:解锁
    -S:状态

    管理用户usermod 选项 用户名
    -L:锁定
    -U:解锁
    -s:修改shell

    管理用户chage 选项 用户名
    -E 年-月-日:账号有效期
    -d:用户修改密码的最后时间

    阻止普通用户关机
    配置目录/etc/security/console.apps
    [root@158 ~]# mkdir -m 700 locked
    [root@158 ~]# mv poweroff(其他程序类似于reboot halt等) locked

    伪装登陆提示
    本地登陆 /etc/issue
    [root@158 ~]# vim /etc/issue
    Anonymous
    远程登陆 /etc/issue.net
    [root@158 ~]# vim /etc/issue.net
    Anonymous


    文件系统安全:
    历史命令控制
    [root@158 ~]# vim /etc/profile
    export HISTTIMEFORMAT=' %F %T ' 加上命令显示执行时间
    HISTSIZE=1000 默认1000条记录
    [root@158 ~]# source /etc/profile使命令生效

    程序和服务的控制
    禁用非必要的系统服务:chkconfig ntsysv
    禁止平台用户执行init.d目录下的脚本:
    [root@158 ~]# chmod o-x /etc/init.d/ 限制"other"权限

    文件系统的规划和挂载
    /boot /home /var等单独分区
    mount挂载选项
    [root@158 ~]# vim /etc/fstab
    /dev/sdb1 /disk ext4 defaults 0 0 (开机自动挂载)
    defaults默认挂载
    参数:rw, suid, dev, exec, auto, nouser, async, and relatime.
    -o nosuid:禁用suid sgid特殊权限
    -o noexec:禁止运行二进制文件

    锁定/解锁保护文件
    /etc/hosts,/etc/sysconfig/network,/etc/resolv.conf
    /etc/passwd,/etc/shadow,/etc/profile,/etc/bashrc
    ext3/ext4的文件属性控制:lsattr(查看),chattr(更改)
    属性i:不可变
    属性a:仅可追加
    [root@158 opt]# lsattr sql.txt(查看)
    -------------e- sql.txt
    + - =控制方式
    [root@158 ~]# chattr +i /etc/hosts (更改)


    ——————————————————————————————————————————————————————————————

    用户切换/提权

    用户切换 su 切换到root用户
    su 用户名 只切换用户,不切换到用户的系统环境
    su - 用户名 切换用户的同时,切换到用户的系统环境
    su -c "命令" 用户名 切换到用户身份执行命令,需要输入用户的密码 su -c "mkdir /root/a.txt" root

    用户提权(root给普通用户提权)
    /etc/sudoers 主配置文件
    visudo 打开配置文件的命令 等效与vim /etc/sudoers
    [root@158 ~]# grep -v '^$|^#' /etc/sudoers(去掉空行和#号)
    root ALL=(ALL) ALL
    授权记录格式:
    用户 主机列表=命令列表
    %用户组名 主机列表=列表命令
    示例:
    [root@158 ~]# vim /etc/sudoers
    hydra localhost,158=/etc/init.d/mysql status(本机登陆,本机主机名)
    hydraxx localhost,158=/etc/init.d/httpd * , /usr/bin/vim /etc/httpd/conf/httpd.conf(*表示可以执行http服务的所有命令,命令要用绝对路径)
    hydraxxx localhost,158=/sbin/* , !/sbin/rm -rf(!取反,sbin下的什么命令都可以用,但是不能用rm命令)
    %web localhost,158=/sbin/service httpd * , /usr/bin/vim /etc/httpd/conf/httpd.conf, NOPASSWD:ALL(%web用户组 NOPASSWD:ALL表示不需要密码)
    普通用户调用提权命令
    sudo -l 查看自己可以使用的提权命令(首次查看需要输入自己的密码)
    [hydra@158 ~]$ sudo /etc/init.d/mysql status(调用提权命令要加上sudo)

    别名设置(别名名称必须大写)
    给用户定义别名
    vim /etc/sudoers
    User Aliases 别名名称=用户列表
    User_Alias ADMINS = jsmith, mikem

    给命令定义别名
    vim /etc/sudoers
    Cmnd_Alias 别名名称=命令列表
    Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
    Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

    给客户端地址定义别名
    vim /etc/sudoers
    Host Aliases 别名名称=主机名列表
    Host_Alias MAILSERVERS = smtp,smtp2

    示例:调用用户别名和命令别名,以及客户端地址别名
    [root@158 ~]# vim /etc/sudoers
    ADMINS localhost,158=SOFTWARE,DELEGATING, NOPASSWD:ALL
    ADMINS smtp=SOFTWARE,DELEGATING, NOPASSWD:ALL

    启动sudo日志,记录普通用户登陆后执行过的提权命令
    [root@158 ~]# vim /etc/sudoers
    Defaults logfile="/var/log/sudo"(日志路径)


    ————————————————————————————————————————————————————————————————

    ssh访问控制

    ssh服务常用的配置选项(修改服务主配置文件)
    /etc/ssh/sshd_config
    Port 22 默认端口
    ListenAddress 0.0.0.0 默认ip,允许所有
    LoginGraceTime 2m 输入密码错误后等2分钟
    MaxAuthTries 6 每连接最多错误次数
    示例:
    [root@158 ~]# vim /etc/ssh/sshd_config
    Port 6798(默认22端口,修改为6798)
    ListenAddress 192.168.4.158(登陆ip)
    LoginGraceTime 2m
    MaxAuthTries 6
    [root@158 ~]# /etc/init.d/sshd restart
    [root@room1pc01 ~]# ssh -X -p 6798 root@192.168.4.158(访问测试)

    使用黑白名单控制
    白名单:(在白名单列表的用户可以连接)
    [root@158 ~]# vim /etc/ssh/sshd_config
    AllowUsers root@192.168.4.158 hydra(root用户在192.168.4.158才可以登陆)
    AllowGroups(允许web用户组可以连接)
    黑名单:(不在黑名单列表的就可以连接)
    [root@158 ~]# vim /etc/ssh/sshd_config
    DenyUsers root(不允许root在其他客户端连接)
    DenyGroups web(不允许web用户组内的用户连接)


    设置ssh服务登陆认证方式(密钥)

    客户端配置
    [root@158 ~]# ssh-keygen 创建密钥对
    /root/.ssh/ 密钥存放目录
    [root@158 ~]# ssh-copy-id root@192.168.4.254 把生成的公钥上传到ssh服务器

    服务器端启用密钥认证登陆
    [root@room1pc01 桌面]# vim /etc/ssh/sshd_config
    PasswordAuthentication no(关闭密码登陆)
    PubkeyAuthentication yes(启用密钥认证)
    AuthorizedKeysFile .ssh/authorized_keys(密钥目录)


    ————————————————————————————————————————————————————————————————————

  • 相关阅读:
    ABAP 销售范围
    C语言深度剖析自测题8解析
    Ubutun13.10下安装fcitx
    各种Web服务器与Nginx的对比
    Hadoop2.2.0在Ubuntu编译失败解决方法
    网站上在给出邮箱地址时不直接使用@符号的原因
    IPython notebook在浏览器中显示不正常的问题及解决方法
    input只读效果
    阿里实习生电面题目:输出给定字符串的全部连续子串
    DNS 放大
  • 原文地址:https://www.cnblogs.com/Hydraxx/p/7511219.html
Copyright © 2020-2023  润新知