Linux-安全加固

1.操作系统安全加固方案

(1)版本升级
(2)关闭端口服务
(3)修改配置项
(4)修改代码
(5)主机和网络ACL策略
(6)部署设备防护

2.安全加固测试

(1)回退测试
	系统及数据备份,回退操作验证
(2)业务测试
	利用现网或搭建虚拟环境进行业务测试,确认加固是否影响业务
(3)有效性测试
	利用现网环境或者搭建虚拟环境惊醒安全风险测试,确认加固有效性

3.Linux加固方向

(1)账号管理与认证授权
	创建多用途账号,为不同的管理员分配不同的账号
	修改目录权限
	普通账户使用特定权限命令
	使用 which 命令  查看命令文件地址
	visudo命令 更改命令权限
	检查权限过高的文件
		find / type f \( -perm -00777 \) -a -ctime -天数 -exec ls -lg {} \:
		ctime:属性变更的文件
		mtime:内容修改的文件
		atime:被访问的文件
	限制超级管理员远程登录
		修改远程管理程序ssh的配置文件
		vi /etc/ssh/sshd_config
		PermitRootLogin yes
		PermitRootLogin no
		重启sshd服务
		systemctl restart sshd
	删除root以外UID为0的用户
		awk -F: ‘($3==0) {print $1}’ /etc/passwd	找出第三列为0并打印对应的用户	名
		uerdel -r 用户名
	查找是否存在高权限组
		筛出组ID的最小值并打印ID
		grep -v ^# /etc/login.defs |grep “^GID_MIN” |awk ‘{print $2}’
		找出危险组,是否有账户加入到root组里面
		awk -F: ‘$3>500{print $1}’ /etc/passwd | xargs -I {} grep {} /etc/group
	缩短默认密码生存周期
		修改文件密码策略文件
		vim /etc/login.defs
		PASS_MAX_DAYS	99	最长使用期限
		PASS_MIN_DAYS	0	最短使用期限
		PASS_MIN_LEN	8	密码最小长度
		PASS_WARN_AGE	7	第几天提醒更改密码
	设置密码强度策略
		修改pam认证文件
		vim /etc/pam.d/system-auth
		password requisite pam_cracklib.so
		try_first_pass retry=更改密码次数 dcredit=

		minlen=N:新密码的最小长度
		dcredit=N:当N>0时表示新密码中数字出现的最多次数;当N<0时表示	新密码中数字出现最少次数;
		ucredit=N: 当N>0时表示新密码中大写字母出现的最多次数;当N<0时	表示新密码中大写字母出现最少次数;
		lcredit=N: 当N>0时表示新密码中小写字母出现的最多次数;当N<0时表	示新密码中小写字母出现最少次数;
		ocredit=N:当N>0时表示新密码中特殊字符出现的最多次数;当N<0时	表示新密码中特殊字符出现最少次数;
		maxrepeat=N:拒绝包含多于N个相同连续字符的密码。 默认值为0表	示禁用此检查
		maxsequence=N:拒绝包含长于N的单调字符序列的密码。默认值为0表	示禁用此检查。实例是'12345'或'fedcb'。除非序列只是密码的一小部分,	否则大多数此类密码都不会通过简单检查。
	或者使用authconfig命令
	  --passminlen=<number>     最小密码长度
	  --passminclass=<number>   密码中字符最小个数
	  --passmaxrepeat=<number>  密码中相同连续字符的最大个数
	  --passmaxclassrepeat=<number> 密码中同类连续字符的最大个数
	  --enablereqlower        使能密码中至少包含一个小写字母
	  --disablereqlower       失能密码中至少包含一个小写字母
	  --enablerequpper        使能密码中至少包含一个大写字母
	  --disablerequpper       失能密码中至少包含一个大写字母
	  --enablereqdigit        使能密码中至少包含一个数字
	  --disablereqdigit       失能密码中至少包含一个数字
	  --enablereqother        使能密码中至少包含一个特殊字符
	  --disablereqother       失能密码中至少包含一个特殊字符
		这些命令其实是修改/etc/security/pwquality.conf配置文件
	设置强制密码历史,同样是修改/etc/pam.d/system-auth
		password sufficient pam_unix.so sha512 shadow nullok try_first_pass 	use_authtok remember=不能跟之前多少个密码相冲突
	设置账户锁定策略
		修改/etc/pam.d/system_auth
		/etc/pam.d/sshd
		/etc/pam.d/login
		auth required pam_tallyy2.so deny=6
		unlock_time=300 even_deny_root
		root_unlock_time=60
	设置关键目录权限
		更改文件属组
		chmod 644 /etc/passwa
		chmod 600 /etc/shadow
		chmod 644 /etc/group
		修改umask值
		修改脚本文件
		/etc/profile
		/etc/csh.login
		/etc/csh.cshrc
		/etc/bashrc
		在文件末尾加入umask值
		umask 027
	限制硬件资源
		修改限制文件
		vi /etc/security/limits.conf
		修改pam的本地登陆文件
		session required /lib64/security/pam_limits.so
	日常收集进程数使用
		ps aux |grep httpd |wc -1
	对用户使用ls、rm设置别名
		vi ~/.bashrc
		追加别名命令
		alias ls=”ls -alh”
		alias rm=”rm -i”
	禁止任何人su为root账户
		修改su配置文件
		/etc/pam.d/su
		auth sufficient /lib/security/pam_rootok.so
		auth required /lib/security/pam_wheel.so
		group=wheel
	如果需要su切换,将用户加入wheel组
		gpasswd -a username wheel
		去掉SUID和SGID
	查找具有所有SUID和SGID的对象
		find / -type f \(-perm -0400 -o -perm -02000 \) |xargs -l {} ls -lh {}
		chmod ugo -s
	对开放目录设置粘滞位
		为/tmp目录设值粘滞
		chmod +t /tmp/
	重要日志权限不应该高于640
		ls -la /var/log/
		chmod -R 640 /var/log
	设置关键文件底层属性
		chattr +a /var/log/messages
		chattr +i /var/log/messages.*
		chattr +i /etc/shadow
		chattr +i /etc/passwd
		chattr +i /etc/group
	设置日志服务器
	
