网站首页 > 技术文章 正文
Linux系统加固是一个系统性的工程,旨在通过一系列措施增强系统的安全性,减少被攻击的风险。
具体的操作示例,演示如何加固Linux系统:
1. 更新系统和软件包
Bash1sudo apt update && sudo apt upgrade -y
或者,如果你使用的是基于Red Hat的系统:
Bash1sudo yum update
或者对于较新的系统使用DNF:
Bash1sudo dnf upgrade
2. 设置防火墙规则
使用ufw(Uncomplicated Firewall)简化防火墙配置:
Bash1sudo ufw default deny incoming
2sudo ufw allow ssh # 允许SSH连接
3sudo ufw enable # 启用防火墙
或者使用firewalld:
Bash1sudo firewall-cmd --permanent --add-service=ssh
2sudo firewall-cmd --reload
3sudo firewall-cmd --set-default-zone=drop
3. 禁用不必要的服务
Bash1sudo systemctl disable unused_service_name.service
例如,禁用telnet服务(如果已安装):
Bash1sudo systemctl disable telnet.socket telnet.service
4. 配置SELinux或AppArmor
启用SELinux并设置为强制模式(如果尚未启用):
Bash1sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config
2sudo setenforce 1
配置AppArmor规则(如果适用):
Bash1sudo aa-genprof /path/to/application
5. 使用强密码和SSH密钥认证
生成SSH密钥对:
Bash1ssh-keygen
将公钥复制到远程服务器:
Bash1ssh-copy-id user@remote_host
然后编辑/etc/ssh/sshd_config,确保以下配置:
Bash1PermitRootLogin no
2PasswordAuthentication no
之后重启SSH服务:
Bash1sudo systemctl restart sshd
6. 配置PAM模块
修改PAM配置,例如增加密码强度检查:
Bash1sudo nano /etc/pam.d/common-password
添加或修改行:
Text1password requisite pam_cracklib.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
7. 硬化内核参数
使用sysctl命令调整内核参数,例如限制SYN洪水攻击:
Bash1sudo sysctl -w net.ipv4.tcp_syncookies=1
为了使更改持久化,编辑/etc/sysctl.conf文件。
8. 审计和日志管理
配置日志轮转和存储策略,例如:
Bash1sudo nano /etc/logrotate.conf
并确保日志文件权限适当,例如:
Bash1sudo chmod 640 /var/log/auth.log
猜你喜欢
- 2024-11-04 /etc/passwd格式说明(etcpasswd 详解)
- 2024-11-04 centos7关闭防火墙firewalld 绝对不能在服务器上执行命令
- 2024-11-04 Linux系统搭建NFS网络文件系统,实现文件共享
- 2024-11-04 Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
- 2024-11-04 「神马课堂」Linux操作系统中主DNS服务器的配置(基于CentOS 7)
- 2024-11-04 Linux命令笔记-01(linux命令教程)
- 2024-11-04 Linux更改ssh端口的详细教程(提升系统安全)
- 2024-11-04 如何解决 Open /etc/postfix/main.cf: Permission denied ?
- 2024-11-04 Linux服务管理之Systemd配置详解,呕心沥血,匠心之作
- 2024-11-04 ALMA Linux 9部署 Zabbix7.0 LTS 单服务器架构 PostgreSQL Nginx
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 498℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 484℃MySQL service启动脚本浅析(r12笔记第59天)
- 463℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 442℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)