系统优化Debian

1.修改密码长度及更换周期
    查看默认的配置信息 chage -l root
    参考:
    root@localhost:/home# chage
    用法:chage [选项] 登录
 

选项:
	  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
	  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
	  -h, --help                    显示此帮助信息并推出
	  -I, --inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
	  -l, --list                    显示帐户年龄信息
	  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
	  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
	  -R, --root CHROOT_DIR         chroot 到的目录
	  -W, --warndays 警告天数       将过期警告天数设为“警告天数”

	  设置:
	  vim /etc/login.defs
	  PASS_MAX_DAYS:90 密码最长有效期
      PASS_MIN_DAYS:1	密码最短存留期
      PASS_WARN_AEG:30	密码有效期警告快到30天收到警告
      ============
      设置账户的过期时间
      	root@localhost:/home# chage -E 2019-05-21 haoxiaoyu
		root@localhost:/home# chage -l haoxiaoyu
		最近一次密码修改时间					:5月 15, 2019
		密码过期时间					:5月 25, 2019
		密码失效时间					:从不
		帐户过期时间						:5月 21, 2019
		两次改变密码之间相距的最小天数		:5
		两次改变密码之间相距的最大天数		:10
		在密码过期之前警告的天数	:6
      ============
      密码复杂度检验处理:
	      安装插件:apt-get install libpam-cracklib
	      更改文件:
	      /etc/pam.d/common-password
	      password	requisite			pam_cracklib.so retry=3 minlen=15 difok=1 lcredit=3 ucredit=-1
	      参数说明:
	      retry=3		最多重试三次
	      minlen=15		最短长度
	      difok=1		至少有一位的不同
	      lcredit=3		小写字母的个数
	      ucredit=-1	最少一个大写字母

2.登录异常设置

命令查看root的登录失败的次数:pam_tally2 --user root
	======
	root@localhost:~# pam_tally2 --user root
	Login           Failures Latest failure     From
	root                6    05/16/19 13:27:40  192.168.15.1
	======
	验证:
	1、find /lib* -iname "pam_tally2.so"或find /lib* -iname "pam_tally.so"是否有改动态库 
    2、是否有以下参数:auth required pam_tally2.so  onerr=fail deny=X  unlock_time=Xeven_deny_root root_unlock_time=X(限制从终端登录)  
    3、/etc/pam.d/sshd文件中是否有以上相同参数(限制ssh登录)
    建议整改:
    Ubuntu:/etc/pam.d/common-password文件中添加:auth required pam_tally2.so onerr=fail deny=3 unlock_time=40 even_deny_rootroot_unlock_time=30  
    注意添加的位置,要写在第一行,即#%PAM-1.0的下面。  
    以上策略表示:普通帐户和 root 的帐户登录连续 3 次失败,就统一锁定 40 秒, 40 秒后可以解锁。  
    如果不想限制 root 帐户,可以把  even_deny_root root_unlock_time这两个参数去掉, root_unlock_time 表示 root 帐户的 锁定时间,onerr=fail 表示连续失败,deny=3,表示 超过3 次登录失败即锁定。 
    2、/etc/pam.d/sshd文件中添加相同参数  
    (备注:以上参数根据实际情况进行设置,至少配置/etc/pam.d/sshd文件限制ssh登录)
	应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别。

3.权限划分:

1.物理机房:采用双因子认证设备 
    2.上云服务器(如阿里云):云堡垒机
    访问控制:
		应启用访问控制功能,依据安全策略控制用户对资源的访问;

	验证检查:  
       1.重命名系统默认帐户(root);  
       2.修改默认帐户的口令。  
       建议整改:  
       		1.根据业务需求情况对root进行重命名,其口令必须进行修改
	   		2.应对重要信息资源设置敏感标记;
        整改方法:
        	vi /etc/passwd
            修改第1行第1个root为新的用户名
            vi /etc/shadow
            修改第1行第1个root为新的用户名
        验证检查:  
       		1.询问主机管理员是否定义了主机中的重要信息资源;  
       		2.询问主机管理员,是否为主机内的重要信息设置敏感标记。  

    验证检查:  
       1、询问主机管理员是否定义了敏感标记资源的访问策略;  
       2、查看有敏感标记的重要信息资源是否依据访问策略设置了严格的访问权限。
		个人整改:用户家目录下设置的权限为700(用户进入一个文件夹必须有X的权限,否则无法进入)

