网站首页 > 技术文章 正文
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
- 最近发表
-
- 使用Knative部署基于Spring Native的微服务
- 阿里p7大佬首次分享Spring Cloud学习笔记,带你从0搭建微服务
- ElasticSearch进阶篇之搞定在SpringBoot项目中的实战应用
- SpringCloud微服务架构实战:类目管理微服务开发
- SpringBoot+SpringCloud题目整理
- 《github精选系列》——SpringBoot 全家桶
- Springboot2.0学习2 超详细创建restful服务步骤
- SpringCloud系列:多模块聚合工程基本环境搭建「1」
- Spring Cloud Consul快速入门Demo
- Spring Cloud Contract快速入门Demo
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)