웹사이트 검색

pfSense 방화벽의 DNS 블랙리스트용 pfBlockerNg 설치 및 구성


이전 기사에서는 pfSense로 알려진 강력한 FreeBSD 기반 방화벽 솔루션의 설치에 대해 논의했습니다. 이전 기사에서 언급한 것처럼 pfSense는 별다른 작업을 하지 않고 방치되어 있는 오래된 컴퓨터를 활용할 수 있는 매우 강력하고 유연한 방화벽 솔루션입니다.

이 기사에서는 pfBlockerNG라는 훌륭한 pfsense용 추가 기능 패키지에 대해 설명합니다.

pfBlockerNG는 방화벽 관리자에게 기존 상태 저장 L2/L3/L4 방화벽 이상으로 방화벽 기능을 확장할 수 있는 기능을 제공하기 위해 pfSense에 설치할 수 있는 패키지입니다.

공격자와 사이버 범죄자의 역량이 지속적으로 발전함에 따라 이들의 노력을 저지하기 위한 방어 수단도 마련되어야 합니다. 컴퓨팅 세계의 모든 것과 마찬가지로 모든 제품을 해결하는 하나의 솔루션은 없습니다.

pfBlockerNG는 pfSense에 방화벽이 IP 주소의 지리적 위치, 리소스의 도메인 이름 또는 특정 웹사이트의 Alexa 등급과 같은 항목을 기반으로 허용/거부 결정을 내릴 수 있는 기능을 제공합니다.

도메인 이름과 같은 항목을 제한하는 기능은 관리자가 알려진 불량 도메인(즉, 맬웨어, 불법 콘텐츠 또는 기타 항목이 있는 것으로 알려진 도메인)에 연결하려는 내부 시스템의 시도를 저지할 수 있다는 점에서 매우 유리합니다. 교활한 데이터 조각).

이 가이드에서는 pfBlockerNG 패키지를 사용하도록 pfSense 방화벽 장치를 구성하는 과정과 pfBlockerNG 도구에 추가/구성할 수 있는 도메인 차단 목록의 몇 가지 기본 예를 안내합니다.

요구사항

이 기사에서는 몇 가지 가정을 하고 pfSense에 대한 이전 설치 기사를 기반으로 작성합니다. 가정은 다음과 같습니다.

  • pfSense는 이미 설치되어 있으며 현재 구성된 규칙이 없습니다(새 상태).
  • 방화벽에는 WAN과 LAN 포트(2개 포트)만 있습니다.
  • LAN 측에서 사용되는 IP 체계는 192.168.0.0/24입니다.

pfBlockerNG는 이미 실행 중/구성된 pfSense 방화벽에서 구성될 수 있습니다. 여기서 이러한 가정을 하는 이유는 단순히 온전한 정신을 위해서이며 완료될 많은 작업은 아직 깨끗하지 않은 pfSense 상자에서 수행될 수 있습니다.

실험실 다이어그램

아래 이미지는 본 글에서 사용할 pfSense 환경의 Lab 다이어그램입니다.

pfSense용 pfBlockerNG 설치

실험실 준비가 완료되었으면 이제 시작할 시간입니다! 첫 번째 단계는 pfSense 방화벽용 웹 인터페이스에 연결하는 것입니다. 이 실습 환경에서는 주소가 192.168.0.1인 게이트웨이 역할을 하는 방화벽과 함께 192.168.0.0/24 네트워크를 사용하고 있습니다. 웹 브라우저를 사용하여 'https://192.168.0.1'으로 이동하면 pfSense 로그인 페이지가 표시됩니다.

일부 브라우저는 SSL 인증서에 대해 불만을 표시할 수 있습니다. 인증서는 pfSense 방화벽에 의해 자체 서명되므로 이는 정상적인 현상입니다. 경고 메시지를 안전하게 수락할 수 있으며 원하는 경우 합법적인 CA에서 서명한 유효한 인증서를 설치할 수 있지만 이는 이 문서의 범위를 벗어납니다.

'고급'을 성공적으로 클릭한 후 '예외 추가...'를 클릭하여 보안 예외를 확인합니다. 그러면 pfSense 로그인 페이지가 표시되고 관리자가 방화벽 어플라이언스에 로그인할 수 있습니다.

기본 pfSense 페이지에 로그인한 후 '시스템' 드롭다운을 클릭한 다음 '패키지 관리자'를 선택합니다.

이 링크를 클릭하면 패키지 관리자 창으로 변경됩니다. 로드할 첫 번째 페이지는 현재 설치된 모든 패키지이며 비어 있습니다(이 가이드에서는 pfSense를 새로 설치했다고 가정합니다). pfSense에 대해 설치 가능한 패키지 목록을 보려면 '사용 가능한 패키지' 텍스트를 클릭하세요.

