IPtables가있는 Fail2ban 블록은 Debian Lenny에서 작동하지 않습니다. [이동 된 ssh 포트]


11

최근에 일부 보안 유지 관리를 결정했습니다. 내 로그를 보았고 SSH 서버에 대한 시도가있었습니다. 처음에는 SSH 포트를 기본값 22에서 옮겼습니다. 그 후 Fail2ban , BlockHostsDenyHosts에 대해 읽었 습니다 .

첫 번째를 살펴 보았습니다. 구성이 간단하고 모든 것을 이해할 수 있습니다. 그러나 "보호 기능"을 검사하려고하면 테스트가 실패 합니다. 모든 것이 좋아 보이지만 여전히 서버에 액세스 할 수 있습니다.

또한 IPtables를 테스트했습니다. # iptables -I INPUT -j DROP-SSH 연결이 끊어진 후 (원하는 것). 그런 다음에 # iptables -I INPUT -s 84.x.y.z -j DROP도 효과가있었습니다.

그러나 Fail2ban이 수행 한 규칙은 작동하지 않습니다. ( $ sudo iptables -L)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
fail2ban-apache  tcp  --  anywhere             anywhere            multiport dports www,https
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
fail2ban-ssh-ddos  tcp  --  anywhere             anywhere            multiport dports ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

