Linux基本防护

1、用户账号安全:

chage -d 0 user	#要求用户初次登陆之后修改密码,密码策略:大小写,数字,符号
chage -E 2019/12/30	user	#设置账号的过期时间
chage -l user	#查看用户配置信息
chage -m 10 user	#要求用户每十天修改一次密码

passwd user	#修改用户密码
passwd -S user	#查看用户密码状态
passwd -l user	#锁定用户
passwd -u user	#解锁

添加用户时的默认配置文件:/etc/login.defs	
伪装提示信息:/etc/issue		/etc/issue.net	#第一个代表本地连接,第一个代表远程连接
提示信息配置文件内容:
\s
kernel \r on an \m
# \s代表操作系统版本,\r表示内核型号,\m代表版本(x86_64或者其他)

2、文件系统安全:

在RHEL7中:
systemctl start/stop httppd	#开启/关闭服务
systemctl enable/disable httpd	#设置服务是否开机自启动

在RHEL6以及以下版本中:
service httpd start/stop	#开启/关闭服务
chkconfig httpd on/off	#设置服务是否开机自启动

①、保护文件:(特殊属性,-a,-i,仅对于ext3,ext4类型的文件)
lsattr /etc/passwd	#查看文件的特殊权限

特殊属性a:仅通过追加方式才能修改文件内容
chattr +a /etc/passwd	#为文件添加特殊属性a,(此时无法添加用户)
chattr -a /etc/passwd	#取消文件的特殊属性a

特殊属性i:文件不可修改
chattr +i /etc/resolv.conf	#添加特殊属性i,(让DNS文件不可修改)
chattr -i /etc/resolv.conf	#取消特殊属性i

3、用户的切换与提权:

①、用户切换:(su)
su - user	#切换用户,短横线- 表示切换环境变量
su -  -c '命令' user	#使用user用户执行命令
# 使用root切换到其他用户时不需要密码

②、用户提权:(sudo)
# 为用户提权的文件在/etc/sudoers,可以使用visudo,或者vim打开
# 使用vim打开需要强制退出保存,wq!
文件格式:
	用户列表	主机列表=命令列表	#命令需要是完整的路径,通过which查找

vim /etc/sudoers
root ALL=(ALL)	ALL	#92行,root可以在所有主机上执行所有命令
%wheel	ALL=(ALL)	ALL	#99行,%代表组,wheel组可以在所有主机上执行所有命令
bob,fob,zob localhost,va=/usr/sbin/systemctl * httpd	#bob,fob,zob这三个用户,可以在localhost主机和va主机上执行有关http的所有命令
# localhost代表127.0.0.1,va是hostname中的主机名

sudo -l	#当前用户可以执行的提权命令

③、案例1:允许mark用户以root权限执行/sbin/下的所有命令,但是进制修改eth0网卡
useradd mark
echo 123456 | passwd --stdin mark
vim /ets/sudoers
mark local,va=/sbin/*,!/sbin/ifconfig eth0,NOPASSWORD:ALL
# NOPASSWORD:ALL表示执行提权命令不需要密码

④、案例2:允许shelly用户管理web服务
useradd shelly
echo 123456 | passwd --stdin shelly
vim /etc/sudoers
shelly localhost,va=/bin/rpm,/bin/yum,/bin/systemctl * httpd,/bin/vim /etc/httpd/conf/httpd.conf

⑤、启用sudo日志:(记录哪些用户执行了哪些提权命令)
vim /etc/sudoers
Default logfile="/var/log/sudo.log"	#文件末尾手动添加,使用提权命令时文件会自动创建

⑥、sudo别名设置:(减小日志容量,别名必须是大写字母)
vim /etc/sudoers
User_Alias MYUSER=bob,fob,zob,shelly	#用户列表的别名
Host_Alias MYHOST=localhost,va	#主机列表的别名
Cmnd_Alias MYCMD=/bin/rpm,/bin/yum	#命令列表的别名
Cmnd_Alias MYHTTP=/bin/systemctl * httpd,/bin/vim /etc/httpd/conf/httpd.conf
# 用户别名,主机列表别名,命令列表别名都可以定义多个,然后选择使用

案例2可以改为:
MYUSER MYHOST=MYCMD,MYHTTP
或者:
shelly MYHOST=MYCMD,MYHTTP

4、SSH远程访问控制:

①、配置文件:/etc/ssh/sshd_config
vim /etc/ssh/sshd_config

# 基本配置
port 2222					#端口,默认22
protocol 2				#ssh v2加密协议
ListenAddress 0.0.0.0	#本地网卡的ip,通过这个ip连接到本地主机
PermitRootLogin no		#禁止root用户通过ssh登录

systemctl restart sshd	#重启服务
ssh -p 2222 space@192.168.2.5	#通过2222端口登录

UseDNS no	#不解析客户机地址
LoginGraceTime 1m	#失败三次以后,1m之内不允许连接
MaxAuthTries	3	#允许连接失败3次

# 黑白名单(手动添加)
# 黑名单(不允许登录的用户)
DenyUsers user1 user2 ...	#不允许使用ssh登录的用户
DenyGroups group1 group2 ...	#不允许使用group1,group2组中的用户登录

# 白名单(定义之后,仅允许白名单中的用户登录,其他用户不能登录)
AllowUsers user1 user2	#仅允许user1,user2用户登录
AllowGroup group1 group2	#仅允许数据group1,group2组中的用户登录


②、SSH秘钥认证:
# 秘钥在 ~/.ssh/目录下
ssh-keygen	#生成秘钥对
ssh-copy-id	root@ip	#把公钥传给对应的主机

# 假如现在有主机A拿到了主机B的公钥
# 如果主机C想无密码访问主机A
# 则主机C只需要拿到主机B的私钥就可以,把私钥放在~/.ssh/目录下

③、关闭密码认证:
vim /etc/ssh/sshd_config
PasswordAuthentication no	#关闭密码认证65行
PubkeyAuthentication	yes	#开启秘钥认证
AuthorizedKeysFile	.ssh/authorized_keys	#公钥库,存放客户机公钥的文本

5、SELinux安全防护:

selinux安全防护的策略主要有三种:安全上下文,布尔值策略,非默认端口开放

安全上下文值:
	ls -lZ file	#查看文件的安全上下文值
	ls -ldZ dir	#查看目录的安全上下文值
	restorecon [-R dir] file	#恢复默认的上下文值 
	chcon [-t | -R] 上下文值 file|dir	#修改上下文值
	chcon --reference file1 file2	#将file1的上下文值赋给file2
	touch /.autorelable	#创建这个文件之后,下次重启时重置所有文件的默认上下文值
	# 案例参考以往的博客

布尔值策略:
	# 服务功能的开关
	getsebool -a	#查看所有的布尔值
	setsebool -P 服务选项 on/off	#修改服务选项的布尔值,-P表示永久修改
	# 案例参考以往的博客

非默认端口开放:
	# 案例参考以往的博客

SELinux日志软件:
	yum -y install setroubleshoot-server
	reboot	# 重启系统
	日志文件:/var/log/message

写总结的第五十九天!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值