방화벽 - Daum

Download Report

Transcript 방화벽 - Daum

방화벽
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)
Contents
 학습목표
 방화벽의 기능과 목적을 이해한다.
 네트워크에서 방화벽의 위치와 구조를 이해한다.
 패킷 필터링의 규칙을 이해하고 적용할 수 있다.
 NAT의 원리를 이해하고 적용할 수 있다.
 프록시의 원리를 이해하고 적용할 수 있다.
 내용
 방화벽의 기능과 목적
 방화벽의 구조
 패킷 필터링
 NAT
 프록시
2/42
방화벽의 기능과 목적
 방화벽 개념
 원래 방화벽은 화재가 발생했을 때 불길이 다른 곳으로 번지지 않게 설치해놓은 구조물
 네트워크에서 방화벽은 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이를
지나는 패킷을 미리 정해놓은 규칙에 따라 차단하거나 보내주는 기능을 하는 하드웨어
나 소프트웨어
3/42
방화벽의 기능과 목적
 방화벽 기능
 접근 제어(Access Control)
• 통과시킬 접근과 그렇지 않은 접근을 결정하여 허용과 차단을 함
• 접근 제어 방식은 구현 방법에 따라 패킷 필터링 방식과 프록시 방식으로 나뉨
 로깅(Logging)과 감사 추적(Auditing)
• 허용 또는 거부된 접근에 대한 기록을 유지
 인증(Authentication)
• 메시지 인증, 사용자 인증, 클라이언트 인증을 할 수 있음
 데이터 암호화
• 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보내는 것으로, 보통 VPN의 기능을
이용
4/42
방화벽의 기능과 목적
 방화벽 한계
 바이러스를 막을 수 없음
• 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하는 것이 보통
• 좀 더 높은 수준의 접근 제어가 가능하지만 패킷의 데이터 내용 자체는 검사하지 않는 것이 보통
• 방화벽은 보통 두 네트워크 사이에 존재하며, 높은 트래픽을 처리해야 하므로 데이터 내용까지 검
사하면, 큰 오버헤드(overhead)가 발생하고 네트워크 대역폭에 큰 손실을 가져오기 때문
 방화벽은 자신을 통과하지 않은 통신에 대한 제어가 불가능
• 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 무선이나 사설 통신 선로를 이용해 통신을 한
다면, 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있음
• 내부 사용자 역시 방화벽을 우회하여 외부로 허용되지 않은 접속을 시도할 수 있음
 방화벽은 전혀 새로운 형태의 공격을 막을 수 없음
• 방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대해서만 방어하기 때문에 새로운 형태의 공격
에는 능동적으로 적용할 수 없음
• 실제로 많은 해킹 공격이 방화벽을 우회하거나 통과하는 데 성공하여 공격을 실행하므로 보안의
완성은 절대 아님
5/42
방화벽의 구조
 베스천 호스트
 철저한 방어 정책이 구현되어 있고 외부 접속에 대한 일차적인 연결을 받아들이는 시스
템을 지칭
 보통 강력한 로깅과 모니터링 정책이 구현되어 있으며, 접근을 허용하거나 차단하는 등
방화벽의 일반 기능을 함
 꼭 하나가 아니며 방화벽과 동일하지도 않음
 베스천 호스트 위치 중 한 곳에 방화벽이 놓임
6/42
방화벽의 구조
 스크리닝(screening) 라우터
 외부 네트워크와 내부 네트워크의 경계에 놓이며, 보통 일반 라우터에 패킷 필터링 규칙
을 적용하여 방화벽 역할 수행
 세부 규칙 적용이 어렵고 많은 규칙을 적용하면 라우터에 부하가 걸려 대역폭을 효과적
으로 이용할 수 없음
 실패한 접속에 대한 로깅을 지원하지 않으며, 패킷 필터링 규칙에 대한 검증이 어려움
 아주 저렴한 가격으로 방화벽의 기본 역할을 할 수 있으며, 규칙을 효과적으로 설정할