Chain fail2ban-apache (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh (1 references)
target     prot opt source               destination        
DROP       all  --  84.x.y.z           anywhere            
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh-ddos (1 references)
target     prot opt source               destination        
RETURN     all  --  anywhere             anywhere

커널 모듈로드 : ( $ lsmod | grep ip)

iptable_nat             4680  0
nf_nat                 15576  1 iptable_nat
nf_conntrack_ipv4      12268  3 iptable_nat,nf_nat
nf_conntrack           55540  4 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4
xt_multiport            2816  2
iptable_filter          2624  1
ip_tables              10160  2 iptable_nat,iptable_filter
x_tables               13284  5 xt_state,xt_tcpudp,iptable_nat,xt_multiport,ip_tables
ipv6                  235396  24

버전 :

  • 데비안 레니 5.06, 커널 2.6.26-2-686
  • IPtables 1.4.2-6
  • 실패 2ban 0.8.3-2sid1
  • openssh-server 1 : 5.1p1-5

단계별로 테스트 # 1 :

  1. Fail2ban을 금지 시간을 낮게 구성하십시오. 60 초 그런 다음 다시로드하십시오.
  2. 잘못된 비밀번호로 직접 로그인 (SSH로)하려고합니다.
  3. 여섯 번째로 올바른 암호를 입력하십시오 (최대 시도 횟수는 4입니다). 로그인했습니다. 해당 서버에서 호스팅하는 웹 페이지에도 액세스 할 수 있습니다.
  4. iptables -L위에서 언급 한대로 보여주었습니다. 그래서 연결이 끊어지면 서버에 명령을 내 렸습니다.

단계별로 테스트 # 2 :

  1. Fail2ban을 중지하십시오. at나중에 아래에 쓴 금지 규칙을 제거 하는 스크립트를 작성하십시오 . ( iptables -D INPUT 1)
  2. 금지 규칙을 만듭니다. iptables -I INPUT 1 -s 84.x.y.z -j DROP
  3. 다른 것을 입력 할 수 없었습니다 .SSH 연결을 사용할 수 없습니다. 웹 페이지에 액세스 할 수 없습니다. 그래서 iptables에서 원했던 것입니다.
  4. at스크립트가 끝나면 서버에 액세스 할 수 있습니다.

해결책을 찾지 못했습니다. IPtables 금지 (Fail2ban 제작)를 작동 시키려면 어떻게해야합니까?


질문이 수정되었습니다! 어떤 아이디어?
antivirtel 2016 년

답변:


8

fail2ban을 설치하기 전에 내가 한 일을 발견했습니다. 시간 미안 해요

보안상의 이유로 sshd를 포트 22에서 다른 포트로 옮겼습니다. 참조는 iptables포트 22 만 나타냅니다. 나는 그것이 현재의 sshd 포트를 항상 나타내는 변수 인 변수라고 생각했습니다. 그러나 아닙니다 .

정확한 해결책 (데몬을 원래 포트에서 옮겼을 경우) :

  1. jail.local (또는 .conf)을 엽니 다.
  2. 중괄호로 서비스를 찾으십시오.
  3. port섹션을 모두 수정하십시오 . 예:port = all
  4. banaction포트 라인 뒤에 iptables-allports 값으로 기존 라인을 추가하거나 편집하십시오 . 예 : banaction = iptables-allports.
  5. 데몬을 다시 시작하십시오. 예 : # service fail2ban restart.

port ssh지시어 변경에 대한 해결책을 찾지 못 했거나 숫자를 쓰지 못했습니다 . 모든 포트가 아닌 솔루션이 있다면 들겠습니다!


1
이름 대신 포트 번호를 제공하기 만하면됩니다.
Julian Knight

또한 iptable 이름을 성공적으로 추가하려면 32 자 미만이어야합니다.
Adrian Lopez

2

ssh 서버를 비표준 포트 12345로 옮긴 후에도 fail2ban이 금지되지 않는 것과 동일한 문제가 발생했습니다 (말하자).

여러 번의 인증 시도 실패 후 fail2ban이 올바른 규칙을 생성하도록하기 위해 편집했습니다 /etc/fail2ban/jail.conf.

port = ssh 

으로

port = 12345

비표준 포트의 다른 서비스에서도 비슷한 접근 방식이 작동한다고 가정합니다.


0

fail2ban의 설정은에 /etc/fail2ban/jail.local있습니다. 기본 설치에서 그것이 있는지 확실하지 않습니다. 그런 다음에 복사 jail.conf하면 jail.local에 파일이 모두 있습니다 /etc/fail2ban/. 편집 jail.local하고 포함 된 줄로 이동하여 다음 [ssh]과 같이 활성화하십시오.

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

그런 다음 fail2ban을 다시 시작하십시오.

sudo /etc/init.d/fail2ban restart

그것은 지금 작동 할 가능성이 있습니다, 나는 그것을 그렇게 설정했고 작동합니다.


내 질문을 이해하지 못했다고 생각합니다! Fail2ban, 내가 원하는 것 : 로그를보고 공격자를 금지합니다. 그러나 그 금지, IPtables 가해 야 할 일은 효과가 없습니다. 위에서 언급 한 규칙 설정으로 서버에 여전히 액세스 할 수 있습니다.
antivirtel

죄송합니다, 서두르고 오해했으며 같은 문제가 있었으므로 jail.local을 추가하여 해결하면 도움이 될 것이라고 생각했습니다. 불행히도, 모든 것이 올바르게 설정되어 있다면 문제가 무엇인지 모르지만 다른 사람이하기를 바랍니다.
enedene

0

"Fail2ban 0.8.3-2sid1"이 설치된 것으로 표시되었습니다. 지원되지 않는 구성입니다. Sid 패키지는 안정적인 환경에 설치하지 않아야합니다.

Lenny에서 업그레이드 한 Debian 6 (Squeeze)을 VM의 VM에서 특히 내 집의 SSH 서버로 실행합니다. 또한 fail2ban을 사용합니다. 테스트 # 1을 수행했으며 모든 것이 제대로 작동했습니다. 최대 시도 횟수로 로그인에 실패했으며 로그인 요청이 60 초 동안 삭제되었습니다.

내 버전 목록 :

  • / etc / debian_version = 6.0.1
  • fail2ban = 08..4-3
  • iptables = 1.4.8
  • openssh-server = 1 : 5.5p1-6

아니요, 올바른 패키지가 있습니다. packages.debian.org/search?suite=lenny&keywords=fail2ban
바이러스 백신

이 경우 dist-upgrade를 수행하는 것이 좋습니다.
James Sumners

okok, 너무 쉽지는 않지만 어떻게 든 관리 할 것입니다 ...-아마도 새로 설치하십시오
antivirtel

sed -i 's/lenny/squeeze/' /etc/apt/sources.list && apt-get update && apt-get dist-upgrade. 아주 간단합니다.
James Sumners

예, 그러나 다음 번에 부팅하지 않을 가능성이 있습니까? 출시 노트에 따르면, 새로운 kenel + new udev 시스템은 ...-컴퓨터에서 성공 했습니까?
antivirtel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.