나와 내 친구들을 위해 SFTP 서버를 설정하고 있으며 무차별 공격 시도를 차단하려고 합니다.
무차별 대입 공격을 차단하기 위해 pf를 얻는 방법에 대한 많은 기사를 읽었지만 운이 없었습니다.
OpenBSD 6.4를 실행 중입니다. 현재 /etc/pf.conf입니다.
# $OpenBSD: pf.conf,v 1.55 2017/12/03 20:40:04 s then Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
set skip on lo
block return # block stateless traffic
pass # establish keep-state
# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010
# Port build user does not need network
block return out log proto {tcp udp} user _pbuild
ext_if="em0"
antispoof quick for ($ext_if) #No IP or GPS SPOOFING allowed here :)
table <bruteforce> persist
block quick from <bruteforce>
pass inet proto tcp to any:network port 22 \
keep state (max-src-conn 10, max-src-conn-rate 5/5, \
overload <bruteforce> flush global)
table <ssh_block> persist
block quick from <ssh_block> to any
brute-force 및 ssh_block 테이블을 확인하면 존재하지 않습니다. 그래서 ssh_block에서 명령을 실행했습니다.
pfctl -t ssh_block -T add 218.92.1.138
1 table created.
1/1 addresses added.
pfctl -t ssh_block -T show
218.92.1.138
그러나 내 /var/log/authlog는 여전히 해당 IP 주소로부터의 시도로 가득 차 있습니다.
내가 무엇을 놓치고 있나요?
답변1
문제는 파일의 버그로 인해 /etc/pf.conf
방화벽이 구성을 전혀 로드하지 못한다는 것입니다(:network
특정 인터페이스에 적용 가능).
pf
무차별 연결을 차단하는 예는 다음과 같습니다.OpenBSD PF FAQ, 규칙으로 요약됩니다(원래 www
예제에서 내가 사용하는 것으로 수정됨 ssh
).
table <bruteforce> persist
block in quick from <bruteforce>
pass in on egress proto tcp to any port ssh flags S/SA keep state \
(max-src-conn 5, max-src-conn-rate 5/30, \
overload <bruteforce> flush global)
이렇게 하면 30초마다 5회 이상 연결하는 호스트를 <bruteforce>
테이블에 배치하여 차단합니다. 소스 주소당 5개의 연결만 허용됩니다.
또 다른 옵션은 다음을 사용하는 것입니다.SSH 가드. OpenBSD에는 SSHGuard 포트가 있지만 매우 오래되었습니다(2011년에 1.5 출시). 방금(몇 분 전에) 업데이트를 제출했고 며칠 안에 제출할 수 있기를 바랍니다.