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