LInux运维进阶(五)-高级系统安全防护

SECURITY 003 Linux基本防护

用户账号安全
文件系统安全
************************************
1 用户账号安全
设置账号有效期:使用chage 工具
-d 0 强制修改密码
-E yyyy-mm-dd指定失效时间

首先添加用户:Useradd lucy

chage -l lucy  查看详情信息
最近一次密码修改时间 :7月 27, 2019
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

Chage -E 2099/09/09 lucy  -设置有效期到2099/09/09

echo 123456 | passwd --stdin lucy
更改用户 lucy 的密码 。
passwd:所有的身份验证令牌已经成功更新。

Chage -d 0 lucy        -强制修改密码

chage -l lucy -查看信息会看见已经被强制修改密码
最近一次密码修改时间 :密码必须更改
密码过期时间 :密码必须更改
密码失效时间 :密码必须更改

2 账号锁定与解锁
Passwd -S    查看用户状态
Passwd -l lucy 锁定用户
Passwd -u  解锁用户

强制定期修改密码
配置文件/etc/login.defs,注意这里只对新建的用户有效
/etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。

如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。

Vim /etc/login.defs

去掉配置文件里所有的注释:
grep -v “#” /etc/login.defs
-v忽略字母大小写
以下是配置文件的重要内容:
PASS_MAX_DAYS 99999
#密码最大有效期
PASS_MIN_DAYS 0
#两次修改密码的最小间隔时间
PASS_MIN_LEN 5
#密码最小长度,对于root无效
PASS_WARN_AGE 7
#密码过期前多少天开始提示

Min/max values for automatic uid selection in useradd

#创建用户时不指定UID的话自动UID的范围
UID_MIN 500
#用户ID的最小值
UID_MAX 60000
#用户ID的最大值

Min/max values for automatic gid selection in groupadd

#自动组ID的范围
GID_MIN 500
#组ID的最小值
GID_MAX 60000
#组ID的最大值


2 伪装登录提示
Vim /etc/issue  本地
/etc/issue.net 远程
默认值会提示内核,系统版本信息

**************************************

三 文件系统安全

程序服务控制
禁止非必要系统服务RHEL7
Syetemctl enable httpd
Systemctl disable httpd

禁止非必要系统服务RHEL6
Chkconfig httpd off
Chkconfig httpd on

EXT3 /EXT4 文件属性控制
锁定/解锁保护文件

    • =

属性i不可变(immutable)
属性a追加属性(append only)

添加
Chattr +a //etc/passwd
Chattr +i /etc/resolv.conf

查看
Lsattr -l

删除
Chattr -i
Chattr -a


四 用户切换身份

切换与提权的场景:
切换身份
Ssh 远程管理
运维测试

用户提权  when
管理权限细分

(1)Su: Substitute User 换人 
快速切换为指定的用户
趋同用户执行时.需要验证目标用户的口令
Root 执行时,无需口令

区别: su su -
Su root  快速切换root用户
Su -root  完整的root环境
Echo $PATH 区别环境变量是不一样的

Su -  -c “vim /etc/passwd” root
Su -   -c “systemctl restart mysqld”

安全日志:/var/log/secure
记录着su验证,shell 的开启与关闭

Vim /var/log/secure
记录用户的提权记录的配置文件

(2)Sudo 基本用法
管理员预先为用户设置许可
被授权用户有权执行授权命令,验证自己的口令
修改配置文件
Vim /etc/suduers
格式  用户名 主机名列表=命令列表
格式2 %用户名 主机名列表=命令列表

打开主配置文件列表方式:
1 visudo
2 Vim /etc/sudoers(推荐第二种)

Grep ^ root /etc/sudoers
grep wheel /etc/group

提权命令
Sudo 提权命令

普通用户查看提权命令
Sudo -l


配置sudo提权;用户分别为dc和mike

Vim /etc/sudoers