4.安全审计
    1.审计范围应覆盖到服务器上的每个操作系统用户和数据库用户;

    2.审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;

    3.审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等;

    4.应能够根据记录数据进行分析,并生成审计报表;

    5.应保护审计进程,避免受到未预期的中断;

    6.应保护审计记录,避免受到未预期的删除、修改或覆盖等。
 

验证检查:  
       1、输入service syslog/rsyslog status 、service auditd status查看进程是否存在。 
       		备注:	服务器: sudo service syslog status 在运行
       				服务器: sudo service rsyslog status 在运行
       				service auditd status 进程不存在

       2、(centos:cat /etc/syslog.conf或cat /etc/rsyslog.conf文件中应包含类似于以下值:*.info;mail.none;news.none;authpriv.none;cron.none/var/log/messages;)(Ubuntu:cat/etc/rsyslog.d/50-default.conf 文件中应包含类似于以下值:*.info;mail.none;news.none;authpriv.none;cron.none/var/log/messages;) 
       3、是否对审计日志定期查看、分析,生成审计分析报表  
       4、是否安全额外的审计进程保护  
       5、查看syslog.conf、audit.conf文件中日志信息所在文件的访问权限,如:  
        ls -l /var/log/messages;  
        (centos:ls -l/var/log/secure);(Ubuntu:ls -l/var/log/auth.log) 
        ls -l /var/log/audit/audit.log;   
       访谈并询问是否对审计日志进行保护 

5.远程登录安全
    禁止无密码登录
        配置文件:

