방화벽은 사설 네트워크를 외부로부터 보호하기 위해 공중 네트워크와 사설 네트워크 사이에 설치된 일종의 벽을 말한다.
침입차단시스템은 조직의 보안 정책에 따라 인가된 네트워크 서비스에 대한 접근을 허가하고 인가되지 않은 서비스를 수행하는 트래픽을 철저하게 차단함으로써 효율적인 보안 서비스를 제공하는 시스템이다.
방화벽의 목적은 인터넷 기반 공격으로부터 내부 네트워크를 보호하고 보안과 감사를 할 수 있는 길목을 한 곳으로 모으는데 있다.
- 특징
침입차단시스템은 ACL를 통해 네트워크에 전송되는 트래픽에 대한 보안 정책을 설정한다. 기본 목적은 네트워크 사용자에게 가능한 한 투명성을 보장하면서 위험 지대를 줄이고자 하는 적극적인 보안대책을 제공하는 것이다.
방화벽은 기업의 네트워크 보안 정책을 지원하고 집행하는 장비이며 실제로 라우터, 서버 또는 전문화된 하드웨어 장비일 수도 있는 게이트웨이 유형 중 하나이다.
방화벽은 특별한 형태의 참조모니터다. 방화벽을 네트워크 안의 적절한 위치에 배치함으로써 제어하고자 하는 모든 네트워크 접근이 방화벽을 경유하도록 만들 수 있다.
- 방화벽 제어 기능
서비스 제어 : 방화벽은 inbound 또는 outbound의 어떤 네트워크 서비스를 접근할 수 있도록 허용할 것인지를 제어한다. 이를 위해 방화벽은 IP 주소, 프로토콜, 또는 포트 번호에 따라 네트워크 트래픽을 필터링할 수 있고, 서비스 요청을 접수하여 해석하고 통과 여부를 판단하며 내부의 서버로 적절하게 전달하는 프락시 소프트웨어를 제공할 수도 있다.
방향 제어 : 방화벽은 특정 서비스 요청이 개시되고 관련 정보가 흘러가는 방향을 제어할 수 있다.
사용자 제어 : 사용자 인증 기능을 포함함으로써 방화벽은 사용자 제어를 수행할 수 있다. 즉, 특정 서비스에 대해 접근 가능한 사용자를 제어할 수 있다.
행위 제어 : 방화벽은 특정 서비스들이 어떻게 사용되는지를 제어할 수 있다.( e.g. FTP 명령어의 일부만 통과시킴)
방화벽의 기능
1) 접근 통제
방화벽은 허용된 서비스와 전자 우편 서버나 공개 정보 서버와 같은 특정한 호스트를 제외하고는 외부에서 내부 네트워크에 접속하는 것을 패킷 필터링 등을 이용해 통제하는 기능이 있어야 한다.
패킷 필터링은 내부 네트워크로 들어오는 패킷의 IP 주소 혹은 서비스 포트 번호 등을 분석한 후, 외부 또는 내부 네트워크에 대한 접근을 통제하는 기능을 제공한다.
2) 사용자 인증
방화벽은 내/외부 네트워크 사이의 접속점이기 때문에 침입차단시스템을 지나가는 트래픽에 대한 사용자들의 신분을 증명하는 기능이 필요하다.
이는 ID/Password나 공개키 인증서를 이용한 사용자에 대한 식별기능과 이를 검증하는 인증 과정으로 이루어진다.
3) 감사 및 로그 기능
모든 트래픽에 대한 접속 정보 및 네트워크 사용에 따른 유용한 통계 정보를 기록하는 감사 및 로그 기능이 있어야 한다.
방화벽 관리자는 사용자의 활동이나 인가되지 않은 외부로부터의 접근이나 침입 사건 등에 대한 로그 파일을 바탕으로 보안 기능과 보안 관련 데이터에 대한 안전한 보안 관리 기능을 제공해야 한다.
4) 프라이버시 보호
침입차단시스템은 내부 네트워크의 정보 유출 방지, 이중 DNS 기능과 프락시 기능 등을 제공함으로써 프라이버시와 관련된 정보의 노출을 막거나 공격자로부터 보호해야 한다.
5) 서비스 통제
방화벽은 안전하지 못하거나 위험성이 존재하는 서비스를 필터링 함으로써 내부 네트워크의 호스트가 갖고 있는 취약점을 감소시켜 줘야 한다.
6) 데이터 암호화
방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화해서 보내는 것으로 보통 VPN 기능을 이용한다.
방화벽의 한계점
- 방화벽은 악성 소프트웨어 침투 방어에 한계가 있다.
방화벽은 패킷의 IP 주소와 포트 번호로 접근 제어를 하는 것이 보통이다. 바이러스, 웜, XSS 코드 등과 같이 문서나 프로그램 내부에 포함된 악성 소프트웨어를 탐지하여 방어하는데 한계를 가진다.
방화벽은 보통 두 네트워크 사이에 존재하며 높은 트래픽을 처리해야 하므로 데이터 내용까지 검사하면 큰 오버헤드가 발생하고 네트워크 대역폭에 큰 손실을 가져오기 때문이다.
- 방화벽은 악의적인 내부 사용자의 공격을 막을 수 없다.
방화벽은 보통 신뢰하지 않는 외부 네트워크로부터 신뢰하는 내부 네트워크를 보호하는 것이 주요 목적이다.
따라서 내부 공격자에게 보안 정책을 적용할 수 없다.
- 방화벽은 자신을 통과하지 않은 통신에 대한 제어 역시 불가능하다.
만약 내부 사용자가 방화벽을 통과하는 통신 선로가 아닌 무선이나 사설 통신 선로(모뎀)를 이용해 통신을 한다면 공격자는 방화벽을 우회하여 내부 네트워크로 접속할 수 있다.
내부 사용자 역시 방화벽을 우회하여 외부로 허용되지 않은 접속을 시도할 수 있다.
- 방화벽은 완전히 새로운 형태의 공격을 막을 수 없다.
방화벽은 예측된 접속에 대한 규칙을 세우고 이에 대해서만 방어하기 때문에 새로운 형태의 공격에는 능동적으로 적용할 수 없다.
+UTM(Unified Threat Management)
UTM은 다양한 보안 솔루션을 하나의 장비에 탑재하여 운영 가능한 올인원 통합 보안 솔루션으로 보안성 강화 및 운영의 효율성을 지원한다.
방화벽의 운영 정책
Deny All - 모든 트래픽을 먼저 차단하고 허용해야 할 트래픽만을 선별적으로 허용함
Permit All - 모든 트래픽을 허용하고 특정 트래픽만을 선별적으로 차단함
침입차단시스템의 유형 분류
침입차단시스템은 크게 네트워크 계층과 전송 계층에서 수행되는 패킷 필터링 시스템과 응용 계층에서 수행되는 응용 게이트웨이 방식의 침입차단시스템으로 구분된다.
패킷 필터링 시스템은 수신된 패킷의 TCP/IP 헤더 부분만을 이용하여 침입 차단 기능을 수행하는 수동적인 침입차단시스템이라 할 수 있다.
응용 게이트웨이 방식의 침입차단시스템은 수신된 패킷을 응용 계층의 서비스 단위로 프락시 기능을 이용하여 침입 차단 기능을 수행하는 능동적인 침입차단시스템이라 할 수 있다.
패킷 필터링 시스템
일반적으로 패킷 필터링 침입차단시스템에서 사용하는 라우터는 일반적인 라우터에서 패킷 필터링 기능을 구현한 것으로 스크린 라우터 혹은 패킷 필터링 라우터라고 한다.
패킷 필터링 시스템은 발신지 주소와 목적지 주소 그리고 사용하고 있는 세션과 애플리케이션 프로토콜에 기반해서 데이터의 흐름을 통제한다.
- 패킷 필터링 방법
패킷 필터링 방법은 패킷의 IP 주소와 서비스 종류에 대한 정보를 이용하여 설정한 보안 규칙에 의해 내부 네트워크를 보호하는 방법이다.
· IP 주소를 이용한 패킷 필터링
가장 기본적이고 단순한 방법은 패킷이 포함되고 있는 프로토콜이 무엇인가를 고려하지 않고 단순히 패킷 내의 IP 주소에 의해 패킷의 흐름을 제어하는 방식이다.
이를 통해 위조된 발신지 주소를 가진 패킷을 차단할 수 있으며 외부의 호스트가 내부의 호스트와 통신을 하는 것을 허용할 수도 있다.
그러나 서비스와 무관하게 특정 IP를 가진 호스트에 대해 필터링을 수행하므로 보다 미세한 보안 정책을 수행할 수 없다.
필터링 규칙 | 방향 | 발신지 주소 | 목적지 주소 | 동작 |
1 | Inbound | 외부 IP(1) | 내부 IP(2) | Accepted |
2 | Outbound | 내부 IP(2) | Any | Accepted |
default | Either | Any | Any | Deny |
· 서비스를 이용한 패킷 필터링 방법
서비스를 이용한 패킷 필터링 방법은 패킷 내의 서비스 포트 번호를 이용하여 필터링을 시행하는 방법으로 IP 주소를 이용한 패킷 필터링보다 더 복잡하며 미세한 보안 정책을 수행할 수 있게 해준다.
필터링 규칙 | 방향 | 발신지 주소 | 목적지 주소 | 프로토콜 | 발신지 포트 | 목적지 포트 | 동작 |
1 | Inbound | 외부 IP(1) | 내부 IP(2) | TCP | 1023 이상 | 23 | Accepted |
2 | Outbound | 내부 IP(2) | 외부 IP(1) | TCP | 23 | 1023 이상 | Accepted |
3 | Either | Any | Any | Any | Any | Any | Deny |
- 패킷 필터링의 장점
패킷 필터링 방화벽은 아래의 장점들로 정보 보안에서 1차적인 역할을 수행하는 기본 보안 장비로 광범위하게 적용되고 있다.
ⓛ 단순성 : 방화벽은 내·외부 네트워크의 경계 지점에서 패킷을 조사하여 허용과 차단 여부를 결정하면 되므로 동작 방식이 매우 간단하여 구현하기가 쉽다.
② 고속 처리 : 단지 네트워크와 트랜스포트 프로토콜의 헤더 정보를 모니터링하여 필터링 규칙과 비교하면 되므로 고속으로 처리할 수 있다.
③ 투명성 : 사용자는 필터링 방화벽의 존재를 알지 못하는 상태에서 보안 서비스를 제공받을 수 있다.
- 패킷 필터링의 단점
패킷 필터링 방법은 TCP/IP 헤더 정보를 이용하여 필터링을 하는 방법으로 단순하면서도 효율성이 높은 방법이다. 하지만..
· 응용 서비스별로 정교한 제어가 불가능하다.
· 로그 기능과 감사 기능이 부족하다.
· 대부분의 패킷 필터 침입차단시스템은 고급 사용자 인증 구조를 지원하지 않는다. 상위계층의 기능을 가지고 있지 않기 때문
· 패킷 필터 침입차단시스템은 일반적으로 네트워크 계층주소 스푸핑같은 TCP/IP 명세와 프로토콜 스택 안의 문제점을 이용하는 공격이나 그것을 악용하는 공격에 취약하다.
· 접근제어 결정에 사용하는 변수의 개수가 적기 때문에 패킷 필터 침입차단시스템은 구성을 잘못하게 되면 보안에 허점이 생기기 쉽다.
· 패킷 단편화 공격을 탐지할 수 없다.
NAT(Network Address Translation)
패킷 필터링과 상태 유지 방화벽은 NAT이라 불리는 제2의 보안체제를 제공한다.
네트워크 주소 변환(NAT)은 사설 주소와 범용 주소의 매핑을 제공하고 동시에 가상 사설 네트워크를 지원하는 기술이다. 이 기술은 한 곳에서 내부 통신을 위해 사설 주소를 사용하고 다른 네트워크와의 통신에는 범용 인터넷 주소를 사용할 수 있도록 해준다.
적은 숫자의 유효 IP만으로도 많은 시스템이 인터넷에 접속할 수 있게 하는 네트워크 서비스다. 외부에서 내부 네트워크로 직접적인 접근이 불가능하게 되므로 네트워크 보안효과도 가져올 수 있다.
- 주소 변환
NAT 라우터를 통해 나가는 모든 패킷은 근원지 주소를 범용 NAT 주소로 변환한다. NAT 라우터를 통과하여 들어오는 모든 패킷은 목적지 주소를 적절한 사설 주소로 변환한다.
- 하나의 IP 주소 사용 (Static NAT)
가장 간단한 형태로 변환 테이블은 단지 사설 주소와 외부 주소 2개의 열만 가지는 것이다. 나가는 패킷의 목적지 주소를 변경할 때 라우터는 패킷이 어디로 가는지 목적지 주소를 표기해 둔다.
- IP 주소의 풀 사용 (Dynamic NAT)
NAT 라우터가 하나의 범용 주소만 사용한다면 하나의 외부 호스트에 하나의 사설 네트워크 호스트만 접속할 수 있다. 이런 제한을 제거하기 위해 NAT 라우터는 범용 주소의 풀을 사용할 수 있다.
- IP 주소와 포트 주소 사용 (PAT, Port Address Translation)
외부 서버 프로그램과 사설 네트워크 호스트 간에 다중 연결을 설정하기 위해서 변환 데이터에 더 많은 정보가 필요하다.
변환 테이블에 2개 대신 5개의 열이 있다면 근원지와 수신지의 포트 주소와 전송 계층 프로토콜을 포함하여 모호성을 제거할 수 있다.
Stateful 패킷 검사 침입차단시스템(상태유지 방화벽)
패킷 필터링 침입차단시스템과 마찬가지로 동일한 패킷 정보를 검토하지만 TCP 연결에 관한 정보를 기록한다.
또한 순서번호를 추적해서 순서번호를 이용한 세션 하이재킹 같은 공격을 막는다.
네트워크와 전송 계층에서 동작한다. 장비에 따라 조금씩 다르지만, 연결이 시작되면 방화벽은 패킷의 모든 계층을 조사한다.
- 작동 원리
Stateful packet inspector는 데이터 링크 계층에서 SYN 패킷을 전송받으면 접근제어 정책에 의해 상태 테이블에 남겨 접근 허용여부를 결정한다.
만약, 접근이 금지된 패킷일 경우에는 로그를 저장하고 전송을 수행하지 않으며 접근이 허용된 패킷은 네트워크 계층으로 전송시킨다.
SYN 패킷이 아닐 경우에는 상태 테이블의 패킷정보 여부를 검사하고 존재하면 네트워크 계층으로 패킷을 전송시킨다. 패킷정보가 상태 테이블에 존재하지 않을 경우는 접근제어 정책에 따라 전송여부를 결정한다.
- 장단점
패킷 필터링 방화벽과 동일한 성능을 수행하고 패킷 상태 정보에 대한 보안성을 높일 수 있다.
또한, 네트워크 계층 이하에서 동작하는 Stateful packet inspector 모듈을 통해 전체 계층에 대한 상태를 조사할 수 있으며 사용자의 특별한 설정 없이 투명성을 제공한다.
그러나 SYN 패킷의 검사를 시작으로 상태 테이블을 유지하는 방법을 사용하기 때문에 연결 요청의 첫 헤더가 공격당할 경우에는 잘못된 상태 테이블을 구성할 수 있다는 단점이 있다.
+ 심층 패킷 검사(deep packet inspection, DPI)
네트워크 트래픽을 조정하기 위해 쓰이는 기술이다. 데이터 파일을 검토하고 사업상 중요한 파일에 높은 우선순위를 부여하여 덜 중요한 온라인 물질을 정리한다.
프락시 방화벽
proxy 서비스는 침입차단시스템 호스트에서 실행되는 전문화된 애플리케이션이나 혹은 서버 프로그램으로서 침입차단시스템에서 사용되는 배스천호스트에 설치되어 운영된다.
프락시 서비스는 두 가지의 구성요소인 프락시 서버와 프락시 클라이언트를 필요로 한다.
- 장점
가능하면 응용프로그램 계층까지 전체적으로 패킷 안의 정보를 검사한다.
패킷 필터링보다 나은 보안을 제공한다.
보호되는 시스템과 보호되지 않는 시스템 사이의 연결을 차단시킨다.
- 단점
몇몇 프락시 방화벽은 제한된 응용프로그램 번호만을 지원한다.
트래픽 성능이 저하된다.
응용프로그램 기반 프록시 방화벽은 확장성과 성능에 대한 논점을 일으킨다.
클라이언트/서버 모델을 깨뜨리며, 보안을 위해서는 바람직하지만 몇몇의 경우 기능상의 단점이 있다.
배스천호스트(Bastion Host)
침입차단 S/W가 설치되어 내·외부 네트워크 사이에서 게이트웨이 역할을 수행하며 철저한 보안 방어기능이 구축되어 있는 컴퓨터시스템을 말한다.
배스천호스트는 외부 네트워크에 공개되기 때문에 침입차단시스템 구성에서 가장 중요한 역할을 한다.
내부 네트워크 사용자의 주요 접속점으로 인터넷에 노출되어 공격에 취약하므로 불필요한 사용자 계정, 중요하지 않은 명령 및 파일은 삭제하고 운영하는 것이 좋다.
- 배스천호스트 설계와 구축의 기본 원리
· 단순한 구조
배스천호스트는 가능한 단순하게 구성한다. 단순하면 단순할수록 보안 정책을 쉽게 구성할 수 있다.
· 비상 대비책 강구
배스천호스트의 손상에 대한 대비책을 강구한다. 배스천호스트가 손상되면 내부 네트워크를 보호할 수 없게 되니 미리 대비책을 세우는 것이 피해를 최소화할 수 있다.
· 로그 백업 기능
시스템 로그에 대한 백업 방법을 강구한다. 배스천호스트에서 수행되었던 모든 내용이 로그로 기록되면 정확하게 배스천호스트가 무엇을 했는가를 확인하기 위해 로그를 조사할 수 있고 무엇이 잘못되었는가를 확인함으로써 위험이 재발되는 것을 방지할 수 있다.
응용프로그램 수준 프락시 방화벽(Application Level Proxy)
패킷을 응용프로그램 계층까지 검사한다. 회선 수준 프락시가 세션 계층까지 검사하는 능력을 가지는 반면에 응용프로그램 수준 프락시는 패킷 전체를 이해하고 패킷 내의 내용에 기반을 두어 접근 결정을 내린다.
FTP GET과 FTP PUT 명령어를 구분하며 이렇게 세분화된 수준의 정보를 바탕으로 접근 결정을 내린다.
- 특징
응용계층 게이트웨이는 응용 서비스마다 각각 다른 응용 게이트웨이를 구현하여 보다 안전하게 내부 네트워크의 시스템을 보호할 수 있다. 또한 응용 서비스 사용에 따른 기록 및 감사 추적이 가능하고 강력한 인증 서비스를 제공하며 융통성이 좋다는 장점이 있다.
단순한 3계층 장비가 아니기 때문에 스푸핑 공격 같은 다른 정교한 공격에 대해 대응할 수 있다.
- 장단점
응용 게이트웨이 시스템은 패킷 필터링 방식에 비하여 상당히 정교한 제어가 가능하다. 그러나 응용 게이트웨이 시스템은 다음과 같은 단점을 가지고 있다.
· 높은 대역폭 혹은 실시간 응용프로그램에 일반적으로 적합하지 않다.
· 새로운 네트워크 응용프로그램과 프로토콜 지원에 제한적이다.
· 응용 서비스별로 별도의 프락시를 필요로 한다.
회선 레벨 게이트웨이(circuit-level gateway)
서킷 레벨 게이트웨이는 SOCKS 프로토콜을 사용하는 프락시 서버이다. 이것은 외부와 내부 네트워크 사이에 안전한 프락시 데이터 채널을 설정하기 위해 메커니즘을 구축하고 내부 네트워크에 있는 호스트를 보호하는 목적으로 사용한다.
응용 계층 게이트웨이의 경우 내부 서버 보호를 목적으로 하지만, 서킷 레벨 게이트웨이는 내부 네트워크의 호스트 보호를 목적으로 한다. 내부 호스트가 외부 접속을 요청하면 서킷 레벨 게이트웨이는 IP 주소를 서킷 레벨 게이트웨이 IP 주소로 변환하여 보내기 때문에 내부 호스트의 정보를 노출시키지 않는다.
서킷 레벨 게이트웨이는 서비스에 대하여 유연하게 대처할 수 있으며 실제 클라이언트 요청이 전송 또는 세션 계층에서 이루어지므로 서비스마다 개별 프락시 서버를 둘 필요가 없다.
- 장단점
장점은 응용 트래픽에 대한 조사가 필요 없으므로 응용 게이트웨이 방화벽에 비해 처리 속도가 빠르다는 점이다.
그리고 모든 접속은 방화벽을 통해 이루어져야 하고 방화벽을 통해 연결 허용 여부를 판단할 수 있으므로 직접 연결을 허용하는 패킷 필터링 방화벽에 비해 높은 수준의 보안 서비스를 제공한다.
반면 응용 트래픽을 조사하지 않으므로 응용 서비스를 이용하여 공격용 트래픽을 전송할 수 있는 신뢰할 수 없는 사용자에 대해 사용할 경우 위험이 따른다.
침입차단시스템의 종류(구축 형태)
스크리닝 라우터 구조(Screening Router Architecture)
라우터를 이용해 각 인터페이스에 들어오고 나가는 패킷을 필터링하여 내부 서버로의 접근을 가려내는 역할을 한다. (라우팅 테이블이 결정)
연결에 대한 요청이 입력되면 IP, TCP/UDP의 패킷 헤더를 분석하여 송신지/목적지의 주소와 포트번호, 제어필드의 내용을 분석하고 패킷 필터 규칙에 적용하여 트래픽을 통과시킬 것인지 아니면 차단할 것인지를 판별하는 방법이다.
스크린 라우터는 일반 패킷과 특수한 프로토콜에 입각한 포트로 전송되는 패킷을 구별하는 라우터의 능력 때문에 패킷 필터 라우터라고도 한다.
이중 네트워크 호스트 구조(Dual-Homed Host Architecture)
듀얼홈드는 두 개의 인터페이스를 가지는 장비를 말하며, 하나의 인터페이스는 외부 네트워크와 연결되고 다른 인터페이스는 내부 네트워크로 연결되며 라우팅 기능이 없는 방화벽을 설치하는 형태이다.
물론 듀얼 홈드 게이트웨이가 내/외부 네트워크 간의 패킷을 전달하는 라우터 기능은 하지만, 침입차단시스템으로 사용될 경우에는 양 네트워크 간의 직접적인 라우팅이나 서버에 대한 직접적인 접근은 허용되지 않는다.
듀얼 홈드 게이트웨이가 배스천호스트 역할을 수행하며 네트워크들이 서로 데이터를 공유할 수 있게 도와줌으로써 여러 개의 네트워크가 동시에 통신할 수 있도록 지원하는 변환기 역할을 한다.
각종 로그 정보를 생성 및 관리하기가 쉬우며 정보 지향적인 공격을 방어할 수 있다. 그러나 제공되는 서비스가 증가할수록 프락시 소프트웨어의 가격이 증가한다. 또한 게이트웨이가 손상되거나 로그인 정보가 누출되면 내부 네트워크를 보호할 수 없다.
스크린드 호스트 게이트웨이 구조(Screened Host Gateway)
듀얼 홈드 게이트웨이와 스크리닝 라우터를 결합한 형태로 내부 네트워크에 놓여 있는 배스천호스트와 외부 네트워크 사이에 스크리닝 라우터를 설치하여 구성한다.
패킷 필터링 또는 스크리닝 라우터의 한 포트를 외부 네트워크에 연결, 다른 포트는 내부 네트워크에 연결하는 구조로 되어있다.
스크린드 서브넷 구조(Screened Subnet Architecture)
스크리닝 라우터들 사이에 듀얼홈드 게이트웨이가 위치하는 구조로 인터넷과 내부 네트워크 사이에 DMZ라는 네트워크 완충지역 역할을 하는 서브넷을 운영하는 방식이다.(3중 방어 체계. 가장 안전한 구성)
스크린드 서브넷에 설치된 배스천호스트는 프락시 서버를 이용하여 명확히 진입이 허용되지 않은 모든 트래픽을 거절하는 기능을 수행한다.
외부에서 접속할 수 있어야 하며 보호되어야 할 시스템은 주로 DMZ 네트워크에 배치한다. 보통 DMZ 안에 있는 시스템은 회사의 웹 서버, 이메일 서버 또는 DNS 서버와 같이 반드시 외부로 연결할 수 있어야 한다. (중요한 정보들이 있는 DB 서버 등과 같은 시스템들은 내부 네트워크에 설치)
허니팟 시스템은 일반적으로 스크린드 서브넷 또는 DMZ에 위치하며 실제적인 운용 컴퓨터 대신에 공격자를 유인하는 컴퓨터이다. 허니팟 시스템이 공격자를 유인할 수 있도록 관리자는 이용하기 쉬운 서비스와 포트를 사용 가능으로 설정한다.
iptables
리눅스 커널에 내장된 netfilter 기능을 관리하기 위한 툴이며, rule 기반의 패킷 필터링 기능을 제공한다.
connection tracking 기능을 제공한다.
· 이 상태추적 기능은 방화벽은 통과하는 모든 패킷에 대한 연결 상태를 추적하여 이 정보를 메모리에 기억하고 있다가 기존의 연결을 가장하여 접근할 경우 메모리에 저장된 상태 목록과 비교하여 적합하면 통과하고 그렇지 않으면 거부하는 기능을 말한다.
· 메모리상에 상태추적 테이블을 생성하여 연결 정보를 가지고 있는 모든 송수신 패킷을 기록하고 검사한다.
· 연결된 상태의 패킷인 것처럼 위조한 패킷의 접근을 차단할 수 있으므로 보안상의 장점을 가진다.
NAT 기능을 제공한다.
패킷레벨에서의 로깅기능을 제공한다.
확장모듈을 통한 다양한 기능을 제공한다.
- 용어들
table : iptables가 제공하는 기능을 의미한다. 대표적으로 패킷을 필터링하는 filter 테이블과 NAT 기능을 제공하는 nat 테이블이 있다.
chain : 체인은 패킷이 이동하는 경로를 의미한다.
· INPUT 체인 : 방화벽을 최종 목적지로 하는 체인
· OUTPUT 체인 : 방화벽을 최초 출발지로 하는 체인
· FORWARD 체인 : 방화벽을 통과하는 채널을 의미하는 것으로 방화벽을 별도의 서버로 구성해서 서비스할 때 사용하는 체인
- 사용법
iptables 테이블명 체인명 룰설명 타깃지정 |
체인에 룰 설정시 가장 중요한 점은 룰을 지정한 순서이다. 가장 먼저 설정된 룰부터 순서대로 매칭여부를 검사하여 일치할 경우 해당 정책을 따른다. 모든 룰에 매칭되지 않는다면 default 정책을 따른다.
· 테이블 지정하기
iptables -t 테이블명
테이블명에는 filter,nat 등이 올 수 있으며 명시하지 않으면 default로 filter 테이블이 적용된다.
· 룰을 설정할 체인 지정
iptables - [ A | I | D | F | P ] 체인명
filter 테이블인 경우 INPUT, OUTPUT, FORWARD 체인이 올 수 있다.
A : append 모드, 해당 체인의 제일 마지막에 룰을 추가한다.
I : insert 모드, 해당 체인의 첫 행에 룰을 추가한다. 행번호를 지정하면 특정 위치에 룰을 추가할 수 있다.
D : delete 모드, 행 번호를 지정하여 특정 위치의 룰을 삭제할 수 있다.
F : flush 모드, 해당 체인의 모든 룰을 삭제한다.
P : 해당 체인의 default 정책을 설정한다.
· 룰 설정
-p : 프로토콜을 지정한다.
-s : 출발지 주소를 지정한다. 명시하지 않으면 any ip
-d : 도착지 주소를 지정한다. 명시하지 않으면 any ip
--sport : 출발지 포트를 지정한다.
--dport : 목적지 포트를 지정한다.
-i : 패킷이 들어오는 인터페이스를 지정한다.
-o : 패킷이 나가는 인터페이스를 지정한다.
· 타깃지정
-j : 룰에 매칭될 때 적용할 정책 또는 타깃체인을 지정한다.
주요 정책에는 ACCEPT, DROP, REJECT, LOG 등이 있다. reject가 drop과 다른 점은 drop 시에는 차단과 함께 아무른 응답을 하지 않지만 reject는 icmp 에러 응답을 전송한다.
- iptables 사용 예시
① 출발지 주소가 192.168.159.131인 모든 접속 포트 차단
iptables -A INPUT -s 192.168.159.131 -j DROP
② 출발지 주소가 192.168.159.131(-s 192.168.159.131)인 icmp 프로토콜 패킷을 거부하는 규칙 추가
iptables -A INPUT -p icmp -s 192.168.159.131 -j DROP
③ 목적지 포트가 23번인 tcp 프로토콜 패킷을 거부하는 규칙을 추가
iptables -A INPUT -p tcp --dport 23 -j DROP
'정보보안기사' 카테고리의 다른 글
최신(아님) 네트워크 보안기술 (0) | 2023.04.30 |
---|---|
VPN (0) | 2023.04.29 |
IDS/IPS (0) | 2023.04.25 |
네트워크 기반 공격에 이해 - 2 (2) | 2023.04.23 |
네트워크 기반 공격의 이해 - 1 (0) | 2023.04.21 |