iptables로 무차별 ssh를 차단하지 못함


9

내 sshd 서버에서 무차별 대입 공격을 차단 (느리게)하려고합니다. 나는이 안내서 http://www.rackaid.com/resources/how-to-block-ssh-brute-force-attacks/ 를 따르고 있으며 기본적으로 아래 두 명령 만 입력하면됩니다.

sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent  --update --seconds 60 --hitcount 4 -j DROP

내 sshd 포트는 6622이므로 항목을 "22"에서 "6622"로 변경하고 해당 명령을 입력했습니다. 그런 다음 새 iptables를 간단히 테스트하려고했습니다. 다른 PC로 가서 의도적으로 잘못된 로그인 비밀번호를 여러 번 입력했습니다. 불행히도 새로운 규칙은 내가 원하는만큼 시도하지 못하게하는 것처럼 보이지 않습니다. 아래는 현재 규칙입니다. 내가 무엇을 잘못하고 있지?

# iptables --list

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
           tcp  --  anywhere             anywhere             tcp dpt:6622 state NEW recent: SET name: DEFAULT side: source

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain LOGDROP (0 references)
target     prot opt source               destination         
LOG        all  --  anywhere             anywhere             LOG level warning
DROP       all  --  anywhere             anywhere            

4
fail2ban 은 무차별 대입 시도를 보이는 IP 차단을 처리하는 것이 좋습니다 . 설치 및 구성이 쉽습니다. 귀하의 질문에 직접 대답하지는 않지만 마른 벽에서 나온 구멍을 몇 개 절약 할 수 있습니다.
Banjer

1
@Banjer와 동의-rackaid 링크를 잊고 fail2ban을 설정하십시오.
Shadur

MaxStartups데몬 쪽에서 기회 조정 이 도움이 될 수 있습니까?
peterph

2
@peterph 무차별 대입 시도를 서비스 거부로 전환하려는 경우에만 해당됩니다.
Shadur

왜 ssh 서버를 인터넷에 노출시킨 다음 그 결과를 최소화하려고합니까? 직장이나 집에서 ipsec VPN을 통해 인터넷에 ssh를 전혀 열지 않습니다.
Rui F Ribeiro

답변:


5

@banjer가 그의 의견에서 지적했듯이 실제 문제에 대한 잘못된 해결책을 찾고 있습니다.

당신이해야 할 일은 fail2ban을 설정하는 것 입니다. 백그라운드에서 iptables를 사용하여 다양한 소스에서 실패한 액세스 시도를 생성하는 호스트의 연결 시도를 자동으로 차단합니다. 그것은 매우 다재다능하며 다양한 트레스 홀드, 패턴을 찾고 차단하는 방법을 추가하고 수정할 수 있습니다. 사용중인 비표준 포트를 설명하기 위해 기본 ssh jail을 약간 조정해야하지만 어렵지는 않습니다.


1

다음과 같은 규칙을 사용하여 작업 속도를 늦 춥니 다.

iptables -A DDoS -m limit --limit 12/s --limit-burst 24 -j RETURN
iptables -A DDoS -j LOG --log-prefix "[DDos Attack?] "
iptables -A DDoS -j DROP

다른 곳에서는 다음과 같이 제한합니다.

LOGLIMIT="50/h"
LOGLIMITBURST="10"
iptables -A IANA -p tcp -m limit --limit $LOGLIMIT --limit-burst \
     $LOGLIMITBURST -j DROP

0

맨 페이지를 읽었습니까?

남자 sshd_config :

 MaxAuthTries
         Specifies the maximum number of authentication attempts 
         permitted per connection.  Once the number of failures 
         reaches half this value, additional failures are logged. 
         The default is 6.
 MaxSessions
         Specifies the maximum number of open sessions permitted 
         per network connection.  The default is 10.
 MaxStartups
         Specifies the maximum number of concurrent unauthenticated
         connections to the SSH daemon.  Additional connections
         will be dropped until authentication succeeds or 
         the LoginGraceTime expires for a connection. The default is 10:30:100.

         Alternatively, random early drop can be enabled by specifying
         the three colon separated values “start:rate:full” (e.g.
         "10:30:60").  sshd(8) will refuse connection attempts with a
         probability of “rate/100” (30%) if there are currently “start”
         (10) unauthenticated connections.  The probability increases
         linearly and all connection attempts are refused if the 
         number of unauthenticated connections reaches “full” (60).

3
도움이되지 않습니다. 요즘 분산 봇 네트워크에서는 SSH 무차별 공격을 사용하는 경향이 있으므로 각 연결은 3-4 번만 시도하지만 서로 다른 호스트에서 수백 개의 연결이 이루어집니다.
Shadur

0

방금 두 가지 규칙 솔루션을 시도했지만 확인했을 때 동일한 문제가 발생했습니다. 그런 다음 게시 된 규칙에 -i eth0옵션 이 있습니다. 나는 그것을 좋은 네트워크 인터페이스로 바꾸었고 마침내 작동하기 시작했다.


0

대부분의 자습서 -A는 규칙 세트 끝에 추가하는 데 사용 됩니다. OP -I는 색인없이 삽입 하는 데 사용 되었으므로 규칙의 순서가 잘못되었습니다.

iptables 규칙을 디버깅하는 데 유용한 도구는 iptables -vL각 규칙이 적용된 횟수를 계산하여 규칙을 나열하는 것입니다. 예기치 않은 0 카운트를 얻으면 무엇이 잘못되었는지 알 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.