경우 무척 빠른 처리 속도를 유지할 수 있음
 정상적인 내부, 외부 사용자는 패킷 필터링 라우터가 존재함을 인식하지 않고 서비스를
자유로이 이용할 수 있으므로 방화벽으로 인한 불편함을 겪지 않음
 고가의 방화벽을 설치하기
힘든 중소기 업에서는
많이 이용
7/42
방화벽의 구조
 단일 홈 게이트웨이(Single-Homed Gateway)
 일반적으로 이 구조를 베스천 호스트라고 부름
 접근 제어, 프록시, 인증, 로깅 등 방화벽의 가장 기본 기능을 수행하며 윈도우NT, 유닉
스 등과 같은 운영체제에 설치되어 운용되어 다음과 같은 작업을 반드시 수행해야 함
• 일반 사용자 계정을 모두 삭제한다.
• 방화벽 기능 외의 유틸리티와 파일은 모두 지운다.
• 대용량의 모니터링과 로깅이 가능해야 한다.
• IP 포워딩 및 소스 라우팅 기능을 없앤다.
 비교적 강력한 보안 정책을 실행할 수 있으나 방화벽이 손상되면 내부 네트워크에 대한
무조건적인 접속을 허용할 가능성이 있으며, 방화벽으로의 원격 로그인 정보가 노출되
어 공격자가 방화벽에 대한
제어권을 얻게 되면 내부
네트워크를 더는 보호할 수 없음
 2계층 공격 등을 통한 방화벽
우회 가능
8/42
방화벽의 구조
 이중 홈 게이트웨이(Dual-Homed Gateway)
 외부 네트워크에 대한 네트워크 카드와 내부 네트워크에 대한 네트워크 카드를 구분하
여 운영
 내부 네트워크에서 인터넷을 이용하거나, 인터넷에서 내부 네트워크가 제공하는 서비스
를 이용하려면 이중 홈 게이트웨이를 반드시 지나야 함
 이중 홈 게이트웨이는 단일 홈 게이트웨이보다 네트워크 카드를 하나 더 지원하므로 좀
더 효율적으로 트래픽을 관리할 수 있음
9/42
방화벽의 구조
 스크린된 호스트 게이트웨이(Screened Host Gateway)
 라우터와 방화벽을 구분하여 운영하며, 스크리닝 라우터와 단일 홈 게이트웨이의 조합
 스크리닝 라우터에서 패킷 필터링을 함으로써 1차 방어를 하며, 베스천 호스트로써 단
일 홈 게이트웨이에서 프록시와 같은 서비스를 통해 2차 방어를 함
 베스천 호스트는 스크리닝 라우터를 거치지 않은 모든 접속을 거부하며, 스크리닝 라우
터도 베스천 호스트를 거치지 않은 모든 접속을 거부하도록 설정
 이중 홈 게이트웨이와 함께 사용할 수도 있음
 2단계로 방어를 실행하므로 무척 안전하며, 스크리닝 라우터에서 3계층과 4계층에 대한
접근 제어, 베스천 호스트에서 7계층에 대한 접근 제어까지 실행하므로 공격하기 어려
움
 가장 많이 이용하는 구조며 융통성이 좋음
 스크리닝 라우터를 해커가 해킹하면 베스천 호스트를 거치지 않고 내부 네트워크에 직
접 접근할 수 있다는 약점이 있음
10/42
방화벽의 구조
 스크린된 호스트 게이트웨이(Screened Host Gateway)
11/42
방화벽의 구조
 스크린된 서브넷 게이트웨이(Screened Subnet Gateway)
 외부 네트워크와 내부 네트워크 사이에 서브넷(subnet)이라는 완충지대를 두는 것
 방화벽도 서브넷에 위치하며 주로 프록시가 설치됨
 다른 방화벽의 장점을 모두 갖추고 있으며 융통성이 아주 뛰어남
 해커가 침입하려면 통과할 것이 많아 상당히 안전한 편
 다른 방화벽보다 설치와 관리가 어렵고, 서비스 속도가 느리며, 비용도 만만치 않음
 이중 홈 게이트웨이에 적용할 경우 [그림 14-9]와 같은 구조가 됨
 단일 홈 게이트웨이를 쓴 경우보다는 빠르며 좀 더 강력한 보안 정책을 실행할 수 있음
