SECURITY
一、Linux基本防护
1.用户账号安全
A、设置账号有效期,临时人员账号
B、Useradd 有效期273年
C、Chage(change age) -l zhangsan 查用户账号有效期信息
D、chage -E(expire) xxxx-xx-xx zhangsan //设置账号到期时间,设置在前时间即立刻过期
E、/etc/login.defs //默认有效期的文件
PASS_MAX_DAYS 默认有效期时间
PASS_MIN_DAYS 最少x天才可以改一次密码
PASS_MIN_LEN 密码最少长度为多少位
PASS_WARN_AGE 密码到期前的多少天发出提示
UID)_MINUID最小值
UID_MAX UID最大值
SYS_GIN_...系统用户的最大最小值
CREATE_HOME 是否创建用户家目录
ENCRYPT_METHOD 设置密码时采用SHA512加密
F、passwd -l lisi 锁定用户,暂时不给登陆(用于该用户受攻击,先隔离再修复)
Passwd -u lisi 解锁用户
passwd -S lisi 查看用户状态
G、/etc/issue 登陆信息
\S 操作系统信息
Kernel \r on an \m 内核版本信息
一般为了安全,将版本号隐藏,防止别人针对版本进行攻击,可修改成其他信息
2.文件系统安全
H、锁定文件(+为锁定,-为解锁)
Lsattr 文件名 查看文件特殊属性
Chattr +a 文件名 锁定后文件只可追加内容,不可删内容或文件(包括管理员也不行,除非解锁)
Chattr +i文件名 彻底锁定,改也不允许,只能查看内容
+s 当删除文件时,不单止删除inode标签,还覆盖一层零到数据快上保证数据被清除,也叫做安全删除。(对文件系统有要求,不一定能设置)
二、用户切换和提权
1.su切换用户身份
A.su - 用户名 (交互式,切换后再输入命令执行),不输入用户名为root,需要输入密码
Su - 用户名 -c ‘命令’(非交互式,用于写脚本)
2.Sodu提升执行权限(不需要管理员密码,能做管理员的任务,但是需要管理员分配权限)
Eg:tom 安装软件
Jerry管理服务
Lily用户管理
B.vim /etc/sudoers(带颜色,没有改错提示) 或 visudo(改错会有提示)
softadm ALL=(root) /usr/bin/systemctl
授权softadm 以root用户的身份从任何地方(all)登陆执行systemctl命令;要找到命令的执行位置
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root
授权useradm从任何地方登陆以任何身份执行passwd命令,但不能做passwd root命令,多条命令间用“,”隔开,“!”命令取反,支持通配符
%wheel ALL=(ALL) NOPASSWD:命令 //允许wheel组的成员......,nopasswd执行命令时无需输密码
Cmnd_Alias xxx 设置别名等于哪些命令,注释里有,去通过去掉注释使用或手动设置,注意要大写。
在里面写入行: Defaults logfile=”/var/log/sudo” 为sudo机制启用日志记录,以便跟踪sudo执行操作,D要大写,日志只有管理员看
切换到softadm用户:
Sodu -l 查看用户可以运行哪些命令
Sodu systemctl restart sshd 执行命令前要加sodu
三、ssh基本防护
1.配置基本安全策略
配置文件:
作为客户端连别人(/etc/ssh/ssh_config)
作为服务器被别人连(/etc/ssh/sshd_config)
Vim /etc/ssh/sshd_config
PermitRootLogin no //禁止直接以root用户身份登录,防止别人试密码,可先登陆到普通用户再su - root 输密码
PasswordAuthentication yes //是否允许使用密码登陆,不允许就只能通过密钥登陆,防止别人抓包
PermitEmptyPasswords no//禁止密码为空的用户登录
UseDNS no //不解释客户机地址,比较快
LoginGraceTime 1m //登陆超时
MaxAuthTries 3 //每次连接最多认证次数
增加行:AllowUser lisi haha useradm@192.168.4.0/24
//仅允许以lisi haha 以及在4网段上以useradm的身份ssh,默认拒绝其他所有
DenyUsers ...... 禁止直接以root用户身份登默认允许其他所有
Allow|DenyGroups Group1 group2
2.密钥远程登陆,免密码登陆
客户端生成密钥:ssh-keygen -t rsa
Ssh-copy-id root@192.168.4.5 //发送公钥到服务端,以root用户身份登陆,输入密码后以后无需输入密码
可在服务端目标用户的家目录下~/.ssh/authorized_keys查看公钥信息
3.提高ssh服务安全小结
A、基本安全策略(禁止root、禁止空口令)
B、为SSH访问配置“仅允许”策略
C、分别实现密钥验证登入,免密码登入
D、禁用密码验证
四、SELinux安全防护
1.配置文件(/etc/selinux/config)
模式:
Permissive宽松(仅记录,不拦截)
Disabled禁用(不记录,不拦截)
Enforcing强制(记录并拦截)
SELINUXTYPE(策略集):
原理:
用户运行程序,程序继承该用户的权限(rwx)
Selinux定义规则,对程序单独设规则
Httpd 对软件规则httpd_content(标签),只能读带有该标签的文件
Chcon -t xyz a.html //a.html贴上xyz标签
Targetd 多对网络程序定的规则
Minimum 基本不定义
Mls 基本的都限制了
2.修改selinux 模式
临时修改:setenforce
永久修改:改配置文件,若改为disabled,需要重启系统
3.调整策略打开vsftpd服务的匿名上传访问
Yum -y install vsftpd;
Vim /etc/vsftpd/vsftpd.conf
Anonymous_enable=YES //开启匿名访问(默认开了,可以下载文件)
Write_enable=YES
Anon_upload_enable=YES //允许匿名上传文件
Anon_mkdir_write_enable=YES //允许上传目录
4.调整文件的安全上下文(selinux context)
Mv移动文件安全上下文不变
Cp移动文件安全上下文继承新目录的安全上下文标签
Chcon -t 安全上下文 文件名 //修改文件安全上下文
Restorecon /var/ftp/xxx.xx //重置xxx.xx文件的标签为与/var/ftp/标签相同,效果与chcon相同。
5.调整selinux布尔值
Getsebool -a //列出所有布尔值
Setsebool -P(永久更改) 布尔值 on|off //调整布尔值
本文暂时没有评论,来添加一个吧(●'◡'●)