FreeBSD 핸드북 : 보안 : 방화벽 : 방화벽이란?
Previous: 방화벽
Next: IPFW가 하는 일은?

6.4.1. 방화벽이란?

오늘날 인터넷에서 공통적으로 사용하는 방화벽에는 두가지 서로 다른 종류가 있습니다. 첫번째 형태는 패킷 필터링 게이트웨이라고 부르는 것이 더 적절한데, 여러곳에 연결된 기계의 커널이 일련의 규칙에 의거해 패킷을 전달할지 막을지를 결정합니다. 두번째 형태는 프록시 서버로 알려져 있는데, 커널 패킷 전달 기능을 막은 여러곳에 연결된 기계에 의해 인증을 제공하고 패킷을 전달하는 대몬에 의존합니다.

종종 사이트는 두 종류의 방화벽을 결합하여 어떤 기계만 (배스천(bastion, 요새) 호스트라고 알려진)이 패킷 필터링 라우터를 통해 내부 네트워크로 패킷을 보내도록 허용합니다. 프록시 서비스는 배스천 호스트에서 동작하며, 일반적으로 보통의 인증 방법보다 더 안전합니다.

FreeBSD에는 커널 패킷 필터(IPFW라고 알려진)가 있는데, 이는 이 섹션에서 앞으로 초점을 맞출 부분입니다. 프록시 서버는 서드파티 소프트웨어를 사용하여 구성할 수 있는데, 그런 프록시 서버에는 여러가지가 있어서 이 문서에서 다루기는 불가능합니다.

6.4.1.1. 패킷 필터링 라우터

라우터는 둘 이상의 네트워크에서 패킷을 전달하는 기계입니다. 패킷 필터링 라우터는 커널 안에 별도의 코드를 갖고 있어서 각 패킷을 전달 여부를 결정하는 일련의 규칙과 비교합니다. 대부분의 최근 IP 라우팅 소프트웨어는 그 안에 패킷 필터링 코드가 있어서 기본적으로 모든 패킷을 전달하도록 합니다. 필터를 사용하기 위해서는 필터링 코드에 대한 규칙을 정의할 필요가 있는데, 그래야 패킷의 전달을 허용할지를 결정할 수 있습니다.

패킷이 전달될지 아닐지를 결정하기 위해서, 코드는 일련의 규칙 중 이 패킷 헤더의 내용과 일치하는 규칙을 찾아봅니다. 일단 규칙을 찾았으면, 규칙에 쓰여진 행동을 취합니다. 규칙은 패킷을 버릴 수도 있고, 전달할 수도 있고, 보낸 사람에게 ICMP 메시지를 되돌려보낼 수도 있습니다. 첫번째로 만난 규칙만 세므로, 규칙은 순서대로 찾아보게 됩니다. 따라서 규칙의 목록은 ``규칙 사슬(rule chain)''이라고 부르기도 합니다.

패킷 검색의 기준은 사용하는 소프트웨어에 따라 달라집니다만, 보통 패킷의 소스 IP 주소, 도착 IP 주소, 소스 포트 번호, 도착 포트 번호(포트를 지원하는 프로토콜에 대해), 패킷 형태(UDP, TCP, ICMP 등등)에 따라 달라지는 규칙을 지정할 수 있습니다.

6.4.1.2. 프록시 서버

프록시 서버는 일반 시스템 대몬(telnetd, ftpd 등등)을 특별한 서버로 바꾼 기계입니다. 이 서버는 프록시 서버라고 불리는데, 일반적으로 연결이 될 것들만 허용하기 때문입니다. 여러분은 방화벽 호스트에서 (예를 들면)프록시 telnet 서버를 실행할 수 있으며, 밖에서 사람들은 여러분의 telnet 서버에 접속하고, 어떤 인증 메카니즘을 통과하여 내부 네트워크의 접근을 허용받습니다(다르게는, 프록시 서버는 내부 네트워크에서 오는 신호를 밖으로 보내주도록 하는데 사용할 수 있습니다).

프록시 서버는 일반적으로 보통 서버보다 더 안전하며, 누군가가 여러분이 사용한 암호를 알려 하면 암호의 사용 기간이 즉시 만료되어 시스템의 접근을 할 수 없게 하는 ``원타임'' 암호 시스템과 같이 종종 사용 가능한 여러가지 폭넓은 인증 메카니즘을 갖고 있습니다. 이들은 실제로 호스트 기계로의 접근을 사용자에게 허용하지 않으므로, 여러분의 보안 시스템에 뒷문을 설치하려는 사람들을 더 어렵게 합니다.

프록시 서버는 종종 접근을 더 이상의 접근을 제한하는 방법을 갖고 있으므로, 일정 호스트만 서버에 접근이 가능하기도 하며, 대상 기계에 접속할 수 있는 사용자를 제한하도록 설정할 수도 있습니다. 다시 말하면, 사용할 수 있는 기능은 대략 여러분이 선택한 프록시 소프트웨어에 달려 있습니다.


FreeBSD 핸드북 : 보안 : 방화벽 : 방화벽이란?
Previous: 방화벽
Next: IPFW가 하는 일은?