12/42
방화벽의 구조
 스크린된 서브넷 게이트웨이(Screened Subnet Gateway)
13/42
실습 14-1 Astaro 방화벽 설치하기
실습환경
• 설치 시스템 : 네트워크 카드가 두 개인 시스템
• 필요 프로그램 : Astaro Security Gateway V7.3
14/42
실습 14-1 Astaro 방화벽 설치하기
【Astaro 설치】

1 Astaro는 리눅스 기반 방화벽으로, 다른 운영체제와 함께 설치할 수 없음. 설치 시 하드디
스크의 내용이 포맷되므로 새로운 하드 디스크를 구해야 함. 설치 중 관리 인터페이스를 선
택하는 과정이 있는데, 관리자가 방화벽에 접근하여 관리할 IP를 설정해주면 됨
2 설치가 완료되면 시디를 빼낸 뒤 리부팅. 리부팅하면 일반 리눅스처럼 로그인해야 하는데,

아이디에 root를 입력하고 패스워드는 새로 설정함. 패스워드 설정 후 로그인하면 리눅스
에서 사용하는 대부분의 명령을 쓸 수 있음
【Astaro 관리자 인터페이스 접속】

3 원격지에서 Astaro가 설치된 시스템으로 브라우저를 통해 접속. ‘https://Astaro 방화벽 주
소:4444’를 입력하면 Astaro의 초기 화면을 볼 수 있음
15/42
실습 14-1 Astaro 방화벽 설치하기
4 Astaro 초기 설정 마법사 시작

【기본 설정 마법사 실행】
6 Astaro 초기 설정 마법사 시작

5 Astaro 처음 로그인 화면
7라이선스 등록
16/42
실습 14-1 Astaro 방화벽 설치하기
8 Astaro 초기 설정 마법사 시작

9 Astaro 처음 로그인 화면
10
 Astaro 초기 설정 마법사 시작
11 라이선스 등록
17/42
실습 14-1 Astaro 방화벽 설치하기
12
 메신저에 대한 차단 설정, 웹 트래픽에 대한 모니터링 설정, 이메일에 대한 모니터링 설정
을 기본대로 두고 설정 완료
13
 Astaro 대시 보드 확인
18/42
실습 14-1 Astaro 방화벽 설치하기
【외부 인터페이스 활성화】
14
 네트워크 인터페이스 생성
11
15
 네트워크 인터페이스 생성 결과 확인
16
 내부 클라이언트가 Astaro를 거쳐 인터넷이 되는지 확인
19/42
패킷 필터링
 Fail Safe
 시스템이 오류 발생 등으로 정상적으로 작동하지 않을 때 사용자나 시스템에 피해를 입
히지 않는 상태로 남아 있어야 한다는 의미
 시스템이 인증 시스템 등의 오류 때문에 정상적인 운용이 불가능한 상태가 됐을 때 공격
자가 인증을 받지 않고 접속할 수 없어야 함
 이러한 상태에 있으면 합당한 사용자도 인증 시스템의 오류 때문에 정상적인 서비스가
가능해질 때까지 시스템을 이용할 수 없음
 Safe Failure
 안전한 실패로, 실패(Failure)가 일어났을 경우 안전(Safe)해야 한다는 의미
 방화벽
 일반적으로 Fail Safe 원칙이 적용되며,‘ 명백히 허용하지 않은 서비스에 대한 거부’를
기본 원칙으로 함
 '거부를 명시하지 않은 모든 서비스에 대한 허용’을 기본 원칙으로 설정하는 경우도 있
