系统安全
系统安全
安装系统
1,选择稳定版操作系统
2,最小化安装
3,不要安装gcc,make
4,安装完以后更新系统
yum -y update
文件(目录)权限
1 ,基本权限rwx
对于目录,默认权限=777-umask
对于文件,默认权限=666-umask
umask默认为022 即参加目录默认权限是755 文件默认权限为644
修改umask
#vim /etc/bashrc umask 002 #普通用户 else umask 022 #超级用户 fi #vim /etc/profile umask 002 #普通用户 else umask 022 #超级用户 fi
注意:保持默认即可,无需修改
2,特殊权限suid sgid sticky
suid冒险位,执行二进制文件与文件所有人有关,与谁来执行无关。例如使用root用户可以less查看文件
less /etc/shadow
新建普通用户无法使用less查看
[root@node1 ~]# useradd jack [root@node1 ~]# su - jack [jack@node1 ~]$ less /etc/shadow /etc/shadow: 权限不够
查看命令less的权限为755
[root@node1 ~]# ll /usr/bin/less -rwxr-xr-x. 1 root root 158240 7月 31 2015 /usr/bin/less
增加冒险位
chmod 4755 /usr/bin/less
切换到新创建的jack用户就可以使用less查看文件/etc/shadow了
注意:一般不增加冒险位
改回来
chmod 755 /usr/bin/less
sgid强制位,对目录生效,在此目录中创建文件自动归入目录所在组
sticky 粘制位,目录中的文件只能被文件拥有者删除
3,文件ACL
#ls -l如果权限后面带有+号则表示有ACL权限
查看ACL权限
[root@node1 ~]# getfacl test # file: test # owner: root # group: root user::rw- group::r-- other::r--
设定ACL权限
setfacl -m u:jack:rw test.tt
查看
[root@node1 ~]# getfacl test.tt # file: test.tt # owner: root # group: root user::rw- user:jack:rw- group::r-- mask::rw- other::r--
注意:设置ACL使用较少
4,文件属性
chattr lsattr +a -a +i -i -d
#chattr +a test.txt #只能给文件添加内容,但是删除不了,属于追加 #echo "123">>test.txt #无法删除 # rm -rf test.txt rm: 无法删除"test.txt": 不允许的操作
例如修改/etc/passwd则可以防止删除并且不影响添加新用户
该参数也适用于日志文件
# chattr +i test.txt #文件不能删除,不能更改,不能移动
查看文件属性权限
lsattr test.txt
案例,给系统重要文件加权限避免删除及误用
find /bin /sbin /usr/sbin /usr/bin /etc/shadow /etc/passwd /etc/pam.d -type f|xargs chattr +i
5 ,mask umask
[root@local]# umask 0022 [root@local]# umask -S u=rwx,g=rx,o=rx
6,mount权限 -o
sync async
此选项的默认模式为异步模式。在同步模式下,内存的任何修改都会实时的同步到硬盘当中,这种模式的 安全性基本属于最高,但是因为内存的数据基本一直都在变化,所以这种模式会使得程序运行变得缓慢, 影响效率。而在异步模式下,虽然同步没有实时,但是现在考虑到日志文件系统的存在,所以安全性基本 不用考虑,而异步模式的效率会更高,随意目前普遍使用异步模式为默认
用户授权
由超级用户切换为普通用户,仅切换用户,环境变量不切换,如若为普通用户,会导致命令不可用
[root@node1 ~]# su jack [jack@node1 root]$ touch 123 touch: 无法创建"123": 权限不够
由超级用户切换为普通用户,切换用户至家目录,环境变量会发生改变
su - jack
加参数-切换目录为用户家目录,有权限创建文件等
由普通用户切换为root用户
[jack@node1 ~]$ su - root 密码:需要输入密码
sudo命令
使用sudo提升(赋予)权限普通用户的权限
修改方式
a 编辑文档
[root@node1 ~]# vim /etc/sudoers
b 使用visudo编辑/etc/sudoers(推荐,会检查语法)
#visudo
给jack用户授权所有权限,添加一行如下
jack ALL=(ALL) ALL
案例1:对用户
#赋予用户jack以下3个命令的权限 jack ALL=/sbin/ip,/sbin/fdisk,/bin/less #服务器owen用户一个命令的权限,切换时不需要密码 owen ALL=NOPASSWD: /bin/less
验证
[jack@node1 ~]$ less /etc/shadow /etc/shadow: 权限不够 [jack@node1 ~]$ sudo less /etc/shadow
不使用sudo没有权限执行,使用sudo有权限执行,需要输入密码验证,设置NOPASSWD则无需输入密码
sudo日志
确认验证已经添加入日志
[root@node1 ~]# grep '^authpriv' /etc/rsyslog.conf authpriv.* /var/log/secure
查看日志
tail -f /var/log/secure