系统安全及应用

账号安全控制

系统账号清理

账户文件锁定

chattr +/-i 文件#锁定/解锁账户文件

点击查看选项
A:即Atime,告诉系统不要修改对这个文件的最后访问时间。
S:即Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
b:不更新文件或目录的最后存取时间。
c:将文件或目录压缩后存放。
d:当dump程序执行时,该文件或目录不会被dump备份。
D:检查压缩文件中的错误。
i:即Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
s:彻底删除文件,不可恢复,因为是从磁盘上删除,然后用0填充文件所在区域。
u:当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件,用来防止意外删除文件或目录。
t:文件系统支持尾部合并(tail-merging)。
X:可以直接访问压缩文件的内容
lsattr 文件#查看账户文件是否锁定

系统管理基本命令

将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
·锁定长期不使用的账号
usermod -L 用户名
passwd -l 用户名
passwd -S 用户名 #查看用户账号状态
·删除无用的账号
userdel [-r] 用户名
·锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow #锁定账号及密码文件
lsattr /etc/passwd /etc/shadow #查看账号及密码文件
chattr -i /etc/passwd /etc/shadow #解锁账号及密码文件

设置密码有效期

vi /etc/login.defs#对于新建的用户,修改配置文件
PASS_MAX_DAYS 99999/n #99999=无限时间/n=天数

chage 选项 用户

选项

点击查看代码
  -d	  指定密码最后修改日期  
  -E	  密码到期的日期,过了这天,此账号将不可用,0表示马上过期,-1表示永不过期  
  -h	  显示帮助信息并退出
  -I	  密码过期后,锁定账号的天数
  -l	  列出用户及密码的有效期
  -m	  密码可更改的最小天数。为零代表任何时候都可以更改密码
  -M	  密码保持有效的最大天数
  -W	  密码过期前,提前收到警告信息的天数

cat /etc/shadow #发现用户密码有效期为99999天

vim /etc/login.defs #更改最大有效期为30天
# PASS_MAX_DAYS 99999
PASS_MAX_DAYS 30

useradd wangwu && echo "000000" | passwd --stdin wangwu #创建wangwu用户
cat /etc/shadow | grep wangwu #查看密码有效期为30天

用法举例
chage -M 30 用户#用户密码有效期为30天
chage -d 0 用户#用户下次登陆必须修改密码

命令历史、自动注销

减少记录的命令条数

vi /etc/profile
修改HISTSIZE=n,n为修改条数
或末行添加export HISTSIZE=n
完成修改后source /etc/profile刷新,系统将重新读取该文件

登录时自动清空命令历史

vi /etc/.bashrc
末行添加echo "" > ~./bash_histroy

终端自动注销

vi /etc/profile
修改TMOUNT=n,n为无操作的秒数,若n秒无操作,账户将自动注销
完成修改后source /etc/profile刷新,系统将重新读取该文件

用户切换与提权

su 用户安全切换

su - root切换用户后进入目标用户的登录shell环境
修改/etc/pam.d/su认证配置,去掉开头#注释,以启用pam_wheel认证
vim /etc/pam.d/su
auth required pam_wheel.so use_uid
只有在wheel组中的用户可以正常切换root用户,查看wheel组,其中没有已添加的用户
grep "^wheel" /etc/group
再次尝试切换root用户,权限拒绝
su - root
将用户加入wheel组
gpasswd -a 用户 wheel
再次尝试切换root用户,成功切换
su - root

sudo 用户提权

提升普通用户执行权限
使用visudo编辑配置文件/etc/sudoers
user MACHINE=COMMANDS

user:授权的用户名,或%组名,表示组内所有用户。
MACHINE:使用此配置文件的主机名称,一般设为localhost或者实际主机名。
COMMANDS:允许授权用户通过sudo执行的特权命令,需要命令的完整路径,多个以,分隔。

集中定义别名:User_Alias、Host_Alias、Cmnd_Alias,别名必须大写。
例子:

允许用户jerry、tom、kcce在主机smtp、pop中执行rpm、yum命令。

User_Alias OPERATORS=jerry,tom,kcce
Host_Alias MAILSVRS=smtp,pop
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
OPERATORS MAILSVRS=PKGTOOLS

通配符、取反符号!,一般授权某个目录下所有命令,但取消其中个别命令时使用。
zhangsan localhost=/sbin/
,!/sbin/ifconfig,!/sbin/route

启用日志,配置文件添加以下参数。
Defaults logfile="/var/log/sudo"

例子

已有普通用户lisi、现有网卡配置
id lisi
ifconfig ens33
使用lisi尝试修改网卡地址,无法修改
ifconfig ens33 192.168.128.128
sudo ifconfig ens33 192.168.128.128
ifconfig ens33
使用root用户编辑/etc/sudoers,给lisi添加授权
visudo /etc/sudoers
lisi localhost=/sbin/ifconfig
再次使用lisi用户修改地址,成功修改
sudo ifconfig ens33 192.168.128.128
ifconfig ens33
使用sudu -l查看自己的sudo配置
sudo -l

GRUB限制

默认情况下,CentOS 7启动时,是可以随意进入GRUB菜单修改引导参数的,为了安全,可以对其设置密码,只有拥有相应的用户与密码才可以进入

例子

备份需要修改的GRUB配置文件
cp -p /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp -p /etc/grub.d/00_header /etc/geub.d/00_header.bak

创建一个GRUB密码备份
grub2-mkpasswd-pbkdf2
Enter password:输入密码
Reenter password:再次输入密码
PBKDF2 hash of your password is 输出秘钥

修改/etc/grub.d/00_header,加入用户与对应的密码
vim /etc/grub.d/00_header
cat << EOF
set superusers="root"
password_pbkdf2 root 秘钥
EOF

重新创建GRUB配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启验证
reboot
验证结果
使用上下取消读秒,按下e默认进入3,可以随意修改引导参数,不需要密码
加入密码后,需要输入用户名、密码才可以进入3

弱口令检测

使用弱密码会增加安全风险,而管理员可以使用john the Ripper这款开源工具,可以分析弱密码,以便采取相应的安全措施
例子

安装编译器环境
yum install gcc gcc-c++ -y
源代码编译安装
tar zxvf john-1.8.0.tar.gz -C ~
ll
cd ~/john-1.8.0/src/
ls
make linux-x86-64

运行脚本,分析账户、密码文件,只有zhangsan用户的密码强度足够,没有分析出来
cd ~/john-1.8.0/run/
ls
./john /etc/passwd /etc/shadow

端口扫描

nmap 端口扫描

NMAP是一个强大的端口扫描类安全评测工具,支持ping扫描、多端口检测等多种技术

yum install -y namp更新运行环境
选项

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

entstat

netstat -natp #查看正在运行的使用TCP协议的网络状态信息
netstat -naup #查看正在运行的使用UDP协议的网络状态信息
分别查看本机/其他主机开放的TCP、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1
检测192.168.80.0/24网段有哪些主机提供HTTP服务
nmap -p 80 192.168.80.0/24
检测192.168.80.0/24网段有哪些存活主机
nmap -n -sP 192.168.80.0/24

常用选项	说明
-a	显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-n	以数字的形式显示相关的主机地址、端口等信息
-t	查看TCP相关的信息
-u	显示UDP协议相关的信息
-p	显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
-r	显示路由表信息
-l	显示处于监听状态的网络了解及端口信息
posted @ 2022-07-16 11:58  玖拾一  阅读(91)  评论(0编辑  收藏  举报