웹사이트 검색

Linux에서 Shorewall 방화벽 구성을 탐색하는 방법


이전 기사에서는 Shorewall 설치, 구성 파일 설정, NAT를 통한 포트 전달 구성에 대해 배웠습니다. 이 기사에서는 Shorewall과 관련된 일반적인 오류를 조사하고 솔루션을 제공하며 명령줄 옵션을 소개합니다.

Shorewall은 명령줄에서 실행할 수 있는 다양한 명령을 제공합니다. manshorewall을 살펴보면 많은 것을 볼 수 있지만 우리가 수행할 첫 번째 작업은 구성 파일을 확인하는 것입니다.

sudo shorewall check

Shorewall은 모든 구성 파일과 그 안에 포함된 옵션에 대한 검사를 인쇄합니다.

출력은 다음과 같습니다.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

우리가 찾고 있는 마법의 라인은 맨 아래에 "Shorewall ConfigurationVerified"라고 적힌 라인입니다. 오류가 발생하면 커널 구성에 모듈이 누락되었기 때문일 가능성이 높습니다.

가장 일반적인 두 가지 오류를 해결하는 방법을 보여주겠지만, 컴퓨터를 방화벽으로 사용할 계획이라면 필요한 모듈을 모두 포함하여 커널을 다시 컴파일해야 합니다.

첫 번째 오류이자 가장 일반적인 오류는 NAT에 관한 오류입니다.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

이와 유사한 내용이 표시된다면 현재 커널NAT을 지원하도록 컴파일되지 않았을 가능성이 있습니다. 이는 대부분의 기본 커널에서 일반적입니다. 시작하려면 "데비안 커널을 컴파일하는 방법"에 대한 튜토리얼을 읽어보세요.

검사에서 발생하는 또 다른 일반적인 오류는 iptableslogging에 관한 오류입니다.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

이는 새 커널로 컴파일할 수도 있지만 ULOG를 사용하려는 경우 빠른 수정 방법이 있습니다. ULOG는 syslog와는 다른 로깅 메커니즘입니다. 사용하기가 매우 쉽습니다.

이를 설정하려면 /etc/shorewall의 모든 구성 파일에서 “info”의 모든 인스턴스를 “ULOG”로 변경해야 합니다. . 다음 명령을 사용하면 됩니다.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

그런 다음 /etc/shorewall/shorewall.conf 파일을 편집하고 라인을 설정합니다.

LOGFILE=

로그를 저장하려는 위치. 내 파일은 /var/log/shorewall.log에 있습니다.

LOGFILE=/var/log/shorewall.log

다음 명령을 다시 실행하면 깨끗한 상태를 확인할 수 있습니다.

shorewall check

Shorewall의 명령줄 인터페이스에는 시스템 관리자를 위한 편리한 단일 라이너가 많이 제공됩니다. 특히 방화벽에 많은 변경 사항이 적용될 때 자주 사용되는 명령 중 하나는 문제가 발생할 경우 롤백할 수 있도록 현재 구성 상태를 저장하는 것입니다.

이에 대한 구문은 간단합니다.

sudo shorewall save <filename>

롤백도 마찬가지로 쉽습니다.

sudo shorewall restore <filename>

대체 구성 디렉터리를 사용하도록 Shorewall을 시작하고 구성할 수도 있습니다. 이것이 시작 명령이라고 지정할 수 있지만 먼저 확인하는 것이 좋습니다.

sudo shorewall check <config-directory>

단순히 구성을 시험해보고 작동 중이면 시작하고 try 옵션을 지정할 수 있습니다.

sudo shorewall try <config-directory> [  ]

Shorewall은 Linux 시스템에서 사용할 수 있는 수많은 강력한 방화벽 솔루션 중 하나일 뿐입니다. 네트워킹 스펙트럼의 어느 쪽 끝에 있든 상관없이 많은 사람들은 그것이 간단하고 유용하다고 생각합니다.

이는 작은 시작일 뿐이며 네트워킹 개념을 너무 깊게 다루지 않고도 원하는 대로 진행할 수 있습니다. 언제나 그렇듯이 매뉴얼 페이지와 기타 리소스를 조사하고 살펴보시기 바랍니다. Shorewall의 메일링 리스트는 멋진 곳이며 최신 정보를 잘 유지하고 있습니다.