목차/12. 방화벽 활성화 전 보안

12방화벽 활성화 전 보안방화벽 활성화 전 보안

게이트웨이가 부팅 중이거나 정책이 아직 설치되지 않은 그 짧은 빈틈 에도 네트워크가 무방비로 노출되어서는 안 됩니다. 그래서 Check Point Security Gateway에는 정식 보안 정책이 동작하기 전에도 최소한의 보호를 제공하는 기준 보안(baseline security) 이 들어 있습니다. 이 장은 그 기준 보안이 무엇으로 이루어지는지, 어떻게 동작하고 어떻게 손보는지, 그리고 그것이 부팅을 막아 버릴 때 어떻게 빠져나오는지까지 원문에 담긴 모든 절차와 명령·표·주의사항을 빠짐없이 풀어 정리합니다.

기준 보안은 두 겹 으로 되어 있습니다.

기준 보안 이름정책 이름설명
Boot Securitydefaultfilter부팅 과정 동안의 보안.
Initial PolicyInitialPolicy정책을 처음 설치하기 전까지, 또는 게이트웨이가 정책 로드에 실패했을 때의 보안.

이 장에서 다루는 명령들의 자세한 사용법은 명령줄·커널 참조에서 가리키는 R82 CLI Reference Guide에 있습니다. 핵심만 미리 정리하면 다음과 같습니다.

명령설명
$CPDIR/bin/cpstat -f policy fw현재 설치된 정책을 보여 줍니다.
`$FWDIR/bin/control_bootsec {-r \-R}`Boot Security를 끕니다(disable).
`$FWDIR/bin/control_bootsec [-g \-G]`Boot Security를 켭니다(enable).
`$FWDIR/bin/comp_init_policy [-u \-U]`로컬 state 정책을 삭제합니다.
`$FWDIR/bin/comp_init_policy [-g \-G]`로컬 state Initial Policy를 만듭니다.
$FWDIR/bin/fw unloadlocal현재 설치된 정책을 내립니다(unload).

Boot Security와 Default Filter

Boot Security 는 부팅 동안 게이트웨이와 그 네트워크를 보호하기 위해 두 가지 일을 합니다.

  • Linux OS 커널의 IP Forwarding을 끕니다.
  • Default Filter Policy를 로드 합니다.

Default Filter Policy

Default Filter Policy(defaultfilter)게이트웨이가 켜지는 순간부터, 사용자 정의 Security Policy가 설치될 때까지 게이트웨이를 보호합니다. 앞서 말했듯 Boot Security가 IP Forwarding을 끄고 이 Default Filter Policy를 로드하는 식으로 동작합니다.

게이트웨이에는 세 가지 Default Filter 템플릿 이 준비되어 있습니다.

Default Filter 모드정책 파일설명
Boot Filter$FWDIR/lib/defaultfilter.boot게이트웨이 인터페이스에 할당된 IP 주소를 출발지로 가진 들어오는 패킷은 모두 드롭 하고, 게이트웨이에서 나가는 패킷은 모두 허용 합니다.
Drop Filter$FWDIR/lib/defaultfilter.drop게이트웨이의 들어오는·나가는 패킷을 모두 드롭 합니다.
DAG Filter$FWDIR/lib/defaultfilter.dag동적으로 IP를 할당받는 게이트웨이(DAG)용 입니다. 모든 DHCP 요청과 DHCP 응답을 허용 하면서, 나머지는 Boot Filter와 동일하게 동작합니다(인터페이스 IP를 출발지로 한 들어오는 패킷은 드롭, 나가는 패킷은 허용).

Default Filter Policy 선택하기

원하는 Default Filter를 고르는 절차입니다. 큰 줄기는 기존 파일 백업 → 템플릿 복사 → 컴파일 → 부팅 경로에 복사 → 시리얼 콘솔 연결 후 재부팅 입니다.

단계할 일
1게이트웨이에 Security Policy를 구성하고 설치해 두었는지 확인합니다.
2게이트웨이 명령줄에 접속합니다.
3Expert mode에 로그인합니다.
4현재 Default Filter Policy 파일을 백업합니다.
5새 Default Filter Policy 파일을 만듭니다(원하는 모드 하나 선택).
6새 Default Filter 파일을 컴파일합니다.
7Default Filter Policy 파일의 경로를 확인합니다.
8컴파일된 파일을 그 경로로 복사합니다.
9게이트웨이에 시리얼 콘솔로 연결 되어 있는지 확인합니다.
10게이트웨이를 재부팅합니다.

