系统安全以及应用

目录

一.账号安全基本措施

1.系统账号清理

      二.密码安全控制:

1.设置密码有效期:

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

          三.命令历史限制与自动注销

                 1.命令历史限制:

                 2.终端自动注销:

四.PAM安全认证

             1.su的命令的安全隐患

             2.什么是PAM

             3.PAM认证原理

             4.PAM安全认证流程

五.限制使用su命令的用户(pam-wheel认证模块)

      1.su命令概述:

      2. su命令的用途以及用法:  

      3.配置su的授权(加入wheel组)(pam_wheel认证模块:):

      4.配置/etc/sudoers文件(授权用户较多的时候使用):

六.开关机安全控制

     1.调整BIOS引导设置

     2.GRUB限制

七.终端以及登录控制

     1.限制root只在安全终端登录       

     2..禁止普通用户登录

八.系统弱口令检测

      1.JOHN the Ripper,简称为JR

      2.安装弱口令账号

      3.密码文件的暴力破解

九.网络端口扫描

     1.NMAP

     2.格式

总结:


一.账号安全基本措施

1.系统账号清理

1.将非登录用户的Shell设为/sbin/nologin

(ps:在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。)

格式:usermod -s /sbin/nologin 用户名

2锁定长期不使用的账号:

[root@hehe ~]# usermod -L test2    锁定用户账号方法一
[root@hehe ~]# passwd -l test3     锁定用户账号方法二
[root@hehe ~]# usermod -U test2    解锁用户账号方法一
[root@hehe~]# passwd -u test3     解锁用户账号方法二

查看账户有没有被锁:passwd -S [用户名]

3.删除无用的账号

[root@hehe ~]# userdel test1
[root@hehe~]# userdel -r test2

4.锁定账号文件passwd,shadow

[root@hehe ~]# chattr +i /etc/passwd /etc/shadow   锁定文件,包括root也无法修改
[root@hehe ~]# chattr -i /etc/passwd /etc/shadow 解锁文件
[root@hehe ~]# lsattr /etc/passwd /etc/shadow查看文件状态属性

举个例子:

 

二.密码安全控制:

1.设置密码有效期:

1.[root@localhost ~]# chage -M 60 test3   #这种方法适合修改已经存在的用户1
​
2.[root@localhost ~]# vim /etc/login.defs  #这种适合以后添加新用户
   PASS_MAX_DAYS   30

1.这个方法适用于早就已经存在的用户:

 2.这个方法适用于新用户

 

2.要求用户下次登录时改密码:

[root@hehe ~]# chage -d 0 [用户名]  强制要求用户下次登陆时修改密码

三.命令历史限制与自动注销

1.命令历史限制:

             1.减少记录的命令条数

减少记录命令的条数:
1.[root@hehe ~]# vim /etc/profile  进入配置文件修改限制命令条数。适合新用户
   HISTSIZE=200     修改限制命令为200条,系统默认是1000条profile 
   [root@lhehe ~]# source /etc/ 刷新配置文件,使文件立即生效
 
2.[root@hehe~]# export HISTSIZE=200  适用于当前(之后)用户
   [root@hehe~]# source /etc/profile 
   [root@hehe ~]# source /etc/profile 刷新配置文件,使文件立即生效

1.减少记录命令的条数(适用之前的用户):     

 

          2.注销时自动清空命令历史

   
3. 注销时自动清空命令:
     [root@hehe ~]# vim ~/.bash_logout(临时清除,重启缓存的话还在)
                    echo "" > ~/.bash_history(永久删除)
                    history是查你使用过的命令

2.终端自动注销:

             1.闲置600秒后自动注销    

闲置600秒后自动注销:
[root@hehe ~]#vim .bash_profile  进入配置文件
    export TMOUT=600  全局声明超过60秒闲置后自动注销终端
[root@hehe ~]# source .bash_profile 
[root@hehe ~]# echo $TMOUT
 
[root@hehe ~]# export TMOUT=600   
如果不在配置文件输入这条命令,那么是对当前用户生效
​
[root@hehe ~]#vim .bash_profile 
  # export TMOUT=600  注释掉这条命令,就不会自动注销了

   四.PAM安全认证

             1.su的命令的安全隐患

                   1.,默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;

                   2.为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

             2.什么是PAM

                    1.PAM(Pluggable Authentication Modules)可插拔式认证模块

                    2.是一种高效而且灵活便利的用户级别的认证方式;

                    3.也是当前Linux服务器普遍使用的认证方式。

                    4.PAM提供了对所有服务进行认证的中央机制,适用于login,远程登陆,su等应用

                    5.系统管理员通过PAM配置文件来制定不同的应用程序的不同认证策略

              3.PAM认证原理

                   1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,

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

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

                   4.如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。

ls /etc/pam.d/ | grep su

                   5.PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

              4.PAM安全认证流程

               控制类型也称做Control Flags,用于PAM验证类型的返回结果

用户1用户2用户3用户4
authrequired   模块1passfailpasspass
authsufficient 模块2passpassfailpass
authrequired   模块3passpasspassfail
结果passfailpasspass

              4

五.限制使用su命令的用户(pam-wheel认证模块)

          1.su命令概述:

          通过su命令可以非常方便切换到另一个用户,但前提条件是必须知道用户登录密码。对于生产环境中的Linux服务器,每多一个人知道特权密码,安全风险就多一分。于是就多了一种折中的办法,使用sudo命令提升执行权限,不过需要由管理员预先进行授权, 指定用户使用某些命令:

         2. su命令的用途以及用法:  

