zoukankan      html  css  js  c++  java
  • LINUX安全

    LINUX安全

    1保护谁的安全? 服务器(网站 数据库 邮件 文件)
    2 什么安全? 不受到破坏

    3 如何保护TA安全
    通过非技术手端保护?机房 指定规章制度 稳定的电源
    通过技术手段保护?
    本地安全 : 用户登录操作系统后可以执行的操作

    网络安全 : 防火墙服务(软件防火墙 硬件防火墙)
    firewalld
    iptables
    sshd服务(远程连接主机)

    数据安全 :(数据在网络中传输时会受到那些?)
    截获数据 篡改 本地丢失
    加密 验证数据完整性 备份
    ++++++++++++++++++++++++++++++++++++++

    本地安全:
    用户管理:
    与用户相关的命令及命令参数
    useradd -u -g -G -s 用户名
    useradd -s /sbin/nologin yaya (进程的所有者 访问服务)
    userdel -r 用户名
    usermod -u -g -G -s 用户名
    id 用户名
    passwd --stdin -S -l -u 用户名
    chage -l -E -d 用户名

    与用户相关的配置文件
    /etc/passwd
    /etc/shadow
    /etc/login.defs
    /etc/skel/

    编写批量添加系统用户脚本?要求如下:
    执行脚本时,可以设置添加系统用户的数量。
    用户存在时,给出提示,不添加用户,反之就添加。
    用户初始密码和用户名相同,强制用户首次登录系统修改登录密码
    新用户的有效期到本月月底。
    每个新添加用户的家目录下都机房规章制度文件。
    ++++++++++++++++++++++++
    伪装登录提示(字符运行级别)
    /etc/issue 本地登录
    /etc/issue.net 网络连接


    历史命令控制
    294 grep -n 1000 /etc/profile
    295 sed -i '45s/1000/500/' /etc/profile
    296 echo $HISTSIZE
    297 source /etc/profile
    298 echo $HISTSIZE
    ~/.bash_history

    #HISTTIMEFORMAT='%F %T '
    vim /etc/profile
    export HISTTIMEFORMAT="%F %T "
    :wq


    关闭不常用的服务 systemctl
    chkconfig --level 35 服务名 on/off
    ntsysv

    去掉普通用户服务启动脚本的执行权限。
    chmod o-x 服务启动脚本

    文件系统规划及挂载
    交换分区的作用?

    合理规划系统分区
    /boot、/home、/var等采用独立的卷

    mount挂载选项
    suid
    -o nosuid:禁用SUID、SGID特殊权限
    -o noexec:禁止运行二进制文件
    exec

    #mount -t 文件系统 -o nosuid,noexec 分区名 挂载点
    #vim /etc/fstab

    defaults默认挂载包括那些挂载选项?
    #man mount
    rw, suid, dev, exec, auto, nouser, and async.

    278 dd if=/dev/zero of=/tmp/a.txt bs=1M count=300
    280 mkfs.ext4 /tmp/a.txt
    281 mkdir /disk1
    282 mount /tmp/a.txt /disk1/
    286 which useradd
    287 cp /usr/sbin/useradd /disk1/
    292 chmod u+s /disk1/useradd
    294 useradd adminyaya
    295 su - adminyaya
    296 /disk1/useradd stu101
    296 tail -1 /etc/passwd
    #exit
    #umount /disk1
    #mount -o nosuid /tmp/a.txt /disk1
    # /disk1/useradd stu102

    给加特殊属性
    i 不可变
    a 仅可追加

    chattr +/-属性 文件名
    lsttr 文件名

    服务配置文件
    系统配置文件

    su 切换用户
    普通用户 <----- > 普通用户 需要密码
    管理员用户 ----- > 普通用户 不需要密码
    普通用户 ----- > 管理员用户 需要密码

    切换到管理员用户
    #su
    #su -

    切换到指定用户
    #su 用户名
    #su - 用户名

    $ su - -c "systemctl status httpd" root

    ++++++++++++++++++++++++++++++++++++++++
    用户提权 (让普通用户登录系统后可以使用,管理员使用的命令)
    #useradd tom
    #useradd jerry
    #echo 123456 | passwd --stdin tom
    #echo 123456 | passwd --stdin jerry
    主配置文件 /etc/sudoers

    # grep -v -E '#|^$' /etc/sudoers

    用户名 客户端地址列表=命令列表
    %用户组名 客户端地址列表=命令列表

    tom localhost=/usr/bin/systemctl start httpd,

    /usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

    /bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat


    给用户组提权
    [root@localhost ~]# groupadd webgrp
    [root@localhost ~]# useradd jim
    [root@localhost ~]# echo 123456 | passwd --stdin jim
    [root@localhost ~]# usermod -G webgrp tom
    [root@localhost ~]# usermod -G webgrp jim
    [root@localhost ~]# grep webgrp /etc/group
    webgrp:x:1012:tom,jim
    [root@localhost ~]#
    #tom localhost=/usr/bin/systemctl start httpd,

    /usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

    /bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat

    %webgrp localhost=/usr/bin/systemctl start httpd,

    /usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

    /bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat, NOPASSWD:

    ALL

    使用通配符表示多个提权命令 *
    ! 取反

    mike localhost,svr1=/sbin/* , !/sbin/ifconfig eth0

    ++++++++++++++++++++++++++++++++++++
    使用别名给用户提权

    用户别名 User_Alias 别名名称 = 用户名列表
    User_Alias ADMINS = jsmith, mikem

    主机别名Host_Alias 别名名称 = 主机名列表
    Host_Alias MAILSERVERS = smtp, smtp2

    命令别名Cmnd_Alias 命令别名=命令列表

    #%webgrp localhost=/usr/bin/systemctl start httpd,

    /usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

    /bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat, NOPASSWD:

    ALL

    User_Alias WEBADMIN= tom, jim

    Cmnd_Alias MYCOMM=/usr/bin/systemctl start httpd,

    /usr/bin/systemctl stop httpd,/usr/bin/systemctl status httpd,

    /bin/vim /etc/httpd/conf/httpd.conf, /bin/netstat

    Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date,

    /usr/bin/yum

    WEBADMIN localhost=MYCOMM,SOFTWARE
    +++++++++++++++++++++++++++++++++++++++
    启用日志记录提权用户执行过的提权命令

    vim /etc/sudoers
    Defaults logfile="/var/log/sudo"
    :wq
    +++++++++++++++++++++++++++++++++++++++
    普通用户登录系统后,查看可以使用的提权命令
    sudo -l

    普通用户登录系统后,执行提权命令
    sudo 提权命令
    +++++++++++++++++++++++++++++++++++++++++
    三、配置sshd服务
    修改服务运行参数(vim /etc/ssh/sshd_config)
    [root@localhost ~]# netstat -untlap | grep sshd
    tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN

    1413/sshd


    17 Port 5789
    19 ListenAddress 192.168.4.13
    48 LoginGraceTime 2m
    51 MaxAuthTries 6
    UseDNS no
    49 #PermitRootLogin yes

    黑白名单(限制客户端连接)vim /etc/ssh/sshd_config
    白名单:只允许在白名单列表里的用户可以访问
    AllowUsers USER1@HOST USER2 …
    AllowGroups GROUP1 GROUP2 …

    黑白名单:只要用户不在黑名单列表里就可以访问
    DenyUsers USER1 USER2 …
    DenyGroups GROUP1 GROUP2 …

    vim /etc/ssh/sshd_config
    AllowUsers jim root@192.168.4.12
    :wq
    #systemctl restart sshd

    修改服务验证登录方式?
    1 口令认证登录(默认):使用正确的用户名和密码

    2 密钥对认证登录: 公钥 私钥
    加密 解密

    2.1 配置客户端254
    a 登录用户创建密钥对
    # rm -rf ~/.ssh/
    #ssh-keygen
    #ls ~/.ssh
    id_rsa id_rsa.pub
    私钥 公钥

    在ssh服务器上执行 # rm -rf /root/.ssh/

    #ssh-copy-id root@192.168.4.13

    2.2 配置ssh服务器13
    a查看客户端上传的公钥文件
    # cat /root/.ssh/authorized_keys
    b 修改配置文件禁用口令认证登录
    [root@localhost ~]# sed -n '79p' /etc/ssh/sshd_config
    PasswordAuthentication no
    #systemct restart sshd

    254客户端连接ssh服务
    #ssh jim@192.168.4.13 (连接被拒绝)
    #ssh root@192.168.4.13 (允许连接)

    12客户端连接ssh服务
    #ssh root@192.168.4.13 (连接被拒绝)

  • 相关阅读:
    页面加载完后要执行的代码
    作为90后迈向成为一个优秀的男人系列之一
    今天看的一本书关于复制威力总结
    Ext.Net弹出窗口回写父窗口
    div 显示滚动条与div显示隐藏的CSS代码
    你可以向马云学习什么
    灵活多变的工作台页面配置Spring.Net.Framwork春天快速开发平台
    ROW_NUMBER() OVER函数的基本用法
    EXTJS4官方文档翻译系列一:类系统和编码规范
    SQLserver2008全文检索使用方法
  • 原文地址:https://www.cnblogs.com/fuzhongfaya/p/8952920.html
Copyright © 2011-2022 走看看