'사용 가능한 패키지' 페이지가 로드되면 '검색어' 상자에 'pfblocker'를 입력하고 '검색<을 클릭합니다. /강하게>'. 반환되는 첫 번째 항목은 pfBlockerNG여야 합니다. pfBlockerNG 설명 오른쪽에 있는 '설치' 버튼을 찾아 '+'를 클릭하여 패키지를 설치합니다.

페이지가 다시 로드되고 '확인'을 클릭하여 관리자에게 설치 확인을 요청합니다.

확인되면 pfSense가 pfBlockerNG 설치를 시작합니다. 설치 프로그램 페이지에서 벗어나지 마십시오! 페이지에 성공적인 설치가 표시될 때까지 기다리십시오.

설치가 완료되면 pfBlockerNG 구성을 시작할 수 있습니다. 완료해야 할 첫 번째 작업은 pfBlockerNG가 올바르게 구성되면 어떤 일이 발생하는지에 대한 몇 가지 설명입니다.

pfBlockerNG가 구성되면 pfBlockerNG 소프트웨어를 실행하는 pfSense 방화벽이 웹사이트에 대한 DNS 요청을 차단해야 합니다. 그런 다음 pfBlockerNG는 잘못된 IP 주소에 매핑된 알려진 잘못된 도메인 목록을 업데이트합니다.

pfSense 방화벽은 불량 도메인을 필터링할 수 있도록 DNS 요청을 가로채야 하며 UnBound라는 로컬 DNS 확인자를 사용합니다. 이는 LAN 인터페이스의 클라이언트가 pfSense 방화벽을 DNS 확인자로 사용해야 함을 의미합니다.

클라이언트가 pfBlockerNG의 차단 목록에 있는 도메인을 요청하면 pfBlockerNG는 해당 도메인에 대해 잘못된 IP 주소를 반환합니다. 프로세스를 시작합시다!

pfSense용 pfBlockerNG 구성

첫 번째 단계는 pfSense 방화벽에서 UnBound DNS 확인자를 활성화하는 것입니다. 이렇게 하려면 '서비스' 드롭다운 메뉴를 클릭한 다음 'DNS 확인자'를 선택하세요.

페이지가 다시 로드되면 DNS 확인자 일반 설정을 구성할 수 있습니다. 구성해야 할 첫 번째 옵션은 'DNS 확인자 활성화' 확인란입니다.

다음 설정은 DNS 수신 포트(일반적으로 포트 53)를 설정하고, DNS 확인자가 수신해야 하는 네트워크 인터페이스(이 구성에서는 LAN 포트와 로컬 호스트여야 함)를 설정한 다음 송신 포트(반드시 포트 53)를 설정하는 것입니다. 이 구성에서는 WAN이어야 합니다).

선택이 완료되면 페이지 하단의 '저장'을 클릭한 다음 상단에 표시되는 '변경사항 적용' 버튼을 클릭하세요. 그 페이지.

다음 단계는 구체적으로 pfBlockerNG 구성의 첫 번째 단계입니다. '방화벽' 메뉴 아래의 pfBlockerNG 구성 페이지로 이동한 다음 'pfBlockerNG'를 클릭합니다.

pfBlockerNG가 로드되면 먼저 'DNSBL' 탭을 클릭하여 pfBlockerNG를 활성화하기 전에 DNS 목록 설정을 시작하세요.

'DNSBL' 페이지가 로드되면 pfBlockerNG 메뉴 아래에 새로운 메뉴 세트가 나타납니다(아래 녹색으로 강조 표시됨). 해결해야 할 첫 번째 항목은 'DNSBL 활성화' 확인란(아래 녹색으로 강조 표시됨)입니다.

이 확인란을 선택하면 LAN 클라이언트의 DNS 요청을 검사하기 위해 pfSense 상자에서 UnBound DNS 확인자를 사용해야 합니다. UnBound가 이전에 구성되었으므로 걱정하지 마세요. 하지만 이 상자를 선택해야 합니다! 이 화면에서 입력해야 할 또 다른 항목은 'DNSBL 가상 IP'입니다.

이 IP는 개인 네트워크 범위에 있어야 하며 pfSense가 사용되는 네트워크의 유효한 IP가 아니어야 합니다. 예를 들어 192.168.0.0/24의 LAN 네트워크는 개인 IP이고 LAN 네트워크의 일부가 아니기 때문에 10.0.0.1 IP를 사용할 수 있습니다.

이 IP는 통계를 수집하고 pfBlockerNG에 의해 거부되는 도메인을 모니터링하는 데 사용됩니다.