으나 방화벽에 이 원칙을 적용하는 것은 아주 예외적인 경우로 매우 위험
20/42
패킷 필터링
 방화벽에‘명백히 허용하지 않은 서비스에 대한 거부’ 적용 과정
① 허용할 서비스를 확인한다.
② 제공하고자 하는 서비스에 보안 문제는 없는지, 그리고 허용이 타당한지 검토
③ 서비스가 이루어지는 형태를 확인하고, 어떤 규칙(rule)을 적용할지 구체적으로 결정
④ 방화벽에 실제로 적용을 하고, 적용된 규칙을 검사
21/42
패킷 필터링 실습
 [그림14-22]의 구조를 바탕으로 간단한 패킷 필터링 규칙 정하기
 내부 네트워크에는 웹 서버와 메일 서버, FTP 서버가 있음
22/42
패킷 필터링 실습
 내부 클라이언트가 외부의 웹 서버로 접근 가능하도록 설정
 1번 규칙 : 내부(Internal)에서 80번 포트를 목적지로 하는 외부(External)로 나가는 패
킷은 허용한다.
 2번 규칙 : 방화벽은 기본적으로 명백히 허용하지 않은 모든 패킷은 거부하게 되어 있지
만 이와 같이 마지막에 명시해주는 것이 좋다. 왜냐하면 방화벽이 생각만큼 완벽하지 않
기 때문이다.
23/42
패킷 필터링 실습
 외부 클라이언트가 내부의 웹 서버와 FTP 서버에 접근할 수 있도록 패
킷 필터링 규칙 추가
 2번 규칙 : 내부와 외부에서 모두 192.168.1.10 웹 서버에 접근할 수 있도록 허용한다.
 3번 규칙 : FTP 서버에도 같은 접근을 허용한다.
24/42
패킷 필터링 실습
 메일에 대한 필터링 규칙 적용
25/42
패킷 필터링 실습
 4번 규칙 : 내부 메일 서버(192.168.1.11)에서 외부 메일 서버(10.10.10.21)로 가는
SMTP 패킷을 허용한다.
 5번 규칙 : 내부 메일 서버에서 외부 메일 서버로의 POP3 접근은 금지한다.
 6번 규칙 : 내부 메일 서버에서 외부 메일 서버로의 IMAP 접근은 허용한다.
 7~9번규칙: 외부 메일 서버에 대한 내부 메일 서버의 접근에 대한 규칙을 똑같이 설정
한다.
 10번 규칙 : 외부 모든 시스템에서 내부 시스템으로 메일을 보내지 못하도록 설정한다.
스팸 메일을 막기 위한 규칙이다.
26/42
패킷 필터링 실습
 DNS 서버에 대한 접근 규칙 추가
 11번 규칙 : 내부에서 외부로의 DNS 접근을 허용한다.
27/42
NAT
 NAT
 시스템은 내부 네트워크에서 사설 주소를 소유하고 있다가 외부로 접근할 때 라우팅이
가능한 외부 공인 주소를 NAT 규칙에 따라 할당받아 접속할 수 있음
 고갈되는 공인 주소를 효과적으로 쓰려는 목적도 있으나 내부 시스템의 네트워크 구조
를 노출하지 않는 보안상의 이점도 제공
 구현 방법에 따라 다음 네 가지로 나뉨
• Normal NAT(노말NAT)
• Reverse NAT(리버스NAT)
• Redirect NAT(리다이렉트NAT)
• Exclude NAT(익스클루드NAT)
28/42
NAT
 Normal NAT
 내부 사설 IP 주소를 가진 클라이언트가 외부로 접속하고자 할 때 사용
