运维面试题整理

Linux 基础
  • 1、linux启动过程是怎么样的
首先是通电,接通电源时候加载服务器bios信息,读取磁盘的磁盘的MBR引导扇区,找到启动分区/boot之后,从grub2配置中加载kernel,选择默认的启动界别,加载模块,执行rc.local中的代码,启动登录shell进入系统。
  • 2、系统初始化时的一些常用优化配置
1.修改制定的源信息,centos/redhat  修改yum源信息  /etc/yum.repos.d,ubuntu、debian 修改opt信息 /etc/apt/sources.list
2.修改防火墙规则,根据也许需求开启关闭相应端口,关闭selinux
3.修改内核参数,将系统默认的系统最大文件打开数、进程打开数调整
4.服务器swap大小应为物理内存的两倍 vm.swappiness=10# 当内存使用超过10% 使用swap
5.磁盘阵列raid的使用
6.lvm逻辑卷,在线扩容
7.ntp及时同步系统时间
8.历史命令记录优化,加入时间并备份保存
9.优化开机自启动项
。。。
  • 3、系统初始化时的一些常用安全防护配置
1.防火墙iptables适当配置
iptables -P INPUT ACCEPT
iptables -F
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 1.1.1.1-p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 2.2.2.2-p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1-j ACCEPT
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,ACK FIN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags PSH,ACK PSH -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags ACK,URG URG -j DROP
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
2.tcpwapper的配置
/etc/hosts.deny  /etc/hosts.allow
3.密码强度,不适用弱口令
4.锁定系统关键文件、防止提权篡改
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
解锁chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
5.grub加密,防止物理修改系统密码
6.禁止超级用户远程登录
7.删除不必要的系统用户

内核参数调整

[root@localhost ~]# vi /etc/sysctl.conf #末尾添加如下参数 
net.ipv4.tcp_syncookies = 1 #1是开启SYN Cookies,当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,默认是0关闭 
net.ipv4.tcp_tw_reuse = 1 #1是开启重用,允许讲TIME_AIT sockets重新用于新的TCP连接,默认是0关闭 
net.ipv4.tcp_tw_recycle = 1 #TCP失败重传次数,默认是15,减少次数可释放内核资源 
net.ipv4.ip_local_port_range = 4096 65000 #应用程序可使用的端口范围 
net.ipv4.tcp_max_tw_buckets = 5000 #系统同时保持TIME_WAIT套接字的最大数量,如果超出这个数字,TIME_WATI套接字将立刻被清除并打印警告信息,默认180000 
net.ipv4.tcp_max_syn_backlog = 4096 #进入SYN宝的最大请求队列,默认是1024 
net.core.netdev_max_backlog = 10240 #允许送到队列的数据包最大设备队列,默认300 
net.core.somaxconn = 2048 #listen挂起请求的最大数量,默认128 
net.core.wmem_default = 8388608 #发送缓存区大小的缺省值 
net.core.rmem_default = 8388608 #接受套接字缓冲区大小的缺省值(以字节为单位) 
net.core.rmem_max = 16777216 #最大接收缓冲区大小的最大值 
net.core.wmem_max = 16777216 #发送缓冲区大小的最大值 
net.ipv4.tcp_synack_retries = 2 #SYN-ACK握手状态重试次数,默认5 
net.ipv4.tcp_syn_retries = 2 #向外SYN握手重试次数,默认4 
net.ipv4.tcp_tw_recycle = 1 #开启TCP连接中TIME_WAIT sockets的快速回收,默认是0关闭 
net.ipv4.tcp_max_orphans = 3276800 #系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上,如果超出这个数字,孤儿连接将立即复位并打印警告信息 
net.ipv4.tcp_mem = 94500000 915000000 927000000 
net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力; 
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段; 
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket。内存单位是页,可根据物理内存大小进行调整,如果内存足够大的话,可适当往上调。上述内存单位是页,而不是字节。