linux下如何更好地使用
条评论[TOC]
常规安全更新
通过 unattended-upgrades
,可以使 Ubuntu 系统自动进行常规的安全相关更新,使系统一直保持 security。
1 | sudo apt install unattended-upgrades |
更改SSH端口
默认情况下,SSH 服务器侦听端口 22。出于安全原因,许多系统管理员选择将此默认端口更改为另一个不太可预测的数字,以帮助防止自动攻击。
分步指南:
备份配置文件。在进行任何更改之前,最好备份 SSH 配置文件。
1
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
编辑 SSH 配置文件。使用您喜欢的文本编辑器打开 SSHD 配置文件。在此示例中,我们将使用 nano。
1
sudo nano /etc/ssh/sshd_config
找到端口指令。找到以 Port 开头的行。默认情况下,它应该显示端口 22。
更改端口号。编辑该行以反映所需的端口号,最好高于 1024,以避免与其他标准服务发生冲突。例如,要将其更改为端口 2222,该行将如下所示:
1
Port 2222
保存并关闭文件。如果您使用的是 nano,请按 CTRL + O 写入更改,然后按 Enter 键和 CTRL + X 退出。
调整防火墙规则。如果启用了防火墙(如 UFW 或 Firewalld),则需要更新其规则以允许在新的 SSH 端口上进行连接。
1
sudo ufw allow 2222/tcp
重新启动 SSH 服务。通过重新启动 SSH 守护程序来应用更改。
1
sudo systemctl restart sshd
测试新的 SSH 端口。在注销当前会话之前,请打开新的终端或 SSH 客户端,并尝试使用新端口连接到服务器,以确保一切正常:
1
ssh username@your_server_ip -p 2222
linux下创建新用户
Linux下新建用户需要使用useradd
和passwd
命令
最基础的使用方法
1
2useradd <username> # 新建一个名为<username>的用户
passwd <username> <password> # 为该用户设定密码为<password>最佳实践
新建用户有时候我们需要连带着完成一些其他的目的,例如修改用户的默认shell(默认的/bin/sh功能太少,甚至不能使用方向键和Tab键)以及为新用户指定home目录的位置,于是我们可以这么使用
1
useradd -d <homedir> -m -s /bin/bash <username>
对上述命令的翻译:
新建用户<username>
-s
:指定shell到/bin/bash
-d
:指定其home目录为<homedir>
-m
:如果指定的home目录不存在,则新建
useradd
可用来建立用户帐号。帐号建好之后,再用 passwd
设定帐号的密码。而可用 userdel
删除帐号。使用 useradd
指令所建立的帐号,实际上是保存在 /etc/passwd
文本文件中。
参数说明:
1 | Usage: useradd [options] LOGIN |
向用户授予sudo权限
在 Linux 机器中登录 ssh 后,我收到以下消息,执行一个sudo命令,得到提示“’username’ is not in the sudoers file. This incident will be reported.”解决这个问题的办法是,向用户授予 sudo 权限。
假设 /etc/sudoers
文件被更改以防止 sudo 或 admin 组中的用户将其权限提升为超级用户的权限,则对 sudoers 文件进行备份,如下所示:
1 | cp /etc/sudoers /etc/sudoers.orginal |
打开 sudoers 文件
1 | visudo |
然后在管理员用户下方添加用户,如下语法所示:
1 | username ALL=(ALL) ALL |
上面的语法每次执行sudo指令是需要passwd的,如果需要免密码,则需按如下语法所示:
1 | username ALL=(ALL) NOPASSWD:ALL |
使用 fail2ban 保护您的系统
注意:Fail2ban 只能用于保护需要用户名/密码身份验证的服务。例如,您无法使用 fail2ban 保护 ping。
在本文中,我将演示保护 SSH 守护程序 (SSHD) 免受暴力攻击。您可以设置过滤器,就像 fail2ban
它们一样,以保护系统上的几乎所有收听服务。
安装和初始设置
1
2
3sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban除非您的
fail2ban
配置中存在某种语法问题,否则您不会看到任何标准输出消息。基础配置
现在配置一些基本的东西
fail2ban
来保护系统,而不会干扰它自己。将/etc/fail2ban/jail.conf
文件复制到/etc/fail2ban/jail.local
。该jail.local
文件是我们感兴趣的配置文件。1
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
默认情况下,fail2ban 附带一个
jail.conf
文件。但是,这可能会在更新中被覆盖,因此您应该将此文件复制到jail.local
文件中并在其中进行调整。如果您已有文件
jail.local
,请使用nano
或您喜欢的文本编辑器打开它:1
sudo nano /etc/fail2ban/jail.local
每次进行配置更改时都必须重新启动
fail2ban
1
sudo systemctl restart fail2ban
设置筛选服务
要设置过滤服务,必须在
/etc/fail2ban/jail.d
目录下创建相应的“jail”文件。对于 SSHD,创建一个名为sshd.local
的新文件,并在其中输入服务过滤指令。1
2
3
4
5
6
7
8
9[sshd]
enabled = true
backend= systemd
port = ssh
banaction = ufw[application=$(app), blocktype=reject]
logpath = /var/log/sshd/error.log
maxretry = 3
findtime = 120
bantime = 600大多数设置都是不言自明的。对上述命令的翻译, 在连续的120s内错误输入密码三次以上的用户在 600 秒(10 分钟)禁止违规系统的 IP 地址。
重新启动
fail2ban
服务。每次进行配置更改时都必须重新启动fail2ban
1
sudo systemctl restart fail2ban
封禁是什么样子的
查看封禁日志
1
tail /var/log/fail2ban.log
解除封禁
1
sudo fail2ban-client set sshd unbanip 192.168.1.69
发出此命令后,立刻解除对
192.168.1.69
的封禁,无需重新启动 fail2ban 守护程序。
安装docker、docker-compose和Portainer CE
安装docker
1 | curl -fsSL https://get.docker.com -o get-docker.sh |
验证安装
1 | docker -v |
若要创建 docker
组并添加用户,请执行以下操作:
1 | sudo groupadd docker |
验证是否可以 docker
在不运行 sudo
1 | docker run hello-world |
此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条消息并退出。
安装docker-compose
1 | sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
赋予可执行权限给下载的二进制文件
1 | sudo chmod +x /usr/local/bin/docker-compose |
创建一个符号链接,将docker-compose
命令链接到/usr/bin
目录,以便可以全局访问
1 | sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose |
验证安装
1 | docker-compose --version |
安装Portainer CE
创建Portainer将用于存储其数据库的卷
1 | docker volume create portainer_data |
下载 Portainer容器
1 | docker pull portainer/portainer-ce:latest |
启动镜像
1 | docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest |
打开 Web 浏览器 https://localhost:9000
安装Tailscale
安装 Tailscale
1 | curl -fsSL https://tailscale.com/install.sh | sh |
将您的机器连接到 Tailscale 网络并在浏览器中进行身份验证:
1 | sudo tailscale up |
您已连接!您可以通过运行以下命令找到您的 Tailscale IPv4 地址:
1 | tailscale ip -4 |
如果添加的设备是服务器或远程访问的设备,则可能需要考虑禁用密钥过期,以防止需要定期重新进行身份验证。
本文标题:linux下如何更好地使用
文章作者:xmaihh
发布时间:2024-01-09
最后更新:2024-01-09
原始链接:https://xmaihh.github.io/blog/2024/01/09/linux-xia-ru-he-geng-hao-di-shi-yong/
版权声明:采用[CC BY-NC-SA 4.0许可协议]进行许可
分享