1. 다음과 같은 시스템 환경에 대한 DNS 서버 설정 방법
1. idm 서버 (DNS 서버 설정)
1) 패키지 설치
BIND(Berkeley Internet Name Domain) : 리눅스/유닉스 환경에서 가장 널리 사용되는 오픈 소스 DNS 서버 소프트웨어로, 도메인 이름을 IP 주소로 변환하는 권위 있는(Authoritative) 네임 서버 및 캐싱 리졸버 역할을 수행한다, 주 설정 파일(/etc/bind/named.conf)을 통해 존(Zone) 파일을 구성하여 정방향/역방향 조회를 설정할 수 있다.
존(Zone) 파일 : DNS 영역을 설명하는 텍스트 파일. DNS 서버에 존재하며 설정 파일 및 정보를 제공하는 데이터베이스와 같은 역할을 한다.
영역(Zone) = 도메인 관리 영역 = DNS 서버 하나가 책임이나 권한을 가지는 영역
2) 설정 파일 수정
named.conf 파일 : DNS 서버 전체 설정을 정의하는 “메인 설정 파일”이다. 서버의 정책 + 구조 정의
3) 존(zone) 설정 추가
4) 존 파일 생성
Master & Slave : 주, 보조 관계이며 동기화를 통해 DNS 서버를 이중화함 (Slave서버는 여러개 사용 가능)
Master : 현재 운용 중인 서버
Slave : 백업용 서버
5) 서비스 실행
6) 방화벽 열기
2. 클라이언트 서버 설정 (web, mysql, bastion)
resolv.conf 파일 : 사용하고자 하는 DNS 서버를 지정하는 파일
3. 테스트
2. 다음과 같은 구성 환경에 대한 방화벽(firewall-cmd) 설정 방법
1. bastion 서버 (192.168.200.13, 10.10.10.13)
외부(192.168.200.x)에서 내부망으로 접속하기 위한 통로.
-> SSH만 허용
2. web 서버 (192.168.200.11, 10.10.10.11)
-> 웹 서비스(HTTP, HTTPS), SSH만 허용
3. mysql 서버 (10.10.10.12)
-> DB, SSH만 허용
3306 : MySQL 및 MariaDB 데이터베이스의 기본 포트 번호
4. idm 서버 (10.10.10.10)
-> DNS만 허용
5. 설정 마친 후 확인
3. 외부망(인터넷망), 내부망(사설망)으로 구성 시 방화벽 설정 방법
다음 내용을 참조하여 과제 제출
구조 (망 분리)
DMZ : 외부 네트워크와 내부 네트워크 사이에서 외부 네트워크 서비스를 제공하면서 내부 네트워크를 보호하는 서브넷, 외부에 오픈된 서버영역
1. bastion 서버 (DMZ)
2. web 서버 (DMZ)
3. idm 서버 (내부망)
4. mysql 서버 (내부망)
4. Bastion(Jump Server) 서버에 대한 개념 정리
외부 네트워크에서 내부 네트워크의 자원에 접근할 때 반드시 거쳐야 하는 중간 경유 서버. 내부 서버들을 외부에 직접 노출하지 않고, Bastion 서버 하나만 외부에 공개함으로써 공격 표면을 최소화하는 것이 핵심 목적이다. 관리자는 외부에서 Bastion 서버에 먼저 SSH 등으로 접속한 뒤, 거기서 다시 내부 서버로 접근하는 방식으로 운영한다. 네트워크 구조상 보통 DMZ 또는 퍼블릭 서브넷에 위치하며, 내부 서버들은 프라이빗 서브넷에 격리된 상태로 존재한다.
특징 :
- 최소 서비스만 실행 (SSH 등)
- 강력한 인증 (키 기반 로그인, MFA 등)
- 모든 접속 로그 기록
- 주기적 패치 및 보안 강화
- 내부 서버 접근 권한 제어
장점 :
모든 접근이 Bastion을 통해 이루어지기 때문에 접속 로그가 한 곳에 집중되어 감사 및 모니터링이 용이하다. IP 화이트리스트, MFA(다중 인증), 세션 기록 등의 보안 정책도 Bastion에만 집중적으로 적용하면 되므로 관리 효율이 높다.
단점 :
Bastion이 유일한 진입점 역할을 하기 때문에, Bastion 서버 자체가 침해될 경우 내부 전체가 위험해질 수 있어 Bastion 서버의 보안 강화가 매우 중요하다.
5. SELinux 개념 및 명령어 모음 정리
리눅스 커널에 내장된 강제 접근 제어(MAC) 보안 모듈로, 프로세스와 파일 등 모든 자원에 보안 레이블을 부여해 접근을 통제하는 시스템. 기본적으로 "관리자가 허용한 것 외에는 모두 금지"하는 최소 권한 원칙을 따르며, 시스템 관리자(root)의 권한이 탈취되더라도 해커가 시스템 전체를 장악하지 못하도록 방어하는 최종 보루 역할을 한다.
MAC(Mandatory Access Control, 강제 접근 제어) : 시스템 정책이 접근을 강제 통제 → 루트 권한이어도 정책에 위반되면 차단
DAC(Discretionary Access Control, 임의 접근 제어) : 일반 Linux 권한, 파일 소유자가 권한을 설정
동작 모드
Enforcing : 정책 위반 시 실제로 차단 + 로그 기록
Permissive : 차단하지 않고 로그만 기록 (테스트용)
Disabled : SELinux 완전 비활성화
명령어 모음
1. 모드 확인 / 변경
|
명령어
|
설명
|
|
getenforce
|
현재 모드 확인
|
|
setenforce 1
|
Enforcing 모드로 변경 (임시)
|
|
setenforce 0
|
Permissive 모드로 변경 (임시)
|
|
sestatus
|
SELinux 상태 상세 확인
|
영구 변경은 /etc/selinux/config 에서 SELINUX=enforcing 값 수정 후 재부팅
2. Context(레이블) 확인 / 변경
|
명령어
|
설명
|
|
ls -Z
|
파일의 SELinux Context 확인
|
|
ps -Z
|
프로세스의 SELinux Context 확인
|
|
chcon -t <타입> <파일>
|
파일 Context 임시 변경
|
|
restorecon <파일>
|
파일 Context를 기본값으로 복원
|
3. 로그 / 문제 분석
|
명령어
|
설명
|
|
ausearch -m avc
|
SELinux 차단 로그(AVC) 검색
|
|
audit2why < /var/log/audit/audit.log
|
차단 이유 분석
|
|
audit2allow -a <파일>
|
차단 로그 기반 허용 정책 제안
|
4. Port 관련
|
명령어
|
설명
|
|
semanage port -l
|
SELinux에 등록된 포트 목록 확인
|
|
semanage port -a -t <타입> -p tcp <포트>
|
포트 허용 등록
|
|
semanage port -d -t <타입> -p tcp <포트>
|
포트 허용 삭제
|
'[Microsoft] Cyber Security School 7기' 카테고리의 다른 글
| Azure 클라우드 + cloud-init 과제 (0) | 2026.05.17 |
|---|---|
| 클라우드 기반 윈도우/리눅스 서버 과제-2...IDM(FreeIPA), Active Directory (1) | 2026.04.20 |
| 클라우드 기초 - 계정 생성 및 그룹 추가 실습 (0) | 2026.04.14 |
| 클라우드 기초 과제-1 (윈도우즈 네트워크, 방화벽 및 사용자/그룹 계정) (0) | 2026.04.14 |
| 클라우드 기초 - SSH, SELinux (0) | 2026.04.14 |