4단계 — 현재 파일 백업

cp -v $FWDIR/conf/defaultfilter.pf{,_BKP}

5단계 — 새 Default Filter Policy 파일 만들기. 세 모드 중 하나를 골라 해당 템플릿을 $FWDIR/conf/defaultfilter.pf로 복사합니다.

# Boot Filter를 쓰려면
cp -v $FWDIR/lib/defaultfilter.boot $FWDIR/conf/defaultfilter.pf

# Drop Filter를 쓰려면
cp -v $FWDIR/lib/defaultfilter.drop $FWDIR/conf/defaultfilter.pf

# DAG Filter를 쓰려면
cp -v $FWDIR/lib/defaultfilter.dag $FWDIR/conf/defaultfilter.pf

6단계 — 컴파일. fw defaultgen 을 실행하면 컴파일된 파일이 만들어집니다.

fw defaultgen
  • IPv4 트래픽용 컴파일 결과 파일: $FWDIR/state/default.bin
  • IPv6 트래픽용 컴파일 결과 파일: $FWDIR/state/default.bin6

7단계 — Default Filter Policy 파일의 경로 확인

$FWDIR/boot/fwboot bootconf get_def

예시:

[Expert@MyGW:0]# $FWDIR/boot/fwboot bootconf get_def
/etc/fw.boot/default.bin
[Expert@MyGW:0]#

8단계 — 컴파일된 파일을 그 경로로 복사

# IPv4 트래픽용
cp -v $FWDIR/state/default.bin /etc/fw.boot/default.bin

# IPv6 트래픽용
cp -v $FWDIR/state/default.bin6 /etc/fw.boot/default.bin6

커스텀 Default Filter 만들기

Check Point INSPECT 언어를 아는 관리자는 템플릿을 바탕으로 자신만의 Default Filter 를 정의할 수 있습니다.

절차는 표준 선택 절차와 거의 같고, 중간에 INSPECT 코드를 직접 편집하는 단계 가 추가됩니다.

단계할 일
1게이트웨이에 Security Policy를 구성·설치해 두었는지 확인합니다.
2게이트웨이 명령줄에 접속합니다.
3Expert mode에 로그인합니다.
4현재 Default Filter Policy 파일을 백업합니다.
5템플릿을 골라 새 Default Filter Policy 파일을 만듭니다.
6새 파일을 편집해 필요한 INSPECT 코드를 넣 습니다.
7새 Default Filter 파일을 컴파일합니다.
8Default Filter Policy 파일의 경로를 확인합니다.
9컴파일된 파일을 그 경로로 복사합니다.
10게이트웨이에 시리얼 콘솔로 연결되어 있는지 확인합니다.
11게이트웨이를 재부팅합니다.

4·5단계의 명령은 앞 절과 동일합니다(백업: cp -v $FWDIR/conf/defaultfilter.pf{,_BKP}, 템플릿 복사: defaultfilter.boot/.drop/.dag 중 하나를 $FWDIR/conf/defaultfilter.pf로).

7단계 컴파일(fw defaultgen$FWDIR/state/default.bin, default.bin6), 8단계 경로 확인($FWDIR/boot/fwboot bootconf get_def), 9단계 복사(/etc/fw.boot/default.bin, default.bin6)는 모두 표준 절차와 같습니다.

유지보수에 Default Filter 활용하기

유지보수를 위해 게이트웨이를 잠시 멈춰야 할 때가 있습니다. 그렇다고 게이트웨이를 네트워크에서 떼어 내는 것이 항상 현실적이지는 않 습니다(예: 원격 사이트에 있는 게이트웨이). 이때는 보안을 유지한 채 멈추도록 다음 두 가지 cpstop 변형을 쓸 수 있습니다.

