监控与服务安全
用户账号安全
使用chage工具
- -d 0 ,强制修改密码
- -E yyyy-mm-dd,指定失效日期(-1取消)
- -l 查看具体信息

账号的锁定/解锁
使用passwd命令
- -l锁定 -u解锁 -S看状态
强制定期修改密码
配置文件/etc/login.defs
-对新建用户有效
主要控制属性
伪装登录提示
配置文件/etc/issue /etc/issue.net
-分别适用于本地,远程登陆
-默认会提示内核,系统等版本信息
文件系统安全
程序和服务控制
禁用非必要的系统服务
-使用systemctl,chkconfig工具
锁定/解锁保护文件
EXT3/EXT4的文件属性控制
-chattr lsattr
+,-控制方式
-属性i:不可变(immutable)
-属性a:仅可追加(append only)
案例
su切换用户身份
切换与提权的应用场景
切换用户身份,When?
-SSH远程管理
-运维测试
提升执行权限,When?
-管理权限细分
su切换的基本用法
Substitute User,换人
-快速切换为指定的其他用户
-普通用户执行时,需验证用户的口令
-root执行时,无需验证口令
命令格式
-用法1:su [-] [目标用户]
-用法2:su [-] -c "命令" [目标用户]
su操作示例
从普通用户切换为root,并登录shell环境
-执行su -,或者su - root
-不指明用户时,默认为root
root以指定的普通用户身份执行任务
-以用户tom的身份创建目录
-以用户tom的身份执行管理员操作会出错
分析su切换的使用情况
安全日志/var/log/secure
-记录su验证、shell开启与关闭
sudo提升执行权限
sudo提权的基本用法
Super or another Do ,超级执行
-管理员预先为用户设置执行许可
-被授权用户有权执行授权的命令,验证自己的口令
执行提权命令
-用法:sudo 提权命令
查看提取命令
-用法:sudo -l
配置sudo提权
修改方法
-推荐:visudo
-其他:vim /etc/sudoers
授权记录格式
-用户 主机列表=命令列表
示例1
-允许mike以root权限执行/sbin/下的所有命令
-但是,禁止修改eth0网卡的参数
示例2
-wheel组的用户无需验证可执行所有命令
分析sudo提权的使用情况
修改全局配置,启用日志
sudo别名设置
主要用途
-提高可重用性,易读性
-简化配置,使记录更有条例
案例
SSH基本防护
SSH防护概述
存在的安全隐患
-密码嗅探,键盘记录
-暴力枚举账号,猜接密码
常见的防护措施
-用户限制,黑白名单
-更改验证方式(密码-->密钥对)
-防火墙
sshd基本安全配置
配置文件/etc/ssh/sshd_config
PermitEmptyPasswords no //禁止密码为空的用户登录
PasswordAuthentication no //禁止密码登
PubkeyAuthentication yes //启用密钥对认证登录
sshd黑/白名单配置
配置文件/etc/ssh/sshd_config
应用示例
-仅允许一部分用户(从指定地点)登录
-其他用户均禁止登录
sshd黑白名单配置
应用示例
-仅允许一部分用户(从指定地点)登录
-其他任何用户均禁止登录
SSH密钥对验证
口令验证
-检查登录用户的口令是否一致
密钥验证
-检查客户端私钥与服务器上的公钥是否匹配
密钥对验证的实现思路
创建SSH密钥对
使用工具ssh-keygen
-可以手动指定加密算法(-t rsa 或 -t dsa)
-若不指定,默认采用RSA加密
部署SSH公钥
方法一,通过ssh-copy-id自动部署
-好处:一步到位
-局限性:要求ssh口令认证可用
方法二,通过FTP等方式上传,手动添加
-好处:灵活,适用范围广
-局限性:操作繁琐,易出错
测试SSH密钥对验证
客户端登录操作
-仅限密钥对创建人使用
-需验证私钥口令(如果有的话,否则免密码登录)
案例
SELINUX安全防护
SELINUX概述
Security-Enhanced Linux
-一套强化LINUX安全的扩展模块
-美国国家安全局主导开发
SELinux的运作机制
-集成到LINUX内核(2.6以上)
-操作系统提供可指定的策略,管理工具
红帽的SELINUX策略集
SELINUXTYPE=targeted
-推荐,仅保护最常见的、关键的网络服务,其他不收限制
-主要软件包:
SELINUX模式控制
方法一,修改kernel启动参数
-添加selinux=0以禁用
-添加enforcing=0设置SELinux为允许模式
方法二,修改文件/etc/selinux/config
-设置SELINUX=disabled以禁用
-设置SELINUX=permissive宽松、允许模式
-设置SELINUX=enforcing强制模式
SELinux开关控制
临时调整,setenforce命令
-设为1,对应强制模式
-设为0,对应宽松模式
SELinux策略设置
查看安全山下文
Security Context,安全上下文
-为文件/目录/设备标记访问控制属性
属性构成
-用户:角色:访问类型:选项...
修改安全上下文
使用chcon工具
-t,指定访问类型
-R,递归修改
一般操作规律
-移动的文件,原有的上下文属性不变
-复制的文件,自动继承目标位置的上下文
示例:
-有一个权限为644的文件,但是FTP无权下载
-分析故障原因,并解决此问题
、
重置安全上下文
使用restorecon工具
-恢复为所在位置的默认上下文属性
-R,递归修改
./autorelabel文件
-下次重启后全部重置
调整SELinux布尔值
使用getsebool查看
-a,可列出所有布尔值
使用setsebool设置
-P,永久更改,重启后任然有效
提供SELINUX日志功能的软件
yum list|grep shoot
yum -y install setroubleshoot*
systemctl restart httpd
error
[[email protected] ~]# grep -i "shoot" /var/log/messages | tail -1 //提示错误信息
Mar 7 01:06:59 200 setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8866. For complete SELinux messages run: sealert -l 2267baf1-aa60-45e0-9935-b9ffbdd2902b
[[email protected] ~]# sealert -l 2267baf1-aa60-45e0-9935-b9ffbdd2902b //会给出解决办法
用FTP测试SELinux
[[email protected] ~]# rpm -q vsftpd || yum -y install vsftpd
[[email protected] ~]# vim /etc/vsftpd/vsftpd.con
29 anon_upload_enable=YES 允许上传文件
:wq
[[email protected] ~]# mkdir /var/ftp/share
[[email protected] ~]# chmod o+w /var/ftp/share/
[[email protected] ~]#
[[email protected] ~]# ls -ldZ /var/ftp/share
drwxr-xrwx. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/share
[[email protected] ~]#
[[email protected] ~]# systemctl start vsftpd
[[email protected] ~]# netstat -utnlp | grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 1021/vsftpd
[[email protected] ~]# ls -ldZ /var/ftp/
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/
[[email protected] ~]#
[[email protected] ~]# setenforce 1
[[email protected] ~]# getsebool -a | grep ftp
[[email protected] ~]# setsebool -P ftpd_anon_write on
[[email protected] ~]# setsebool -P ftpd_full_access on
[[email protected] ~]# getenforce
Enforcing
[[email protected] ~]#
客户端上传,下载文件
[[email protected] ~]# which ftp
[[email protected] ~]# yum -y install ftp
[[email protected] ~]# ftp 192.168.4.200 //连接
Name (192.168.4.200:root): ftp //用户名
Password: //密码直接回车
ftp> ls //查看目录列表
ftp> cd share //进共享目录
ftp> lcd /etc //切换到客户端目录
ftp> put group //上传文件
ftp> bye //断开连接
案例