➊ 클라이언트는 내부(사설) IP 주소를 출발지 주소로, 접속하고자 하는 외부 IP 주소를 목적지 주소로 하
는 패킷을 생성하여 방화벽으로 보낸다. 이때 방화벽은 기본 게이트웨이처럼 동작한다.
➋ 방화벽은 Normal NAT 규칙에 따라 패킷의 출발지 주소를 미리 설정되어 있는 방화벽(공인) IP 주소로
바꾸어 원격지 서버에 전송한다.
➌ 원격지 서버가 방화벽이 보낸 패킷에 대한 응답 패킷을 보낸다.
➍ 방화벽은 다시 Normal NAT 규칙에 따라 목적지 주소를 처음 접속을 시도한 클라이언트의 내부(사설)
IP 주소로 바꾼 후, 실제로 접속을 시도한 클라이언트에 전송해준다.
29/42
NAT
 Reverse NAT
 내부에 서버가 존재하는 경우에 설정
 클라이언트는 Normal NAT를 통해 원격 접속을 할 수 있지만, 서버는 처음 패킷의 시도
가 원격에서 오므로 여러 내부 IP 주소 중 어떤 곳에서 접속해온 패킷을 보낼 지 모름
 내부 네트워크에서 작동하는 서버에 대해서는 Reverse NAT 규칙이 존재해야 함
 'Static Mapping’이라고도 하며, 사설 IP 주소 하나를 공인 IP 주소 한 개로 설정 작동 순
서는 Normal NAT와 유사
30/42
NAT
 Reverse NAT
➊ 외부 클라이언트는 공인 IP 주소를 출발지 주소로, 방화벽 지정 외부 IP 주소를 목적지 주소로 하는 패
킷을 생성하여 방화벽으로 보낸다.
➋ 방화벽은 Reverse NAT 규칙에 따라 패킷의 목적지 주소를 미리 설정되어 있는 내부(사설) IP 주소로
바꾸어 내부 서버에 전송한다.
➌ 내부 서버는 이에 대한 응답을 방화벽으로 보낸다.
➍ 방화벽은 내부(사설) IP 주소로 되어 있는 출발지 IP 주소를 방화벽 지정 외부 IP 주소로 바꾸어 외부 클
라이언트에 전송한다.
31/42
NAT
 Redirect NAT
 목적지 주소를 재지정할 때 사용
 210.100.100.1로 사용하던 서버의 주소가 210.100.100.2로 바뀔 경우, 210.100.100.1
로 접속을 시도해온 패킷의 목적지 주
 소를 210.100.100.2로 바꾸어줌
 Exclude NAT
 Normal NAT를 적용받지 않고 방화벽을 지나도록 설정하는 것
 방화벽과 라우터 사이에 서버가 있는 경우와 같이 특정한 목적지에 대해서만 Normal