명령동작
cpstop -fwflag -defaultCheck Point 프로세스를 내리고, Default Filter Policy(defaultfilter)를 로드 합니다.
cpstop -fwflag -procCheck Point 프로세스를 내리되, 현재 로드된 커널 정책을 유지 하고 Connections 테이블도 유지 합니다. 덕분에 cpstart 이후 패킷이 "out of state"라는 이유로 드롭되는 일을 막을 수 있습니다.

Initial Policy

게이트웨이 관리자가 Security Policy를 처음으로 설치하기 전까지 의 보안은 Initial Policy 가 집행합니다.

Initial Policy는 Default Filter Policy에 미리 정의된 implied rule(암시적 규칙)을 더해 동작합니다. 이 implied rule들은 대부분의 통신은 금지하되, Security Policy 설치에 필요한 통신만 허용 합니다.

Initial Policy는 Check Point 제품 업그레이드 중 , 게이트웨이에서 SIC 인증서를 재설정할 때 , 또는 Check Point 제품 라이선스가 만료된 경우 에도 게이트웨이를 보호합니다.

부팅부터 Security Policy가 처음 로드될 때까지의 동작 순서는 다음과 같습니다.

단계동작
1게이트웨이가 부팅됩니다.
2IP Forwarding을 끄고 Default Filter Policy를 로드합니다.
3인터페이스를 구성합니다.
4게이트웨이 서비스들이 시작됩니다.
5로컬 디렉터리에서 Initial Policy를 fetch합니다.
6관리자가 Management Server에서 사용자 정의 Security Policy를 설치합니다.

게이트웨이는 관리자가 사용자 정의 정책을 설치할 때까지 Initial Policy를 집행 합니다. 그 뒤의 재부팅부터는 Default Filter Policy 다음에 사용자 정의 정책이 곧바로 로드 됩니다.

Standalone과 Distributed에서의 차이

구성 방식에 따라 Initial Policy가 허용하는 통신 범위가 다릅니다.

  • Standalone — Security Management Server와 Security Gateway가 같은 컴퓨터에 있는 구성입니다. 이때 Initial Policy는 CPMI 관리 통신만 허용 해, SmartConsole 클라이언트가 Security Management Server에 붙을 수 있게 합니다.
  • Distributed — Management Server와 Gateway가 서로 다른 컴퓨터에 있는 구성입니다. 이때 Initial Policy는 SIC(신뢰 수립)와 정책 설치를 위해 cpd·fwd 데몬의 통신만 허용 하고, 게이트웨이를 통한 CPMI 연결은 허용하지 않 습니다. 따라서 SmartConsole이 Initial Policy 상태의 게이트웨이 너머에 있는 Management Server에 접속해야 한다면, 연결이 막힐 수 있습니다.

문제 해결 — 재부팅이 끝나지 않을 때

일부 구성에서는 Default Filter Policy가 부팅에 필요한 트래픽까지 막아 설치 후 재부팅이 끝나지 않 는 경우가 있습니다.

먼저 Default Filter를 살펴보세요 — 부팅 절차에 필요한 트래픽을 그 Default Filter가 허용하고 있나요? 그래도 부팅이 정상적으로 끝나지 않으면, 다음 절차로 Default Filter를 제거합니다.

단계할 일
1게이트웨이에 시리얼 콘솔 로 접속합니다.
2게이트웨이를 재부팅합니다.
3부팅 중 아무 키나 눌러 Boot Menu 에 진입합니다.
4Start in maintenance mode 를 선택합니다.
5Expert mode 암호를 입력합니다.
6Default Filter가 다시 로드되지 않도록 설정 합니다.
7boot.confDEFAULT_FILTER_PATH 값을 확인합니다.
8게이트웨이를 재부팅합니다.

6단계 — Default Filter가 다시 로드되지 않도록 설정

cd /opt/CPsuite-<VERSION>/fw1/
./fwboot bootconf set_def

7단계 — boot.confDEFAULT_FILTER_PATH 값 확인

cd /opt/CPsuite-<VERSION>/fw1/
grep DEFAULT_FILTER_PATH boot/boot.conf

이 장에 나온 control_bootsec, comp_init_policy, fw unloadlocal, cpstat -f policy fw, fwboot 등의 명령에 대한 자세한 설명은 명령줄·커널 참조에서 가리키는 R82 CLI Reference Guide를 참고하세요.