(2)通讯协议
	关闭非加密远程管理telnet
		修改telnet配置文件
		vim /etc/xinetd.d/telnet
		disable=yes
	使用加密的远程管理ssh
		安装ssh
		修改配置文件
		vim /etc/ssh/sshd_config
		禁止root登录,修改默认端口,开启v2版本
		PermitRoootLogin no
		Port 20202
		Protocol 2
		重启服务
		systemctl restart sshd
	设置访问控制列表
		修改拒绝策略
		vim /etc/hosts.deny
		加入信息
		ALL:ALL
		修改允许策略
		vim /etc/hosts.allow
		加入信息
		sshd:来访者IP地址
	固化常用DNS解析
		修改hosts文件
		vim /etc/hosts
		加入解析信息
		IP  服务器域名
		打开syncookie
	修改系统控制文件
		vim /etc/sysctl.conf
		net.ipv4.tcp_syncookies=1
		配置生效
		sysctl -p
	不响应ICMP请求
		修改网络策略布尔值
		echo 1 > /proc/sys/net/ipv4/icmp_echo_i gnore_all
	禁止处理无源路由
		sysctl -n net.ipv4.conf.accept_source_route
		echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
	防御syn flood攻击优化
		查询当前半连接上限
		sysctl net.ipv4.tcp_max_syn_backlog
		修改半连接上限
		sysctl -w net.ipv4.tcp_max_syn_backlog=”2048”
		防止半握手的泛洪攻击
	FTP使用黑名单限制
		检查黑名单文件是否包含高危账户
		/etc/ftpusers
		root deamon bin sys adm lp uucp nuucp listen nobody noaccess  nobody4
		使用白名单文件
		/etc/usr_list
		配置文件中是否存在
		userlist_deny=NO
		userlist_enable=YES
	FTP设置上传文件后的默认权限
		检查主配置文件/etc/vsftpd.conf是否存在以下内容
		write_enable=YES
		local_umask=022
		anon_umask=022
	FTP设置banner信息
		检查主配置文件/etc/vsftpd.conf是否存在以下内容
		ftpd_banner=”Authoried users only.All activity may be monitored and reported.”
		配置可信NTP服务器,并确保服务开启
		检查主配置文件/etc/ntp.conf是否存在如下内容
		server x.x.x.x
		确保服务器被启用
		systemctl enable ntpd
		systemctl status ntpd
	检查账户目中是否存在高危文件.netrc  .rhosts
		远程主机文件
		for DIR in ‘cut -d”:” -f6 /etc/passwd’; do
		if [ -e $IDR/.netrc ]; then
		echo “$DIR/.netrc”
		fi
		done
		无返回值则表示正常
		
(3)补丁管理
	补丁安装
	先进行服务克隆,然后进行补丁测试,却保服务可用再在业务服务器上使用
	
(4)服务与启动项
	关闭NFS服务
		检查是否存在敏感进程
		ps aux |grep -E “lockd|nfsd|statd|mountd”
		检查关闭NFS相关服务
		systemctl list-unit-files |grep nfs
		systemctl disable nfs-client.target
	关闭无用自启服务
		检查自启服务
		systemctl list-unit-files |grep enabled
		禁用
		systemctl stop 服务名
		systemctl disable 服务名
		一般用来作为服务器的操作系统必须时最小化安装,防止无用服务占用资	源
		
(5)banner与自动注销
	隐藏系统提示信息
		查看banner信息
		cat /etc/issue
		清空banner文件
		echo > /etc/issue
	设置登陆超时注销
		修改/etc/profile
		vim /etc/profile
		减少history历史数量
		HISTFILESIZE=50
		在HISTFILESIZE下面加入,设置超时时间
		TMOUT=180
		生效
		source /etc/profile
	跳过grup菜单
		修改grup配置文件
		vim /boot/grup2/grup.cfg
		set timeout=0
	禁用ctrl+alt+del重启功能
		vim /usr/lib/systemd/system/ctrl-alt-del.target
		注释所有内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值