호스트 설정
- TCP / IP에 접속하려는 각 컴퓨터는 자신의 IP주소를 알 필요가 있다.
- 컴퓨터가 일반적으로 알아야 하는 4가지 정보
1. 컴퓨터의 IP 주소
2. 컴퓨터의 해당 서브넷 마스크
3. 라우터의 IP 주소
4. 네임서버의 IP 주소
- 호스트 설정 프로토콜의 종류
1. RARP
- 컴퓨터의 물리주소로 IP주소로 매핑하기 위해 만들어짐(ARP = IP주소 → 물리주소)
- RARP가 오늘날 거의 사용되지 않는 이유
1. RARP는 데이터링크 계층에서 브로드 캐스트 서비스로 사용하는데 이는 ARP 서버가 각 마엥 존재해야함
2. 컴퓨터가 요구하는 4가지 정보 중 RARP는 컴퓨터의 IP주소만 제공함
2. BOOTP
- DHCP 사용 전 사용
- RARP의 약점 2가지를 극복하기 위해 만든 클라이언트 - 서버 프로그램
- 컴퓨터 일반적으로 요구하는 4가지 정보를 모두 제공하기 위해 RARP 프로토콜 관한 모든 제약을 제거함
- 정적 설정 프로토콜
DHCP
- 서버가 클라이언트에게 실시간으로 IP주소를 부여할 수 있게 만들었다.
- 사용가능한 IP주소를 자동으로 확인, 클라이언트에게 부여한다.
- 응용계층 프로그램으로, 실질적ㅇ로 TCP / IP N/W 계층을 보조함
- 처음으로 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지의 정보를 젝공하기 위해 만들어진 클라이언트 - 서버 프로그램
- BOOTP와 역방향 호환성을 가진다.
- 동적 설정 프로토콜
- UDP 기반 프로토콜
- DHCP 동작원리
1. 새로 참가하는 host는 자신의 IP주소와 서버 IP주소를 모르기에 출발지 IP=0.0.0.0
목적지 IP는 255.255.255.255(broadcast)로 한 DHCPDISCOVER msg생성
2. DHCP 서버는 호스트의 IP주소를 할당하여 호스트 IP주소와 서버IP주소가 포함된
DHCPOFFER msg 전송
3. Client는 여러개의 서버로부터 DHCPOFFER를 받게 되는데 클라이언트는 가장 좋은 서버의 DHCPOFFER를 택해 DHCPREQUEST msg 전달
4. 만약 DHCPREQUEST msg를 받은 서버의 IP주소가 유효하게 되면 DHCPACK
유효하지 않으면 DHCPNACK msg를 전송
- DHCP Starvation 공격
- 공격자가 DHCP 서버의 할당 가능한 IP를 모두 소진하게 하여 IP할당이 불가능하게 하는 공격
- 공격자는 DHCPDISCOVER msg를 서로다른 MAC주소로 DHCP에 보내고 서버로부터 OFFER가 오면 REQUEST까지만 하고 실제로 주소는 할당하지 않음
- DHCP의 장점과 단점
장점 |
단점 |
ㆍN/W 설계 변경이 자유로움 ㆍDHCP 서버에서만 N/W 정보 변경하면 되기 때문에 N/W 구성변경 용이 ㆍ실제로 호스트가 사용중일 때만 IP 할당하기 때문에 IP 절약 가능 ㆍ사용자가 TCP/IP를 따로 설정할 필요가 없음 |
ㆍDHCP 클라이언트는 부팅시 브로드캐스트 방식으로 트래픽 전송 → N/W 성능저하 유발 ㆍ호스트 전원이 켜 있는 것 만으로 IP 할당됨 ㆍ호스트 전원을 꺼도 임대기간까지 해당 IP는 다른 단말에 할당x → IP주소 낭비 가능 ㆍ호스트 수가 많아지면 서버의 과부하 발생 |
DNS(Domain Name System)
- TCP / IP 프로토콜은 개체를 구분하기 위해 IP 주소를 사용하지만 사용자는 주소보다는 이름을 사용하고자 하는 경향이 있어 주소와 IP주소를 서로 바꿔주는 시스템이 필요했다.
- 인터넷이 소규모일 경우 호스트 파일을 이용을 하면 되지만 대규모일 경우 host 파일을 사용하는것의 한계가 있어 DNS가 만들어짐
- 네임공간은 주소와 IP주소간 매핑을 담당함
- 전체 도메인 네임 계층을 하나의 서버에 저장 할 수 없기에 여러개의 서버에 나누게 되는데 이 때 서버가 책임을 지거나, 권한을 가질수 있는 곳을 Zone이라고 한다.
- 서버가 도메인에 대한 책임을 수락하고 이를 더 작은 도메인으로 나누지 않으면
도메인 = Zone이 된다.
- 서버가 도메인을 서버 도메인으로 나누고 일부를 다른 서버에 이양하게되면
도메인 != Zone이 된다.
도메인 파일정보
1. Zone 파일
- 개별 도메인에 대한 DNS 정보가 설정되어 있는 파일
- /etc/named.conf 파일에 존재
- 하나의 도메인에 대해서 하나의 zone 파일을 만들어 주는 것이 일반적임
- DNS Record의 Type
문자코드 |
유형 |
설명 |
A |
주소 |
ㆍ32비트 IP주소를 포함 ㆍDNS의 본질 ㆍAAAA = IPV6의 주소 유형 |
NS |
네임서버 |
ㆍDNS 존을 위한 권한 DNS 네임 서버의 네임을 나타냄 ㆍ각 존은 NS 레코드를 하나 이상 가지고 있어야함 ㆍ네임은 유요한 주소(A)레코드를 가져야함 |
CNAME |
정규네임 |
ㆍ별칭을 위해 사용 ㆍ사용자에게 DNS구조의 내부 변경을 숨기는데 주로 이용 |
SOA |
권한개시정보 |
ㆍDNS 존의 시작을 표시하는데 사용 ㆍDNS 존에 대한 중요 정보 제공 ㆍ모든 존은 정확히 하나의 SOA를 가져야함 ㆍ존의 중요정보, 기술적 세부사항을 포함함 |
PTR |
포인터 |
ㆍ네임 공간의 다른 위치를 가리키는 포인터 ㆍ역방향 변환에 주로 이용 |
MX |
메일교환 |
ㆍ도메인으로 오는 이메일을 처리하는 위치 명시 |
TXT |
문자열 |
ㆍ도메인과 관련해 저장해야 할 임의 문자 나타냄 ㆍSPF(발송자 메일서버 인증) 레코드 정보가 담겨있음 ㆍDNS DRDoS에 악용될 수 있음 |
ANY |
모든 |
ㆍ도메인에 대한 모든 레코드 질의시 주로 이용 ㆍDNS 증폭 DRDoS에 악용될 수 있음 |
AXFR |
존 전송 |
ㆍ존 버전에 상관없이 무조건 존 전송 |
IXFR |
존 전송 |
ㆍ존 버전과 비교해 상위 버전일 경우 존 전송 |
2. 루트서버
- 전체 트리 영역을 가지는 서버
- 루트 서버는 보통 도메인에 대한 어떤 정보도 가지지 않으며 자신의 권한을 다른 서버에게 이양하고 자신은 이러한 서버들에 대한 참조만 함
- 현재 전 세계에 13개의 루트서버가 존재함
3. 일차서버와 이차서버
- 일차서버 : 자신이 권한을 가지는 영역에 대한 파일을 갖는 서버, 파일에 대한 생성, 관리, 갱신에 대한 책임을 가지며 로컬 디스크 영역에 파일을 저장함
- 이차서버 : 영역파일을 생성하지 않으며 갱신하지도 않음, 갱신이 필요하면 일차서버에서 갱신을 한 후 이차서버로 갱신된 버전이 보내진다.
4. 존 전송
- 마스터에 있는 원본 존 DATA를 슬레이브가 동기화 하는 작업
- 만약 슬레이브 서버에서 존 전송이 일어나지 않으면 유효하지 않은 정보만 남게 되기 때문에 신뢰하기가 힘들어짐
- 신뢰성 있는 전송을 위해 TCP(53번 포트) 이용
DNS 해석기
- 네임서버로 질의를 수행하여 그 결과를 응용 프로그램에 반환해주는 S/W 모듈 / 라이브러리를 말한다.
- 해석기는 가장 가까운 DNS 서버에 매핑을 요구 만약 DNS서버에 정보가 존재할 경우 응답을 하지만 정보가 존재하지 않을 경우 다른서버를 참조하게 하거나, 다른서버가 이 정보를 제공하도록 요구한다.
- 해석기는 재귀적 해석과, 반복적 해석이 존재한다.
1. 재귀적 해석
- 클라이언트가 네임서버에 재귀적 요청을 보내면 서버는 정보가 있을 경우 그 정보로 응답하지만 만약 정보가 없을 경우 서버는 직접 클라이언트가 되어 다른 서버에게 새로운 요청을 보낸다.
2. 반복적 해석
- 클라이언트가 네임서버에 반복적 요청을 보내면 서버는 요청에 대한 정보가 있으면 답변 해주고 만약 요청에 대한 정보를 가지고 있지 않으면 그 정보에 좀 더 가까운 다른 서버의 네임으로 응답을 한다.
- 그렇게 되면 최초 클라이언트는 새로운 서버에 다시 새로운 요청을 보내는 방식을 적절한 서버를 받을 때 까지 반복적으로 수행한다.
DNS 변환과정
- 순서 : 캐싱 → /etc/hosts파일 → DNS 서버
1. 캐싱
- 서버는 자신의 도메인에 있지 않은 이름에 대한 문의를 받을 때마다 서버 IP주소에 대해 DB에 검색을 요구한다.
- 이 검색시간의 감소가 효율을 증가시키는데 이를 위해 DNS 캐싱이라는 절차를 이요한다.
- 서버가 다른 서버에게 매핑 정보를 요청하고 응답을 수신하면 이 정보를 클라이언트에게 전달하기 위해 캐시 메모리에 저장을 한다.
- 캐싱은 주소 해석 속도를 높일 수 있지만, 서버가 오랫동안 캐싱정보를 가지고 있으면, 클라이언트에게 잘못된 매핑 정보를 보낼 수 있는데 이것을 네거티브 캐싱이라고 한다.
- 캐싱된 DNS 정보 확인 : ipconfig/displaydns
- 캐싱된 DNS 정보 모두 삭제 : ipconfig/flushdns
2. /etc/hosts 파일
- 도메인 / 호스트명과 IP주소 매핑정보를 담고있는 파일
- 네임 서버에 질의되기 전 참조되는 파일
- 파밍 등 공격을 통해 변조되는 사례가 많기 때문에 관리상 주의가 필요하다.
3. DNS 서버
- Recursive DNS 서버
1. 동일한 작업을 조건이 만족할 때 까지 반복적으로 처리
- Authoritative DNS 서버
1. 권한이 있는 네임서버
2. 특정 도메인에 대한 정보를 관리하면서 해당 도메인에 대한 질의만 응답해주는 네임서버
DNS lookup 유틸리티
- DNS는 forward DNS lookup과 reverse DNS lookup으로 구분할 수 있다.
- forward DNS lookup은 도메인명을 통해 IP주소를 알아내는 질의이다
- reverse DNS lookup은 IP주소로 도메인명을 알아내는 질의이다.
- 대표명령어
1. nslookup
- 가장 널리 쓰이는 DNS 진단 유틸리티
- 대화형, 비대화형 모드에서 쓰일 수 있다.
- 비대화형 버전의 nslookup은 매우 단순하며 관리자가 특정 호스트 이름을 주소로 또는 그 반대로 빠르게 변환하기 위해 사용한다.
- nslookup 명령어 실행 방법
nslookup <호스트>[<서버>] <호스트> : 일반 변환의 경우 DNS 도메인 이름이며, 역변환의 경우 IP 주소이다. <서버> : 선택사항, 만약 생략시 실행된 호스트의 기본 네임 서버를 사용함 |
2. dig
- nslookup 대신 사용할 수 있는 명령어
- 가장 단순한 형태이며 host 명령어보다 훨씬 풍부한 정보를 제공
- 다양한 옵션과 기능을 갖춘 복잡한 틀이다.
- 기본 네임 서버 이외 네임서버를 사용하려는 경우 서버 이름 앞에 @를 입력한다.
- dig 명령어 실행 방법
dig[<@서버>]<호스트>[<유형>][질의옵션] @네임서버 : 사용할 네임서버 지정, 생략시 해당 시스템에 설정된 기본 네임서버 이용 질의유형 : 질의유형을 생략하면 A(주소)유형 질의 |
3. host
- nslookup를 비대화형에서 쓰는 것과 같은 단순 요청에 많이 쓰임
- 사용방법
host<호스트>[<서버>] |
4. whois
- 해당 도메인의 등록정보(소유정보), N/W 할당 정보등을 조회하기 위한 명령어
- whois를 사용하여 해당 도메인이 다른 사람에 의해 사용 중인지 여부 체크하는 용도로 많이 사용
DNS 스푸핑
- 희생자에게 전달되는 DNS응답을 조작하여 DNS 서버 캐시 정보를 조작해 희생자가 의도하지 않은 주소로 접속하게 만드는 공격
- 희생자는 정상적인 URL로 접속을 하지만 공격자가 만든 가짜 사이트로 접속 하게된다.
- DNS 스푸핑의 종류
1. 스니핑을 이용한 DNS
2. DNS 캐시 포이즈닝
스니핑을 이용한 DNS
- 희생자가 DNS 질의를 수행하면 공격자가 스니핑을 하고 있다가 정상 응답보다 빠르게 희생자에게 조작된 웹 사이트 정보를 담은 DNS 응답을 보내 조작된 주소로 접속하게 만드는 공격이다.
- DNS 질의는 UDP로 전달하는데 UDP의 특징 중 먼저 수신한 응답을 제외한 나머지 응답은 모두 버린다는 특징을 이용하기 위해 공격자는 희생자와 동일한 N/W에 존재
- 대응책
1. 스니핑을 이용한 공격이기 때문에 이를 탐지 및 차단하도록 한다.
2. 중요한 사이트 IP주소는 hosts파일(DNS 질의보다 우선순위가 높음)에 저장해 관리
DNS 캐시 포이즈닝
- DNS 서버의 캐시정보를 조작하는 공격
- 공격자는 희생 DNS 서버에 조작할 도메인 질의를 다수 보낸다.
- 공격자의 조작된 응답 중 정상 응답보다 먼저 일치하는 응답이 있으면 공격 대상 DNS 서버의 캐시에 저장되고 이를 질의하는 사용자는 조작된 주소의 사이트로 접속하게 된다.
- 대응책
1. 소프트웨어 최신 버전 상태 유지
2. 도메인 관리용 DNS 서버는 재귀적 질의를 허용하지 않는다.
3. DNSSEC 기술을 활용
※DNSSEC은 msg의 완전 무결성은 제공하지만 기밀성은 제공하지 않으며 DoS 공격에 대한 방지책이 없음
네임서버 주요 구성 파일과 디렉터리
구성파일 |
설명 |
/etc/named.conf |
ㆍBIND의 부트파일 ㆍ각 도메인에 대한 파일 정보들을 갖고있음 ㆍnamed의 존 환경설정 파일로 매우 중요함 ㆍDNS 서버의 네임서비스를 위한 여러 가지 옵션들이 설정된 파일 |
/usr/bin/named |
BIND 데몬 파일 |
/usr/sbin/named-checkconf |
named.conf 파일 검사 |
/etc/host.conf |
특정 도메인에 대한 IP를 찾고자 할 때 어디에서 먼저 찾을것인가 순서를 정해놓는 파일 |
/etc/resolv.conf |
서버가 사용할 네임서버를 지정해둔 파일 |
- IP주소 얻기 위한 과정
'보안기사 > 필기' 카테고리의 다른 글
기사자격증(알기사, 전자상거래 보안) (0) | 2019.02.24 |
---|---|
기사 자격증(알기사, DB보안) (0) | 2019.02.24 |
기사자격증(알기사, 웹 보안-OWASP) (0) | 2019.02.22 |
기사 자격증(알기사, 웹 보안 - HTTP) (0) | 2019.02.22 |
정보보안기사 자격증(알기사, 이메일 보안) (0) | 2019.02.18 |