职能:安全管理/性能优化/监控相关/CICD相关面试题


+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
张贺,多年互联网行业工作经验,担任过网络工程师、系统集成工程师、LINUX系统运维工程师
个人网站:www.zhanghehe.cn
笔者微信:zhanghe15069028807,现居济南历下区
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


安全管理

安全现在已经形成一个学科,可以从多个维度切入 ,我就用从OSI七层参考模型切入

物理层安全:

物理层负责传输比特流,这一层的安全威胁比较简单,但同时也比较被人忽略,比如:

  • 堡垒机的U-KEY被不法分子拿到
  • 不法分子进入机房之后,直接做端口镜像,截取所有的流量

那对于物理层的安全除了相关人员平时有安全意识之外,还要依靠制度的配合,我去过很多的高校、政府、银行、医院这类单位,发现只有银行的机房管理比较严格,其它的单位的制度都不严格,很多都是做做样子,这完全可以给不法分子可乘之机。

链路层安全:

安全领域遵循木桶理论,而链路层是最短的那块木板,这一层的安全非常重要,我曾经就曾利用链路层的arp欺骗攻击过别人,这一层的安全威胁比如:

  • arp欺骗
  • arp泛洪

关于链路层的安全防范也比较简单,减少广播域的范围,即划分vlan;将mac与接口进行绑定,防止arp的欺骗,交换机端口安全策略保护,都能有效防止链路层的攻击。

应用层的安全:

  • DDOS攻击的的防范(买服务、硬件、脚本监测日志联动防火墙,ssh、iptables畸形报文防范、网络相关参内核参数优化,攻击后的应用)

  • 应用层安全:https、nginx配置优化

网络层攻击:

网络层的攻击近年来并不常见了,在windows xp时代网络层的攻击比较常见,比如:

  • ping 死,攻击者使用越大包,导致受害主机内存用光
  • ip地址扫描

网络层的攻击可以通过硬件防火墙、或主机上的软件防火墙进行防御,比如如果受到包大于65535就丢弃,不处理;或从OUTPUT到INPUT的方面的icmp包都丢弃,通过iptabes可以制定别人无法ping我,但我可以ping他人的策略。

传输层安全:

最常见的传输层威胁就是ddos,为此我专门写过一篇博文,这里不过多介绍了: https://www.cnblogs.com/yizhangheka/p/12658777.html

系统安全

  • ssh
  • selinux
  • iptables
  • sudo
  • 时间服务器
  • 精简开机服务
  • 删除不必要用户和组
  • 定时清理垃圾
  • 给重要配置文件加锁
  • 定期hash重要的文件和命令

应用层的安全

以nginx来举例子:

  • 防盗链
  • 隐藏版本号
  • 更改nginx的默认运行用户

性能优化

性能优化也是要分层讨论的,不能单独地说优化系统或优化某一个应用。

物理层:

  • 将服务器托管到环境配套比较好的机房(带宽、电源、链路等等)
  • 使用更好的硬件,比如用华为、思科的交换机总比一些杂牌子要强多了
  • 网络尽量都使用成品6类线,别小气家家还手工做水晶头,老是出问题,不结实。

链路层优化

链路层的优化项不多,但也是有的,比如

  • 比如多链路,多运营商
  • 防火墙双机热备

网络层优化

  • 选项更好的路由协议,比如选项ospf,业内最优化的IGP内部网关路由协议。
  • 尽量使用静态IP地址,比较稳定。

传输层优化:

  • 增大TCP的初始化拥塞窗口
  • 慢启动重启
  • TCP快速打开

系统资源参数优化

  • 增加进程打开的的套接字的最大数量(尤其像负载均衡,一手托两家)
  • 增加进程打开的文件的最大数量
  • 增加用户打开的最大进程数

系统优化

关于系统优化的内容非常多,我们在这里举几个例子:

  • 进程优先级调整,比如将sshd服务优先级调整高一些,保护被ddos攻击时无法连接
  • 启动内存大页,让cpu控制能更大的内存
  • swap限制,当内存完全实在不够用时再用swap分区
  • 增加系统内部进程之前的消息队列大小
  • oom优化

详情请参考我写的另一篇博客: https://www.cnblogs.com/yizhangheka/p/12700112.html

应用层优化

还是以nginx为例吧!

  • 优化Nginx服务的worker进程个数
  • 优化绑定不同的Nginx进程到不同的CPU上
  • Nginx事件处理模型优化
  • 调整Nginx单个进程允许的客户端最大连接数
  • 配置Nginx worker进程的最大打开文件数
  • 配置Nginx gzip压缩实现性能优化

tomcat的优化请参考我这篇博客: https://www.cnblogs.com/yizhangheka/p/12666753.html

CI/CD相关

谈一谈你对持续集成的理解(什么是持续集成)

为什么要用持续集成?

持续集成的实施流程?

什么是版本控制系统?

介绍一下jenkens?是什么?有什么作用?

常用的版本控制系统?git比svn好有何处?

git的基本使用?

git add

git commit

git status

git config

git branch

git是可以通过快照回退的

通过gitlib-rake gitlab:backup:create对gitlib做备份。

监控相关

zaabix相关

zabbix-server的端口?(10051)zabbix-agnet的端口(10050)

zabbix-server、zabbix-server-mysql、zabbix-web-mysql、zabbix-agent之间关系

如何自定义一个监控项?

默认zabbix-agent端是工作在被动模式的,所谓的被动模式就是等待server端过来拉取数据,而不是agent端主动向srever端推送数据。

nginx监控

如何监控nginx

通过nginx监控的性又能判断什么

redis监控

  1. 命中率
  2. 连接客户数
  3. 阻塞连接数
  4. 占用内存量
  5. 内存峰值
  6. 主从状态
  7. IO状态

mysql监控

关于msql的

以下几个参数是针对Innodb 存储引擎计数的:

  1. Innodb_rows_read select 查询返回的行数;

  2. Innodb_rows_inserted 执行Insert 操作插入的行数;

  3. Innodb_rows_updated 执行update 操作更新的行数;

  4. Innodb_rows_deleted 执行delete 操作删除的行数;

    5.监控主从的状态

  5. Slow_queries 慢查询的次数

tomcat监控

tomcat也可以有个状态页,状态页分为三个部分:jvm、http、jk

jvm: jvm比较吃内存

  • Free memory:空闲内存大小

  • Total memory:总内存大小

  • Max memory:最大内存大小

  • 新生代、老年代、持久代内存内部的使用情况

  • 监控堆内存使用情况

http协议:

这里的监控项与nginx类似,比如

  • 当前的连接数
  • 等待的用户请求
  • 正在处理的请求
posted @ 2020-04-14 16:49  张贺贺呀  阅读(573)  评论(0编辑  收藏  举报