/etc/ssh/sshd_config
			PermitEmptyPasswords  no   # 禁止无密码访问服务器
			PermitRootLogin no         # 是否禁止使用root登录(为方便管理,暂未收回权限)
			/etc/init.d/ssh restart
	限制用户认证次数
		MaxAuthTries 4  # 等保三要求该值小于等于 4
	ssh空闲超时
		/etc/ssh/sshd_config(不可用)
		ClientAliveInterval 300  # 小于等于300s
		ClientAliveCountMax 3    # 存活用户数小于等于3
		修改/etc/profile配置文件(可用)
		# vi /etc/profile
		增加:TMOUT=1800
		这样30分钟没操作就自动LOGOUT

		cat /var/log/apache2/access.log | awk '{ print $1 }' | sort | uniq -c | sort -rn | head -n 25 | \ awk '{ printf("%5d\t%-15s\t", $1, $2); system("geoiplookup " $2 " | cut -d \\: -f2 ") }'

		在linux上统计ip次数和地域
			先安装插件,如果需要精确ip的话需要下载数据库
			apt-get install geoip-bin
			geoiplookup 8.8.8.8 测试输出
			=====
			root@iZ8vb5krm4qppt5j0efts1Z:/home/jesse# geoiplookup 8.8.8.8
			GeoIP Country Edition: US, United States
			=====

			再执行:
			cat /var/log/apache2/access.log | awk '{ print $1 }' | sort | uniq -c | sort -rn | head -n 25 | awk '{ printf("%5d\t%-15s\t", $1, $2); system("geoiplookup " $2 " | cut -d \\: -f2 ") }'
			=====
			root@iZ8vb5krm4qppt5j0efts1Z:/home/jesse# cat /var/log/apache2/access.log | awk '{ print $1 }' | sort | uniq -c | sort -rn | head -n 25 | awk '{ printf("%5d\t%-15s\t", $1, $2); system("geoiplookup " $2 " | cut -d \\: -f2 ") }'
    		3	1.94.138.22    	 CN, China     次数 ip  地域
    		=====
    	grub加密
			编辑配置文件 /etc/grub.d/40_custom 添加如下配置:

			password xxxxxxxx

		aide工具(有待研究)
			AIDE(Advanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文档的完整性。AIDE生产一个文件系统状态的快照,其中包括修改时间,权限和文件哈希值,然后可以其与文件系统的当前状态进行比较,以检测对系统的修改

			apt install aide

6.内核优化

内核管理
			检查可疑数据包是否被记录,内核配置如下:

			# 在 /etc/sysctl.conf 文件中设置以下参数:
			net.ipv4.conf.all.log_martians = 1 
			net.ipv4.conf.default.log_martians = 1
			生效以上配置:

			# 开启并记录欺骗,源路由和重定向包
			$ sysctl -w net.ipv4.conf.all.log_martians=1 
			$ sysctl -w net.ipv4.conf.default.log_martians=1 

			# 清空路由缓存
			$ sysctl -w net.ipv4.route.flush=1

			# 更新系统内核配置
			$ sysctl -p

杂项,技巧

查看访问者404 错误页面的请求次数以及请求页面,并按降序排列
			[root@elk nginx]# cat /var/log/nginx/access.log | awk '($9 ~ /404/)' | awk '{ print $7 }' | sort | uniq -c | sort -rn | head -n 25
 		查看访问者使用的User-Agent,并统计排序
			[root@elk nginx]# cat /var/log/nginx/access.log | awk -F\" '{ print $6 }' | sort | uniq -c |sort -frn | head -n 25
		统计web服务器的 UV 量
			[root@elk nginx]# cat /var/log/nginx/access.log | awk '{ print $1 }' | sort | uniq -c | wc -l
			122
		统计当天的uv访问量
			[root@elk nginx]# cat /var/log/nginx/access.log | grep `date '+%d/%b/%G'` | awk '{ print $1 }' | sort | uniq -c | wc -l
			10
		统计当月的uv访问量
			[root@elk nginx]# cat access.log | grep `date '+%b/%G'` | awk '{ print $1 }' | sort | uniq -c | wc -l
			111
		根据返回的响应码进行排序
			[root@elk nginx]# cat /var/log/nginx/access.log | awk '{ print $9 }' | sort | uniq -c | sort -rn
			   8973 200
			   7304 401
			    720 304
			     79 404
			     49 400
			     10 502
			     10 "-"
			      7 201
			      4 499
			      4 409
			      4 173
			      1 405
		快速列出点击量最多的请求页面
			[root@elk nginx]# cat /var/log/nginx/access.log | awk '{ print $7 }' | sort | uniq -c | sort -rn | head -n 25
			/elasticsearch/packetbeat-*/_field_stats?level=indices
			/favicon.ico
			/bundles/src/ui/public/images/elk.ico
			/
			/elasticsearch/logstash-*/_field_stats?level=indices
			/elasticsearch/.kibana/_refresh
			/app/kibana
			/elasticsearch/_msearch?timeout=0&ignore_unavailable=true&preference=1472786252222
			/elasticsearch/_msearch?timeout=0&ignore_unavailable=true&preference=1472784429830
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472746017033
			/elasticsearch/.kibana/index-pattern/_search?fields=
			/bundles/src/ui/public/images/kibana.svg
			/bundles/kibana.bundle.js?v=10000
			/bundles/node_modules/font-awesome/fonts/fontawesome-webfont.woff2
			/bundles/commons.style.css?v=10000
			/bundles/commons.bundle.js?v=10000
			/bundles/kibana.style.css?v=10000
			/elasticsearch/topbeat-*/_field_stats?level=indices
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472744909049
			/elasticsearch/.kibana/visualization/_search?size=100
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472749929499
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472750405461
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472750160122
			/elasticsearch/.kibana/dashboard/_search?size=100
			/elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472743171471
		实时的查看请求者ip、http方法、响应码、请求的页面
			[root@elk nginx]# tailf /var/log/nginx/access.log | awk '{ printf("%-15s\t%s\t%s\t%s\n", $1, $6, $9,$7) }'
			60.191.52.254      "HEAD    401    http://115.236.176.134:3434/
			141.212.122.160    "GET    401    /
			101.200.215.149    "GET    401    /manager/html
			114.44.57.4        "CONNECT    400    126mx01.mxmail.netease.com:25
			187.160.7.218      "GET    401    /cgi/common.cgi
			187.160.7.218      "GET    401    /stssys.htm
			187.160.7.218      "GET    401    /
			187.160.7.218      "POST    401    /command.php
			218.75.70.3        "GET    401    /
			163.172.173.181    "GET    401    http://www.baidu.com/cache/global/img/gs.gif
			123.125.2.108      "GET    200    /
			123.125.2.108      "GET    200    /app/kibana
			123.125.2.108      "GET    304    /bundles/commons.style.css?v=10000
		跟上面的类似,只是在第四个字段加了个GeoIP解析归属地,如下:
			[root@elk nginx]# tailf /var/log/nginx/access.log | awk '{
		    "geoiplookup " $1 " | cut -d \\: -f2 " | getline geo
		    printf("%-15s\t%s\t%s\t%-20s\t%s\n", $1, $6, $9, geo, $7);}'
			123.125.2.108      "GET    304     CN, China              /bundles/src/ui/public/images/kibana.svg
			123.125.2.108      "POST    200     CN, China              /elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472922034187
			123.125.2.108      "POST    200     CN, China              /elasticsearch/.kibana/index-pattern/_search?fields=
			123.125.2.108      "GET    200     CN, China              /elasticsearch/.kibana/_mapping/*/field/_source?_=1472922034556
			123.125.2.108      "POST    200     CN, China              /elasticsearch/_mget?timeout=0&ignore_unavailable=true&preference=1472922034187
			123.125.2.108      "GET    304     CN, China              /bundles/node_modules/font-awesome/fonts/fontawesome-webfont.woff2
		显示非法代理的访问者
			[root@elk nginx]# awk -F\" '($6 ~ /^-?$/)' /var/log/nginx/access.log | awk '{ print $1 }' | sort | uniq
			114.44.57.4
			183.129.160.229
			218.75.70.3
			61.231.3.98

		模拟CPU升高
			模拟cpu升高(可后台运行n次,每个进程的使用率*n 就是总的cpu利用率)
			dd if=/dev/zero of=/dev/null

		curl 构造参数,传参,提交请求
			curl -d 'Key=xxx&phone=xxx&sms=xxx' -X POST -v api接口地址

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,目前还没有发布Debian 12版本,最新的Debian版本是Debian 11(代号为Bullseye)。不过,我可以为您提供一些关于Debian系统优化的一般建议。以下是一些常见的Debian系统优化方法: 1. 更新软件源:使用apt-get或apt命令更新软件源列表,以获取最新的软件包和安全更新。 2. 定期更新系统:及时应用Debian的安全更新和补丁,以确保系统的稳定性和安全性。 3. 禁用不必要的服务:检查并禁用不需要的系统服务,以减少资源消耗和提高系统性能。 4. 使用轻量级桌面环境:如果您使用图形界面,考虑使用轻量级桌面环境(如Xfce、LXQt),以减少系统资源占用。 5. 优化内核参数:根据您的硬件配置和需求,调整内核参数以提高系统性能。可以编辑/etc/sysctl.conf文件来修改内核参数。 6. 使用SSD硬盘:如果您使用固态硬盘(SSD),可以获得更好的性能和响应速度。 7. 清理不必要的软件包:定期清理不再需要的软件包和文件,以释放磁盘空间。 8. 使用防火墙:配置防火墙以保护系统免受网络攻击。 9. 使用优化的编译器选项:如果您需要编译软件,可以使用优化的编译器选项来提高性能。 10. 使用合适的硬件驱动程序:确保您的硬件驱动程序是最新的,并根据需要进行适当的配置。 这些是一些常见的Debian系统优化方法,具体的优化策略可能因个人需求和硬件配置而有所不同。如果您有特定的需求或问题,请提供更多详细信息,我将尽力为您提供更准确的建议。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值