비카인드 반미, 연휴에도 불구하고 아침부터 이용할 수 있었다. 아침부터 맥주와 반미를 즐길 수 있음
호스트 설정과 호스트 설정 프로토콜
호스트 설정의 개념
다른 망과 통신하기 위해 필요한 것
컴퓨터의 IP 주소
컴퓨터의 해당 서브넷 마스크
라우터의 IP 주소
네임 서버의 IP 주소
호스트 설정 프로토콜 종류
RARP
사용되지 않는 이유
RARP는 데이터링크 계층의 브로드캐스트 서비스로 사용하는데, 이때 ARP 서버가 각 망에 존재해야 함
RARP는 IP 주소만 제공
BOOTP(Bootstrap)
RARP 약점을 극복하기 위해 개발
클라이언트/서버 프로그램 → BOOTP 서버가 인터넷 어디에나 존재 가능
4가지 항목 제공을 위해 프로토콜에 관한 모든 제약 제거
정적인 설정 프로토콜
DHCP
처음으로 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지 정보를 제공하기 위해 설계된 클라이언트/서버 프로토콜
동적
DHCP(Dynamic Host Configuration Protocol)
개요
UDP 기반
서버가 네트워크 클라이언트에게 IP 주소를 실시간으로 부여할 수 있도록 함
사용 가능한 IP 주소를 자동으로 확인하고 클라이언트에게 IP 주소 부여
서버-클라이언트 패러다임을 사용하는 응용 계층 프로그램
TCP/IP의 네트워크 계층 보조
장점
네트워크 설계 변경이 자유로움
DHCP 서버에서만 네트워크 정보를 변경하면 되므로 구성 변경 용이
실제로 호스트를 사용하는 경우에만 IP가 할당되기 때문에 IP 절약 가능
사용자가 TCP/IP 설정을 따로 하지 않아도 되므로 관리 용이
단점
DHCP 클라이언트는 부팅 시 브로드캐스트 방식으로 트래픽을 전송하므로 네트워크의 성능 저하를 발생시킴
호스트 전원만 켜 있어도 IP가 할당됨
호스트 전원을 꺼도 임대 기간까지 해당 IP는 다른 단말에 할당되지 못하여 IP 주소 낭비 발생 가능성
호스트 수가 많아지면 서버의 과부하 발생
DHCP 동작 절차
새롭게 참가하는 호스트는 트랜잭션-ID 필드가 임의의 숫자로 지정된 DHCPISCOVER 메시지 생성. 사용자 데이터그램은 근원지 주소가 0.0.0.0, 목적지 주소가 255.255.255.255인 IP 데이터그램으로 캡슐화됨
DHCP 서버는 참가하는 호스트를 위해 your-IP-address 필드를 제안된 IP 주소로 지정하고, server-IP-address 필드는 서버의 IP 주소를 지정하는 DHCPOFFER 메시지로 응답. 호스트가 해당 IP를 사용할 수 있는 시간 명시
호스트는 여러 제안 중 가장 좋은 것 선택. 해당 제안을 보낸 서버에 DHCPREQUEST 메시지 전송
선택된 서버는 해당 IP 주소가 유효한 경우 DHCPACK 메시지로 응답. 아니라면 서버는 DHCPNACK 메시지를 전송하여 이 과정 반복
DHCP Starvation 공격
서버의 할당 가능한 IP를 모두 소진하게 만들어 IP 할당이 불가능하게 하는 공격. discover 메시지를 여러 MAC 주소로 대량으로 전송하고, request 메시지까지 보낸 후 실제로 할당하지 않음
DNS(Domain Name System)
필요성
네임 공간
도메인
도메인
도메인 네임 공간의 서브 트리
다른 도메인으로 나뉠 수 있음
도메인 네임 — 서브 트리의 최상위 노드에 위치
네임 서버의 계층
영역(zone)
서버가 책임을 지거나 권한을 갖는 곳
전체 트리의 연속적인 일부 부분
서버가 도메인에 대한 책임을 수락하고 이를 더 작은 도메인으로 나누지 않는다면 도메인과 영역은 같은 것을 의미함
영역 파일에 해당 도메인 내의 모든 노드 정보 보관
서버가 도메인을 서브 도메인으로 나누고 일부를 다른 서버에게 권한 이양하게 되면 도메인과 영역은 서로 다른 의미가 됨
zone 파일
개별 도메인에 대한 DNS 정보가 설정되어 있는 파일
/etc/named.conf 파일의 directory 지시자에 설정된 디렉터리에 존재해야 함
하나의 도메인에 대해 하나의 zone 파일을 만드는 것이 일반적
DNS의 Record Type
A(Address) — 32비트 IP 주소를 포함. 이 유형은 네임 변환을 위한 노드의 주소가 저장되는 곳이기 때문에 DNS의 본질이라고 할 수 있음. AAAA는 IPv6의 주소 유형
NS(Name Server) — DNS 존을 위한 DNS 네임 서버의 네임을 나타냄. 각 존은 1차 네임 서버를 가리키는 NS 레코드를 하나 이상 가지고 있어야 하고, 네임은 유효한 주소 레코드(A)를 가지고 있어야 함
CNAME(Canonical Name, 정규 네임) — 노드의 실제 네임을 가리키도록 정의한 별칭을 위해 사용. 기관의 필요에 따라 내부 네임은 수정하면서도 사용자는 변하지 않는 별칭을 사용하게 함으로써, 사용자에게 DNS 내부 변경을 숨기는 데 이용
SOA(Start of Authority, 권한 개시 정보) — DNS 존의 시작을 표시하는 데 사용. DNS 존에 대한 중요한 정보 제공. 모든 존은 하나의 SOA를 가져야 함. 1차(마스터) 권한 서버의 네임 뿐만 아니라 관리자의 이메일 주소, 슬레이브(2차) 네임 서버를 갱신하는 대기 시간 등과 같은 기술적 세부 사항까지 포함
PTR(Pointer) — 네임 공간의 다른 위치를 가리키는 포인터 제공. IN-ADDR, ARPA 도메인을 통한 역방향 변환에 이용
MX(Mail Exchange) — 도메인으로 오는 이메일을 처리하는 위치 명시
TXT(Text) — 도메인과 관련하여 저장해야 할 임의의 문자를 나타냄. SPF(발송자 메일 서버 인증) 레코드 정보 존재. 요청 대비 응답이 크기 때문에 DNS 증복 DRDoS 공격에 악용
ANY — 도메인에 대한 모든 레코드 질의 시에 주로 이용. 요청 대비 응답이 크기 때문에 DNS 증복 DRDoS 공격에 악용
AXFR(Authoritative Zone Transfer, 존 전송) — 존 버전에 상관 없이 무조건 존 전송 요청(Full Zone Transfer)
dig @{마스터 네임 서버 주소} {zone name} axfr
IXFR(Incremental Zone Transfer, 존 전송) — 존 버전을 비교하여 상위 버전일 경우 존 전송 요청
루트 서버
전체 트리를 영역으로 가지는 서버
보통 도메인에 대한 어떤 정보도 갖지 않으며 자신의 권한을 다른 서버에게 이양하고 자신은 이러한 서버들에 대한 참조만을 갖게 됨
현재 13개의 루트 서버 존재. 각각 전체 네임 공간을 다루며 전세계에 분산
마스터/슬레이브 네임 서버와 존 전송(Zone Transfer)
마스터 — 존 데이터 관리 측면에서 원본 존 데이터 관리
슬레이브 — 마스터를 동기화해서 사용
존 전송
마스터에 있는 원본 존 데이터를 슬레이브가 동기화하는 작업
TCP(53) 이용
마스터와 슬레이브는 서로 동일한 기능을 수행하며 부하 분산을 통해 안전성을 높임
DNS 동작 방식
해석
해석기(resolver)
매핑 요구를 보내기 위해 가장 가까운 DNS 서버에 접속
매핑 결과를 수신한 후 응답을 해석하고, 결과를 프로세스에 전달
재귀적 해석(recursive) — DFS
반복적 해석(iterative) — BFS
DNS 변환 과정
1순위: 캐싱
캐시 메모리에 정보 저장
오랫동안 캐싱 정보를 갖고 있다면 잘못된 매핑 정보를 전달할 수 있음
네거티브 캐싱 — 잘못된 도메인에 관한 요청 캐싱
2순위: /etc/hosts
파밍 등의 공격을 통해 파밍 사이트로 접속하도록 hosts 파일 변조 가능
hosts.ics
윈도우엥서 인터넷 연결 공유(ICS) 기능 사용 시, 클라이언트 IP를 강제로 지정하는 기능을 가진 설정 파일
hosts 파일보다 우선순위 높음
악성코드에 의해 조작된 hosts.ics 주의
3순위: DNS 서버
Recursive DNS 서버 — 동일한 작업을 조건이 만족될 때까지 반복적 처리
Authoritative DNS 서버
관리하는 도메인을 갖고 있는 네임 서버
특정 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 질의에 응답하는 네임 서버
DNS 변환 과정의 예
DNS Lookup 유틸리티
개요
forward DNS lookup — 도메인명을 통해 IP 주소를 알아내는 질의
reverse DNS lookup
nslookup 유틸리티
대화형 또는 비대화형(단순함) 모드
nslookup <호스트 | IP> [<서버>]
서버 — 생략 시 명령이 실행된 호스트의 기본 네임 서버 사용
dig(Domain Information Groper) 유틸리티
가장 단순한 형태로 실행됐을 경우에도 host 명령보다 풍부한 정보 제공
dig [@<서버>] <호스트> [<유형>] [질의 옵션]
질의 유형 — 생략 시 기본적으로 A 유형 질의(도메인의 IP 주소 질의) 수행
host 유틸리티
비대화형 nslookup과 동일한 방법
whois
whois 서버를 통해 해당 도메인의 등록 정보, 네트워크 할당 정보 등을 조회하기 위한 명령어
해당 도메인명이 다른 사람에 의해 사용 중인지 여부 체크
DNS 보안
DNS 보안 위협개요
DNS 스푸핑
개요 — 희생자에게 전달되는 DNS 응답을 조작하거나 DNS 서버의 캐시 정보를 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격
스니핑 기반 DNS 스푸핑
개요
DNS 질의를 스푸핑하여 정상 응답보다 빠르게 희생자에게 조작된 IP 정보 전송
동일 네트워크 내에서 발생
대응책
스니핑 탐지
hosts 파일 관리
DNS 캐시 포이즈닝
개요
DNS 서버의 캐시 정보 조작
대상 DNS 서버에 조작할 도메인 질의 다수 전송
DNS 서버가 반복적 질의를 수행하는 동안 다수의 조작된 DNS 응답 전송
조작된 응답 중 정상 응답보다 먼저 일치하는 응답이 있으면 조작된 정보가 캐싱됨
대응책
네임 서버의 소프트웨어를 최신 버전 상태로 유지
도메인 관리용 DNS 서버는 재귀적 질의를 허용하지 않도록 설정
제한된 사용자가 사용하는 재귀적 DNS 서버라면 해당 사용자로 제한 허용
DNSSEC(DNS Security Extensions)
메시지 송신자 인증과 전자서명을 사용해 메시지 완전 무결성 제공
파밍 예방
기밀성, DoS 방지책 없음 → 캐싱 서비스로 어느 정도까지는 상위 계층 서버 보호
절차
서버 A에서 DNSSEC을 사용한다면, A는 응답을 수용하기 전에 응답이 허가된 DNS 서버로부터 왔다는 것을 보장하기 위해 디지털 서명 확인
공격자가 DNS 서버에 메시지를 보내더라도 폐기
DNS 서버들이 허가된 메시지를 보내고, 캐시 테이블 포이즈닝 무력화 가능
DNS 서버 보안 서정
네임 서버 주요 구성과 파일 디렉터리들
BIND — 가장 많이 사용하는 네임 서버 솔루션
/etc/named.conf — BIND의 부트 파일. 각종 옵션과 각 도메인에 대한 zone 파일 정보를 가짐
/usr/sbin/named — BIND 데몬 파일
/usr/sbin/named-checkconf — named.conf 파일을 검사하는 유틸리티
/etc/host.conf — resolver의 옵션을 갖고 있는 파일. host 파일을 먼저 검색할 것인지 DNS 쿼리를 먼저 수행할 것인지 순서를 정하는 order 옵션이 설정되어 있음
/etc/resolve.conf — 시스템에서 사용할 네임 서버의 주소를 가짐
도메인 쿼리 순서 설정 파일(/etc/host.conf)
특정 도메인에 대한 IP를 찾고자 할 때 어디에서 먼저 찾을 것인지 결정
order hosts, bind
사용할 네임 서버 지정 파일(/etc/resolv.conf)
name 설정 파일(/etc/named.conf)
named 데몬 설정 파일
named의 존 환경 설정 파일
DNS 서버의 네임 서비스를 위한 여러 옵션 설정
한국인터넷진흥원(KISA) — 국가 도메인 ccTLD인 kr 관리
한국정보보호산업협회(KISIA) — 정보보호산업의 건전한 발전 및 국가 산업 전반의 정보보호 수준 향상을 위해 설립된 법정 법인
인터넷침해사고대응지원센터(KCERT)
KISA 내 침해사고 대응팀
국내에서 운영되고 있는 전산망의 침해사고 대응 활동 지원
전산망 운용기관 등에 대해 통일된 협조 체제 구축
국제적 침해사고 대응을 위한 단일 창구 제공
한국전자통신연구원(ETRI) — 정보, 통신, 전자, 방송 및 성과 관련 복합 기술 분양의 산업 원천 기술 개발 및 성과 확산을 통해 국가경제,사회 발전에 기여