系统安全及应用

账号安全基本措施
   系统账号清理

     将非登录用户的Shell设为/sbin/nologin 
     usermod -s /sbin/nologin 用户名
     
     锁定长期不使用的账号
     usermod -L 用户名     passwd -I 用户名
     passwd -S 用户名

     删除无用的账号
     userde [-r] 用户名

     锁定账号文件passwd、shadow

     chattr +i /ect/passwd /ect/shadow   #锁定文件并查看状态
     lsattr /ect/passwd /ect/shadow
     chattr -i /ect/passwd /ect/shadow    #解锁文件

   密码安全控制
     设置密码有效期

     要求用户下次登录时修改密码

     [root@localhost ~]# vi /ect/login.defs   #(修改密码配置文件适用于新建用户)
     ......
     PASS_MAX_DAYS    30
     [root@localhost ~]# chage -M 30 lisi     #(适用于已有用户)
     [root@localhost ~]# cat /etc/shadow | grep lisi
     
     [root@localhost ~]# chage -d 0 zhangsan   #(强制在下次登录时更改密码)
     [root@localhost ~]# cat /etc/shadow | grep zhangsan   #(shandow文件中的第三个字段被修改为0)

   命令历史限制
     减少记录的命令条数
     登录时自动清空历史命令

   终端自动注销
     闲置600秒后自动注销  

     [root@localhost ~]# vi /ect/profile
     ......
     export TMOUT =600
     [root@localhost ~]# source /ect/profile

使用su命令切换用户
   用途及用法

     用途:Substitute User,切换用户
     格式:su - 目标用户

   密码验证
     root→任意用户,不验证密码
     普通用户→其他用户,验证目标用户的密码

     [root@localhost ~]# su - root    #带"-"选项表示将使用目标用户的登录Shell环境
   口令:
     [root@localhost ~]# whoami
     root

   限制使用su命令的用户

     将允许使用su命令的用户加入wheel组
     启用pam_wheel认证模块

PAM认证原理
   一般遵循的顺序
     Service(服务)→PAM(配置文件)→pam_*.so

   首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/ect/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证

   用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
  
   不同的应用程序所对应的PAM模块时不同的

PAM认证的构成
   查看某个程序是否支持PAM认证,可以用ls命令
     示例:查看su是否支持PAM模块认证
     ls /ect/pam.d | grep su

   查看su的PAM配置文件:cat /ect/pam.d/su
     每一行都是一个独立的认证过程
     每一行可以区分为三个字段
      认证类型
      控制类型
      PAM模块及其参数

PAM安全认证流程
 控制类型也称为Control Flags,用于PAM验证类型的返回结果
   1.required验证失败时仍然继续,返回Fail
   2.requisite验证失败则立即结束整个验证过程,返回Fail
   3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
   4.optical不用于验证,只显示信息(通常用于session)

