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
相关推荐
deng-c-f几秒前
Linux C/C++ 学习日记(24):UDP协议的介绍:广播、多播的实现
linux·网络·学习·udp
爱吃甜品的糯米团子24 分钟前
Linux 学习笔记之 VI 编辑器与文件查找技巧
linux·笔记·学习
筑梦之路1 小时前
深入linux的审计服务auditd —— 筑梦之路
linux·运维·服务器
陈说技术1 小时前
服务器CPU达到100%解决思路
运维·服务器
hi_link1 小时前
centos系统将/home分区的空间分配给/
linux·运维·centos
我先去打把游戏先1 小时前
VSCode通过SSH连接到Ubuntu虚拟机失败“找不到ssh安装”问题解决
笔记·vscode·单片机·嵌入式硬件·学习·ubuntu·ssh
CSND7401 小时前
linux离线环境局域网远程ssh连接vscode
linux·vscode·ssh
应用市场2 小时前
Linux驱动开发原理详解:从入门到实践
linux·运维·驱动开发
siriuuus2 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql
郝学胜-神的一滴2 小时前
深入解析Linux下的`lseek`函数:文件定位与操作的艺术
linux·运维·服务器·开发语言·c++·软件工程