침입 탐지 및 방지
Fail2Ban과 같은 침입 탐지 시스템(IDS)을 설정하고 구성하며, 침입 방지 시스템(IPS)의 원리를 이해하여 서버를 능동적으로 방어합니다.
침입 탐지 및 방지은(는) CoddyKit의 무료 Linux Server Deployment & SSH Mastery 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Linux Server Deployment & SSH Mastery 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.
방화벽을 넘어: 능동적 방어
서버 보안의 마지막 학습에 오신 것을 환영합니다! 지금까지 예방에 중요한 방화벽과 감사를 다루었습니다. 하지만 결연한 공격자가 이러한 방어를 우회하려 한다면 어떻게 해야 할까요?
이 학습에서는 침입 탐지 시스템(IDS)과 침입 방지 시스템(IPS)을 소개합니다. 이러한 도구는 능동적 방어 계층을 추가하여 서버에서 발생하는 악의적인 활동을 발견하고 중단하도록 도와줍니다.
IDS란 무엇입니까
침입 탐지 시스템(IDS)은 의심스러운 활동을 끊임없이 감시하는 보안 요원과 같습니다. 공격을 나타내는 패턴이 있는지 서버의 네트워크 트래픽이나 시스템 로그를 모니터링합니다.
- 수동 모니터링: IDS는 위협을 탐지하고 이를 알려줍니다.
- 차단하지 않음: 침입을 능동적으로 차단하거나 방지하지 않습니다. 알림을 제공하는 것이 주된 역할입니다.
- 예: Snort나 Suricata와 같은 도구는 네트워크 기반 IDS로 작동하여 수신 및 송신 데이터를 분석할 수 있습니다.
IPS란 무엇입니까
침입 방지 시스템(IPS)은 IDS 개념을 한 단계 발전시킨 것입니다. 단순히 알림을 보내는 대신, 탐지된 위협을 중단하기 위해 능동적으로 개입합니다.
- 능동적 보호: 악의적인 IP 주소를 자동으로 차단하고, 의심스러운 연결을 종료하거나, 유해한 패킷을 삭제할 수 있습니다.
- 방지에 중점: 실시간으로 침입이 성공하지 못하게 하는 것이 목표입니다.
- Fail2Ban: 오늘 중점적으로 살펴볼 호스트 기반 IPS의 대표적인 예입니다.
Fail2Ban 소개
Fail2Ban은 강력한 오픈 소스 호스트 기반 IPS입니다. SSH, 웹 서버 또는 메일 서버의 로그와 같은 로그 파일에서 반복적으로 실패한 로그인 시도나 기타 의심스러운 패턴을 검색합니다.
지정된 시간 내에 하나의 IP 주소에서 실패한 시도가 너무 많이 발생한 것을 감지하면 Fail2Ban은 서버의 방화벽 규칙을 자동으로 업데이트하여 해당 IP 주소를 일시적 또는 영구적으로 차단합니다.
Fail2Ban 작동 방식
Fail2Ban은 세 가지 핵심 개념을 사용합니다.
- 필터: 로그 파일에서 찾을 패턴을 정의하는 정규 표현식입니다(예: 'root에 대한 비밀번호 실패').
- 감옥: 필터와 동작을 결합합니다. 모니터링할 로그 파일, 사용할 필터, 필터 조건이 충족될 때 수행할 동작을 지정합니다.
- 동작: IP가 차단될 때 실행되는 명령입니다. 일반적으로 방화벽 규칙(
iptables또는ufw등)을 수정하여 출발지 IP를 차단합니다.
Fail2Ban 설치
Fail2Ban은 대부분의 Linux 배포판에서 기본 저장소로 제공됩니다. Debian 기반 시스템(예: Ubuntu)에 설치해 보겠습니다.
먼저 패키지 목록을 업데이트한 다음 fail2ban 패키지를 설치합니다.
sudo apt update
sudo apt install fail2ban기본 구성: jail.local
Fail2Ban의 기본 구성 파일은 /etc/fail2ban/jail.conf입니다. 하지만 업데이트 중에 덮어쓰일 수 있으므로 이 파일을 직접 편집해서는 안 됩니다.
대신 /etc/fail2ban/jail.local이라는 이름으로 복사본을 만들고 그곳에서 변경하십시오. 이 파일이 jail.conf의 설정을 재정의합니다.
jail.local에서 구성할 수 있는 주요 전역 설정은 다음과 같습니다.
bantime: IP가 차단되는 시간입니다(예: 10분을 의미하는10m).findtime: 실패한 시도를 집계하는 시간 범위입니다(예:10m).maxretry: IP를 차단하기 전 허용되는 실패 시도 횟수입니다(예:5).
SSH 보호 활성화
Fail2Ban의 가장 일반적인 용도 중 하나는 SSH를 무차별 대입 공격으로부터 보호하는 것입니다. /etc/fail2ban/jail.local 파일에는 '감옥'이라고 하는 여러 서비스의 섹션이 있습니다.
SSH 감옥을 활성화하려면 일반적으로 [sshd] 섹션 아래에서 enabled = true로 설정하기만 하면 됩니다. bantime, findtime, maxretry 값도 사용자 지정할 수 있습니다.
편집한 후에는 변경 사항을 적용하기 위해 Fail2Ban을 다시 시작하십시오.
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
sudo systemctl restart fail2banFail2Ban 모니터링
Fail2Ban을 구성하고 시작한 후에는 상태를 확인하고 IP를 실제로 차단하고 있는지 확인하고 싶을 것입니다. 이를 위해 fail2ban-client 명령을 사용할 수 있습니다.
Fail2Ban의 전체 상태를 확인하려면 다음을 실행하십시오.
sudo systemctl status fail2ban빠른 확인: Fail2Ban 구성
SSH 서비스를 보호하도록 Fail2Ban을 구성했습니다. maxretry = 3과 bantime = 1h로 설정했습니다.
공격자가 SSH를 통해 로그인을 시도합니다.
- 10:00:00 로그인 실패
- 10:00:30 로그인 실패
- 10:01:00 로그인 실패
- 10:01:30 로그인 실패
findtime이 10분으로 설정되어 있다고 할 때 공격자의 IP 주소에는 어떤 일이 발생합니까?
정리: IDS, IPS, Fail2Ban
잘하셨습니다! 서버에 능동적 방어 계층을 추가하는 방법을 배웠습니다.
- IDS(침입 탐지 시스템)는 의심스러운 활동을 탐지하고 알립니다.
- IPS(침입 방지 시스템)은 위협을 탐지하고 알리며 능동적으로 차단합니다.
- Fail2Ban은 로그에서 악의적인 패턴을 검색하고 방화벽 규칙을 업데이트하여 문제를 일으킨 IP 주소를 차단하는 호스트 기반 IPS입니다.
- Fail2Ban을 설치하고,
jail.local에서 전역 설정을 구성하고, 특정 감옥(예: SSH)을 활성화하고, 상태를 모니터링하는 방법을 배웠습니다.
Fail2Ban을 구현하면 무차별 대입 공격과 기타 자동화된 위협에 대한 서버의 복원력이 크게 향상됩니다. 이러한 기술을 계속 연습하여 정말 견고하고 안전한 시스템을 구축하십시오!
AI 튜터와 함께 Linux Server Deployment & SSH Mastery을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 12
- 레슨
- 48
자주 묻는 질문
“침입 탐지 및 방지” 강의는 무료인가요?
네 — “침입 탐지 및 방지” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Linux Server Deployment & SSH Mastery 강의 전체를 잠금 해제할 수 있습니다. Linux Server Deployment & SSH Mastery 강의에는 총 4개의 강의가 포함되어 있습니다.
“침입 탐지 및 방지”에서 뭘 배우나요?
Fail2Ban과 같은 침입 탐지 시스템(IDS)을 설정하고 구성하며, 침입 방지 시스템(IPS)의 원리를 이해하여 서버를 능동적으로 방어합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Linux Server Deployment & SSH Mastery은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“침입 탐지 및 방지” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Linux Server Deployment & SSH Mastery 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.