최근에 일부 보안 유지 관리를 결정했습니다. 내 로그를 보았고 SSH 서버에 대한 시도가있었습니다. 처음에는 SSH 포트를 기본값 22에서 옮겼습니다. 그 후 Fail2ban , BlockHosts 및 DenyHosts에 대해 읽었 습니다 .
첫 번째를 살펴 보았습니다. 구성이 간단하고 모든 것을 이해할 수 있습니다. 그러나 “보호 기능”을 검사하려고하면 테스트가 실패 합니다. 모든 것이 좋아 보이지만 여전히 서버에 액세스 할 수 있습니다.
또한 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 :
- Fail2ban을 금지 시간을 낮게 구성하십시오. 60 초 그런 다음 다시로드하십시오.
- 잘못된 비밀번호로 직접 로그인 (SSH로)하려고합니다.
- 여섯 번째로 올바른 암호를 입력하십시오 (최대 시도 횟수는 4입니다). 로그인했습니다. 해당 서버에서 호스팅하는 웹 페이지에도 액세스 할 수 있습니다.
iptables -L
위에서 언급 한대로 보여주었습니다. 그래서 연결이 끊어지면 서버에 명령을 내 렸습니다.
단계별로 테스트 # 2 :
- Fail2ban을 중지하십시오.
at
나중에 아래에 쓴 금지 규칙을 제거 하는 스크립트를 작성하십시오 . (iptables -D INPUT 1
) - 금지 규칙을 만듭니다.
iptables -I INPUT 1 -s 84.x.y.z -j DROP
- 다른 것을 입력 할 수 없었습니다 .SSH 연결을 사용할 수 없습니다. 웹 페이지에 액세스 할 수 없습니다. 그래서 iptables에서 원했던 것입니다.
at
스크립트가 끝나면 서버에 액세스 할 수 있습니다.
해결책을 찾지 못했습니다. IPtables 금지 (Fail2ban 제작)를 작동 시키려면 어떻게해야합니까?
답변
fail2ban을 설치하기 전에 내가 한 일을 발견했습니다. 시간 미안 해요
보안상의 이유로 sshd를 포트 22에서 다른 포트로 옮겼습니다. 참조는 iptables
포트 22 만 나타냅니다. 나는 그것이 현재의 sshd 포트를 항상 나타내는 변수 인 변수라고 생각했습니다. 그러나 아닙니다 .
정확한 해결책 (데몬을 원래 포트에서 옮겼을 경우) :
- jail.local (또는 .conf)을 엽니 다.
- 중괄호로 서비스를 찾으십시오.
port
섹션을 모두 수정하십시오 . 예:port = all
banaction
포트 라인 뒤에 iptables-allports 값으로 기존 라인을 추가하거나 편집하십시오 . 예 :banaction = iptables-allports
.- 데몬을 다시 시작하십시오. 예 :
# service fail2ban restart
.
port ssh
지시어 변경에 대한 해결책을 찾지 못 했거나 숫자를 쓰지 못했습니다 . 모든 포트가 아닌 솔루션이 있다면 들겠습니다!
답변
ssh 서버를 비표준 포트 12345로 옮긴 후에도 fail2ban이 금지되지 않는 것과 동일한 문제가 발생했습니다 (말하자).
여러 번의 인증 시도 실패 후 fail2ban이 올바른 규칙을 생성하도록하기 위해 편집했습니다 /etc/fail2ban/jail.conf
.
port = ssh
으로
port = 12345
비표준 포트의 다른 서비스에서도 비슷한 접근 방식이 작동한다고 가정합니다.
답변
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 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