1 / 42

방화벽

14. 방화벽. 학습목표 방화벽의 기능과 목적을 이해한다 . 네트워크에서 방화벽의 위치와 구조를 이해한다 . 패킷 필터링의 규칙을 이해하고 적용할 수 있다 . NAT 의 원리를 이해하고 적용할 수 있다 . 프록시의 원리를 이해하고 적용할 수 있다 . 내용 방화벽의 기능과 목적 방화벽의 구조 패킷 필터링 NAT 프록시. 방화벽의 기능과 목적. 방화벽 개념 원래 방화벽은 화재가 발생했을 때 불길이 다른 곳으로 번지지 않게 설치해놓은 구조물

kalkin
Download Presentation

방화벽

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 14 방화벽

  2. 학습목표 • 방화벽의 기능과 목적을 이해한다. • 네트워크에서 방화벽의 위치와 구조를 이해한다. • 패킷 필터링의 규칙을 이해하고 적용할 수 있다. • NAT의 원리를 이해하고 적용할 수 있다. • 프록시의 원리를 이해하고 적용할 수 있다. • 내용 • 방화벽의 기능과 목적 • 방화벽의 구조 • 패킷 필터링 • NAT • 프록시

  3. 방화벽의 기능과 목적 • 방화벽 개념 • 원래 방화벽은 화재가 발생했을 때 불길이 다른 곳으로 번지지 않게 설치해놓은 구조물 • 네트워크에서 방화벽은 신뢰하지 않는 외부 네트워크와 신뢰하는 내부 네트워크 사이를 지나는 패킷을 미리 정해놓은 규칙에 따라 차단하거나 보내주는 기능을 하는 하드웨어나 소프트웨어

  4. 방화벽의 기능과 목적 • 방화벽 기능 • 접근 제어(Access Control) • 통과시킬 접근과 그렇지 않은 접근을 결정하여 허용과 차단을 함 • 접근 제어 방식은 구현 방법에 따라 패킷 필터링 방식과 프록시 방식으로 나뉨 • 로깅(Logging)과 감사 추적(Auditing) • 허용 또는 거부된 접근에 대한 기록을 유지 • 인증(Authentication) • 메시지 인증, 사용자 인증, 클라이언트 인증을 할 수 있음 • 데이터 암호화 • 방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보내는 것으로, 보통 VPN의 기능을 이용

  5. 방화벽의 기능과 목적 • 방화벽 한계 • 바이러스를 막을 수 없음 • 방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하는 것이 보통 • 좀 더 높은 수준의 접근 제어가 가능하지만 패킷의 데이터 내용 자체는 검사하지 않는 것이 보통 • 방화벽은 보통 두 네트워크 사이에 존재하며, 높은 트래픽을 처리해야 하므로 데이터 내용까지 검사하면, 큰 오버헤드(overhead)가 발생하고 네트워크 대역폭에 큰 손실을 가져오기 때문 • 방화벽은 자신을 통과하지 않은 통신에 대한 제어가 불가능 • 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 무선이나 사설 통신 선로를 이용해 통신을 한다면, 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있음 • 내부 사용자 역시 방화벽을 우회하여 외부로 허용되지 않은 접속을 시도할 수 있음 • 방화벽은 전혀 새로운 형태의 공격을 막을 수 없음 • 방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대해서만 방어하기 때문에 새로운 형태의 공격에는 능동적으로 적용할 수 없음 • 실제로 많은 해킹 공격이 방화벽을 우회하거나 통과하는 데 성공하여 공격을 실행하므로 보안의 완성은 절대 아님

  6. 방화벽의 구조 • 베스천 호스트 • 철저한 방어 정책이 구현되어 있고 외부 접속에 대한 일차적인 연결을 받아들이는 시스템을 지칭 • 보통 강력한 로깅과 모니터링 정책이 구현되어 있으며, 접근을 허용하거나 차단하는 등 방화벽의 일반 기능을 함 • 꼭 하나가 아니며 방화벽과 동일하지도 않음 • 베스천 호스트 위치 중 한 곳에 방화벽이 놓임

  7. 방화벽의 구조 • 스크리닝(screening) 라우터 • 외부 네트워크와 내부 네트워크의 경계에 놓이며, 보통 일반 라우터에 패킷 필터링 규칙을 적용하여 방화벽 역할 수행 • 세부 규칙 적용이 어렵고 많은 규칙을 적용하면 라우터에 부하가 걸려 대역폭을 효과적으로 이용할 수 없음 • 실패한 접속에 대한 로깅을 지원하지 않으며, 패킷 필터링 규칙에 대한 검증이 어려움 • 아주 저렴한 가격으로 방화벽의 기본 역할을 할 수 있으며, 규칙을 효과적으로 설정할 경우 무척 빠른 처리 속도를 유지할 수 있음 • 정상적인 내부, 외부 사용자는 패킷 필터링 라우터가 존재함을 인식하지 않고 서비스를 자유로이 이용할 수 있으므로 방화벽으로 인한 불편함을 겪지 않음 • 고가의 방화벽을 설치하기 힘든 중소기 업에서는 많이 이용

  8. 방화벽의 구조 • 단일 홈 게이트웨이(Single-Homed Gateway) • 일반적으로 이 구조를 베스천 호스트라고 부름 • 접근 제어, 프록시, 인증, 로깅 등 방화벽의 가장 기본 기능을 수행하며 윈도우NT, 유닉스 등과 같은 운영체제에 설치되어 운용되어 다음과 같은 작업을 반드시 수행해야 함 • 일반 사용자 계정을 모두 삭제한다. • 방화벽 기능 외의 유틸리티와 파일은 모두 지운다. • 대용량의 모니터링과 로깅이 가능해야 한다. • IP 포워딩 및 소스 라우팅 기능을 없앤다. • 비교적 강력한 보안 정책을 실행할 수 있으나 방화벽이 손상되면 내부 네트워크에 대한 무조건적인 접속을 허용할 가능성이 있으며, 방화벽으로의 원격 로그인 정보가 노출되어 공격자가 방화벽에 대한 제어권을 얻게 되면 내부 네트워크를 더는 보호할 수 없음 • 2계층 공격 등을 통한 방화벽 우회 가능

  9. 방화벽의 구조 • 이중 홈 게이트웨이(Dual-Homed Gateway) • 외부 네트워크에 대한 네트워크 카드와 내부 네트워크에 대한 네트워크 카드를 구분하여 운영 • 내부 네트워크에서 인터넷을 이용하거나, 인터넷에서 내부 네트워크가 제공하는 서비스를 이용하려면 이중 홈 게이트웨이를 반드시 지나야 함 • 이중 홈 게이트웨이는 단일 홈 게이트웨이보다 네트워크 카드를 하나 더 지원하므로 좀 더 효율적으로 트래픽을 관리할 수 있음

  10. 방화벽의 구조 • 스크린된 호스트 게이트웨이(Screened Host Gateway) • 라우터와 방화벽을 구분하여 운영하며, 스크리닝 라우터와 단일 홈 게이트웨이의 조합 • 스크리닝 라우터에서 패킷 필터링을 함으로써 1차 방어를 하며, 베스천 호스트로써 단일 홈 게이트웨이에서 프록시와 같은 서비스를 통해 2차 방어를 함 • 베스천 호스트는 스크리닝 라우터를 거치지 않은 모든 접속을 거부하며, 스크리닝 라우터도 베스천 호스트를 거치지 않은 모든 접속을 거부하도록 설정 • 이중 홈 게이트웨이와 함께 사용할 수도 있음 • 2단계로 방어를 실행하므로 무척 안전하며, 스크리닝 라우터에서 3계층과 4계층에 대한 접근 제어, 베스천 호스트에서 7계층에 대한 접근 제어까지 실행하므로 공격하기 어려움 • 가장 많이 이용하는 구조며 융통성이 좋음 • 스크리닝 라우터를 해커가 해킹하면 베스천 호스트를 거치지 않고 내부 네트워크에 직접 접근할 수 있다는 약점이 있음

  11. 방화벽의 구조 • 스크린된 호스트 게이트웨이(Screened Host Gateway)

  12. 방화벽의 구조 • 스크린된 서브넷 게이트웨이(Screened Subnet Gateway) • 외부 네트워크와 내부 네트워크 사이에 서브넷(subnet)이라는 완충지대를 두는 것 • 방화벽도 서브넷에 위치하며 주로 프록시가 설치됨 • 다른 방화벽의 장점을 모두 갖추고 있으며 융통성이 아주 뛰어남 • 해커가 침입하려면 통과할 것이 많아 상당히 안전한 편 • 다른 방화벽보다 설치와 관리가 어렵고, 서비스 속도가 느리며, 비용도 만만치 않음 • 이중 홈 게이트웨이에 적용할 경우 [그림 14-9]와 같은 구조가 됨 • 단일 홈 게이트웨이를 쓴 경우보다는 빠르며 좀 더 강력한 보안 정책을 실행할 수 있음

  13. 방화벽의 구조 • 스크린된 서브넷 게이트웨이(Screened Subnet Gateway)

  14. 실습 14-1 Astaro 방화벽 설치하기 실습환경 • 설치 시스템 : 네트워크 카드가 두 개인 시스템 • 필요 프로그램 : Astaro Security Gateway V7.3

  15. 실습 14-1 Astaro 방화벽 설치하기 【Astaro 설치】 • Astaro는 리눅스 기반 방화벽으로, 다른 운영체제와 함께 설치할 수 없음. 설치 시 하드디스크의 내용이 포맷되므로 새로운 하드 디스크를 구해야 함. 설치 중 관리 인터페이스를 선택하는 과정이 있는데, 관리자가 방화벽에 접근하여 관리할 IP를 설정해주면 됨 • 설치가 완료되면 시디를 빼낸 뒤 리부팅. 리부팅하면 일반 리눅스처럼 로그인해야 하는데, 아이디에 root를 입력하고 패스워드는 새로 설정함. 패스워드 설정 후 로그인하면 리눅스에서 사용하는 대부분의 명령을 쓸 수 있음 【Astaro 관리자 인터페이스 접속】 • 원격지에서 Astaro가 설치된 시스템으로 브라우저를 통해 접속. ‘https://Astaro 방화벽 주소:4444’를 입력하면 Astaro의 초기 화면을 볼 수 있음 1 2 3

  16. 실습 14-1 Astaro 방화벽 설치하기 • Astaro 초기 설정 마법사 시작 Astaro 처음 로그인 화면 【기본 설정 마법사 실행】 • Astaro 초기 설정 마법사 시작 라이선스 등록 4 5 6 7

  17. 실습 14-1 Astaro 방화벽 설치하기 • Astaro 초기 설정 마법사 시작 Astaro 처음 로그인 화면 • Astaro 초기 설정 마법사 시작 라이선스 등록 11 10 8 9

  18. 실습 14-1 Astaro 방화벽 설치하기 • 메신저에 대한 차단 설정, 웹 트래픽에 대한 모니터링 설정, 이메일에 대한 모니터링 설정을기본대로 두고 설정 완료 • Astaro 대시 보드 확인 13 12

  19. 실습 14-1 Astaro 방화벽 설치하기 【외부 인터페이스 활성화】 • 네트워크 인터페이스 생성 • 네트워크 인터페이스 생성 결과 확인 • 내부 클라이언트가 Astaro를 거쳐 인터넷이 되는지 확인 11 14 15 16

  20. 패킷 필터링 • Fail Safe • 시스템이 오류 발생 등으로 정상적으로 작동하지 않을 때 사용자나 시스템에 피해를 입히지 않는 상태로 남아 있어야 한다는 의미 • 시스템이 인증 시스템 등의 오류 때문에 정상적인 운용이 불가능한 상태가 됐을 때 공격자가 인증을 받지 않고 접속할 수 없어야 함 • 이러한 상태에 있으면 합당한 사용자도 인증 시스템의 오류 때문에 정상적인 서비스가 가능해질 때까지 시스템을 이용할 수 없음 • Safe Failure • 안전한 실패로, 실패(Failure)가 일어났을 경우 안전(Safe)해야 한다는 의미 • 방화벽 • 일반적으로 Fail Safe 원칙이 적용되며,‘ 명백히 허용하지 않은 서비스에 대한 거부’를 기본 원칙으로 함 • '거부를 명시하지 않은 모든 서비스에 대한 허용’을 기본 원칙으로 설정하는 경우도 있으나 방화벽에 이 원칙을 적용하는 것은 아주 예외적인 경우로 매우 위험

  21. 패킷 필터링 • 방화벽에‘명백히 허용하지 않은 서비스에 대한 거부’ 적용 과정 ① 허용할 서비스를 확인한다. ② 제공하고자 하는 서비스에 보안 문제는 없는지, 그리고 허용이 타당한지 검토 ③ 서비스가 이루어지는 형태를 확인하고, 어떤 규칙(rule)을 적용할지 구체적으로 결정 ④ 방화벽에 실제로 적용을 하고, 적용된 규칙을 검사

  22. 패킷 필터링 실습 • [그림14-22]의 구조를 바탕으로 간단한 패킷 필터링 규칙 정하기 • 내부 네트워크에는 웹 서버와 메일 서버, FTP 서버가 있음

  23. 패킷 필터링 실습 • 내부 클라이언트가 외부의 웹 서버로 접근 가능하도록 설정 • 1번 규칙 : 내부(Internal)에서 80번 포트를 목적지로 하는 외부(External)로 나가는 패킷은 허용한다. • 2번 규칙 : 방화벽은 기본적으로 명백히 허용하지 않은 모든 패킷은 거부하게 되어 있지만 이와 같이 마지막에 명시해주는 것이 좋다. 왜냐하면 방화벽이 생각만큼 완벽하지 않기 때문이다.

  24. 패킷 필터링 실습 • 외부 클라이언트가 내부의 웹 서버와 FTP 서버에 접근할 수 있도록 패킷 필터링 규칙 추가 • 2번 규칙 : 내부와 외부에서 모두 192.168.1.10 웹 서버에 접근할 수 있도록 허용한다. • 3번 규칙 : FTP 서버에도 같은 접근을 허용한다.

  25. 패킷 필터링 실습 • 메일에 대한 필터링 규칙 적용

  26. 패킷 필터링 실습 • 4번 규칙 : 내부 메일 서버(192.168.1.11)에서 외부 메일 서버(10.10.10.21)로 가는 SMTP 패킷을 허용한다. • 5번 규칙 : 내부 메일 서버에서 외부 메일 서버로의 POP3 접근은 금지한다. • 6번 규칙 : 내부 메일 서버에서 외부 메일 서버로의 IMAP 접근은 허용한다. • 7~9번규칙: 외부 메일 서버에 대한 내부 메일 서버의 접근에 대한 규칙을 똑같이 설정한다. • 10번 규칙 : 외부 모든 시스템에서 내부 시스템으로 메일을 보내지 못하도록 설정한다. 스팸 메일을 막기 위한 규칙이다.

  27. 패킷 필터링 실습 • DNS 서버에 대한 접근 규칙 추가 • 11번 규칙 : 내부에서 외부로의 DNS 접근을 허용한다.

  28. NAT • NAT • 시스템은 내부 네트워크에서 사설 주소를 소유하고 있다가 외부로 접근할 때 라우팅이 가능한 외부 공인 주소를 NAT 규칙에 따라 할당받아 접속할 수 있음 • 고갈되는 공인 주소를 효과적으로 쓰려는 목적도 있으나 내부 시스템의 네트워크 구조를 노출하지 않는 보안상의 이점도 제공 • 구현 방법에 따라 다음 네 가지로 나뉨 • Normal NAT(노말NAT) • Reverse NAT(리버스NAT) • Redirect NAT(리다이렉트NAT) • Exclude NAT(익스클루드NAT)

  29. NAT • Normal NAT • 내부 사설 IP 주소를 가진 클라이언트가 외부로 접속하고자 할 때 사용 ➊클라이언트는 내부(사설) IP 주소를 출발지 주소로, 접속하고자 하는 외부 IP 주소를 목적지 주소로 하는 패킷을 생성하여 방화벽으로 보낸다. 이때 방화벽은 기본 게이트웨이처럼 동작한다. ➋방화벽은 Normal NAT 규칙에 따라 패킷의 출발지 주소를 미리 설정되어 있는 방화벽(공인) IP 주소로 바꾸어 원격지 서버에 전송한다. ➌원격지 서버가 방화벽이 보낸 패킷에 대한 응답 패킷을 보낸다. ➍방화벽은 다시 Normal NAT 규칙에 따라 목적지 주소를 처음 접속을 시도한 클라이언트의 내부(사설) IP 주소로 바꾼 후, 실제로 접속을 시도한 클라이언트에 전송해준다.

  30. NAT • Reverse NAT • 내부에 서버가 존재하는 경우에 설정 • 클라이언트는 Normal NAT를 통해 원격 접속을 할 수 있지만, 서버는 처음 패킷의 시도가 원격에서 오므로 여러 내부 IP 주소 중 어떤 곳에서 접속해온 패킷을 보낼 지 모름 • 내부 네트워크에서 작동하는 서버에 대해서는 Reverse NAT 규칙이 존재해야 함 • 'Static Mapping’이라고도 하며, 사설 IP 주소 하나를 공인 IP 주소 한 개로 설정 작동 순서는 Normal NAT와 유사

  31. NAT • Reverse NAT ➊외부 클라이언트는 공인 IP 주소를 출발지 주소로, 방화벽 지정 외부 IP 주소를 목적지 주소로 하는 패킷을 생성하여 방화벽으로 보낸다. ➋ 방화벽은 Reverse NAT 규칙에 따라 패킷의 목적지 주소를 미리 설정되어 있는 내부(사설) IP 주소로 바꾸어 내부 서버에 전송한다. ➌내부 서버는 이에 대한 응답을 방화벽으로 보낸다. ➍방화벽은 내부(사설) IP 주소로 되어 있는 출발지 IP 주소를 방화벽 지정 외부 IP 주소로 바꾸어 외부 클라이언트에 전송한다.

  32. 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가 적용되지 않도록 설정할 수 있음

  33. 실습 14-2 Astaro 패킷 필터링 규칙 적용하기 • 패킷 필터링 룰셋 확인 실습환경 [실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템 1

  34. 실습 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)으로 설정한다.

  35. 실습 14-2 Astaro 패킷 필터링 규칙 적용하기 • 패킷 필터링 룰셋의 활성화 패킷 필터링 룰셋의 순서 조정 3 4

  36. 실습 14-3 Astaro에서 NAT 적용하기 • DNAT 설정 실습환경 [실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템 • ➊Traffic Source : 패킷의 출발지 주소는 외부 네트워크(WAN(Network))로 설정한다. • ➋Traffic Service : 방화벽의 외부 인터페이스로 접근해 오는 패킷 중 목적지가 80번 포트인 패킷에 대한 DNAT를 실행하려고 하므로, HTTP를 선택한다. • ➌Traffic Destination : 목적지 주소는 방화벽의 외부 인터페이스(WAN(Address))로 설정한다. • ➍NAT Mode : DNAT, SNAT, Both 세 가지 중 선택할 수 있다. DNAT를 선택한다. • ➎ Destination : 패킷의 목적지 주소를 방화벽의 외부 인터페이스에서 로컬 웹 서버 IP 주소로 바꾼다. • ➏ Destination Service : 목적지는 8080번 포트로 한다. 1

  37. 실습 14-3 Astaro에서 NAT 적용하기 • Normal NAT 설정과 결과 ➊ Network : 해당 네트워크를 내부 네트워크(Internal(Network))로 정한다. 내부 네트워크 사용자가 외부 네트워크에 접속할 때 자신의 주소를 위장하기 위한 것이다. ➋ Interface : 인터페이스도 외부의 NIC 카드(WAN)를 지정해야 한다. 21

  38. 실습 14-3 Astaro에서 NAT 적용하기 • Masquerading • 흔히, PAT(Port Address Translation)라고 부르는 방법 • PAT는 IP 주소와 소스 포트의 조합으로 사용됨. 1개 이상의 시스템이 각각의 내부 IP로 외부에 접근할 때 하나의 외부 IP에 포트만 달리하여 연결할 수 있게 해주는 것 • PAT에서 세션은 포트 번호로 구분되고, 많은 세션이 한 IP를 통해 인터넷에 접근 가능 • NAT를 추가하면 룰셋처럼 목록으로 확인할 수 있고, 활성화와 비활성화 여부를 선택할 수 있음

  39. 프록시 • 프록시 • 크게 회로 계층 프록시(Circuit Level Proxy)와 응용 계층 프록시(Application Level Proxy)로 나뉨 • 회로 계층 프록시가 먼저 개발됨 • 응용 계층 프록시는 HTTP, FTP 등 하나의 서비스에 대한 프록시가 개별적으로 존재 • 회로 계층 프록시는 SOCKS처럼 하나의 회로를 만들뿐 실제적인 프로토콜 분석이 가능한 것은 아님 • 바이러스 같은 것을 잡아낼 수는 없음 • 메일 서비스 같은 경우 기본적으로 프록시와 비슷한 성격을 띠는 서비스 • 클라이언트가 메일을 보내면 메일 서버는 이를 저장한 후 다른 메일 서버로 전송해주는데, 메일 서버가 프록시와 마찬가지로서비스의 중개자 역할을 해준다는 점에서 프록시와 아주 비슷하게 동작 • 프록시는 전송되는 데이터의 내용을 볼 수 있지만 모두 읽을 수 있는 것은 아님 • 프로토콜이 개발되면 이에 해당하는 프록시는 보통 한참 뒤에 개발되므로 모든 내용을 프록시할 수는 없음 • 프록시를 쓰면 몇 가지 유연한 서비스를 제외하면 클라이언트와 서버에 조금씩 수정을 가해야 정상적으로 인터넷 등을 사용 가능

  40. 실습 14-4 Astaro 프록시 설정하기 • 개별 항목 프록시 설정과 결과 실습환경 [실습 14-1]에서 Astaro Security Gateway V7.3 설치 후 기본 설정을 완료한 시스템 1

  41. 실습 14-4 Astaro 프록시 설정하기 • HTTP 프록시 설정 항목 • SMTP 프록시 설정 항목 2 3

More Related