내 SSHD 서버에 대한 무차별 대입 공격을 방지(느리게)하려고 합니다. 나는 이 가이드를 따르고 있다http://www.rackaid.com/resources/how-to-block-ssh-brute-force-attacks/이는 기본적으로 다음 2개의 명령만 입력하면 된다는 것을 의미합니다.
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를 간단히 테스트해 보았습니다. 다른 컴퓨터로 가서 고의로 잘못된 로그인 비밀번호를 여러 번 입력했습니다. 불행하게도, 새로운 규칙은 내가 할 수 있는 한 많은 것을 시도하는 것을 막지는 못하는 것 같습니다. 아래 목록은 현재 규칙입니다. 내가 뭘 잘못했나요?
# 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
답변1
@banjer가 그의 의견에서 지적했듯이 실제 문제에 대해 잘못된 해결책을 시도하고 있습니다.
해야 할 일은 정해져 있다 실패 2 금지. 내부적으로 iptables를 사용하여 다양한 소스의 액세스 시도에 실패한 호스트의 연결 시도를 자동으로 차단합니다. 매우 다재다능하며 다양한 임계값, 모드를 추가하고 수정하여 방법을 찾고 금지할 수 있습니다. 사용 중인 비표준 포트를 설명하기 위해 기본 SSH 감옥을 약간 조정해야 하지만 어렵지는 않습니다. .
답변2
나는 속도를 늦추기 위해 다음과 같은 규칙을 사용합니다.
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
답변3
매뉴얼 페이지를 읽어보셨나요?
남자 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).
답변4
대부분의 튜토리얼에서는 -A
규칙 세트 끝에 추가를 사용합니다. OP는 -I
삽입용이지만 색인이 없으므로 규칙의 순서가 잘못됩니다.
iptables 규칙을 디버깅하는 데 유용한 도구는 iptables -vL
규칙과 각 규칙이 적용된 횟수를 나열하는 것입니다. 예상치 못한 개수가 0인 경우 문제를 이해하는 데 도움이 될 수 있습니다.