二十六、系统开机优化和网络与安全优化

一、Linux操作系统优化

1、yum源处理与常用软件包安装

vim /etc/yum.conf ===》更改keepcache=1 #开启rpm包安装缓存
在测试环境配置好yum源(默认国外的yum源比较慢,所以换成国内的)

安装常用软件包,然后执行部署,将部署过程中安装的包缓存到本地
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-

Base.repo.backup #备份原有的基础源
curl -o /etc/yum.repos.d/CentOS-Base.repo 

http://mirrors.aliyun.com/repo/Centos-7.repo #下载新的阿里云基础源
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #下载扩展源

yum update -y #刚装完系统后就立即执行,日后就不要轻易更新
yum -y install tree nmap sysstat lrzsz telnet bash completion bash-completion-extras vim lsof net-

tools rsync ntpdate nfs utils
将所有主机上的软件包汇总到一起,做成一个自己的yum源用来后期使用

2、规范主机名

hostnamectl set-hostname +主机名 #更改主机名字(永久)
还可以将主机名字添加到hosts文件里实现集群主机之间相互用主机名解析
vim /etc/hosts ===》添加IP地址+主机名 #编辑好之后每一台机器都发一份

3、ssh密钥登录

使用ssh密钥登录原理
服务端生成768字节的公钥
客户端发送连接请求到服务端
服务端返回公钥
客户端随机生成256字节的私钥,结合收到的公钥,生成密钥对,客户端发送密钥对给服务端
服务端收到密钥对后进行数据验证,正确后返回密钥对给客户端。
客户端收到返回的密钥对后建立连接。
ssh-keygen #生成密钥兑(私钥和公钥)
ssh-copy-id -i root@IP地址 #将本地的公钥安装到指定的服务器上,私钥不能外泄

示例1:(虚拟机私钥不加密版)

不使用x-shell直接用虚拟机1当客户端去连接服务端虚拟机2(私钥不加密版)
前提要保证两台机器链接同一网络====》VMnet1
ssh-keygen #生成密钥兑(私钥和公钥)
ssh-copy-id -i root@服务端IP地址 #将客户端的公钥安装到指定的服务器上,私钥不能外泄
ls /root/.ssh #浏览虚拟机2的文件夹下会自动生成一个authorized-keys 的文件是存放公钥的
ssh root@服务端IP地址 #连接服务端===》ifconfig查看虚拟机1的IP地址已经变成虚拟机2的IP地址,表示已经连接成功

示例2:(虚拟机私钥加密版)交互式变成非交互式,安全性更高

不使用x-shell直接用虚拟机1当客户端去连接服务端虚拟机2(私钥加密版)
前提要保证两台机器链接同一网络====》VMnet1
ssh-keygen #生成密钥兑(私钥和公钥)生成过程中加入私钥密码12345678
ssh-copy-id -i root@服务端IP地址 #将客户端的公钥安装到指定的服务器上,私钥不能外泄
ls /root/.ssh #浏览虚拟机2的文件夹下会自动生成一个authorized-keys 的文件是存放公钥的
ssh root@服务端IP地址===》需要输入一次设置的私钥密码 #连接服务端=-==》ifconfig查看虚拟机1的IP地址已经变成虚拟机2的IP地址,表示已经连接成功

|示例3:(x-shell秘钥版)

工具==》新建用户密钥生成导向==》下一步生成密钥文件可导出桌面rz传入shell,
也可以创建vim /root/.ssh/authorized_keys 这个文件夹把拷到桌面的密码文件内容拷到这个文件里
验证是否创建成功===》用户身份验证:keygen root 主机名输入虚拟机1的IP地址===》登陆成功
ssh root@+虚拟机2IP地址===》可选择密码登陆还是密钥登陆

客户端服务端连接上,修改文件关闭密码登陆:
vim /etc/ssh/sshd_config ===》找到一行:password authentication 的yes改成no

4、关闭seLinux

setenforce 0 #临时关闭seLinux
sed ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config #替换的方式永久关闭
vim /etc/selinux/config ===》SELINUX=enforcing改成SELINUX=disabled

5、关闭防火墙

systemctl stop firewalld #临时关闭
systemctl disable firewalld #永久关闭

6、配置ntp服务,同步系统时间

echo#Timing synchronization time’ >>/var/spool/cron/root #给定时任务加上注释
echo ‘0 */1 * * * /usr/sbin/ntpdate ntp1.aliyun.com&>/dev/null’ >>/var/spool/cron/root #每隔一个小时同步一次时间
crontab -l #检查结果

7、ulimit命令介绍(对系统资源的控制分配)

临时配置:
ulimit -u +数字 #限制普通用户能同时打开的最大进程数(登录用户的同时开启了一个bash进程就算一个)
ulimit -n +数字 #限制普通用户能同时分配到的文件描述符数量
文件描述符:进程每打开一个文件,操作系统内核就会为该打开的文件分配一个编号(非负整数),或者说是文件句柄
文件打开后的处理逻辑:进程==》文件描述符==》操作系统内核==》一个具体文件
永久配置:
vim /etc/security/limits.conf #修改配置文件
表示要限制的用户
表示可选的资源
表示可选的资源
表示要限制的值
配置内容:soft nofile 102400
hard nofile 102400
soft nproc 102400
hard nproc 102400
重启生效:内核的配置文件需要重启内核 reboot
还有一个配置文件: /etc/security/limits.d/20-nproc.conf 比上个文件优先级高==》可以针对某个用户单独设置

8、进入BIOS开启VT和HT

VT 虚拟化的意思,如果机器需要做虚拟化必须开启
HT 超线程技术,就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少CPU的闲置时间,提高CPU运行效率

9、关闭CPU节能