페이지를 아래로 스크롤하면 언급할 만한 몇 가지 설정이 더 있습니다. 첫 번째는 'DNSBL 청취 인터페이스'입니다. 이 설정과 대부분의 설정에서는 이 설정을 'LAN'으로 설정해야 합니다.

다른 설정은 'DNSBL IP 방화벽 설정' 아래의 '목록 작업'입니다. 이 설정은 DNSBL 피드가 IP 주소를 제공할 때 어떤 일이 발생해야 하는지를 결정합니다.

pfBlockerNG 규칙은 원하는 수의 작업을 수행하도록 설정할 수 있지만 대부분 '모두 거부'가 원하는 옵션이 될 것입니다. 이렇게 하면 DNSBL 피드의 IP/도메인에 대한 인바운드 및 아웃바운드 연결이 방지됩니다.

항목을 선택한 후 페이지 하단으로 스크롤하여 '저장' 버튼을 클릭하세요. 페이지가 다시 로드되면 사용해야 하는 DNS 차단 목록을 구성할 차례입니다.

pfBlockerNG는 관리자의 선호도에 따라 독립적으로 또는 함께 구성할 수 있는 두 가지 옵션을 관리자에게 제공합니다. 두 가지 옵션은 다른 웹 페이지나 EasyList의 수동 피드입니다.

