서버 보안은 어렵지 않지만 수행해야 할 일상적인 작업이 너무 많아서 잊어버리기 쉽습니다. 그래서 여기에서는 다른 사람의 서버 침입을 방지하는 동시에 감동을 깊게 하는 방법에 대해 이야기하고 싶습니다. 읽으신 후 도움이 되셨으면 좋겠습니다.
제가 겪은 상황은 비교적 간단했습니다. 다음 명령을 실행했습니다.
cat /var/log/auth.log | grep Accepted
이 명령은 내 서버에서 성공적인 인증 기록을 반환했는데 그 중 하나가 내 IP가 아니었습니다. 따라서 SSH 서비스가 손상되었습니다.
가장 최근에 성공적으로 로그인한 사용자를 반환하는 또 다른 명령 last
가 있다는 것을 잊지 마세요. last
,这个命令返回最近成功登录的用户。
购买服务器后需要立刻进行的操作:
/var/log/auth.log
识别恶意行为并封禁 IP;如果发生了入侵,你需要知道如何调查和清扫。最好的方式是重新创建 VPS。我就是这么做的。我在 hetzner 买了服务器,它的控制台提供了重新创建(移除旧 VPS,新建一个)VPS 并保留原 IP 的功能。 所以我重新创建了一个 VPS。之后我在本地计算机上使用 ssh-keygen
工具(标准 OpenSSH 包的一部分)生成了 SSH 密钥:(下面的命令同时适用于 Linux 和 macOS)
ssh-keygen
该命令在 ~/.ssh
目录中创建了一对密钥。之后运行以下命令:
ssh-copy-id you_user@your_server_id
该命令会将新创建的公钥上传到服务器。接下来,登录服务器并修改 sshd 配置:
nano /etc/ssh/sshd_config
修改配置文件中的 PasswordAuthentication 配置:
PasswordAuthentication no
这一配置禁用了使用密码登录(只能使用密钥登录)。
服务器上我用的系统是 Ubuntu,所以通过以下命令可以安装这两个工具:
apt install ufw fail2ban
只开 ssh 和 http(s) 端口:
ufw allow ssh ufw allow 80 ufw allow 443
启用 ufw:
ufw enable
接下来配置 fail2ban 工具:
# 备份默认配置 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
在配置文件中查找 banaction =
,将其设为 ufw
/var/log/auth.log
를 기반으로 악의적인 행동을 식별하고 IP를 금지합니다.ssh-keygen
도구(표준 OpenSSH 패키지의 일부)를 사용하여 로컬 컴퓨터에서 SSH 키를 생성했습니다. (아래 명령은 Linux와 macOS 모두에서 작동합니다.) fail2ban-client reload명령은 다음 위치에 있습니다.
~/.ssh
디렉터리에 키 쌍이 생성됩니다. 그런 다음 다음 명령을 실행합니다. fail2ban-client status sshd이 명령은 새로 생성된 공개 키를 서버에 업로드합니다. 그런 다음 서버에 로그인하고 sshd 구성을 수정합니다: 🎜
Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 6 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 1 |- Total banned: 2 `- Banned IP list: 187.109.168.150🎜구성 파일에서 PasswordAuthentication 구성을 수정합니다: 🎜
ufw status Status: active To Action From -- ------ ---- Anywhere REJECT 187.109.168.150 80/tcp ALLOW Anywhere 22 ALLOW Anywhere 443 ALLOW Anywhere🎜이 구성은 비밀번호 로그인을 비활성화합니다(키만 사용하여 로그인할 수 있습니다). 🎜🎜ufw 및 Fail2ban 설치 및 구성🎜🎜서버에서 사용하는 시스템은 Ubuntu이므로 다음 명령을 통해 이 두 도구를 설치할 수 있습니다.🎜rrreee🎜Ssh 및 http(s) 포트만 엽니다.🎜rrreee🎜ufw 활성화 :🎜rrreee 🎜다음으로, Fail2ban 도구를 구성하세요: 🎜rrreee🎜구성 파일에서
banaction =
를 찾아 ufw
로 설정하세요. 그런 다음 Fail2ban 구성을 다시 로드하십시오. 🎜rrreee🎜이러한 간단한 구성 후에는 동일한 IP에서 세 번 잘못된 로그인 시도가 발생하면 10분 동안 해당 IP가 금지됩니다. 저는 개인적으로 금지기간을 7일로 조정했습니다. 다음 명령어를 사용하면 Fail2ban의 상태를 확인할 수 있습니다. 🎜rrreee🎜제 구성은 다음과 같습니다. 🎜rrreee🎜보시다시피 IP 하나가 방화벽에 의해 차단되었습니다. ufw의 보고서를 통해서도 이를 확인할 수 있습니다: 🎜rrreee🎜 더 많은 기술 튜토리얼을 보려면 🎜PHP 중국어 웹사이트🎜의 다른 콘텐츠에 주목하세요. 🎜위 내용은 다른 사람의 서버 침입을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!