关闭节能后,对性能还是有所提升的,例如Dellr720xd bios
也可以 在系统层面进行设置:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

二、网络优化

1、关闭NetwprkManager

在centos系统上,目前有NetworkManager和network两种网络管理工具,如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去:

systemctl stop NetworkManager #临时关闭
systemctl disable NetworkManager #永久关闭

2、Jumbo frames(巨型针)

万兆网卡MTU=9000,交换机也要设置,而且对端的MTU也要=9000,否则会出错误,最大传输单元,以太网内一般为1500,这样发送大文件就需要经过:切片==》发送==》重组
https://www.cnblogs.com/linhaifeng/articles/13959997.html

3、网卡绑定

4、调整swappiness

swappiness参数值可设置范围在0-100之间。此参数值越低,就会让Linux系统尽量少用swap分区,多用内存。设置为100可能会影响整体性能,如果内存充足,就可以将这个值设置很低,甚至为0,以避免系统进行swap而影响性能,不建议设置成0,建议设置成10即可
https://www.cnblogs.
com/linhaifeng/articles/13960093.html #详解网址
cat /proc/sys/vm/swappiness #查看swappiness值 默认60
echo “vm.swappiness = 10” | tee -a /etc/sysctl.conf #更改值为10

5、调整Kernel pid max

cat /proc/sys/kernel/pid_max #查看Kernel pid max的值
在64位系统上,pid最大值可以设置为2^22等于4194304(pid最大值限制,大约400万)
默认131072通常够用,可以酌情调整,以减少滚动翻转问题
echo 4194303 > /proc/sys/kernel/pid_max #临时调整
echo “kernel.pid_max= 4194303” | tee -a /etc/sysctl.conf sysctl -p #永久生效

6、其他内核优化

三、安全优化

1、Linux系统安全最小原则说明:

最小化原则对Linux系统安全来说极其重要,即多一事不如少一事,具体包括以下几方面:
安装Linux系统最小化,即选包最小化,yum 安装软件包也要最小化,无用的包不装
开机自启动服务最小化,即无用的服务不开启
操作命令最小化。例如能用rm -f test.txt 就不用rm -rf test.txt
登录Linux用户最小化。平时没有特殊需求不登录root,用普通用户登录即可
普通用户授权权限最小化,即只给用户必需的管理系统的命令
Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除文件

2、单用户模式

3、grub加密

4、光盘修复

5、sudo提权

6、更改SSH服务端远程登录设置

四、开机优化

1、设置运行级别为3

systemctl set-default multi-user.target #命令行终端模式

2、精简开机启动项

systemctl list-unit-files #可以查看启动项
systemctl list-unit-files | grep enable #过滤开机启动的启动项

需要设置开机不启动的服务

systemctl disable abrt-ccpp.service
systemctl disable abrt-oops.service
systemctl disable abrt-vmcore.service
systemctl disable abrt-xorg.service
systemctl disable abrtd.service
systemctl disable accounts-daemon.service
systemctl disable atd.service
systemctl disable auditd.service
systemctl disable autovt@.service
systemctl disable avahi-daemon.service
systemctl disable bluetooth.service
systemctl disable cups.service
systemctl disable dbus-org.bluez.service
systemctl disable dbus-org.fedoraproject.FirewallD1.service
systemctl disable dbus-org.freedesktop.Avahi.service
systemctl disable dbus-org.freedesktop.ModemManager1.service
systemctl disable dbus-org.freedesktop.NetworkManager.service
systemctl disable dbus-org.freedesktop.nm-dispatcher.service
systemctl disable display-manager.service
systemctl disable dmraid-activation.service
systemctl disable firewalld.service
systemctl disable gdm.service
systemctl disable irqbalance.service
systemctl disable iscsi.service
systemctl disable ksm.service
systemctl disable ksmtuned.service
systemctl disable libstoragemgmt.service
systemctl disable libvirtd.service
systemctl disable lvm2-monitor.service
systemctl disable mcelog.service
systemctl disable mdmonitor.service
systemctl disable microcode.service
systemctl disable ModemManager.service
systemctl disable multipathd.service
systemctl disable NetworkManager-dispatcher.service
systemctl disable NetworkManager.service
systemctl disable postfix.service
systemctl disable qemu-guest-agent.service
systemctl disable rngd.service
systemctl disable rtkit-daemon.service
systemctl disable smartd.service
systemctl disable spice-vdagentd.service
systemctl disable systemd-readahead-collect.service
systemctl disable systemd-readahead-drop.service
systemctl disable systemd-readahead-replay.service
systemctl disable tuned.service
systemctl disable vgauthd.service
systemctl disable vmtoolsd.service
systemctl 的用法
systemctl status docker.service #显示服务状态
systemctl list-dependencies docker.service #列出服务层级和依赖关系
systemctl start docker.service #启动服务
systemctl stop docker.service #关闭服务
systemctl restart docker.service #重启服务
systemctl enable docker.service #设置服务自启动
systemctl disable docker.service #禁止服务自启动
systemctl is-enabled docker.service #查看服务是否自启动
systemctl list-units --type=service #列出系统所有服务的启动情况
systemctl list-unit-files|grep enabled #列出所有自启动服务

3、名及环境变量优化

4、登录欢迎信息

vim /etc/motd #编辑登录前的提示信息

5、禁用别人Ping自己

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

6、硬盘问题

单块盘做raid0可解决服务器盘符飘逸的问题,按照经验来说,通过1T容量的硬盘要对应1G的内存,可以按照这个比例来购买主机,.xfs文件系统用ssd做日志盘,无须格式化,裸盘就可以
日志盘大小=(网络带宽与硬盘带宽取小*脏数据最大同步时间)*2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋风お亦冷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值