Appearance
安全加固
通用
- 网络查询
netstat -antup
lsof -i
ps -ef
- 进程查询
lsof -p pid
查看进程使用的文件/etc/init.d && /etc/rc.d/init.d
查看进程启动chkconfig
查看自启动进程systemctl list-unit-files --type=service | grep enable
查看自启任务/var/spool/cron/* && /var/spool/cron/crontabs/* && /etc/crontab && /etc/cron.d/*
定时任务
- 日志分析
cat access.log | awk -F" " '{print $1}' | sort | uniq -c
查看有多少IP和访问量cat /etc/passwd | cut -f 1 -d : |xargs -i crontab -l -u {}
查看所有用户的定时启动任务
- 排查命令
w
查看登陆的用户last
查看登陆记录history
查看历史命令记录
- 文件排查
/etc/passwd
用户信息/etc/shadow
密码文件/etc/sudoer
sudo信息/var/log/secure
ssh登陆信息/var/log/*
日志.ssh/authorized_keys
免登录公钥.ssh/known_hosts
登录过得机器file && stat
查看文件类型和时间find <path> -type f -newermt "2023-01-01 00:00:00" -a -not -newermt "2023-01-01 00:00:00"
查看一段时间内的文件compgen -b | grep -V -E "\.|\:" | while read line;do ls /usr/local/bin/$line 2>null;done
查找指定文件夹下与系统命令同名的文件which && whereis
查找文件位置
可疑文件
可疑用户
bash
1、查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd
2、查询可以远程登录的帐号信息
awk '/\$1|\$6/{print $1}' /etc/shadow
3、除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4、禁用或删除多余及可疑的帐号
usermod -L user #禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头
userdel -r user #将删除user用户,并且将/home目录下的user目录一并删除
- 查看用户 cat /etc/passwd
恶意代码
备份目录,或者通过scp方式。存储到本地,使用d盾或者是杀毒软件查杀
ssl
bash
openssl genrsa -out nginx.key 2048(输入密码直接跳过回车)
openssl req -x509 -newkey rsa:2048 -keyout nginx.key -out nginx.crt -days 3650 -nodes(CN设置域名192.168.1.1)
2、编辑nginx配置
vim /etc/nginx/sites-available/default
server {
# 监听443端口,启用SSL
listen 443 ssl;
# 服务器标识设置为IP(与证书CN一致),可以不配
server_name 192.168.1.1; # 替换为你的服务器IP
# SSL证书配置(路径替换为实际生成的文件位置)
ssl_certificate /etc/nginx/ssl/ip_ssl.crt; # 证书路径
ssl_certificate_key /etc/nginx/ssl/ip_ssl.key; # 私钥路径
# 可选:SSL优化配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# 根路径转发(示例:转发到本地8080端口的服务)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3、验证和重启
nginx -t
nginx -s reload
keytool -genkeypair -alias ruoyi -keyalg RSA -keysize 2048 -validity 365 -keystore ruoyi.p12
server:
port: 8443 # HTTPS服务端口(常用443,此处用8443也可)
ssl:
enabled: true # 开启SSL(即HTTPS)
key-store: classpath:ruoyi.p12 # 证书文件路径(classpath:表示在resources目录下)
key-store-password: 证书密码 # 生成证书时设置的密码(需与keytool命令中输入的一致)
key-store-type: PKCS12 # 证书类型(PKCS12是主流格式,对应之前生成的ruoyi.p12)
若依:
1、redis配置
编辑ruoyi-admin/src/main/resources/application-druid.yml(或application.yml)
spring:
redis:
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码(默认为空)
password: 你的新密码 # 这里修改为新密码
# 连接超时时间(毫秒)
timeout: 10000
2、https配置
生成证书keytool -genkeypair -alias ruoyi -keyalg RSA -keysize 2048 -validity 365 -keystore ruoyi.p12
将证书文件(如ruoyi.p12或ruoyi.jks)放入ruoyi-admin/src/main/resources/目录下
在ruoyi-admin/src/main/resources/application.yml中添加 SSL 配置
server:
port: 443 # HTTPS默认端口
ssl:
key-store: classpath:ruoyi.p12 # 证书文件路径(放在resources目录下)
key-store-password: 证书密码 # 证书密码
key-store-type: PKCS12 # 证书类型(根据实际证书类型填写,如JKS)
key-alias: 证书别名 # 证书别名(创建证书时设置的)
3、打包为 JAR 文件
// 清理旧文件并打包(跳过测试加速)
mvn clean package -DskipTests
打包成功后,JAR 文件位于:ruoyi-admin/target/ruoyi-admin-{版本号}.jar
官方文档:打包工程文件,在ruoyi项目的bin目录下执行package.bat打包Web工程,生成war/jar包文件。然后会在项目下生成target文件夹包含war或jar
4、启动
jar部署方式
java -jar ruoyi-admin-{版本号}.jar 或者执行脚本:ruoyi/bin/run.bat
war部署方式
ruoyi/pom.xml中的packaging修改为war,放入tomcat服务器webapps
JAR打包:
确保项目根目录有pom.xml(Maven)或build.gradle(Gradle)
# 清理旧构建并打包(跳过测试加速)
mvn clean package -DskipTests
# 清理旧构建并打包
gradle clean build -x test
nginx配置ssl,并且后端也为https:
server {
listen 443 ssl;
server_name your-domain.com;
# 本地SSL证书配置(面向客户端的证书)
ssl_certificate /path/to/your/cert.pem;
ssl_certificate_key /path/to/your/key.pem;
# 反向代理到后端HTTPS服务
location / {
proxy_pass https://backend-service; # 转发到后端服务
proxy_ssl_verify off; # 关闭对后端服务的证书验证
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}