使用sudo机制提升权限
   su命令的缺点
   sudo命令的用途及用法
     用途:以其他用户身份(如root)执行授权的命令
     用法:sudo 授权命令

   配置sudo授权
     visudo
    或者
     vi /ect/sudoers
     语法格式:用户   主机名=命令程序列表
                       用户   主机名=(用户)  命令程序列表
       [root@localhost ~]# visudo

     用户:直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)
     主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
     (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
     命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号","进行分隔。ALL则台标系统中的所有命令

     Tom ALL=/sbin/ifconfig
     Jerry  localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff    #(可以使用通配符"*"表示所有、取反符号"!"表示排除)

     %wheel ALL=NOPASSWD:ALL     #表示wheel组成员无需验证密码即可使用sudo执行任何命令
     Mike ALL=(root) NOPASSWD:/bin/kill,/usr/bin/killall

     使用关键字 User_Alias、Host_Alias、Cmnd_Alias 来进行设置别名(别名必须大写)
      User_Alias  USERS=Tom,Jerry,Mike
      Host_Alias  HOSTS=localhost,bogon
      Cmnd_Alias  CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel
      USERS  HOSTS=CMNDS

   启用sudo操作日志

     visudo
     Defaults logfile = "/var/log/sudo"

     su - Tom
     /sbin/ifconfig ens33:0 192.168.1.11/24
     sudo /sbin/ifconfig ens33:0 192.168.1.11/24
     #初次使用sudo时需验证当前用户的密码,默认超时时长为5分钟,在此期间不再重复验证密码
     sudo -l    #查看当前用户获得哪些 sudo 授权

开关机安全控制
   调整BIOS引导设置

     将第一引导设备设为当前系统所在硬盘
     禁止从其他设备(光盘、U盘、网络)引导系统
     将安全级别设为setup,并设置管理员密码

   GRUB限制
     使用grub2-mkpasswd-pbkdf2生成密钥
     修改/etc/grub.d/00_header文件中,添加密码记录
     生成新的grub.cfg配置文件

   限制更改GRUB引导参数
     通常情况下在系统开机进入GRUB菜单时,按 e 键可以查看并修改GRUB 引导参数,这对服务器是一个极大的威胁
     可以为 GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数

    grub2-mkpasswd-pbkdf2   #根据提示设置GRUB 菜单密码
    PBKDF2 hash of your password is grub,pbkdf2......    #省略部分内容为经过加密生成的密码字符串

    cp  /boot/grub2/grub.cfg  /boot/grub2/grub.cfg.bak
    cp  /etc/grub.d/00_header  /etc/grub.d/00_header.bak

    vim /etc/grub.d/00_header
    cat << EOF
    set superusers="root"     #设置用户名为root
    password_pbkdf2 root grub.pbkdf2......     #设置密码,省略部分内容为经过加密生成的密码字符串
    EOF

    grub2-mkconfig -o /boot/grub2/grub.cfg     #生成新的 grub.cfg 文件

    重启系统进入 GRUB 菜单时,按 e 键将需要输入账号密码才能修改引导参数

终端登录安全控制
   限制root只在安全终端登录
     安全终端配置:/etc/securetty

   禁止普通用户登录
     建立/etc/nologin文件
     删除nologin文件或重启后及恢复正常

     [root@localhost ~]# touch /etc/nologin      #禁止普通用户登录
     [root@localhost ~]# rm -rf /etc/nologin     #取消上述登录限制

系统弱口令检测
   Joth the Ripper,简称为 JR
     一款密码分析工具,支持字典式的暴力破解
     通过对shadow文件的口令分析,可以检测密码强度
     官方网站:http://www.openwall.com/john/

   安装JR工具
     安装方法:make clean 系统类型
     主程序文件为 john

   检测弱口令账号
     获得Linux/Unix服务器的shadow文件
     执行john程序,将shadow文件作为参数
 
   密码文件的暴力破解
     准备号密码字典文件,默认为password.lst
     执行john程序,结合--wordlist=字典文件

    #解压工具包
    cd /opt
    tar zxf john-1.8.0.tar.gz
    #安装软件编译工具
    yum install -y gcc gcc-c++ make
    #切换到src子目录
    cd /opt/john-1.8.0/src
    #进行编译安装
    make clean linux-x86-64
    #准备待破解的密码文件
    cp /etc/shadow /opt/shadow.txt
    #执行暴力破解
    cd /opt/john-1.8.0/run
    ./john /opt/shadow.txt
    #查看已破解处的账户列表
    ./john --show /opt/shadow.txt

 

    #使用密码字典文件
    > john.pot     #清空已破解出的账户列表,以便重新分析
    ./john --wordlist=./password.lst  opt/shadow.txt    #使用指定的字典文件进行破解

网络扫描—NMAP
   NMAP 是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术
 
 #安装 NMAP 软件包

    rpm -qa | grep nmap
    yum install -y nmap

   nmap命令常用的选项和扫描类型

    -p:指定扫描的端口
    -n:禁用反问 DNS 解析(以加快扫描速度)
    -sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
    -sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放
    -sF:TCP的FIN扫描,开放端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TPC攻击包。这种类型的扫描可间接检测防火墙的健壮性
    -sU:UDP 扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢
    -sP:ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描
    -p0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描

 

    netstat -natp    #查看正在运行的使用TCP协议的网络状态信息
    netstat -naup    #查看正在运行的使用UDP协议的网络状态信息

   netstat命令常用选项

    -a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
    -n:以数字的形式显示相关的主机地址、端口等信息
    -t:查看 TCP相关信息
    -u:显示 UDP协议相关信息
    -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
    -r:显示路由表信息
    -l:显示处于监听状态的网络连接及端口信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值