Linux 서버를 외부 공격으로부터 보호하기위한 팁

운전하는 사람들은 Linux 서버 알고 알고 거부 호스트 y Fail2ban. 그를 모르는 사람들을 위해 나는 설명 이 둘에 대해 조금 응용 프로그램.

John Fredy Perez는 우승자 주간 대회에서 :«Linux에 대해 알고있는 정보 공유«. 축하합니다! 걱정되는 참여 존처럼 커뮤니티에 기여할 수 있습니까?

이 두 응용 프로그램을 설치하고 구성하여 후속 문제를 피할 것입니다. 먼저이 두 응용 프로그램이 무엇이며 그 기능이 무엇인지 설명합니다.

Fail2Ban

실패한 등록 시도를 찾고 이러한 시도가 발생하는 IP를 차단하는 로그 분석기입니다. GNU 라이센스에 따라 배포되며 일반적으로 공격 제어 시스템 또는 로컬 방화벽과 상호 작용하는 모든 시스템에서 작동합니다.

Fail2Ban은 훌륭한 구성을 가지고 있으며 프로그램에 대한 규칙을 만들 수도 있습니다.
자신 또는 제 XNUMX 자.

거부 호스트

가상 서버에 대한 무차별 대입 공격을 방지하기 위해 액세스 서버 로그를 모니터링하는 Python으로 작성된 보안 도구입니다. 이 프로그램은 실패한 연결 시도 횟수를 초과하는 IP 주소를 금지하는 방식으로 작동합니다.

이러한 Linux 응용 프로그램 (DenyHosts 및 Fail2ban)은 별도로 또는 함께 사용할 수 있습니다. 제 경우에는 둘 다 함께 일하고 있습니다.

각각의 설치 및 구성은 사용하는 배포에 따라 다릅니다. 이 게시물은 CentOS 6.3을 지향하지만 다른 배포판 간의 차이점은별로 표시되지 않습니다.

그럼 일하러 가자.

Fail2Ban 설치 및 구성

이 애플리케이션은 Linux 방화벽 자체에서 동적 규칙을 생성하고 IpTables에서 라이브 규칙을 생성합니다.

설치

설치의 경우 :

yum 설치 fail2ban 

패키지가 나타나지 않으면 필요한 저장소를 추가해야합니다.

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

이를 통해 종속성과 함께 응용 프로그램 설치를 시작해야합니다.

이제 원하는 로그를 분석하고 차단하도록 Fail2Ban을 구성해야합니다.
IP, 이메일을 통해 알림 보내기. 이를 위해 / etc / fail2ban에서 찾은 jail.conf 파일을 수정해야합니다.

cd / etc / fail2ban
나노 jail.conf

이 파일에서 다음을 수행해야합니다.

  • Modify는 bantime 값입니다.이 값은 공격자의 IP가 차단되는 시간 (초)을 결정하며 기본적으로 값은 600 초입니다.
  • 차단되기 전에 IP가 인증에 실패 할 수있는 횟수가 될 maxretry 값을 찾으십시오.
  • ignoreip 매개 변수에 IP를 추가합니다. 여기서 애플리케이션은 해당 매개 변수의 인증 된 IP를 무시합니다.
[태만]
# "ignoreip"는 IP 주소, CIDR 마스크 또는 DNS 호스트 일 수 있습니다. Fail2ban은하지 않습니다
#이 목록의 주소와 일치하는 호스트를 금지합니다. 여러 주소는
# 공백 구분자를 사용하여 정의됩니다.
무시 IP = 127.0.0.1

# "bantime"은 호스트가 차단되는 시간 (초)입니다.
bantime = 600

# 마지막 "findtime"동안 "maxretry"를 생성하면 호스트가 금지됩니다.
# 초.
findtime = 600

# "maxretry"는 호스트가 금지되기 전의 실패 횟수입니다.
maxretry = 3

그 방법의 예는 다음과 같습니다.

무시 IP = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Fail2Ban 및 SSH 구성

실패한 SSH 로그인 시도를 찾기 위해 다음과 같이 보일 때까지 파일을 수정합니다.

[ssh-iptables] 
enabled = true
필터 = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # 이것은 fail2ban을 분석 할 로그
maxretry = 3 # XNUMX 회 이상 실패한 모든 IP는 차단됩니다.
bantime = 86400 # 24 시간 금지 시간 (초)

SSH가 수신하는 포트를 수정하는 경우 포트 매개 변수도 수정해야합니다.

이 응용 프로그램은 SSH에 대한 무단 액세스뿐만 아니라 Apache, Asterisk 로그 등을 읽기 위해 작동합니다.

DenyHOSTS 설치 및 구성

이 작업은 /etc/hosts.deny 파일의 사용, 즉 "공격하는"호스트의 주소를 차단하여 거부 된 호스트 목록을 만드는 것을 기반으로합니다.

다음 명령을 사용하여 저장소에서 설치할 수 있습니다.

yum 설치 거부 호스트 

구성 파일은 /etc/denyhosts.conf에 있습니다.

계속하기 전에 인간으로서 우리는 서비스에 액세스하고 자신을 차단할 때 일반적인 "레이어 8"을 수행하고 실수를 할 수 있습니다. 이를 방지하기 위해 /etc/hosts.allow 파일을 편집하고 액세스 실패로 인해 제한을 원하지 않는 시스템의 IP를 추가합니다.

denyhosts.conf 파일 수정

설정에서 너무 멀리 가지 않기 위해이 파일에서는 일부 매개 변수 만 편집하고 주석 처리를 해제합니다. 이것들은:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 시간
SYNC_UPLOAD = 예
SYNC_DOWNLOAD = 예
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 시간

따라서 우리는 실질적으로 기본적으로 구성을 유지하지만 SSH 공격에 대한 보안이 뛰어납니다.

나노 /etc/hosts.allow

예 :

sshd : 127.0.0.1 
sshd : 192.168.1.10
sshd : 192.168.0. *

그런 다음 서비스를 다시 시작합니다.

/etc/init.d/denyhosts 재시작

이를 통해 IP, IP 범위 및 루프백 인터페이스에 대한 권한을 부여합니다. 내가 시도하지 않은 것-따라서 작동하는지 모르겠다-이 파일에 DNS를 추가하는 것입니다. 즉, DynDNS와 같은 서비스를 사용합니다. 그렇게한다면 어떻게되었는지 말씀 드리겠습니다.

특정 옵션 및 조정을 통해 DenyHOSTS 구성에 표시된 기간이 지난 후 저장된 주소가 정리되고 다른 사람이 만든 다른 목록으로 업데이트되도록합니다. DenyHOSTS.

구성된대로 저장된 주소를 수시로 제거하려면 데몬을 –purge 매개 변수와 함께 실행해야합니다.

/etc/init.d/denyhosts 시작 --purge

이 외에도 시스템 시작시 포함해야합니다.

chkconfig 거부 호스트

0 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.