用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令

         3.配置su的授权(加入wheel组)(pam_wheel认证模块:):

进入授权命令:
1.visudo 或者 vim /etc/sudoers


语法格式:
1.用户  主机名=命令程序列表
2.用户  主机名=(用户)命令程序列表


-l:
列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v:验证用户的时间戳;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作;用-v可以跟踪最新的时间戳;

-u:指定以以某个用户执行特定操作;

-k:删除时间戳,下一个sudo命令要求用求提供密码;
1.首先创建3个组

 

2.vim /etc/pam.d/su
把第六行注释去掉保存退出

1. 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的

2.两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码:

3.如果第–行不注释,则root 使用su切换普通用户就不需要输入密码( pam_ rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)

4.如果开启第二行,表示只有root用户和wheel1组内的用户才可以使用su命令。

5.如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

3.将liunan加入到wheel之后,hehe就有了使用su命令的权限

    

4.使用pam_wheel认证后,没有在wheel里的用户都不能再用su

     

5.whoami命令确定当前用户是谁

 

 4.配置/etc/sudoers文件(授权用户较多的时候使用):


visudo单个授权
visudo 或者 vim /etc/sudoers
记录格式:
user MACHINE=COMMANDS
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
%组名代表一整个组
权限生效后,输入密码后5分钟可以不用重新输入密码。

例如:visudo命令下
user kiro=(root)NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod
##代表 kiro主机里的user用户,可以无密码使用useradd命令,有密码使用usermod



/etc/sudoers多个授权
Host_Alias MYHOST= localhost  主机别名:主机名、IP、网络地址、其他主机别名!取反
Host_Alias MAILSVRS=smtp,pop(主机名)

User_Alias MYUSER = kiro,user1,lisi 用户别名:包含用户、用户组(%组名(使用引导))、还可以包含其他其他已经用户的别名
User_Alias OPERATORS=zhangsan,tom,lisi(需要授权的用户)

Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd 命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum(授权)

MYUSER MYHOST = NOPASSWD : MYCMDDS 授权格式


sudo -l    #查询目前sudo操作


查看sudo操作记录
需启用Defaults logfile
配置默认日志文件: /var/log/sudo
sudo -l   查看当前用户获得哪些sudo授权(启动日志文件后,sudo操作过程才会被记录)

1.首先用visudo 或者 vim /etc/sudoers进入,输入需要授权的命令

 2.切换到taojian用户,因为设置了它不能使用创建用户的命令所以无法创建

六.开关机安全控制

     1.调整BIOS引导设置

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

     2.GRUB限制

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

     方法一:


通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的
威胁。
 
可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
grub2-mkpasswd-pbkdf2   ###根据提示设置GRUB菜单的密码
PBKDF2 hash of your password is grub.pbkd.....   ###省略部分内容为经过加密生成的密码字符串
cp  /boot/grub2/grub.cfg  /boot/grub2/grub.cfg.bak 8
cp  /etc/grub.d/00_header /etc/grub.d/00_header.bak 9
 
vim /etc/grub.d/00_header
 
cat << EOF
set superusers="root"  ###设置用户名为root
password_pbkdf2 root grub.pbkd2.....    ###设置密码,省略部分内容为经过加密生成的密码字符串
EOF16
 
grub2-mkconfig -o /boot/grub2/grub.cfg   ###生成新的grub.cfg文件
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。
 

方法二:

1.一步到位
2.grub2-setpassword

七.终端以及登录控制

     1.限制root只在安全终端登录       

​安全终端配置文件在 /etc/securetty

     2..禁止普通用户登录

          1.建立/etc/nologin文件

          2.删除nologin文件或重启后即恢复正常


vim /etc/securetty
在端口前加#号拒绝访问
 
touch /etc/nologin  禁止普通用户登录
rm -rf /etc/nologin 取消禁止

八.系统弱口令检测

      1.JOHN the Ripper,简称为JR

1.一款密码分析工具,支持字典式的暴力破解

2.通过对shadow文件的口令分析,可以检测密码强度

3.官网网站:http://www.openwall.com/john/

      2.安装弱口令账号

1.获得Linux/Unix服务器的shadow文件

2.执行john程序,讲shadow文件作为参数

      3.密码文件的暴力破解

1.准备好密码字典文件,默认为password.lst

2.执行john程序,结合--wordlist=字典文件

九.网络端口扫描

     1.NMAP

1.—款强大的网络扫描、安全检测工具,支持ping扫描,多端口检测等多种技术。

2.官方网站: http://nmap.orgl

3.CentOS 7.3光盘中安装包,nmap-6.40-7.el7.x86_64.rpm

     2.格式

    NMAP [扫描类型] [选项] <扫描目标....>

安装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数据包进行简单过滤,而忽略了其他形式的TCP attack 包。这种类型的扫描可间接检测防火墙的健壮性。

-sU:UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。

-sP:ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。

-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping通而放弃扫描。

总结:

1.账号基本安全措施:系统账号处理、密码安全控制、命令历史清理、自动注销

2.用户切换与提权(su、sudo)

3.开关机安全控制(BIOS引导设置、禁止Ctrl+Alt+Del快捷键、GRUB菜单设置密码)

4.终端控制

5.弱口令检测——John the Ripper

6.端口扫描——namp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值