Sshguard/ko

sshguard는 침투 예방 시스템입니다. sshguard는 서버 로그를 해석하고 침입 활동을 판단하며, 방화벽 규칙을 사용하여 침입 사용자를 쫒아냅니다. sshguard는 C로 작성했기 때문에 해석기를 거치지 않습니다.

동작 원리
꾸러미는 하나 이상의 로그 파일을 연속적으로 추적하는 간단한 데몬입니다. 로그인 시도에 실패했을 경우에 데본에서 전달하는 로그 이벤트를 분석하며, 시스템 방화벽을 업데이트하여 로그인에 여러번 실패한 사용자를 막아버립니다.

이름에서 암시하는 의미와는 달리 sshguard는 SSH 로그만 해석하지 않습니다. 메일 시스템과 FTP 로그에 대해서도 지원합니다. 지원 서비스 전체 목록은 sshguard.net 웹 사이트에 있습니다.

Emerge
를 설치하십시오:

를 설치했고 시스템 방화벽으로 사용중인지 확인하십시오. 이 글을 쓰는 시점에서는 아직 를 지원하지 않습니다.

IPTables에 대한 더 많은 en 사용법 및 설정법은 젠투 위키의 IPTables 게시글에서 찾아보실 수 있습니다.

방화벽 준비
sshguard가 침입 사용자(IP 주소로 차단)를 차단할 때 체인을 활용합니다.

체인을 준비하고, 새 접속을 감지하면 실행하는지 확인하십시오:

로그 파일 감시
sshguard의 바탕 개념은 관리자가 프로그램에게 옵션으로 감시할 로그 파일을 전달합니다. 자체적인 sshguard 설정 파일은 없습니다.

젠투에서는 파일에서 옵션을 잘 설정할 수 있습니다:

FILES="/var/log/messages /var/log/auth.log"
 * 1) Space-separated list of log files to monitor. (optional, no default)

THRESHOLD=10 BLOCKTIME=60480 DETECTION_TIME=60480
 * 1) How many problematic attempts trigger a block
 * 1) Blocks last at least 24 hours (60480 seconds)
 * 1) Track IP addresses for 24 hours (60480 seconds)

IPV6_SUBNET=64 IPV4_SUBNET=24
 * 1) IPv6 subnet size to block. Defaults to a single address, CIDR notation. (optional, default to 128)
 * 1) IPv4 subnet size to block. Defaults to a single address, CIDR notation. (optional, default to 32)

PID_FILE=/run/sshguard.pid }}
 * 1) Full path to PID file (optional, no default)

sshguard 를 사용하는 실행 시간 사용자가 로그 파일에 접근할 수 있는지 확인하십시오.

OpenRC
기본 실행 레벨에 sshguard를 추가하여 자동으로 시작하도록 한 후, 서비스를 시작하십시오:

불량 호스트 등록
불량 호스트 등록 옵션을 설정하면 침입자가 동일한 IP 주소로 반복해서 여러번 침입했을 때 완전히 차단합니다. 불량 호스트 목록은 sshguard를 시작할 때마다 불러오고, 동작하는 동안 목록을 새로 확장합니다. 에서는 호스트의 신고 횟수가 기준치를 넘으면 해당 호스트의 주소를 새로 추가합니다.

불량 목록에 등록한 주소는 다시 릴리스(허용)하지 않습니다.

불량 호스트 목록을 활성화하려면, 적당한 디렉터리 및 파일을 만드십시오:

While defining a blacklist it is important to exclude trusted IP networks and hosts in a whitelist.

To enable whitelisting, create an appropriate directory and file:

The whitelist has to include the loopback interface, and should have at least 1 IP trusted network f.e. 192.0.2.0/24.

불량 목록 파일을 설정에 추가하시고 SSHGUARD_OPTS 변수 값을 바꾸십시오:

THRESHOLD=10 BLOCK_TIME=43200 DETECTION_TIME=604800

IPV4_SUBNET=24 IPV6_SUBNET=64

PID_FILE=/run/sshguard.pid

BLACKLIST_FILE=10:/var/lib/sshguard/blacklist.db WHITELIST_FILE=/etc/sshguard/whitelist }}
 * 1) Add following lines

바뀐 설정대로 동작하게 하려면 데몬을 다시 시작하십시오:

'/var/log/auth.log' 파일 추가 중 사라짐!
sshguard를 시작할 때 다음 오류가 나타납니다:

대상 파일이 시스템이 발생한다면 어떤 오류(파일 경로가 다름)가 발생하기도 합니다. 파일을 만들었는지 확인하고, 해당 파일을 감시하지 않도록 sshguard 설정을 업데이트하십시오

OpenRC에서 syslog-ng 시스템을 활용할 경우 에 다음 옵션을 추가하면 좋습니다:

바뀐 설정 파일을 적용하려면 다시 불러오십시오:

추가 참조

 * Iptables : 젠투 설치 및 설정

외부 자료
sshguard 문서에는 프로그램을 더 세밀하게 설정하는데 필요한 모든 정보가 들어있습니다.