天天看点

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

监控与服务安全

用户账号安全

使用chage工具

  • -d 0 ,强制修改密码
  • -E yyyy-mm-dd,指定失效日期(-1取消)
  • -l 查看具体信息
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

账号的锁定/解锁

使用passwd命令

  • -l锁定 -u解锁  -S看状态
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

强制定期修改密码

配置文件/etc/login.defs

-对新建用户有效

主要控制属性

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

伪装登录提示

配置文件/etc/issue   /etc/issue.net

-分别适用于本地,远程登陆

-默认会提示内核,系统等版本信息

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

文件系统安全

程序和服务控制

禁用非必要的系统服务

-使用systemctl,chkconfig工具

锁定/解锁保护文件

EXT3/EXT4的文件属性控制

-chattr  lsattr

+,-控制方式

-属性i:不可变(immutable)

-属性a:仅可追加(append only)

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

案例

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

su切换用户身份

切换与提权的应用场景

切换用户身份,When?

-SSH远程管理

-运维测试

提升执行权限,When?

-管理权限细分

su切换的基本用法

Substitute User,换人

-快速切换为指定的其他用户

-普通用户执行时,需验证用户的口令

-root执行时,无需验证口令

命令格式

-用法1:su [-] [目标用户]

-用法2:su [-] -c "命令" [目标用户]

su操作示例

从普通用户切换为root,并登录shell环境

-执行su -,或者su - root

-不指明用户时,默认为root

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

root以指定的普通用户身份执行任务

-以用户tom的身份创建目录

-以用户tom的身份执行管理员操作会出错

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

分析su切换的使用情况

安全日志/var/log/secure

-记录su验证、shell开启与关闭

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

sudo提升执行权限

sudo提权的基本用法

Super or another Do ,超级执行

-管理员预先为用户设置执行许可

-被授权用户有权执行授权的命令,验证自己的口令

执行提权命令

-用法:sudo 提权命令

查看提取命令

-用法:sudo -l

配置sudo提权

修改方法

-推荐:visudo

-其他:vim /etc/sudoers

授权记录格式

-用户  主机列表=命令列表

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

示例1

-允许mike以root权限执行/sbin/下的所有命令

-但是,禁止修改eth0网卡的参数

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

示例2

-wheel组的用户无需验证可执行所有命令

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

分析sudo提权的使用情况

修改全局配置,启用日志

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

sudo别名设置

主要用途

-提高可重用性,易读性

-简化配置,使记录更有条例

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

案例

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

SSH基本防护

SSH防护概述

存在的安全隐患

-密码嗅探,键盘记录

-暴力枚举账号,猜接密码

常见的防护措施

-用户限制,黑白名单

-更改验证方式(密码-->密钥对)

-防火墙

sshd基本安全配置

配置文件/etc/ssh/sshd_config

PermitEmptyPasswords no   //禁止密码为空的用户登录

PasswordAuthentication no  //禁止密码登

PubkeyAuthentication yes  //启用密钥对认证登录

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

sshd黑/白名单配置

配置文件/etc/ssh/sshd_config

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

应用示例

-仅允许一部分用户(从指定地点)登录

-其他用户均禁止登录

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

sshd黑白名单配置

应用示例

-仅允许一部分用户(从指定地点)登录

-其他任何用户均禁止登录

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

SSH密钥对验证

口令验证

-检查登录用户的口令是否一致

密钥验证

-检查客户端私钥与服务器上的公钥是否匹配

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

密钥对验证的实现思路

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

创建SSH密钥对

使用工具ssh-keygen

-可以手动指定加密算法(-t rsa 或 -t dsa)

-若不指定,默认采用RSA加密 

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

部署SSH公钥

方法一,通过ssh-copy-id自动部署

-好处:一步到位

-局限性:要求ssh口令认证可用

方法二,通过FTP等方式上传,手动添加

-好处:灵活,适用范围广

-局限性:操作繁琐,易出错

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

测试SSH密钥对验证

客户端登录操作

-仅限密钥对创建人使用

-需验证私钥口令(如果有的话,否则免密码登录)

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

案例

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

SELINUX安全防护

SELINUX概述

Security-Enhanced Linux

-一套强化LINUX安全的扩展模块

-美国国家安全局主导开发

SELinux的运作机制

-集成到LINUX内核(2.6以上)

-操作系统提供可指定的策略,管理工具

红帽的SELINUX策略集

SELINUXTYPE=targeted

-推荐,仅保护最常见的、关键的网络服务,其他不收限制

-主要软件包:

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

SELINUX模式控制

方法一,修改kernel启动参数

-添加selinux=0以禁用

-添加enforcing=0设置SELinux为允许模式

方法二,修改文件/etc/selinux/config

-设置SELINUX=disabled以禁用

-设置SELINUX=permissive宽松、允许模式

-设置SELINUX=enforcing强制模式

SELinux开关控制

临时调整,setenforce命令

-设为1,对应强制模式

-设为0,对应宽松模式

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

SELinux策略设置

查看安全山下文

Security Context,安全上下文

-为文件/目录/设备标记访问控制属性

属性构成

-用户:角色:访问类型:选项...

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

修改安全上下文

使用chcon工具

-t,指定访问类型

-R,递归修改

一般操作规律

-移动的文件,原有的上下文属性不变

-复制的文件,自动继承目标位置的上下文

示例:

-有一个权限为644的文件,但是FTP无权下载

-分析故障原因,并解决此问题

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

重置安全上下文

使用restorecon工具

-恢复为所在位置的默认上下文属性

-R,递归修改

./autorelabel文件

-下次重启后全部重置

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

调整SELinux布尔值

使用getsebool查看

-a,可列出所有布尔值

使用setsebool设置

-P,永久更改,重启后任然有效

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux

提供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  //断开连接

案例

Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux
Linux基本防护 、 用户切换与提权 、 SSH访问控制 、 Selinux安全防护 、 总结和答疑监控与服务安全用FTP测试SELinux