root ALL=(ALL) ALL
1)添加内容:dc localhost,zabbixserver=/usr/bin/vim /etc/mycnf,/usr/bin/systemctl * mysqld
2)添加内容:mike localhost,zabbixserver=/sbin/*,!/sbin/ifconfig eth0

%Wheel All=(ALL) NOPASSWD:ALL


3)将dc用户添加到wheel 组里边,wheel组是具有root权限的组:
Usermod -G wheel dc

4)另外开一个终端验证: ssh -X \mike\dc@192.168.4.5
Sudo vim /etc/mycnf
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

启用日志文件,记录用户执行的sudo操作
Vim /etc/soduers
Default logfile =”/var/log/sudo.log”

Sudo别名设置

主要用途:
提高可重用,易读
简化配置
Visudo
User_Alias OPERAION=tom
Host_Alias MAILSERVICE=mail ,smtp,pop
注意:这里别名必须全部大写


五SSH 秘钥对认证登录

存在的安全隐患
密码嗅探.键盘记录
暴力枚举账号,踩破密码
常见预防
用户限制.黑白名单
秘钥->秘钥对
防火墙

1 SSH基本安全配置
Sshd 服务运行参数修改
Vim /etc/ssh/sshd_config
常见的安全配置修改

Port 3389          改用非标准端口
Protocol 2 启用SSH V2版本
Listenaddress 192.168.168.174
permitRoolLogin no 禁止root登录
UseDns no 不解析客户及地址
LoginGraceTime 1m 登录限时
MaxAuthTries 3 每次最多认证次数

设置黑白名单(控制客户端连接使用的用户)
白名单 定义允许连接的用户
Allowusers
黑名单 仅定义不允许连接的用户
DenyUsers
AllowGroups
DenyGroups

实例添加三个用户
Root
Lucy
Dc

配置添加用户lucy可以登录192.168.4.5 z主机

Vim /etc/ssh/sshd_config
配置文件最后一行添加白名单
Allowusers root@192.168.4.254 lucy
Systemctl restart sshd
Ssh -X root@192.168.4.5 \ ssh -p 2222 lucy@192.168.4.5

注释调白名单往配置文件添加黑名单
Denyusers dc

2 Ssh 密钥对验证
口令验证:检查登录用户的口令是否一致
pubkeyAuthtication yes
秘要验证:检查客户端私钥与服务器上的公钥是否匹配
passwordAuthtication yes

AuthriZiedKeysFile .ssh/authorized_keys

秘钥对验证实现思路
在这里插入图片描述

Rm -rf ~ /.ssh
Ssh-keygen  实用工具:ssh-keygen
可以手动指定加密算法.(-t rsa -t dsa )
若不指定,则会默认RSA 加密
Ls ~/.ssh
Ssh-copy-id root@192.168.4.100
4.100 \4.5 禁止口令登录 vim /etc/ssh/sshd_connfig

65行
pubkeyAuthtication no

4.5主机去验证:ssh root@192.168.4.100
发现没有密码也可以登录

*************************************

vim /etc/sysconfig/selinux

[root@client ~]# ls -l /etc/sysconfig/selinux
lrwxrwxrwx. 1 root root 17 1月 26 12:34 /etc/sysconfig/selinux -> …/selinux/config


Selinux安全防护
什么是selinux:
一套强化Linux安全的拓展模块\
美国国家安全局主导研发

三大策略:
   targeted:仅仅保护最关键的常见的网络服务,其他不限制(首选推荐)

Mls
Minimum
Selinux策略设置

查看selinux的状态getenforce
Sestatus
Selinux 给打标签,记录着各自的权限

Selinux开关控制
临时调整:setenforce 0| 1
0宽松
1强制

1 查看安全上下文(标签)
文件  -lZ
目录 -ldZ
进程 aux -Z

Ls -lZ /ect/passwd

2 属性构成:
用户:角色:访问类型:选项
一般规律:移动的文件,原有的上下文属性属性不变
复制的文件自动继承目标位置上下文
新建的文件,自动继承父目录安全上下文

ls -ldZ  /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
[root@client ~]# ls -lZ /var/www/html/a.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/a.html
[root@client ~]# ls -ldZ /root
dr-xr-x—. root root system_u:object_r:admin_home_t:s0 /root
[root@client ~]#
[root@client ~]# ls -lZ /root/b.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 /root/b.html
************************************

[root@client ~]# cp /root/b.html /var/www/html/
[root@client ~]# ls -lZ /var/www/html/b.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/b.html
[root@client ~]# mv /root/b.html /var/www/html/b1.html
[root@client ~]# ls -lZ /var/www/html/b
b1.html b.html
[root@client ~]# ls -lZ /var/www/html/b1.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 /var/www/html/b1.html
[root@client ~]#
[root@client ~]#
[root@client ~]# cd /var/www/html/
[root@client html]# ls -lZ
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 b1.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 b.html
*************************************
3 修改安全上下文
Chcon
-t  指定访问类型
-R 递归修改

root@client html]# mv /root/c.html /var/www/html/
[root@client html]# ls -lZ
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 b1.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 b.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 c.html

[root@client html]# restorecon c.html  恢复安全上下文

[root@client html]# ls -lZ
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 a.html
-rw-r–r--. root root unconfined_u:object_r:admin_home_t:s0 b1.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 b.html
-rw-r–r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 c.htm

4 恢复文件安全上下文回复
使用restorecon工具
回复所在位置的默认上下文属性
-R 递归修改
 
创建Touch /.autorelabel 文件 ->  下次重启全部重置

调整Selinux布尔值(功能开关)
查看所有服务的布尔值
Getsebool -a | grep httpd
修改所有服务的布尔值
Setsebool -P samba_share_fusefs on | off

开启selinux 运行vsftp服务,设置允许匿名用户可以对/var/ftp/sharedir目录上传和下载的权限
Yum -y install vsftp
Systemctl
29 去注释行 Vim /etc/vsftpd/vsftpd.conf
Mkdir /var/ftp/sharedir
Chmod o+w /var/ftp/sharedir
Systemctl restart vsftpd
Cp /etc/passwd /var/ftp/sharedir
Ls /var/ftp/sharedir
客户端访问192.168.4.51->4.50
装包ftp
ftp 192.168.4.50

ftp>ls
Sharedir
ftp>cd sharedir
ftp>get passwd
ftp > bye
Pwd ->/root
Ls
Passwd
ftp> 4.50
ftp>cd sharedir
ftp>lcd /etc/(切换到本地目录)
ftp>put hosts 4.50-setenforce 0 上传到4.50

5 修改查看布尔值
Getsebool -a | grep ftp  -a列出所有布尔值
Setsebool -P ftpd_anon_write on  -P永久修改
Setsebool -P ftpd_full_access on

Lcd /etc
Put shadow
Ls
Bye

[root@web1 ~]# ftp 192.168.4.5
Connected to 192.168.4.5 (192.168.4.5).
220 (vsFTPd 3.0.2)
Name (192.168.4.5:root): ftp
331 Please specify the password.
Password:回车
  230 Login successful.
   Remote system type is UNIX.
   Using binary mode to transfer files.
ftp> cd sharedir
   250 Directory successfully changed.
ftp>lcd /etc
Local directory now /etc
ftp> put shadow
local: shadow remote: shadow
227 Entering Passive Mode (192,168,4,5,52,53).
150 Ok to send data.
226 Transfer complete.
1486 bytes sent in 5.3e-05 secs (28037.74 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,4,5,145,202).
150 Here comes the directory listing.
-rw------- 1 14 50 235 Jul 27 09:37 hosts
-rw-r–r-- 1 0 0 1639 Jul 27 09:24 passwd
-rw------- 1 14 50 1486 Jul 27 09:51 shadow
226 Directory send OK.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~上善若水~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值