다양한 EasyList에 대한 자세한 내용을 보려면 프로젝트 홈페이지(https://easylist.to/)를 방문하세요.

pfBlockerNG EasyList 구성

먼저 EasyLists에 대해 논의하고 구성해 보겠습니다. 대부분의 개인 사용자는 이러한 목록이 충분할 뿐만 아니라 관리상의 부담도 가장 적다는 것을 알게 될 것입니다.

pfBlockerNG에서 사용할 수 있는 두 가지 EasyList는 '요소 숨김이 없는 EasyList'와 'EasyPrivacy'입니다. 이 목록 중 하나를 사용하려면 먼저 페이지 상단의 'DNSBL EasyList'를 클릭하세요.

페이지가 다시 로드되면 EasyList 구성 섹션을 사용할 수 있습니다. 다음 설정을 구성해야 합니다.

  • DNS 그룹 이름 – 사용자가 선택하지만 특수 문자는 사용할 수 없습니다.
  • 설명 – 사용자 선택, 특수 문자 허용
  • EasyList Feeds State – 구성된 목록이 사용되는지 여부
  • EasyList 피드 – 사용할 목록(EasyList 또는 EasyPrivacy) 둘 다 추가할 수 있습니다.
  • 헤더/라벨 – 사용자 선택, 특수 문자 없음

다음 섹션은 목록의 어느 부분을 차단할지 결정하는 데 사용됩니다. 다시 말하지만 이는 모두 사용자 기본 설정이며 원할 경우 여러 개를 선택할 수 있습니다. 'DNSBL – EasyList 설정'의 중요한 설정은 다음과 같습니다.

  • 카테고리 – 사용자 기본 설정 및 여러 항목을 선택할 수 있습니다.
  • 목록 작업 – DNS 요청을 검사하려면 '결합 해제'로 설정해야 합니다.
  • 업데이트 빈도 – pfSense가 불량 사이트 목록을 업데이트하는 빈도

EasyList 설정이 사용자 기본 설정에 맞게 구성되면 반드시 페이지 하단으로 스크롤하여 '저장' 버튼을 클릭하세요. 페이지가 다시 로드되면 페이지 상단으로 스크롤하여 '업데이트' 탭을 클릭하세요.

업데이트 탭에서 '새로고침' 라디오 버튼을 선택한 다음 '모두' 라디오 버튼을 선택하세요. 이는 이전의 EasyList 구성 페이지에서 선택한 차단 목록을 얻기 위해 일련의 웹 다운로드를 통해 실행됩니다.

이 작업은 수동으로 수행해야 합니다. 그렇지 않으면 예약된 크론 작업이 완료될 때까지 목록이 다운로드되지 않습니다. 변경 사항이 있을 때마다(목록 추가 또는 제거) 이 단계를 실행해야 합니다.

오류가 있는지 아래 로그 창을 확인하세요. 모든 것이 계획대로 진행되었다면 방화벽 LAN 측의 클라이언트 시스템은 pfSense 방화벽에 알려진 불량 사이트를 쿼리하고 그 대가로 불량 IP 주소를 받을 수 있어야 합니다. 다시 말하지만 클라이언트 시스템은 pfsense 상자를 DNS 확인자로 사용하도록 설정되어야 합니다!

위의 nslookup에서 해당 URL은 이전에 pfBlockerNG 구성에서 구성된 잘못된 IP를 반환한다는 점에 유의하세요. 이것이 원하는 결과입니다. 이로 인해 '100pour.com' URL에 대한 모든 요청이 잘못된 IP 주소 10.0.0.1로 전달됩니다.

pfSense에 대한 DNSBL 피드 구성

AdBlock EasyLists와 달리 pfBlockerNG 내에서는 다른 DNS 블랙리스트를 사용할 수 있는 기능도 있습니다. 맬웨어 명령 및 제어, 스파이웨어, 애드웨어, Tor 노드 및 기타 모든 종류의 유용한 목록을 추적하는 데 사용되는 수백 개의 목록이 있습니다.

이러한 목록은 종종 pfBlockerNG로 가져와 추가 DNS 블랙리스트로 사용될 수도 있습니다. 유용한 목록을 제공하는 리소스가 꽤 많이 있습니다.

  • https://forum.pfsense.org/index.php?topic=114499.0
  • https://forum.pfsense.org/index.php?topic=102470.0
  • https://forum.pfsense.org/index.php?topic=86212.0

위의 링크는 회원들이 사용하는 목록의 대규모 컬렉션을 게시한 pfSense 포럼의 스레드를 제공합니다. 저자가 즐겨찾는 목록 중 일부는 다음과 같습니다.

  • http://adaway.org/hosts.txt
  • http://www.malwaredomainlist.com/hostslist/hosts.txt
  • http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext
  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
  • https://gist.githubusercontent.com/BBcan177/4a8bf37c131be4803cb2/raw

이번에도 수많은 다른 목록이 있으며 저자는 개인이 더 많은/다른 목록을 찾아볼 것을 강력히 권장합니다. 그래도 구성 작업을 계속해 보겠습니다.

첫 번째 단계는 '방화벽' -> 'pfBlockerNG' ->을 통해 pfBlockerNG의 구성 메뉴로 다시 이동하는 것입니다. 'DSNBL'.

다시 DNSBL 구성 페이지에서 'DNSBL 피드' 텍스트를 클릭한 다음 페이지가 새로 고쳐지면 '추가' 버튼을 클릭하세요.

추가 버튼을 사용하면 관리자가 pfBlockerNG 소프트웨어에 잘못된 IP 주소 또는 DNS 이름 목록을 더 추가할 수 있습니다(목록에 이미 있는 두 항목은 작성자가 테스트한 항목입니다). 추가 버튼을 누르면 관리자는 DNSBL 목록을 방화벽에 추가할 수 있는 페이지로 이동합니다.

이 출력의 중요한 설정은 다음과 같습니다.

  • DNS 그룹 이름 – 사용자 선택
  • 설명 – 그룹을 체계적으로 정리하는 데 유용합니다.
  • DNSBL 설정 - 실제 목록입니다.
    • 상태 – 해당 소스의 사용 여부 및 소스 획득 방법
    • 소스 – DNS 블랙리스트의 링크/소스
    • 헤더/라벨 – 사용자 선택. 특수 문자 없음
  • 목록 작업 – 바인딩 해제로 설정
  • 업데이트 빈도 – 목록을 업데이트해야 하는 빈도

설정을 완료한 후 페이지 하단에 있는 저장 버튼을 클릭하세요. pfBlockerNG에 대한 변경 사항과 마찬가지로 변경 사항은 예정된 다음 크론 간격에 적용되거나 관리자가 '업데이트' 탭으로 이동하여 '새로 고침<을 클릭하여 수동으로 강제로 다시 로드할 수 있습니다.' 라디오 버튼을 클릭한 다음 '모두' 라디오 버튼을 클릭합니다. 선택한 후 '실행' 버튼을 클릭하세요.

오류가 있는지 아래 로그 창을 확인하세요. 모든 것이 계획대로 진행되었다면 LAN 측 클라이언트에서 DNSBL 구성에 사용된 텍스트 파일 중 하나에 나열된 도메인 중 하나로 nslookup을 시도하여 목록이 작동하는지 테스트합니다.

위 출력에서 볼 수 있듯이 pfSense 장치는 pfBlockerNG에 구성된 가상 IP 주소를 블랙리스트 도메인에 대한 잘못된 IP로 반환합니다.

이 시점에서 관리자는 목록을 더 추가하거나 사용자 정의 도메인/IP 목록을 생성하여 목록을 계속 조정할 수 있습니다. pfBlockerNG는 이러한 제한된 도메인을 가짜 IP 주소로 계속 리디렉션합니다.

pfBlockerNG에 대한 이 기사를 읽어주셔서 감사합니다. 이 두 가지 훌륭한 제품의 지속적인 개발에 기여함으로써 pfSense 소프트웨어와 pfBlockerNG에 대한 감사와 지지를 보여주세요. 언제나 그렇듯이 제안이나 질문이 있으면 아래에 의견을 남겨주세요!