系及应用统安全

目录

一:账号安全控制

1.1:基本安全措施

1:系统账号清理

2:密码安全控制

3:命令历史、自动注销

1.2:用户切换与提权

1:su命令

2:pam安全认证

3:sudo 命令 —— 提升执行权限

二:系统引导和登录控制

2.1:开关机安全控制

1:调整 BIOS 引导设置

2:限制更改 GRUB 引导参数(为GRUB添加密码)

2.2:终端及登录控制

1:禁止 root 用户登录

2:禁止普通用户登录

三:弱口令检测、端口扫描

3.1:弱口令检测——John the Ripper

1:安装 John the Ripper

2:检测弱口令

3:使用密码字典检测

3.2:网络扫描NMAP

1:安装NMAP包

2:扫描语法及类型

2:扫描语法及类型


一:账号安全控制

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

(1)禁止登录终端

设置登录shell为/sbin/nologin

[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd

(2)锁定账号

[root@localhost ~]# usermod -L zhangsan

[root@localhost ~]# passwd -S zhangsan

[root@localhost ~]# usermod -U zhangsan

[root@localhost ~]# passwd -S zhangsan

(3)锁定文件

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow

[root@localhost ~]# lsattr /etc/passwd /etc/shadow

[root@localhost ~]# chattr -i /etc/passwd /etc/shadow

[root@localhost ~]# lsattr /etc/passwd /etc/shadow

备注1:

chattr(设置文件的隐藏属性)

参数的设置方法:

+:增加某个参数

-:删除某个参数

=:仅有后面接的参数

参数的含义:

  • A 设置A属性后,若你访问此文件或目录时,它的访问时间atime不会被修改,可避免I/O较慢的机器过度访问磁盘。这对速度较慢的计算机有帮助。
  • S 一般文件是异步写入磁盘,加上S属性后,文件将同步写入磁盘
  • a 当设置a后,文件只能增加数据,既不能删除也不能修改数据,只有root才能设置这个属性
  • c 设置c属性后,会自动将文件压缩,在读取时自动解压缩
  • d 当dump程序执行时,设置d属性将可使改文件或目录不被dump备份
  • i i属性可使文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有很大帮助。只有root能设置此属性。
  • s 当文件设置s属性时,如果文件被删除,将从硬盘彻底删除
  • u 与s相反,当文件设置u属性时,文件删除后数据内容还存在磁盘,可以使用来找回该文件

备注2:

lsattr(显示文件隐藏属性)

参数

-a:将隐藏文件的属性也显示出来

-d:如果接的是目录,仅列出目录本身的属性而不是目录内的文件名

-R:连同子目录的数据也显示出来

实例:

[root@www ~]# chattr +ai test.txt

[root@www ~]# lsattr test.txt

注意:

用lsattr命令查看目录的属性时,会显示出该目录的一级子目录和子文件。

-R的选项能显示出所有子目录和子文件

[root@localhost ~]# mkdir aaa

[root@localhost ~]# cd aaa

[root@localhost aaa]# touch afd

[root@localhost aaa]# cd

[root@localhost ~]# lsattr aaa

---------------- aaa/afd

[root@localhost ~]# lsattr -d aaa

---------------- aaa

2:密码安全控制

[root@localhost ~]# cat /etc/shadow

zhangsan:$6$apnY60ss$I0a0XR1oPh.Xsc.JkOqjOEFUk/ILKrED72gNHTqtTZNf9PXIEzFdPDztKNE3FZNoHtUHyqC4OdYGYbenldwwv0:19166:0:99999:7:::

备注:

第1字段:用户的登录名

第2字段:加密(sha加密算法)的用户密码

第3字段:最近一次修改密码的时间

第4字段:最短密码使用期限

第5字段:最长密码使用期限

第6字段:过期前若干天提醒用户

第7字段:密码过期后多少天禁用此账户

第8字段:账号失效时间

第9字段:保留

(1)密码有效期的设置

新建用户可以通过修改login.defs文件修改密码有效期

[root@localhost ~]# vim /etc/login.defs

PASS_MAX_DAYS   30

备注:

#密码最长过期天数

PASS_MAX_DAYS 30 

#密码最小过期天数

PASS_MIN_DAYS 80

#密码最小长度

PASS_MIN_LEN 10

#密码过期警告天数

PASS_WARN_AGE 7

[root@localhost ~]# useradd lisi

[root@localhost ~]# passwd lisi

[root@localhost ~]# cat /etc/shadow

lisi:$6$6X/qToAq$g4HlHrW6KWkM/X4HPzx4qRGVSp/t0ynqr3/j8HMCWnxqwvbA28l9LGIIX59TR184CASLvvtgWhv3e4JFV1OXi0:19166:0:30:7:::

已有用户设置密码有效期

[root@localhost ~]# chage -M 50 lisi

PASS_MIN_LEN的值需要在/etc/pam.d/system-auth文件中设置,此处设置是不生效的,此参数由pam认证机制决定。

以下方式设置用户最短密码策略

[root@localhost ~]# vim /etc/pam.d/system-auth

添加:

password requisite pam_cracklib.so try_first_pass retry=3 minlen=12

(2)设置用户下次登录时重设密码

[root@localhost ~]# chage -d 0 zhangsan

切换到TTY终端下,用zhangsan登录系统,需要重设密码

3:命令历史、自动注销

(1)为新登录的用户设置命令历史

[root@localhost ~]# vi /etc/profile

HISTSIZE=20

(2)为已登录的当前用户设置命令历史

[root@localhost ~]# export HISTSIZE=200

(3)清空历史命令

[root@localhost ~]# vi ~/.bash_logout

history -c

clear

在终端输入logout注销出去,重新登录后history查看命令历史的清除效果。

(4)空闲自动注销

新登录用户设置

[root@localhost ~]# vi /etc/profile

export TMOUT=600

当前已登录用户设置

[root@localhost ~]# export TMOUT=600

1.2:用户切换与提权
1:su命令

(1)su切换用户

[root@localhost ~]# su zhangsan

(2)只允许指定的用户使用su进行切换

[root@localhost ~]# gpasswd -a zhangsan wheel

[root@localhost ~]# vi /etc/pam.d/su

auth            required        pam_wheel.so use_uid

注意:去掉前面的#号

验证:加入到wheel组的成员可以使用su,其他的用户不能使用su。

2:pam安全认证

(1)允许wheel组成员使用su命令

[root@localhost ~]# cat /etc/pam.d/su

auth            required        pam_wheel.so use_uid

3:sudo 命令 —— 提升执行权限

(1)在配置文件/etc/sudoers 中添加授权

[root@localhost ~]# visudo

zhangsan  localhost=/sbin/ifconfig

lisi localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route

%wheel  ALL=NOPASSWD: ALL

备注:

user MACHINE=COMMANDS,多个命令可以用逗号隔开

ALL=NOPASSWD: ALL 表示无需验证密码即可执行任何命令

lisi  ALL=(ALL)  NOPASSWD: ALL

(2)sudo日志

[root@localhost ~]# visudo

添加:

Defaults logfile = "/var/log/sudo"

(3)验证

使用lisi用户执行命令

[root@localhost ~]# su - lisi

[lisi@localhost ~]$ sudo lvscan

[lisi@localhost ~]$ sudo lvscan

  ACTIVE            '/dev/centos/swap' [4.00 GiB] inherit

  ACTIVE            '/dev/centos/root' [193.99 GiB] inherit

[lisi@localhost ~]$ exit

[root@localhost ~]# cat /var/log/sudo

Jun 23 20:20:02 : lisi : TTY=pts/1 ; PWD=/root ; USER=root ;

    COMMAND=/sbin/lvscan

二:系统引导和登录控制

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

2:限制更改 GRUB 引导参数(为GRUB添加密码)

(1)生成密文密码

[root@localhost ~]# grub2-mkpasswd-pbkdf2

输入口令:

Reenter password:

PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.2FC29375F7DCBEC6F8D28444EEC806FBC572A3BA3185B7D1F9FA5708D58719DC8A3C2F7FB1EA33B407B9B98691354D49089118049BF5672E5E51BBE59807EA65.5FD51B1C7FAEFD9F3F6E51D027EF3024AEA90B2633309020F2AB3BBB48444FC4435DBFB6578B8B49DF2D393D03FC564B23936C6C5F10A4FE37392C0054462AEC

[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

[root@localhost ~]# cp /etc/grub.d/01_users /etc/grub.d/01_users.bak

[root@localhost ~]# vim /etc/grub.d/01_users

cat << EOF

set superusers="root"

export superusers

password_pbkdf2 root grub.pbkdf2.sha512.10000.2FC29375F7DCBEC6F8D28444EEC806FBC572A3BA3185B7D1F9FA5708D58719DC8A3C2F7FB1EA33B407B9B98691354D49089118049BF5672E5E51BBE59807EA65.5FD51B1C7FAEFD9F3F6E51D027EF3024AEA90B2633309020F2AB3BBB48444FC4435DBFB6578B8B49DF2D393D03FC564B23936C6C5F10A4FE37392C0054462AEC

 EOF

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

重启进入GRUB测试密码

在GRUB菜单处第一行按下字母e,提示输入账号和密码

(2)使用明文GRUB密码

[root@localhost ~]# vi /etc/grub.d/01_users

cat << EOF

set superusers="root"

password root pwd123

EOF

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

2.2:终端及登录控制
1:禁止 root 用户登录

[root@localhost ~]# vi /etc/securetty

若要禁止 root 用户从 tty5tty6 登录,就注释掉tty5和tty6

#tty5

#tty6

2:禁止普通用户登录

[root@localhost ~]# touch /etc/nologin

三:弱口令检测、端口扫描

3.1:弱口令检测——John the Ripper
1:安装 John the Ripper

[root@localhost ~]# tar zxf john-1.8.0.tar.gz

[root@localhost ~]# cd john-1.8.0

[root@localhost john-1.8.0]# cd src/

[root@localhost src]# yum -y install gcc

[root@localhost src]# make clean linux-x86-64

2:检测弱口令

[root@localhost src]# cp /etc/shadow /root/shadow.txt

[root@localhost src]# cd /root/john-1.8.0/run/

[root@localhost run]# ./john /root/shadow.txt

查看检测结果

[root@localhost run]# ./john --show /root/shadow.txt

3:使用密码字典检测

[root@localhost run]# vim /root/pass.list

编写密码字典,将所有的用户密码写进去

[root@localhost run]# ./john --wordlist=/root/pass.list /root/shadow.txt

[root@localhost run]# ./john --show /root/shadow.txt

root:aptech::0:99999:7:::

lisi:111:19166:0:50:7:::

2 password hashes cracked, 1 left

3.2:网络扫描NMAP
1:安装NMAP包

[root@localhost ~]# yum install -y nmap

2:扫描语法及类型
2:扫描语法及类型

[root@localhost ~]# nmap 127.0.0.1

[root@localhost ~]# nmap -sU 127.0.0.1  ##扫描常用端口

[root@localhost ~]# ifconfig

[root@localhost ~]# nmap -p 21 192.168.10.0/24    ##扫描网段中哪些主机启用的端口21

[root@localhost ~]# nmap -n -sP 192.168.10.0/24   ##扫描存活主机

[root@localhost ~]# nmap -p 139,445 192.168.10.10-20    扫描主机是否开了共享

注释:

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

##具体参数以自己为主

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值