Linux运维核心技能:安全、登录、初始化与性能调优全指南
对于Linux运维工程师而言,系统的安全性、远程管理的便捷性、初始化配置的规范性以及性能问题的定位能力,是构建稳定高效Linux环境的四大基石。本文将围绕SELinux安全增强、SSH密钥登录、服务器初始化配置和系统性能调优工具四大核心模块,结合实操命令与原理讲解,帮你快速掌握Linux运维的关键技能,为后续业务部署与系统维护打下坚实基础。本文围绕Linux运维的四大核心场景——安全增强(SELi
文章目录
前言
对于Linux运维工程师而言,系统的安全性、远程管理的便捷性、初始化配置的规范性以及性能问题的定位能力,是构建稳定高效Linux环境的四大基石。本文将围绕SELinux安全增强、SSH密钥登录、服务器初始化配置和系统性能调优工具四大核心模块,结合实操命令与原理讲解,帮你快速掌握Linux运维的关键技能,为后续业务部署与系统维护打下坚实基础。
一、SELinux:Linux系统的“安全防护盾”
在Linux系统中,传统的自主访问控制(DAC)存在明显缺陷——一旦服务被入侵,攻击者可能获取系统最高权限。而SELinux(Security Enhanced Linux,安全性增强Linux)作为NSA开发的强制性访问控制(MAC)机制,能从根本上解决这一问题,相当于B1级军事安全性能标准,已整合到Linux 2.6及以上内核中。
1.1 SELinux的核心特点
SELinux通过三大核心机制实现精细化权限控制,确保“最小权限原则”落地:
- MAC(Mandatory Access Control,强制性访问控制):所有文件、目录、端口的访问均基于管理员预设的策略,普通用户无法修改,彻底杜绝越权访问;
- RBAC(Role Base Access Control,基于角色的访问控制):用户被划分到特定角色(如sysadm_r),仅能执行角色对应的操作——即使是root用户,不在sysadm_r角色中也无法完成系统管理;
- TE(Type Enforcement,类型强制):给文件打上“type”标签,给进程打上“domain”标签,仅允许特定domain的进程访问特定type的文件(例如限制vim进程仅读取type为T1的文件)。
1.2 SELinux的三种执行模式
SELinux通过不同模式平衡“安全性”与“灵活性”,核心区别在于是否阻止违规行为及是否记录日志:
| 模式 | 核心作用 | 适用场景 |
|---|---|---|
| enforcing(强制模式) | 严格执行SELinux策略,阻止所有违规行为并记录日志 | 生产环境,需最高安全级别 |
| permissive(警告模式) | 不阻止违规行为,但会记录所有操作日志 | 策略调试、新服务部署前测试 |
| disabled(关闭模式) | 完全关闭SELinux,不进行任何权限控制 | 测试环境(不建议生产环境关闭) |
1.3 SELinux状态切换与配置
SELinux的状态管理分为“临时切换”(无需重启)和“永久配置”(需重启),关键命令与配置文件如下:
-
查看当前状态:通过
getenforce命令快速查看,输出为Enforcing/Permissive/Disabled;
-
临时切换模式:
- 强制模式→警告模式:
setenforce 0 - 警告模式→强制模式:
setenforce 1(注:Disabled模式无法通过该命令切换)

- 强制模式→警告模式:
-
永久配置模式:编辑配置文件
/etc/sysconfig/selinux,修改SELINUX=字段:# 永久设置为强制模式 SELINUX=enforcing # 永久设置为关闭模式(需重启系统,首次开启需更新文件标签,耗时较久) SELINUX=disabled


二、SSH密钥登录:免密且更安全的远程访问方案
传统SSH密码登录存在密码泄露、暴力破解的风险,而基于“非对称加密”的SSH密钥登录,通过“公钥(存服务器)+私钥(存本地)”的组合,既能实现免密登录,又能大幅提升远程访问的安全性。
2.1 SSH密钥登录的核心原理
SSH密钥登录的本质是“服务器验证客户端是否拥有对应私钥”,整个交互流程如下:
- 客户端向目标服务器发送登录请求。在SSH 服务启用了证书验证登录方式后,会优先通过证书验证方式进行登录验证。
- 目标服务器根据 SSH 服务配置,在用户对应目录及文件中读取到有效的公钥信息。
- 目标服务器生成一串随机数,然后使用相应的公钥对其加密。
- 目标服务器将加密后的密文发回客户端。
- 客户端使用默认目录或 -i 参数指定的私钥尝试解密。
- 如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。如果解密成功,则将解密后的原文信息重新发送给目标服务器。意思类似于:“看,这是这段话的原文。我能读懂发过来的密文,我拥有服务器的控制权,请让我登录。”
- 目标服务器对客户端返回的信息进行比对。如果比对成功,则表示认证成功,客户端可以登录。如果对比失败,则表示认证失败,则会继续尝试密码验证等其它方式进行登录校验。
2.2 两种场景的实操配置
根据客户端系统不同,密钥登录的配置分为“Linux客户端”和“Windows客户端(Xshell)”
场景1:Linux客户端→Linux服务器
- 生成密钥对:使用
ssh-keygen生成RSA密钥对(无密码保护,适合自动化脚本;若需安全可设置密码):
执行后会在# -t rsa:指定RSA算法;-P '':空密码;-f:指定密钥保存路径 ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa/root/.ssh/下生成两个文件:id_rsa(私钥,本地保管,不可泄露)和id_rsa.pub(公钥,需上传服务器)。

| 参数 | 含义 | 解释 |
|---|---|---|
ssh-keygen |
密钥生成工具 | OpenSSH 套件中用于创建认证密钥对的程序。 |
-t rsa |
指定密钥类型 | -t 是 type 的缩写。rsa 是一种非对称加密算法。这是最常用和兼容性最好的算法之一(其他还有 ed25519, ecdsa)。 |
-P '' |
设置私钥的密码(Passphrase) | -P 后面跟一个密码字符串。''(两个单引号)表示空密码。这意味着生成的私钥文件没有密码保护。这是一个安全权衡:方便自动化脚本,但降低了密钥本身的安全性。 如果密钥文件泄露,任何人都可以直接使用它。 |
-f /root/.ssh/id_rsa |
指定密钥文件的保存路径和文件名 | -f 是 file 的缩写。这里指定将私钥保存为 /root/.ssh/id_rsa,公钥则会自动保存在同名目录下的同名文件加上 .pub 后缀,即 /root/.ssh/id_rsa.pub。 |
-
复制公钥到服务器:通过
ssh-copy-id自动将公钥追加到服务器目标用户的authorized_keys中:# 格式:ssh-copy-id -i 本地公钥路径 目标用户@服务器IP ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.23首次执行需输入服务器密码,后续登录无需密码。

-
测试登录:直接通过
ssh命令登录,无需输入密码:ssh root@192.168.10.23

场景2:Windows客户端(Xshell)→Linux服务器
-
生成密钥对:打开Xshell→工具→用户密钥管理者→生成,选择RSA算法(默认2048位),密钥密码留空(或设置),完成后导出公钥。


-
上传公钥到服务器:登录Linux服务器,将Xshell生成的公钥追加到
/root/.ssh/authorized_keys(若文件不存在需手动创建):# 将公钥内容替换为Xshell生成的公钥字符串 echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1WPScj31fl+...' >> /root/.ssh/authorized_keys

- Xshell配置登录:新建会话→输入服务器IP→身份验证选择“公钥”→选择本地生成的私钥→确定登录,无需密码即可连接。


三、服务器初始化:标准化配置,为稳定运行“打底”
新服务器到手后,若直接部署业务,可能面临“软件下载慢、时间不准、安全漏洞”等问题。标准化的初始化配置能解决这些痛点,核心包括“源优化、工具安装、网络验证、时间同步、安全加固”五大步骤。
3.1 配置Yum源:加速软件安装(外网/内网适配)
Yum源是Linux软件安装的“仓库”,默认国外源速度慢,需替换为国内源(外网)或配置本地源(内网)。
外网场景:配置国内源(阿里云/清华源)
-
备份默认源,下载阿里云CentOS 7源:
# 备份原源 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 https://mirrors.aliyun.com/repo/Centos-7.repo # 配置EPEL源(提供额外软件) yum install -y epel-release sed -e 's|^metalink=|#metalink=|g' -e 's|^#baseurl=|baseurl=|g' -e 's|//download.fedoraproject.org/pub|//mirrors.aliyun.com|g' -i /etc/yum.repos.d/epel.repo
-
清理缓存并生成新缓存:
yum clean all && yum makecache


内网场景:配置本地Yum源
-
挂载Linux镜像到
/mnt(建议永久挂载,避免重启失效):# 临时挂载 mount /dev/cdrom /mnt # 永久挂载:编辑/etc/fstab,添加一行 echo '/dev/cdrom /mnt iso9660 defaults 0 0' >> /etc/fstab mount -a # 生效挂载

-
创建本地源配置文件
/etc/yum.repos.d/local.repo:[local] name=Local Yum Repo baseurl=file:///mnt enabled=1 # 启用该源 gpgcheck=0 # 关闭GPG校验(本地源无需校验) -
清理并生成缓存:
yum clean all && yum makecache
3.2 安装运维必备工具
新服务器默认工具较少,需安装一批高频使用的运维工具,提升后续操作效率:
yum install -y \
vim-enhanced \ # 增强版Vi编辑器
wget curl \ # 下载与网络传输工具
telnet net-tools \ # 网络诊断(telnet)与配置(ifconfig)
bash-completion \ # 命令自动补全
lsof sysstat \ # 文件查看(lsof)与性能监控(iostat/sar)
htop tree \ # 进程管理(htop)与目录树(tree)
git unzip lrzsz # 版本控制(git)、解压(unzip)、文件传输(sz/rz)


3.3 基础环境配置:网络、主机名、时间同步
- 网络验证:确保服务器能正常上网,排查DNS与网卡配置:
# 查看IP地址 ip addr show 或 ifconfig # 测试DNS解析(百度) ping -c 4 www.baidu.com # 测试外网连通性(公共DNS) ping -c 4 8.8.8.8



# 如果无法上网,需要检查网络配置
cat /etc/sysconfig/network-scripts/ifcfg-ens33

- 配置主机名与hosts映射:方便服务器识别与访问:
# 设置主机名(例:centos7-master) hostnamectl set-hostname centos7-master # 配置hosts映射,添加本地解析 echo '127.0.0.1 centos7-master' >> /etc/hosts bash # 立即生效


- 时间同步:服务器时间不准会导致日志混乱、证书失效,需通过
chrony同步时间:# 安装chrony yum install -y chrony # 启动并设置开机自启 systemctl start chronyd && systemctl enable chronyd # 强制立即同步 chronyc -a makestep # 查看同步状态 chronyc sources -v






3.4 防火墙配置:按需开放端口,拒绝无用访问
Linux防火墙有iptables(经典)和firewalld(CentOS 7默认)两种管理方式,核心原则是“默认拒绝入站,只开放必要端口”。
方式1:使用iptables(适合习惯传统配置的用户)
- 停止并禁用firewalld,安装iptables-services开启并开机自启:
systemctl stop firewalld && systemctl disable firewalld yum install -y iptables-services systemctl start iptables && systemctl enable iptables




- 配置基础规则(拒绝入站、允许出站、开放SSH/HTTP/HTTPS):
# 默认策略:拒绝入站/转发,允许出站 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许本地回环(系统内部通信) iptables -A INPUT -i lo -j ACCEPT # 允许已建立连接的返回流量 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 开放必要端口:SSH(22)、HTTP(80)、HTTPS(443) iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT

- 保存规则(避免重启失效):
service iptables save systemctl restart iptables

- 验证配置:
# 查看当前生效的所有iptables规则,检查配置是否正确
iptables -nvL --line-numbers
# 检查iptables服务状态
systemctl status iptables


方式2:使用firewalld(CentOS 7默认,操作更简洁)
- 启动并设置开机自启:
systemctl start firewalld && systemctl enable firewalld - 开放必要服务/端口:
# 开放SSH、HTTP、HTTPS服务(永久生效) firewall-cmd --permanent --add-service=ssh firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https # 开放自定义端口(例:8080) # firewall-cmd --permanent --add-port=8080/tcp # 重新加载规则生效 firewall-cmd --reload - 查看已开放规则:
firewall-cmd --list-all
3.5 SSH安全加固
除了密钥登录,还需通过“修改默认端口、设置复杂密码”进一步提升SSH安全性:
- 修改SSH默认端口(22→自定义,如5922):
# 编辑SSH配置文件 vim /etc/ssh/sshd_config # 找到Port 22,修改为Port 5922(去掉注释) # 重启SSH服务生效 systemctl restart sshd # 防火墙开放新端口(以firewalld为例) firewall-cmd --permanent --add-port=5922/tcp firewall-cmd --reload - 设置密码复杂性:通过
/etc/pam.d/system-auth配置密码策略,要求“数字+大小写+符号,长度≥18位”,避免弱密码被破解。
四、系统调优工具:定位性能瓶颈的“显微镜”
Linux系统运行中可能出现“CPU占用高、内存不足、磁盘I/O卡顿、网络带宽满”等问题,掌握以下性能监控工具,能快速定位瓶颈根源,为调优提供依据。
4.1 CPU监控:识别CPU密集型进程
| 工具 | 核心命令 | 关键指标解读 |
|---|---|---|
uptime |
uptime |
输出“1/5/15分钟平均负载”,若1分钟负载>CPU核心数,可能过载 |
top |
top(按P排序CPU) |
%us(用户态CPU占比)、%sy(内核态CPU占比)、%idle(空闲占比) |
ps |
‘ps -aux --sort -pcpu head -10’ | 查看CPU使用率前10的进程,%cpu字段为使用率 |
mpstat |
mpstat -P ALL 1 4 |
查看所有CPU核心的详细状态,%iowait高表示CPU等待I/O |




4.2 内存监控:避免内存不足导致的卡顿
| 工具 | 核心命令 | 关键指标解读 |
|---|---|---|
free |
free -m(以MB显示) |
available(实际可用内存,含可回收缓存),used(已用内存) |
/proc/meminfo |
cat /proc/meminfo |
Active(活跃内存)、Inactive(非活跃内存,可换出) |
top |
top(按M排序内存) |
%mem(进程内存占比)、VIRT(虚拟内存)、RES(物理内存) |


4.3 磁盘I/O监控:定位I/O密集型进程
| 工具 | 核心命令 | 关键指标解读 |
|---|---|---|
iostat |
iostat -d -k -p /dev/sda 1 4 |
kB_read/s(每秒读)、kB_wrtn/s(每秒写),反映磁盘繁忙度 |
iotop |
iotop -o -d 1 |
实时显示进程I/O情况,-o只显示活跃I/O进程 |
dd |
dd if=/dev/zero of=testfile bs=1M count=1000; sync |
测试磁盘写入速度,执行时间越短速度越快(测试后删除testfile) |



4.4 网络监控:排查带宽瓶颈
| 工具 | 核心命令 | 关键指标解读 |
|---|---|---|
nload |
nload |
实时显示网卡进出带宽,Curr(当前速率)、Max(峰值速率) |
nethogs |
nethogs |
按进程显示网络使用,定位“吃带宽”的进程 |
ab |
ab -n 1000 -c 2 http://www.baidu.com/ |
HTTP压测工具,Requests per second(吞吐量)、Time per request(响应时间) |





4.5 系统整体监控:全局掌握系统状态
vmstat:vmstat 1 5,输出“进程、内存、磁盘I/O、CPU”综合信息,r(等待进程数)、wa(CPU等待I/O占比)是核心指标;

sar:可记录与回放系统状态,例如:# 记录CPU状态到cpu.sar(每2秒采样5次) sar -u 2 5 -o cpu.sar # 回放记录 sar -u -f cpu.sar # 监控网络状态(每1秒采样5次) sar -n DEV 1 5




总结:构建安全、高效、稳定的Linux环境
本文围绕Linux运维的四大核心场景——安全增强(SELinux)、远程登录(SSH密钥)、服务器初始化、性能调优,从原理到实操进行了全面讲解。SELinux为系统筑起“安全防护盾”,阻止越权访问;SSH密钥登录兼顾“便捷性”与“安全性”,避免密码泄露风险;标准化的服务器初始化确保系统“开箱即用”,减少后续隐患;而性能调优工具则像“显微镜”,帮助快速定位CPU、内存、磁盘、网络的瓶颈。
这四大技能并非孤立存在——例如SELinux与防火墙共同构成系统安全防线,SSH密钥登录是服务器初始化的重要环节,性能调优则需基于初始化后的稳定环境。掌握这些技能,不仅能应对日常运维工作中的常见问题,更能为业务系统的稳定运行提供坚实保障,是Linux运维工程师必备的核心能力。
更多推荐




所有评论(0)