>일반적인 문제 >다른 사람의 서버 침입을 방지하는 방법

다른 사람의 서버 침입을 방지하는 방법

little bottle
little bottle앞으로
2019-04-30 09:57:183245검색

서버 보안은 어렵지 않지만 수행해야 할 일상적인 작업이 너무 많아서 잊어버리기 쉽습니다. 그래서 여기에서는 다른 사람의 서버 침입을 방지하는 동시에 감동을 깊게 하는 방법에 대해 이야기하고 싶습니다. 읽으신 후 도움이 되셨으면 좋겠습니다.

취약점을 찾는 방법

제가 겪은 상황은 비교적 간단했습니다. 다음 명령을 실행했습니다.

cat /var/log/auth.log |  grep Accepted

이 명령은 내 서버에서 성공적인 인증 기록을 반환했는데 그 중 하나가 내 IP가 아니었습니다. 따라서 SSH 서비스가 손상되었습니다.

가장 최근에 성공적으로 로그인한 사용자를 반환하는 또 다른 명령 last가 있다는 것을 잊지 마세요. last,这个命令返回最近成功登录的用户。

如何加固服务器

购买服务器后需要立刻进行的操作:

  • 安装 ufw,简单易用的防火墙软件;
  • 关闭除 SSH、HTTP(s) 外的所有端口;
  • 安装配置 fail2ban 工具。这个工具基于 /var/log/auth.log 识别恶意行为并封禁 IP;
  • 修改 sshd 配置,只使用密钥认证。

具体怎么做?

如果发生了入侵,你需要知道如何调查和清扫。最好的方式是重新创建 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

这一配置禁用了使用密码登录(只能使用密钥登录)。

安装配置 ufw 和 fail2ban

服务器上我用的系统是 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

서버를 강화하는 방법

서버 구입 후 즉시 해야 할 일:

  • 간단하고 사용하기 쉬운 방화벽 소프트웨어인 ufw를 설치합니다. li>
  • SSH를 제외하고 HTTP를 제외한 모든 포트를 닫습니다.
  • fail2ban 도구를 설치하고 구성합니다. 이 도구는 /var/log/auth.log를 기반으로 악의적인 행동을 식별하고 IP를 금지합니다.
  • 키 인증만 사용하도록 sshd 구성을 수정합니다.
구체적으로 어떻게 하나요?

무단 침입이 발생하면 조사하고 정리하는 방법을 알아야 합니다. 가장 좋은 방법은 VPS를 다시 만드는 것입니다. 그것이 내가 하는 일이다. 나는 hetzner에서 서버를 구입했는데, 그 콘솔은 VPS를 다시 생성(이전 VPS 제거, 새 VPS 생성)하고 원래 IP를 유지하는 기능을 제공합니다. 그래서 VPS를 다시 만들었습니다. 그런 다음 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

관련 기사

더보기