Linux 运维安全加固策略:实战指南
Linux 系统安全加固命令操作指南
一、系统更新维护
(一)更新系统软件和内核
每周检查一次系统更新:
# Debian/Ubuntu
sudo apt update && sudo apt upgrade -y
# RHEL/CentOS
sudo yum update -y
每月检查一次内核更新:
# Debian/Ubuntu
sudo apt install linux-image-generic
# RHEL/CentOS
sudo yum install kernel
重启系统以应用更新:
sudo reboot
(二)自动更新配置
开启自动更新功能:
# Debian/Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades # 选择自动更新选项
# RHEL/CentOS
sudo yum install yum-cron
sudo systemctl enable --now yum-cron
修改自动更新配置文件:
# Debian/Ubuntu
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
# RHEL/CentOS
sudo nano /etc/yum/版本/yum-cron.conf
设置自动更新周期和邮件通知。
二、访问控制与用户权限管理
(一)账户安全策略
设置强密码策略:
sudo apt install libpam-pwquality # Debian/Ubuntu
sudo yum install libpwquality # RHEL/CentOS
# 修改密码质量配置文件
sudo nano /etc/security/pwquality.conf
设置 minlen = 8
、dcredit = -1
、ucredit = -1
、lcredit = -1
、ocredit = -1
,要求密码至少8位且包含大小写字母、数字和特殊字符。
定期更换密码:
# 设置密码有效期为90天
sudo chage -M 90 用户名
# 查看密码过期日期
chage -l 用户名
删除或禁用不必要的系统账户:
# 删除账户
sudo userdel 账户名
# 禁用账户
sudo passwd -l 账户名
(二)最小权限原则
创建普通用户组并分配权限:
# 创建用户组
sudo groupadd 普通用户组
# 创建用户并添加到组
sudo useradd -G 普通用户组 用户名
# 设置文件和目录权限
sudo chmod 750 文件夹路径
sudo chown 用户名:普通用户组 文件夹路径
(三)SSH安全配置
更换SSH默认端口:
# 修改SSH配置文件
sudo nano /etc/ssh/sshd_config
# 将Port 22改为Port 自定义端口(如5920)
禁用root直接登录SSH:
# 在SSH配置文件中添加或修改
PermitRootLogin no
使用SSH密钥对认证:
# 生成密钥对
ssh-keygen -t rsa
# 将公钥复制到服务器
ssh-copy-id 用户名@服务器IP
重启SSH服务:
sudo systemctl restart sshd
(四)sudo权限管理
精细分配sudo权限:
# 使用visudo命令编辑sudoers文件
sudo visudo
添加以下内容:
用户名 ALL=(ALL) NOPASSWD:/usr/bin/apt-get update,/usr/bin/apt-get upgrade
三、网络层安全
(一)防火墙规则设置
使用iptables
配置防火墙规则:
# 清空现有规则
sudo iptables -F
# 设置默认策略
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 允许本地回环接口通信
sudo iptables -A INPUT -i lo -j ACCEPT
# 允许已建立和相关的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 开放80和443端口
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存规则(Debian/Ubuntu)
sudo apt install iptables-persistent
sudo netfilter-persistent save
# 保存规则(RHEL/CentOS)
sudo service iptables save
(二)网络入侵检测与防御系统(NIDS/IPS)
部署Snort:
# 安装Snort
sudo apt install snort # Debian/Ubuntu
sudo yum install snort # RHEL/CentOS
# 配置Snort规则和签名
sudo nano /etc/snort/snort.conf
# 启动Snort服务
sudo systemctl start snort
(三)虚拟专用网络(VPN)与加密通信
安装OpenVPN:
# Debian/Ubuntu
sudo apt install openvpn
# RHEL/CentOS
sudo yum install openssl-devel lzo
# 下载并运行OpenVPN配置脚本
wget https://git.io/vpn -O openvpn-install.sh
sudo bash openvpn-install.sh
按照提示设置VPN服务器IP、端口、协议等参数,完成安装后,客户端使用生成的配置文件连接VPN服务器。
(四)防网络欺骗与IP源验证
在路由器和交换机上配置防网络欺骗功能:
# 华为交换机配置示例
system-view
interface GigabitEthernet0/0/1
ip source check user-bind enable
四、服务与应用安全
(一)服务管理
停用不必要的服务:
# 停止并禁止服务
systemctl stop 服务名.service
systemctl disable 服务名.service
# 卸载不必要的软件包
apt remove 软件包名 # Debian/Ubuntu
yum remove 软件包名 # RHEL/CentOS
(二)数据安全
对重要数据进行加密存储:
# 安装加密工具
sudo apt install mcrypt # Debian/Ubuntu
sudo yum install mcrypt # RHEL/CentOS
# 创建加密文件
dd if=/dev/urandom of=加密文件 bs=1M count=10
mcrypt -m AES-256加密文件 -o 加密文件.crypt
定期备份数据:
# 使用rsync备份
rsync -avz /path/to/source /path/to/backup
# 使用tar备份
tar -czvf backup.tar.gz /path/to/source
验证备份数据的可恢复性:
# 解压备份文件
tar -xzvf backup.tar.gz -C /path/to/restore
# 检查恢复的数据
ls /path/to/restore
(三)主机加固
根据业务需求安装和配置最小化操作系统:
# Debian/Ubuntu最小化安装
sudo apt install --no-install-recommends base-package-list
# RHEL/CentOS最小化安装
sudo yum groupinstall "Minimal Install"
对服务器进行分区:
# 使用fdisk命令分区
sudo fdisk /dev/sda
# 创建挂载点并挂载分区
sudo mkdir /path/to/mountpoint
sudo mount /dev/sda1 /path/to/mountpoint
安全编译软件:
# 安装编译工具和安全编译选项
sudo apt install build-essential libssl-dev # Debian/Ubuntu
sudo yum install gcc-c++ openssl-devel # RHEL/CentOS
# 编译软件时启用安全编译选项
gcc -fstack-protector-strong -D_FORTIFY_SOURCE=2 -o outputfile sourcefile.c
五、持续安全运维管理
(一)监控与审计
部署监控工具:
# 安装Prometheus
sudo apt install prometheus # Debian/Ubuntu
sudo yum install prometheus # RHEL/CentOS
# 配置Prometheus监控目标
sudo nano /etc/prometheus/prometheus.yml
# 启动Prometheus服务
sudo systemctl start prometheus
收集和分析系统日志:
# 安装ELK Stack(Elasticsearch、Logstash、Kibana)
sudo apt install elasticsearch logstash kibana # Debian/Ubuntu
sudo yum install elasticsearch logstash kibana # RHEL/CentOS
# 配置ELK Stack
sudo nano /etc/elasticsearch/elasticsearch.yml
sudo nano /etc/logstash/conf.d/logstash.conf
sudo nano /etc/kibana/kibana.yml
# 启动ELK Stack服务
sudo systemctl start elasticsearch
sudo systemctl start logstash
sudo systemctl start kibana
(二)漏洞管理
定期扫描漏洞:
# 安装OpenVAS
sudo apt install openvas # Debian/Ubuntu
sudo yum install openvas # RHEL/CentOS
# 启动OpenVAS服务
sudo systemctl start openvas
# 扫描系统漏洞
openvasadm --start-scan --port 80 --targets 192.168.1.1
建立漏洞管理流程:
# 编写漏洞管理脚本
#!/bin/bash
# 检测系统漏洞
openvasadm --start-scan --port 80 --targets 192.168.1.1
# 生成漏洞报告
openvasadm --get-report --scan-id SCAN_ID --output-file report.html
(三)应急响应与恢复
制定应急响应计划:
# 创建应急响应脚本
#!/bin/bash
# 隔离受影响的系统
iptables -A INPUT -s 受影响系统IP -j DROP
# 收集证据
tar -czvf evidence.tar.gz /path/to/evidence
# 分析攻击来源和方式
grep '攻击关键词 /'var/log/syslog
定期进行应急演练:
# 模拟安全事件
iptables -A INPUT -p tcp --dport 80 -j DROP
# 检查应急响应流程
systemctl status apache2
(四)安全意识培养与团队协作
加强运维团队成员的安全意识培训:
# 组织内部培训和技术分享
sudo apt install zoom # Debian/Ubuntu
sudo yum install zoom # RHEL/CentOS
# 参与安全社区和技术论坛
firefox https://www.reddit.com/r/linuxadmin/
建立跨部门的安全协作机制:
# 创建跨部门安全协作群组
sudo apt install mattermost # Debian/Ubuntu
sudo yum install mattermost # RHEL/CentOS
# 搭建内部安全知识库
sudo apt install wikibase # Debian/Ubuntu
sudo yum install wikibase # RHEL/CentOS
以上命令操作指南涵盖了Linux系统安全加固的各个方面,通过定期执行这些命令和操作,可以有效提升Linux系统的安全性和稳定性。同时,建议根据实际业务需求和系统环境,灵活调整和优化安全策略和操作流程,确保系统在安全加固的同时,保持高效的运行和管理。