- 방화벽의 활용
- 운영체제에서 동작하는 서버의 방화벽은 서버 보안을 강화하기 위해 최소한의 서비스 포트만 열어둔 채 대부분의 서비스는 차단한다.
- 방화벽은 일반적으로 필요한 IP 주소와 서비스 포트에 대해서만 열어주고 나머지는 모두 차단하는 화이트리스트 기반으로 정책을 관리한다.
- 서버에서 동작하는 방화벽도 마찬가지로 운용할 수 있지만 경우에 따라 ssh(22), oracle(1521), mysql(3306)이나 윈도의 공유용으로 사용되는 135,139,445와 같은 주요 포트에 대해서만 차단하는 블랙리스트로 운용할 수도 있다.
- 방화벽을 반드시 사용해야 하는 경우
- 서버 방화벽은 운용상의 불편함 때문에 기능 자체를 끄고 사용하는 경우도 있지만 반드시 사용해야 하는 경우도 있다.
- 데이터 센터 서버의 접근 제한 및 이력 관리를 위해 사용하는 ‘서버 접근 통제 솔루션’
- 데이터베이스 서버의 접근 및 세부 쿼리(Query)에 대한 제어를 위해 사용하는 ‘데이터베이스 접근 통제 솔루션’
- 반드시 서버 방화벽에서 해당 솔루션의 IP 주소와 포트만 허용하고 나머지 주소는 차단해야만 해당 솔루션을 제외한, 허용되지 않은 접근을 막을 수 있다.
- iptables
- 시스템 관리자는 iptables을 통해 서버에서 허용하거나 차단할 IP나 서비스 포트에 대한 정책을 수립한다.
- 수립한 정책은 정책 그룹으로 관리한다.
- 정책 그룹은 서버 기준의 트래픽 구간별로 만드는데 여기서 말하는 트래픽 구간은 서버로 유입되는 구간(INPUT), 서버에서 나가는 구간(OUTPUT), 서버를 통과하는 구간(FORWARD) 등을 말한다.
- 즉, 정책은 방향성에 따라 방향성과 관련된 정책 그룹으로 분류하고 이렇게 분류된 그룹들은 역할과 관련된 정책 그룹으로 다시 묶이게 된다.
- iptables에서 개별 정책의 방향성에 따라 구분한 그룹을 체인이라고 하며 체인을 역할별로 구분한 그룹을 테이블이라고 한다.
- iptables에는 Filter 테이블, NAT 테이블, Mangle 테이블, Raw 테이블, Security 테이블이 있다.
- 패킷을 허용하거나 차단하는 데 사용하는 테이블이 Filter 테이블이다. 여기서 다룰 리눅스의 호스트 방화벽은 이 필터 테이블을 통해 트래픽을 제어하는 것을 의미한다.
- 테이블에는 방향성과 관련된 그룹이 있다고 했는데 이 그룹이 Chain이다. 필터 테이블에는 서버로 들어오는 트래픽, 나가는 트래픽, 통과하는 트래픽에 따라 INPUT 체인, OUTPUT 체인, FORWARD 체인이 있다.
- 각 체인에는 해당 체인에 적용될 방화벽 정책을 정의한다. 각 정책에는 정책을 적용하려는 패킷과 상태 또는 정보 값과의 일치 여부 조건인 Match와 조건과 일치하는 패킷의 Accept이나 Drop에 대한 패킷 방식을 결정하는 Target으로 구성된다.
- 리눅스에서 방화벽의 역할을 위해 사용되는 것을 정리하면 다음과 같다.
- Filter 테이블
- iptables에서 패킷을 허용하거나 차단하는 역할을 선언하는 영역
- INPUT, OUTPUT, FORWARD 체인
- 호스트 기준으로 호스트로 들어오거나(INPUT) 호스트에서 나가거나(OUTPUT) 호스트를 통과할(FORWARD) 때 사용된느 정책들의 그룹. 패킷의 방향성에 따라 각 체인에 정의된 정책이 적용됨
- Match
- 제어하려는 패킷의 상태 또는 정보 값의 정의
- 정책에 대한 조건
- Target
- Match(조건)와 일치하는 패킷을 허용할지, 차단할지에 대한 패킷 처리 방식
- Filter 테이블
- 시스템 관리자는 iptables을 통해 서버에서 허용하거나 차단할 IP나 서비스 포트에 대한 정책을 수립한다.
'🍀 Cloud Architect > Network' 카테고리의 다른 글
[IT 엔지니어를 위한 네트워크 입문] 12장 - 로드밸런서 (0) | 2023.07.09 |
---|---|
[IT 엔지니어를 위한 네트워크 입문] 11장 - 이중화 기술 (0) | 2023.07.09 |
[IT 엔지니어를 위한 네트워크 입문] 9장 - 보안 (0) | 2023.07.09 |
[IT 엔지니어를 위한 네트워크 입문] 8장 - 서버 네트워크 기본 (0) | 2023.07.09 |
[IT 엔지니어를 위한 네트워크 입문] 7장 - DNS, GSLB, DHCP (0) | 2023.07.09 |