호스트 설정 프로토콜 종류
RARP
ARP는 IP 주소를 물리 주소로 매핑하고 RARP는 물리주소를 IP 주소로 매핑, IPv6에서 사용하지 않음
각 망에 ARP 서버가 존재해야 함, RARP는 오로지 IP 주소만 제공
BOOTP(Bootstrap)
RARP의 두 약점을 극복하기 위해 만들어진 클라이언트-서버 프로토콜
IP 주소, 서브넷 마스크, 라우터의 IP 주소, 네임서버 IP 주소 모든 정보를 제공
DHCP
네트워크에 연결된 노드가 사용할 IP 주소를 자동으로 할당해주는 프로토콜
DHCP 동적 호스트 구성
UDP 기반 프로토콜 (67, 68번 포트)
서버-클라이언트 패러다임을 사용하는 응용 계층의 프로그램으로, 실질적으로 TCP/IP의 네트워크 계층을 보조
장점 | 단점 |
네트워크 설계 변경이 자유로움 DHCP 서버에서만 네트워크 정보를 변경해주면 되므로 네트워크 구성변경 용이 실제로 호스트를 사용하는 경우에만 IP가 할당되어 IP 절약 가능 사용자가 TCP/IP 설정을 따로 해주지 않아도 되어 관리 용이 |
DHCP 클라이언트는 부팅 시 브로드캐스트 방식으로 트래픽을 전송하므로 네트워크의 성능저하를 발생시킴 호스트 전원만 켜 있어도 IP 할당됨 호스트 전원을 꺼도 임대기간까지 해당 IP는 다른 단말에 할당되지 못하기 때문에 IP 주소 낭비 발생 가능 호스트 수가 많아지면 서버의 과부하 발생 |
DNS
이름을 주소로 바꿔주고 주소를 이름으로 바꿔주는 시스템
호스트 파일을 사용하여 이러한 매핑을 수행
zone 파일
zone 파일은 /etc/named.conf 파일의 directory 지시자에 설정된 디렉터리에 존재해야 함
- A(Address) : 주소, 32비트 IP 주소
- NS(Name Server) : 네임 서버, DNS 존을 위한 권한 DNS 네임 서버의 네임
- CNAME(Canonical Name) : 정규 네임
- SOA(Start of Authority) : 권한 개시 정보, DNS 존의 시작을 표시하는데 사용
- PTR(Pointer) : 포인터, IN-ADDR,ARPA 도메인을 통한 역방향 변환에 주로 이용
- MX(Mail Exchange) : 메일 교환, 도메인으로 오는 이메일을 처리하는 위치를 명시
- TXT(text) : 문자열, 도메인과 관련해 저장해야 할 임의의 문자, SPF 레코드 정보
- ANY : 도메인에 대한 모든 레코드 질의 시에 주로 이용, DNS 증폭 DRDoS 공격에 악용
- AXFR(Authoritative Zone Transfer) : 존 전송, 존 버전에 상관없이 무조건 존 전송 요청 full zone transfer
- IXFR(Incremental Zone Transfer) : 존 전송, 존 버전을 비교하여 상위 버전일 경우 존 전송 요청
루트 서버
보통 도메인에 대한 어떤 정보도 가지지 않음, 현재 13개의 루트 서버가 있음
일차 및 이차 서버
일차 서버와 이차 서버의 두 가지 서버를 정의
이차 서버는 다른 서버로부터 영역에 관한 완전한 정보를 수신하여 로컬 디스크에 파일을 저장하는 서버
갱신이 필요하면 이는 일차 서버에서 이루어진 후 이차 서버로 갱신된 버전이 보내짐
존 전송
TCP 53번 포트 이용
정기적으로 수행
DNS 동작 방식
해석기
이름과 주소를 매핑하기 원하는 호스트는 해석기라고 불리는 DNS 클라이언트 호출
매핑 요청을 보내기 위해 가장 가까운 DNS 서버에 접속
해석기가 다른 서버를 참조하게 하거나 다른 서버가 이 정보를 제공하도록 요구
DNS 변환 과정
1순위 : 캐싱 클라이언트에게 잘못된 매핑 정보를 보낼 수 있음
ipconfig/display/dns로 캐시된 DNS 정보가 있음 - ipconfig/flushdns 라고 입력함
2순위 : /etc/hosts 파일
/etc/hosts 파일은 도메인/호스트명과 IP 주소 매핑정보를 담고 있는 파일로 네임서버에 질의하기 전에 먼저 참조됨
파밍 등의 공격을 통해 파밍 사이트로 접속하도록 Hosts 파일을 변조하는 사례가 보고됨
3순위 : DNS 서버
recursive DNS 서버 : 조건이 만족될 때까지 반복적으로 처리
authoritative DNS 서버 : 관리하는/위임받은 도메인을 갖고 있는 네임서버를 말함
DNS 룩업 유틸리티
DNS Lookup(질의) 유형에는 forward DNS lookup과 reverse DNS lookup이 있음
도메인명을 통해 IP 주소를 알아내는 질의를 의미
nslookup 유틸리티 : 가장 널리 쓰이는 DNS 진단 유틸리티 중의 하나가 오래 전부터 쓰인 nslookup
dig : nslookup 대신 사용할 수 있는 또 다른 대안은 dig
host 유틸리티 : 단순 요청에 쓰이는 경우가 많음
whois 명령어 : 해당 도메인의 등록정보(소유정보), 네트워크 할당 정보 등을 조회하기 위한 명령어
DNS 보안
DNS 서버의 응답을 읽어볼 수 있음, DNS 메시지의 비밀성이 보장되어야 함
공격자가 사용자를 접속시키기 원하는 도메인이나 사이트로 가도록 할 수 있음
-> 송신자 인증과 메시지 완전 무결성으로 막을 수 있음(대응책 : DNSSEC)
DNS 서버가 붕괴되거나 압박받도록 대량 트래픽 공격
-> 서비스 거부 공격에 대한 방지책을 사용(DNS Amplification attack)
📍DNSSEC
DNS가 갖고 있는 보안 취약점을 극복하기 위한 DNS 확장 표준 프로토콜
DNSSEC이 예방할 수 있는 공격 기법은 파밍
DNS 데이터 위변조 공격을 막기 위한 인터넷 표준 기술
공개키 사용
DNS 정보에 서명 코드를 추가하여 정보를 인증
DNS 스푸핑
스니핑을 이용한 DNS 스푸핑, DNS 캐시 포이즈닝(DNS 서버)
스니핑 기반의 DNS Spoofing 공격
스니핑하고 있다가 정상 응답보다 빠르게 희생자에게 조작된 웹사이트 IP 정보를 담은 DNS 응답을 보내
정상 주소를 입력해도 조자고딘 주소로 접속하게 만드는 공격기법(시간차 공격)
우선순위가 높은 hosts 파일에 등록하여 관리하도록 함
DNS Cache Poisoning 공격
오래된 버전의 BIND DNS와 Windows 서버 DNS에서의 캐시 오염방지 설정이 되어 있지 않은 경우에
공격이 성공할 수 있는 오래되고 전통적인 공격 형태임
DNS 질의 결과로 받아 둔 응답 메시지를 위변조 하는 공격으로
DNS에서 DNS Transaction ID와 소스포트 넘버를 부여할 때
예상하기 쉬운 랜덤 값을 생성하기 때문에 발생하는 보안 취약점을 공격하는 행위
DNS 서버의 캐시정보를 조직하는 공격을 DNS Cache Poisoning 공격이라 함
Transaction ID와 출발지 Port를 모르기 때문에 랜덤한 트랜잭션 ID와 목적지 포트를 다수 생성하여 응답
- 재귀적 질의를 허용하지 않고, recursive DNS 서버라면 해당 사용자로 제한해서 허용하도록 함
- DNSSEC 기술 활용 (송신자 인증과 전자서명이라는 보안 서비스 사용하여 완전무결성 제공)
DNS 서버 보안 설정
/etc/named.conf
BIND의 부트파일로서 각종 옵션과 각 도메인들에 대한 zone 파일 정보를 갖고 있음
BIND 데몬인 named 의 존 환경설정 파일로 매우 중요한 파일
/usr/sbin/named : BIND 데몬 파일
/usr/sbin/named-checkconf : named.conf 파일 검사하는 유틸리티
/etc/host.conf
host 파일을 먼저 검색할 것인지 DNS 쿼리를 먼저할 것인지 순서를 정하는 설정, order 옵션으로 설정
도메인에 대한 IP를 검색할 때 먼저 로컬서버 내 hosts를 먼저 검색하고,
없다면 nameserver 지시자에 지정된 네임서버를 쿼리함
/etc/resolv.conf : 시스템에 사용할 네임서버의 주소를 갖고 있음