일본서버호스팅
일본서버호스팅
일본서버호스팅
시스템 관리에 관한 부분이 이전 버전과 크게 변경된 "CentOS 7"는, Linux에 익숙한 숙련자도 놓치기 쉬운
함정이 있습니다. 일본서버호스팅
CentOS 7에서 사용된 패킷 필터링을 위한 "Firewalld" 기초 및 운영 방법을 설명합니다.
일본서버호스팅
2014년 7월에 출시 된 "CentOS 7"는 시스템 관리에 관한 부분이 이전 버전과 크게 변경되어, 사용법도
변경되었습니다. 일본서버호스팅
여기서는 "Linux 명령어의 기초 지식은 있으나 CentOS 7에서 달라진 기능을 복습하고, 깊게 이해하고
자신의 업무에 적용하고 싶다"는 인프라 엔지니어를 대상으로 CentOS 7의 시스템 관리 부분을 중심으로
새로운 기능을 설명하려고 합니다. 일본서버호스팅
일본서버호스팅
서버 보안의 초기 대책인 "패킷 필터링"을 위해, CentOS 7의 새로운 구조 'Firewalld'의 기초 및 운영
방법을 설명합니다. 일본서버호스팅
일본서버호스팅
일본서버호스팅
Firewalld는 무엇일까? 일본서버호스팅
일본서버호스팅
Firewalld는 CentOS 7에 채택 된 "패킷 필터링"의 구조입니다. 일본서버호스팅
패킷 필터링은 패킷의 송수신에 있어 미리 지정된 규칙에 따라 통신의 허용/거부를 제어하는 보안
대책의 기초 수단입니다. 일본서버호스팅
일본서버호스팅
이전 버전의 CentOS 6까지 이를 "iptables"에서 실행되고 있었습니다.
CentOS 7의 'Firewalld'는 무엇이 바뀐 것일까요? 일본서버호스팅
우선은 비교해 봅시다. 일본서버호스팅
일본서버호스팅
일본서버호스팅
"Netfilter"를 위한 관리 인터페이스 일본서버호스팅
일본서버호스팅
Linux에서 패킷 필터링은 Linux 커널의 Netfilter라고 부르는 서브 시스템으로 이루어집니다.
Firewalld와 iptables는 아래와 같은 역할을 합니다. 일본서버호스팅
일본서버호스팅
● Netfilter를 동작시키기 위한 설정을 한다. 일본서버호스팅
● Netfilter의 설정 내용을 유지한다. 일본서버호스팅
일본서버호스팅
Firewalld와 iptables는 간단히 말해 "Netfilter의 관리 인터페이스"입니다.
그러나 지금까지의 iptables는 운용에서 여러 과제를 안고 있었습니다.
일본서버호스팅
예를 들면, 원래의 iptables은 설정을 유지하는 기능이 없습니다.
시스템을 재부팅하면 설정이 지워져 버리므로, /etc/sysconfig/iptables라는 파일에 규칙을 작성하여
설정을 유지할 수 있도록 하고 있었습니다. 일본서버호스팅
또한 명령 옵션이 매우 복잡하고 TCP/IP 구조를 깊이 이해하지 않으면 설정이 어려웠습니다.
일본서버호스팅
Firewalld은 iptables의 문제점을 해결하기 위해 변경되었다고 할 수 있습니다.
Firewalld에는 다음과 같은 특징이 있습니다. 일본서버호스팅
일본서버호스팅
일본서버호스팅
|
Firewalld |
iptables |
설정변경 |
통신을 정지시키지 않고, 변경 사항을 반영 할 수 있다. |
설정을 반영하기 위해 서비스를 다시 시작해야 한다. (네트워크 순간 끊김이 발생한다) |
설정의난이도 |
TCP/IP 구조를 깊이 이해하지 않아도 비교적 쉽게 설정할 수 있다. |
TCP/IP 구조를 깊이 이해하지 않으면 설정 자체가 어렵다. 명령 옵션이 매우 복잡하다. |
운영의 유연성 |
임시 규칙과 지속적인 규칙을 각각 관리 할 수있다. 일정 시간만 활성화하는 등의 규칙의 설정도 가능 |
임시 규칙 설정은 할 수 없다. |
일본서버호스팅
일본서버호스팅
일본서버호스팅
Netfilter에 있어 "체인"이란? 일본서버호스팅
일본서버호스팅
Firewalld에서의 패킷 필터링 설정에 대해 설명하기 전에 Netfilter의 패킷 필터링 처리 방식에 대해 알아둡시다.
Netfilter는 다음과 같이 3종류의 패킷 흐름에 대해 패킷 필터링을 수행합니다. 일본서버호스팅
일본서버호스팅
일본서버호스팅
일본서버호스팅
일본서버호스팅
(1) INPUT (외부에서 내부로) 일본서버호스팅
일본서버호스팅
수신 패킷이 적절한지 확인합니다. 일본서버호스팅
수신할 패킷은 로컬 프로세스(Linux의 프로세스)로 보내고, 규칙에 일치하지 않는 패킷은 삭제합니다.
일본서버호스팅
(2) OUTPUT (내부에서 외부로) 일본서버호스팅
일본서버호스팅
보내는 패킷이 적절한지 확인합니다. 일본서버호스팅
송신할 패킷은 네트워크 장치를 통해 외부로 전송하고, 규칙에 일치하지 않는 패킷은 삭제합니다.
일본서버호스팅
(3) FORWARD (외부로 전송) 일본서버호스팅
일본서버호스팅
다른 서버에 전송하거나 지정된 패킷을 수신하려면, FORWARD 규칙을 적용하여 처리합니다.
전송할 패킷은 네트워크 장치를 통해 다른 서버로 전송하고, 규칙에 일치하지 않는 패킷은 삭제합니다.
일본서버호스팅
이 패킷 처리의 분류를 "체인"이라고 합니다. 일본서버호스팅
iptables는 각각의 체인에 대해 별도의 필터링 규칙 및 기본 규칙을 설정합니다. 일본서버호스팅
기본 규칙은 통신 "ACCEPT (허가)" 또는 "DROP (삭제)"를 지정합니다. 일본서버호스팅
"ACCEPT"는 규칙이 정해져 있지 않은 통신도 "모두 허용"합니다. 일본서버호스팅
"DROP"는 그 반대로 규칙을 정하지 않은 통신은 "모두 파기"합니다. 일본서버호스팅
또한 INPUT 방향의 반환 통신 대해 OUTPUT 방향의 통신 허용 규칙을 설정할 필요도 있습니다.
일본서버호스팅
한편 Firewalld에서는 주로 INPUT 체인의 패킷 필터링 규칙을 제어합니다.
또한 체인에 직접 기본 규칙을 설정하는 것이 아니라, "zone"이라고 부르는 그룹 단위로 규칙을 정의합니다.
일본서버호스팅
일본서버호스팅
일본서버호스팅
일본서버호스팅
일본서버호스팅
Firewalld에서 "zone"과 인터페이스 일본서버호스팅
일본서버호스팅
그럼 Firewalld는 어떻게 간단하게 되었는가. 일본서버호스팅
"zone"설정의 구체적인 예를 들으면서 설명하겠습니다. 일본서버호스팅
일본서버호스팅
zone은 패킷 필터링 규칙을 정리하여 그룹화한 것입니다. 일본서버호스팅
Firewalld에서는 이 영역을 "인터페이스"로 정의합니다. 일본서버호스팅
실제 규칙 설정은 "zone"에 대해서 실시합니다. 일본서버호스팅
일본서버호스팅
설정되어있는 "zone"은 다음과 같다. 일본서버호스팅
일본서버호스팅
일본서버호스팅
zone 이름 |
개요 |
public |
서버로서 필요한 최소한의 수신 허용 규칙. 모든 인터페이스는 기본적으로 public 영역에 속한다. |
work |
업무용 클라이언트 PC로서의 이용을 정의한 규칙. 내부 LAN에서 사용하는 경우를 정의하고 있다. 클라이언트 PC에 요구되는 최소한의 규칙이 정의되어 있다. |
home |
가정용 클라이언트 PC로서의 이용을 정의한 규칙. 가정내 LAN에 연결하여 사용하는 경우를 정의하고있다. |
internal |
Linux를 사용하여 방화벽을 구축하는데 사용하는 규칙. 내부 네트워크 인터페이스에 대한 설정한다. |
external |
Linux를 사용하여 방화벽을 구축하는데 사용하는 규칙. 외부 네트워크 인터페이스에 대한 설정한다. |
dmz |
Linux를 사용하여 방화벽을 구축하는데 사용하는 규칙. 이곳은 DMZ 인터페이스에 대한 설정한다. |
block |
들어오는 패킷을 모두 거부하는 규칙. 전송 패킷의 반환 통신은 허용된다. |
drop |
들어오는 패킷을 모두 삭제하는 규칙. 전송 패킷의 반환 통신은 허용된다. |
trusted |
모든 통신을 허용하는 규칙. |
일본서버호스팅
일본서버호스팅
일본서버호스팅
일본서버호스팅
2편에서 계속...
'IT 이야기 > 리눅스 Tip' 카테고리의 다른 글
CentOS 7, 'Firewalld'설정방법과 'iptables'과의 차이 下 - 일본서버호스팅 제이피서버 (0) | 2017.09.10 |
---|---|
CentOS 7, 'Firewalld'설정방법과 'iptables'과의 차이 中 - 일본서버호스팅 제이피서버 (0) | 2017.09.09 |
Linux 기본명령어 'apt' 명령어소개 - 일본서버호스팅 제이피서버 (0) | 2017.09.04 |
윈도우 응용프로그램에 해당하는 리눅스 응용프로그램 - 일본서버임대 제이피서버 (0) | 2017.08.30 |
CentOS 6.x 64비트용 mod_security가 포함된 Nginx 1.9.4 RPM (0) | 2017.06.05 |