Ubuntu22.04 安全加固

检查端口被占用解决

bash 复制代码
lsof -i :3000
kill -9 ididid

ssh访问控制,多次失败登录即封掉IP,防止暴力破解

/var/log/auth.log # for ubuntu

www.cnblogs.com/panblack/p/...

nginx 屏蔽ip

www.cnblogs.com/fuanyu/p/14...

bash 复制代码
cd /etc/nginx
touch ip.black
  • ip.black
ini 复制代码
deny 192.168.41.218;
deny 192.168.41.217;  

清除指令历史记录

bash 复制代码
rm -rf ~/.bash_history
history -c

查看内存使用情况

bash 复制代码
free -h

防火墙设置

ufw

  • 先查看列表
bash 复制代码
ufw app list
  • 开启防火墙
bash 复制代码
ufw enable
ufw reset # 重置防火墙
  • 开启指定服务
bash 复制代码
# 比如开启OpenSSH
ufw allow OpenSSH    # 默认开启的是22端口

# 开启nginx http
ufw allow "Nginx HTTP"

ufw status # 查看状态

注意: 修改ssh端口后,需要执行ufw allow xxx/tcp !!!!!!!!!!!!

注意: allow OpenSSH 或修改ssh端口 都要执行 service ssh restart !!!!!!!!!!!!

SSH

apt install openssh-server 查看日志:

cat /var/log/auth.log

限制ssh root登录

  • 先创建非root账号
bash 复制代码
adduser testuser
usermod -aG sudo testuser

passwd root  # for edit root account password

su - username # for switch to normal account

userdel testuser # for delete account 
  • 修改配置
bash 复制代码
vi /etc/ssh/sshd_config # 此文件同时可以修改ssh端口

此文件同时可以修改ssh 端口

注释掉:

PermitRootLogin prohibit-password

改成

PermitRootLogin no

注意: 需要重启ssh service ssh restart !!!!!!!

使用密钥登录(并禁止密码登录)

登陆失败锁定 (慎用,操作不当可能自己也登陆不了)

登录失败超过一定次数,限制登录 确认faillock是否存在,使用:

ls /lib/x86_64-linux-gnu/security/pam_faillock.so

  • 客户端登录
bash 复制代码
vi /etc/pam.d/login

第2行添加

bash 复制代码
auth  required  pam_faillock.so preauth silent audit deny=5 unlock_time=130
auth  [default=die] pam_faillock.so authfail deny=5 unlock_time=130
auth  sufficient pam_faillock.so authsucc unlock_time=130

# even_deny_root    也限制root用户;
# deny              设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
# unlock_time       设定普通用户锁定后,多少时间后解锁,单位是秒;
# root_unlock_time  设定root用户锁定后,多少时间后解锁,单位是秒;
  • ssh密码登录
bash 复制代码
vi /etc/pam.d/sshd

第2行添加

bash 复制代码
auth  required  pam_faillock.so preauth silent audit deny=5 unlock_time=130
auth  [default=die] pam_faillock.so authfail deny=5 unlock_time=130
auth  sufficient pam_faillock.so authsucc unlock_time=130

# even_deny_root    也限制root用户;
# deny              设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
# unlock_time       设定普通用户锁定后,多少时间后解锁,单位是秒;
# root_unlock_time  设定root用户锁定后,多少时间后解锁,单位是秒;

重启sshd

bash 复制代码
systemctl restart sshd.service
# or
# service ssh restart
  • 其他命令
bash 复制代码
service ssh status
sudo pam_tally2 --user admin # 查看admin用户登录失败次数
sudo pam_tally2 --user admin --reset # 解锁admin用户

mysql 配置

配置密码/配置远程权限

先配置mysql和root密码 www.digitalocean.com/community/t...
再配置远程权限 www.digitalocean.com/community/t...

bash 复制代码
sudo mysql_secure_installation

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';

# mysql -u root -p # for connection

# 远程连mysql
CREATE USER 'sammy'@'37.1.210.141' IDENTIFIED BY 'newpassword';

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'37.1.210.141' WITH GRANT OPTION;

update user set host = '%' where user = 'root' and host = 'localhost';

FLUSH PRIVILEGES;

exit

vi /etc/mysql/mysql.conf.d/mysqld.cnf

# 此文件也可以修改端口
# 将bind-address          = 127.0.0.1
# 改成
# bind-address            = 0.0.0.0
# performance_schema = off # 可减少服务器内存消耗

sudo systemctl restart mysql

sudo ufw allow 3306

ufw status

# test connect outside
mysql -u root -h 37.1.210.141 -p
mysql -u root -h 37.1.210.141 -P3063 -p # 如果修改了端口需要指定,比如3063

sudo ufw allow 3063 # 开启3063端口
ufw deny 3306 # 禁用3306端口
service ssh restart
相关推荐
REDcker8 分钟前
Linux 进程资源占用分析指南
linux·运维·chrome
samroom10 分钟前
Linux系统管理与常用命令详解
linux·运维·服务器
一叶之秋14121 小时前
Linux基本指令
linux·运维·服务器
码割机1 小时前
Linux服务器安装jdk和maven详解
java·linux·maven
亚林瓜子1 小时前
在amazon linux 2023上面源码手动安装tesseract5.5.1
linux·运维·服务器·ocr·aws·ec2
爱学习的大牛1231 小时前
Ubuntu 24.04 安装 FreeSWITCH 完整教程
linux·freeswitch
FreeBuf_1 小时前
研究人员披露 Windows SMB 服务器权限提升漏洞(CVE-2025-58726)
运维·服务器·windows
go_bai1 小时前
Linux--进程池
linux·c++·经验分享·笔记·学习方法
人工智能训练2 小时前
在ubuntu系统中如何将docker安装在指定目录
linux·运维·服务器·人工智能·ubuntu·docker·ai编程
Lisonseekpan2 小时前
Linux 常用命令详解与使用规则
linux·服务器·后端