rsyslog를 활용한 로그 관리 시스템 구축 및 분석
프로젝트 발표날짜 : 2025. 09. 05
KH IEI PROJECT
(정보시스템구축)정보시스템 구축·운영 기반 정보보안 전문가 양성과정(2) 종일
| 팀장/팀원 | 임**(팀장) : 네트워크 및 시스템 구축 담당 주요 역할: 가상 네트워크 환경을 구축하고, 서버들을 네트워크에 연결하며, 프로젝트 전반의 문서를 작성한다. 상세 업무: 1. VMware 환경 구축: VMware Workstation을 이용하여 7대의 가상 PC를 생성한다. 각 PC에 운영체제(Rocky Linux 8, Windows 10)를 설치하고, IP 주소를 설정하여 외부망, 내부망, DMZ로 네트워크 대역을 분리한다. 라우터: DMZ, VMnet2 - 192.168.20.1, 내부망, VMnet3 - 192.168.30.1, 외부망, Bridged - 192.168.10.169 내부망 PC: 로그 서버 - 192.168.30.2, DB 서버 - 192.168.30.3, NFS 서버 - 192.168.30.4, 직원 PC - 192.168.30.5 DMZ PC: 웹서버 - 192.168.20.2, DNS 서버 - 192.168.20.3 2. 라우팅 및 통신 설정: 라우터 PC에 NIC 2개를 설정하고, 두 네트워크 대역 간의 통신이 가능하도록 정적 라우팅 규칙을 설정한다. iptables를 사용해 외부망, DMZ, 내부망 간 트래픽을 제어하고, 외부에서 내부망으로의 직접적인 접근을 차단한다. ping명령어를 사용하여 모든 PC 간의 네트워크 통신을 점검하고 확인한다. 3. NFS/Samba 구축: 내부망에 NFS 서버를 구축한다. NFS 서버의 exports 파일에 공유할 디렉터리를 설정하고 접근 권한을 명시해서 웹서버의 백업 시스템을 구축한다. 또한, Samba 서비스를 설치하고 smb.conf 파일을 수정하여 Windows 기반 직원 PC와의 웹 서버간 파일 공유 시스템을 구축하고 사용자 계정과 접근 권한을 설정한다. 4. 문서화: 프로젝트 기획부터 구현, 결과까지 모든 과정을 단계별로 상세하게 기록한다. 네트워크 구성도, 설정 파일 내용, 테스트 결과 등을 문서에 포함하여 체계적으로 관리한다. |
|---|---|
| 김** : 웹 서비스 및 데이터베이스 관리 담당 주요 역할: 프로젝트의 핵심 데이터베이스를 관리하고 웹 서버와 연동한다. 상세 업무 1. 내부망 DB 서버 구축 및 연동 테스트 내부망에 DB 서버를 구축한다. 외부 접근 차단, 웹 서버 IP만 접속을 허용한다. apache 웹서버에서 접근할 데이터베이스와 사용자를 설정하고, 로그인 정보를 저장할 테이블을 생성한다. 방금 로그인한 기록(사용자 이름, 로그인 시간, 접속 서버의 IP 주소)이 성공적으로 저장되어 있는지 확인한다. 2. Apache 웹 서버 구축 및 기능 테스트 Apache 설치 및 구동을 확인한다 DB서버의 데이터베이스와 연동하여 웹 페이지를 서비스하고 로그인 처리를 한다. 서버 보안 설정 및 웹 페이지 기능을 검증한다. 3. 웹사이트 제작 로그인 처리를 담당하고 데이터베이스에 기록할 PHP 스크립트를 생성한다. 사용자 로그인을 위한 HTML 폼을 생성한다. 사이트에 입력된 값를 데이터 베이스 서버와 연동시킨다. | |
| 이** : 주요 역할: DNS server를 구축하고 각종 서버의 로그를 관리 및 백업한다. 상세 업무: 1. DNS server를 설치 및 구성하여 누구나 도메인(dmjcorp.dmj)으로 Apache web server(192.168.20.2)에 접근 가능하도록 한다. /etc/named.conf 파일을 수정한다. /var/named/dmjcorp.dmj.zone 파일을 생성하여 Authoritative server를 구성한다. 도메인으로 Apache web server에 정상적으로 접근할 수 있는지 확인한다. 2. rsyslog를 사용하여 로그를 관리 및 백업한다. rsyslog server의 /etc/rsyslog.conf 파일을 수정하여 각종 로그를 전달받을 tcp port를 설정한다. rsyslog client들의 /ect/rsyslog.conf 파일을 수정하여 로그를 전송할 호스트의 아이피(rsyslog server), 전송방식과 포트번호(514)를 설정한다. Apache web server의 경우 시스템 로그를 제외한 web server 로그만을 수집하여 rsyslog server에 전달하도록 설정한다. 로그 분석 툴 ‘goaccess’를 이용하여 수집한 web server 로그를 기반으로 자동으로 리포트를 작성할 수 있도록 셸 스크립트를 작성한다. 반복적인 404 에러 발생 또는 반복적인 로그인 실패 발생 시 알림을 띄울 수 있도록 셸 스크립트를 작성한다. 셸 스크립트들이 주기적으로 실행될 수 있도록 crontab으로 스케줄을 등록한다. DB server의 경우 느린 쿼리 로그를 활성화한 후 느린 쿼리 로그를 rsyslog server에 전달하도록 설정한다. DB 로그 분석 툴 ‘pt-query-digest’를 이용하여 성능에 영향을 미치는 쿼리 또는 자주 사용되는 쿼리를 리포트할 수 있도록 한다. ‘pt-query-digest’가 주기적으로 리포트를 생성할 수 있도록 crontab으로 스케줄을 등록한다. | |
| 개요 | 이 프로젝트는 통합 로그 관리 시스템 구축 및 관리를 목표로 한다. 단순히 시스템을 구축하는 것을 넘어, 실제 기업 환경에서 여러 서버로부터 발생하는 방대한 양의 로그를 rsyslog를 이용해 한곳에 모으고, 이를 체계적으로 분석하여 가치 있는 정보를 추출하는 것에 중점을 둔다. 이를 통해 로그의 중요성을 인지하고, 실무에서 필수적인 로그 수집 및 관리 역량을 기를 수 있다. 분석 툴 없이 로그 파일을 직접 확인하고 필터링하는 과정을 통해 시스템 상태와 잠재적 위협을 파악하는 데 집중한다. VMware를 이용해 외부망, DMZ, 내부망으로 나뉜 가상의 회사 네트워크를 구성한다. 웹서버, DNS서버, NFS서버 등 각 역할을 담당하는 서버에서 발생하는 로그를 전용 로그 서버로 실시간 전송한다. 이 과정을 통해 시스템의 상태, 보안 위협, 그리고 침해 사고의 흔적을 파악하는 일련의 과정을 직접 경험하게 된다. |
| 구현기능 | 네트워크 환경 구축: VMware Workstation을 이용해 7대의 가상 PC를 생성하고 네트워크를 설정한다. • 로그 서버 위치: 로그 서버는 보안을 위해 내부망(192.168.30.0/24)에 위치한다. 네트워크 구성: • 외부망(192.168.10.0/24): Host PC와 연결 • 내부망(192.168.30.0/24): 라우터, NFS 서버, DB 서버, 로그 서버, 직원 PC • DMZ(192.168.20.0/24): 라우터, 웹 서버, DNS 서버 로그 중앙 집중화: rsyslog를 사용하여 웹 서버, NFS 서버 등에서 발생하는 로그를 로그 서버로 실시간 전송한다. 로그 필터링 및 관리: 로그 서버에 수집된 로그를 용도에 맞게 분류하고 저장하는 규칙을 설정한다. 로그 분석 : 수집된 로그를 분석하고 GoAccess와 같은 도구를 사용하여 보고서를 작성한다. 이상 징후 관리: 웹 디렉토리 스캐닝에 따른 다수의 404 에러 발생 등 보안 위협이 될 수 있는 로그 패턴을 로그 파일에서 직접 식별하는 방법을 익힌다. 알림 시스템 구현: 셸 스크립트를 사용하여 특정 이벤트(예: 404 에러의 반복적인 발생)가 발생했을 때 이를 감지하여 관리자에게 알려주는 시스템을 구축한다.네트워크 보안 강화: iptables를 사용해 라우터에서 외부망, DMZ, 내부망 간 트래픽을 제어하고, 외부에서의 불필요한 접근을 차단한다. MariaDB 포트(3306), HTTP(80), HTTPS(443) 포트 등 필요한 서비스 포트만 외부로 개방한다 시스템 보안 강화: 프로세스나 사용자가 자신의 권한을 벗어나 시스템 자원에 접근하는것을 제어한다. 웹서버와 브라우저간의 모든 통신을 SSL/TLS프로토콜을 사용하여 함호화한다 웹서비스 보안 강화: 사용자 비밀번호를 데이터베이스에 해싱하여 저장한다. 관리자 권한을 분리하여 일반사용자가 데이터베이스에 접근하지 못하도록 제한한다. 데이터베이스 보안 강화: 입력 유효성을 검사하고 SQL injection을 방지한다. 웹페이지에 사용자가 입력값을 출력할 떄 함수를 사용하여 XSS공격을 방지한다. 민감한 작업을 처리하는 POST요청에 일회용 CSRF토큰을 포함하고,서버에서 토큰을 검증한다. 세션 보안 강화: 쿠키 전달, 접근제어, 연결제한을 두어 PHP 세션탈취 및 세션고정 공격을 방지하여 사용자계정의 무단사용을 막는다. |
| 설계의 주안점 | 네트워크 분리: 보안을 위해 웹 서비스가 위치한 DMZ와 내부 PC 및 로그 서버가 위치한 내부망을 물리적으로 분리한다. 기능별 서버 분리: 웹 서버, DB서버, DNS 서버, NFS 서버, 로그 서버를 각각 별도의 PC에 두어 서비스 간의 의존성을 명확하게 이해할 수 있도록 한다. 점진적 접근: 로그 중앙 집중화와 같은 기본적인 기능을 먼저 완성한 후, 로그 분석 및 알림 시스템과 같은 고급 기능을 순차적으로 추가한다. 효율적인 로그 관리: rsyslog와 GoAccess와 같은 도구를 사용하여 단기간에 가시적인 성과를 보여줄 수 있도록 설계한다. 보안 강화: 웹서버 및 DB서버 등 공격에 취약한 부분을 보안한다. |
| 사용기술 및 개발환경 |
운영체제: - 서버: Rocky Linux 8 - 클라이언트: Windows 10 가상화 도구: VMware Workstation Pro 17 주요 기술 및 역할 - mariadb: 데이터 저장 - rsyslog: 로그 수집기 - Apache: 로그 생성기 - GoAccess : 로그 분석 및 보고서 생성 - 셸 스크립트: 자동화, 알림 구현, 로그 필터링 및 분석 - iptables: 라우터의 방화벽 역할 |
|
|




③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보보호법 시행규칙 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.
④ 개인정보 열람 및 처리정지 요구는 개인정보 보호법 제35조 제4항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.
⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.
⑥ KH정보교육원은 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.