NAT가 적용되지 않도록 설정할 수 있음
32/42
실습 14-2 Astaro 패킷 필터링 규칙 적용하기
실습환경
[실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템
1 패킷 필터링 룰셋 확인

33/42
실습 14-2 Astaro 패킷 필터링 규칙 적용하기
2 패킷 필터링 룰셋 구성

➊ Source : 출발지 주소나 호스트를 입력할 수 있다. 내부 시스템이 외부
의 인터넷에서 DNS 정보를 접근해야 하므
로,‘ Internal_Network’(192.168.0.1/24)를 입력한다.
➋ Service : 제공하고자 하는 서비스를 선택한다. 잘 알려진 서비스는 [그
림 14-19]에서 볼 수 있듯이 이름이 이미 설정되어 있다. DNS(53)를 선
택한다.
➌ Destination : 목적지 주소다. Web Surfing은 Any, 즉 모든 네트워크에
허용되어 있다. 외부 네트워크로 한정하려면WAN(200.200.200.0)을 입
력한다.
➍ Action : 1, 2, 3을 만족하는 패킷이 왔을 때 이를 허용(Allow)할 지를
설정한다. 다른 설정으로는 Drop, Reject가 있다. Drop은 기본적으로
응답 패킷을 보내지 않은 채 패킷을 버린다. Reject는 막힌 서비스임을
클라이언트에 알려준다. 허용(Allow)으로 설정한다.
34/42
실습 14-2 Astaro 패킷 필터링 규칙 적용하기
3 패킷 필터링 룰셋의 활성화

4 패킷 필터링 룰셋의 순서 조정
35/42
실습 14-3 Astaro에서 NAT 적용하기
실습환경
[실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템
1 DNAT 설정

➊ Traffic Source : 패킷의 출발지 주소는 외부
네트워크(WAN(Network))로 설정한다.
➋ Traffic Service : 방화벽의 외부 인터페이스로
접근해 오는 패킷 중 목적지가 80번 포트인 패
킷에 대한 DNAT를 실행하려고 하므로, HTTP
를 선택한다.
➌ Traffic Destination : 목적지 주소는 방화벽의
외부 인터페이스(WAN(Address))로 설정한다.
➍ NAT Mode : DNAT, SNAT, Both 세 가지 중
선택할 수 있다. DNAT를 선택한다.
➎ Destination : 패킷의 목적지 주소를 방화벽의
외부 인터페이스에서 로컬 웹 서버 IP 주소로
바꾼다.
➏ Destination Service : 목적지는 8080번 포트
로 한다.
36/42
실습 14-3 Astaro에서 NAT 적용하기
2 Normal NAT 설정과 결과

1
➊ Network : 해당 네트워크를 내부 네트워크(Internal(Network))로 정한다. 내부 네트워크 사용자가
외부 네트워크에 접속할 때 자신의 주소를 위장하기 위한 것이다.
➋ Interface : 인터페이스도 외부의 NIC 카드(WAN)를 지정해야 한다.
37/42
실습 14-3 Astaro에서 NAT 적용하기
 Masquerading
 흔히, PAT(Port Address Translation)라고 부르는 방법
 PAT는 IP 주소와 소스 포트의 조합으로 사용됨. 1개 이상의 시스템이 각각의 내부 IP로 외부에 접근
할 때 하나의 외부 IP에 포트만 달리하여 연결할 수 있게 해주는 것
 PAT에서 세션은 포트 번호로 구분되고, 많은 세션이 한 IP를 통해 인터넷에 접근 가능
 NAT를 추가하면 룰셋처럼 목록으로 확인할 수 있고, 활성화와 비활성화 여부를 선택할 수 있음
38/42
프록시
 프록시
 크게 회로 계층 프록시(Circuit Level Proxy)와 응용 계층 프록시(Application Level
Proxy)로 나뉨
 회로 계층 프록시가 먼저 개발됨
 응용 계층 프록시는 HTTP, FTP 등 하나의 서비스에 대한 프록시가 개별적으로 존재
 회로 계층 프록시는 SOCKS처럼 하나의 회로를 만들뿐 실제적인 프로토콜 분석이 가능
한 것은 아님
 바이러스 같은 것을 잡아낼 수는 없음
 메일 서비스 같은 경우 기본적으로 프록시와 비슷한 성격을 띠는 서비스
 클라이언트가 메일을 보내면 메일 서버는 이를 저장한 후 다른 메일 서버로 전송해주는
데, 메일 서버가 프록시와 마찬가지로서비스의 중개자 역할을 해준다는 점에서 프록시
와 아주 비슷하게 동작
 프록시는 전송되는 데이터의 내용을 볼 수 있지만 모두 읽을 수 있는 것은 아님
 프로토콜이 개발되면 이에 해당하는 프록시는 보통 한참 뒤에 개발되므로 모든 내용을
프록시할 수는 없음
 프록시를 쓰면 몇 가지 유연한 서비스를 제외하면 클라이언트와 서버에 조금씩 수정을
가해야 정상적으로 인터넷 등을 사용 가능
39/42
실습 14-4 Astaro 프록시 설정하기
실습환경
[실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템
1 개별 항목 프록시 설정과 결과

40/42
실습 14-4 Astaro 프록시 설정하기
2 HTTP 프록시 설정 항목

3 SMTP 프록시 설정 항목

41/42
IT CookBook, 정보 보안 개론과 실습 : 네트워크 해킹과 보안(개정
판)