Debian, Ubuntu
一、更新组件,包管理
要在 Ubuntu 系统上更新软件包,可以使用以下命令:
不推荐,安装时间太长了:
sudo apt update && sudo apt upgrade -y推荐用下面两条
sudo apt update #这个命令会更新软件包列表,让系统知道有哪些软件包可以更新。
sudo apt upgrade --only-upgrade #这个命令会安装所有可用的软件包更新。二、常用工具
1、VIM编辑器【不需要可以装nano(不如nano)】
检查有没有安装VIM(Ubuntu是默认自带nano的)
vim --version没有的话就用命令安装
apt install vim配置VIM为默认的系统编辑器。
很简单,执行这条命令,选择 Vim,以后凡是自动调用编辑器的地方,都会用 Vim 啦。
sudo update-alternatives --config editor2、安装 command-not-found【不需要可以不装】
很多服务器提供商可能会提供精简版本的 Ubuntu,于是一些实用的命令行工具并不会预装。比如command-not-found,它可以当你在打命令时,提示对应的但没有安装的 package。
sudo apt install command-not-found安装完后,就可以在使用命令行的过程中更加方便了。
三、添加普通用户
如果本身就不是root就不用
1、添加普通用户
使用adduser创建用户,命令如下:
adduser newusernewuser为要创建的账号名,修改为自己想要的用户名。
期间需要输入两次密码。第一次用于设置密码,第二次用于确认密码。
注意,输入密码时,看不见输入的字符。输入后回车即可。
设置密码后,需要设置账户信息,这里可以采用默认,全部回车,最后输入y确认即可:
添加用户后,默认会在/home路径下创建一个与用户名相同的用户目录。
2、给新用户添加管理权限
如果希望新创建的用户具有管理权限,将用户添加到sudo组即可!
将新用户添加到 sudo 组,命令如:
adduser newuser sudo3、账号切换
由root账号切换到普通账号:
sudo su newuser由普通账号切换到root账号:
sudo -i注意:切换到root账号时,需要输入当前账号的密码。
四、防火墙配置
如果自带防火墙就不用
安装ufw:
要在 Ubuntu 上使用 ufw(Uncomplicated Firewall)开启端口 22、80 和 443,你可以按照以下步骤进行配置:
检查 ufw 是否安装:
如果尚未安装 ufw,你可以使用以下命令安装:
sudo apt install ufw开启端口:
开启端口 22:SSH
sudo ufw allow 22开启端口 80:http
sudo ufw allow 80开启端口 443:HTTPS
sudo ufw allow 443常用端口
| 21(Ftp) | 22(Ssh) | 23(Telnet) | 25(Smtp) | 8888(BT) |
|---|---|---|---|---|
| 80(Http) | 110(Pop3) | 143(IMAP) | 443(Https) | 445(共享) |
| 1433(MSSQL) | 3306(MYSQL) | 3311(康乐) | 3312(康乐) | 3389(远程桌面) |
启用防火墙:
启用 ufw 防火墙:
sudo ufw enable检查配置:
可以运行
sudo ufw status来查看防火墙的状态和已开启的端口。
参考文章
https://blog.csdn.net/qq_53679247/article/details/128374607
五、配置 SSH 登录及 SSH Server 安全设定
ubuntu24需要额外做本节最后面的配置。
输入以下命令来编辑 SSH 配置文件
两个功能一样的,若未安装vim,默认nano
sudo nano /etc/ssh/sshd_configsudo vim /etc/ssh/sshd_config禁用root身份登录
编辑 SSH 配置文件
找到PermitRootLogin Yes这一项,然后把它后面的设定值改为no即可。
如下:
PermitRootLogin noSSH端口号更改
编辑 SSH 配置文件
Port 22SSH端口号22改为其他数字,注意了,改成其他端口后,记得防火墙设置也要更新。
Port SSH端口号,最好在10000以上
然后重启 SSH Server 生效:
sudo systemctl restart sshd.service禁止密码登录,改为密钥登录(麻烦,可跳过)
先在windows端生成 ssh 公私钥对
ssh-keygen -t rsa -f %USERPROFILE%\.ssh\ali_id_rsa_admin或在linux端生成 ssh 公私钥对(但要记得保存下来)
ssh-keygen -t rsa -f ~/.ssh/id_rsa_xxxx-f表示更友好地输出方式,后面跟的是储存目录
在用户目录下创建authorized_keys文件,并将公钥(pub结尾)的内容粘入authorized_keys文件中
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys再编辑 SSH 配置文件
把 PasswordAuthentication 设置成 no,禁止密码登录:
PasswordAuthentication no把 PubkeyAuthentication 设置成 yes,允许密钥登录:
PubkeyAuthentication yesubunutu24
因为新增了 ssh.socket ,需要关掉或者打开强制的ipv4,如果不强制ipv4就无法访问(bug)
sudo systemctl edit ssh.socket在空白处插入如下代码。111改成SSH端口,测试完成之后再删除22那里
[Socket]
ListenStream=
# 新服务器必做
ListenStream=0.0.0.0:111
# 专门负责 IPv6
ListenStream=[::]:111
# 建议 22 端口也保持双栈(为了备用通道的安全)
ListenStream=0.0.0.0:22
ListenStream=[::]:22六、自定义shell 界面安装【不需要可以不装】
安装 oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"其他主题、插件等配置参考:
zsh 安装与配置:9步打造高效命令行 - HackerNeo
Tmux
Tmux 是一个终端多路复用器,可以从单个屏幕创建、访问和控制多个终端。 Tmux 可能会与屏幕分离,并继续在后台运行,然后重新连接。
每当 tmux 启动时,它都会创建一个带有单个窗口的新会话并将其显示在屏幕上。屏幕底部的状态行显示当前会话的信息,用于输入交互式命令。
在本指南中,我将与您分享 Tmux 备忘单,以帮助您在 Linux 或 Unix 机器上开始使用 tmux。在进入备忘单部分之前,我们先来看看如何在 Linux 上安装 tmux。
来源: 一台新到手的VPS服务器必做十二项配置(以Ubuntu为例) - #54 by shayne
Thefuck
来自:https://linux.do/t/115839/105的命令补全工具
github.com
GitHub - nvbn/thefuck: Magnificent app which corrects your previous...
Magnificent app which corrects your previous console command.
七、Docker配置【不需要可以不装】
1、安装 Docker
官方地址:https://docs.docker.com/install/linux/docker-ce/ubuntu/
快速安装
curl https://get.docker.com | sh首先安装基本环境:
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common再安装 key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -再增加 Docker 官方源:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"最后就可以安装 Docker 了,我一般也同时会用 Docker Compose,一起安装上去吧!
sudo apt update
sudo apt install docker-ce docker-compose安装好 Docker 以后,记得将当前用户加到 docker 用户组里去(如果你不想每次都用 sudo 用 Docker 的话)
sudo gpasswd docker -a username2、Docker日志管理
全局配置日志大小限制
创建或修改文件 /etc/docker/daemon.json,并增加以下配置(3份日志、每份10M)。
{
"log-driver": "json-file",
"log-opts": {
"max-file": "3",
"max-size": "10m"
}
}随后重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker不过已存在的容器不会生效,需要重建才可以!
单个容器日志大小限制
写在docker-compose中
logging:
driver: json-file
options:
max-size: "100m"
max-file: "3"八、swap配置【不需要可以不装】
swapoff -a #删除原分区
dd if=/dev/zero of=/root/swapfile bs=1M count=1024 #配置新分区大小
mkswap /root/swapfile
swapon /root/swapfile最后设置开机启动:可以编辑 /etc/fstab 文件,把最后一行改成:
/root/swapfile swap swap defaults 0 0参考文章:
https://skywt.cn/blog/changeswap/
九、logrotate日志大小限制【不需要可以不装,但是建议,日志管理很重要!】
sudo apt install logrotate
sudo apt install cron
/var/log/syslog
/var/log/mail.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/cron.log
{
weekly
rotate 3
maxsize 100M
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}参考文章:
logrotate自定义切割时间的一些坑 - 梦轻尘 - 博客园
Linux日志切割神器logrotate原理介绍和配置详解 | HelloDog
Logrotate 日志滚动 解决日志占用空间过大 - 狐狸的小小窝
Linux 日志管理journald和rsyslog - 星火撩原 - 博客园
https://nj.transwarp.cn:8180/?p=10556
十、Fail2ban 封禁 IP【不需要可以不装】
保护 EC2 实例的开源工具 – Fail2Ban | Amazon Web Services
Protect EC2 instance with Fail2Ban
github.com/fail2ban/fail2ban
Ubunutu用这个
sudo apt install fail2banCentOS/RHEL 用这个
sudo yum install epel-release
sudo yum install fail2ban配置建议 (/etc/fail2ban/jail.local): 不要直接修改 .conf 文件,新建一个 .local 文件。
sudo nano /etc/fail2ban/jail.local文本内容:
# 默认设置
[DEFAULT]
ignoreip = 127.0.0.1/8
# 本地白名单
# SSH servers
[sshd]
enabled = true
backend = systemd
port = ssh
filter = sshd
maxretry = 10
# 允许失败 10 次
findtime = 300
# 在 5 分钟内
bantime = 86400
# 封禁 1 天 (单位秒),甚至可以设为 -1 (永久)启动服务
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban验证配置 查看当前被封禁的 IP:
sudo fail2ban-client status sshd十一、面板安装——1panel【不需要可以不装】
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
sudo apt autoremove docker-compose参考文章:
推荐开源的Linux管理面板——1panel
轻量开源linux管理面板——TinyCP
十二、常规安全更新
安装 unattended-upgrades 来自动更新 security upgrade
通过 unattended-upgrades,可以使 Ubuntu 系统自动进行常规的安全相关更新,使系统一直保持 security。
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades