-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Lim
committed
Feb 27, 2024
1 parent
15204f1
commit c668f3a
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# 10. 서버의 방화벽 설정/동작 | ||
|
||
- 서버에 운영체제를 설치하면 리눅스나 윈도 서버 모두 운영체제의 자체 방화벽이 함께 설치됨 | ||
- 운영체제에서 동작하는 서버의 방화벽은 서버 보안을 강화하기 위해 최소한의 서비스 포트만 열어둔 채 대부분의 서비스는 차단함 | ||
- 방화벽은 일반적으로 필요한 IP 주소와 서비스 포트에 대해서만 열어주고 나머지는 모두 차단하는 화이트리스트 기반으로 정책을 관리함 | ||
|
||
10.1 리눅스 서버의 방화벽 확인 및 관리 | ||
|
||
- 리눅스에서는 호스트 방화벽 기능을 위해 보통 iptables을 많이 사용 | ||
|
||
### 10.1.1 iptables 이해하기 | ||
|
||
- 시스템 관리자는 iptables을 통해 서버에서 허용하거나 차단할 IP나 서비스 포트에 대한 정책을 수립함 | ||
- 이렇게 수립된 정책은 정책 그룹으로 관리함 | ||
- 정책 그룹은 서버 기준의 트래픽 구간별로 만드는데 여기서 말하는 트래픽 구간은 서버로 유입되는 구간(INPUT), 서버에서 나가는 구간(OUTPUT), 서버를 통과하는 구간(FORWARD) 등을 말함 | ||
- 그리고 이렇게 만들어진 방향성과 관련된 정책 그룹은 각 정책의 역할에 따라 다시 상위 역할 그룹에 속하게 됨 | ||
- 정리하면 정책은 방향성에 따라 방향성과 관련된 정책 그룹으로 분류하고 이렇게 분류된 그룹들은 역할과 관련된 정책 그룹으로 다시 묶이게 됨 | ||
- iptables에서 개별 정책의 방향성에 따라 구분한 그룹을 체인이라고 하며 체인을 역할별로 구분한 그룹을 테이블이라고 함 | ||
- 즉, 개별 정책의 그룹이 체인이 되고 체인 그룹이 테이블임 | ||
- iptables에는 필터 테이블, NAT 테이블, 맹글 테이블, 로 테이블, 시큐리티 테이블 이렇게 5가지 테이블이 있음 | ||
- 패킷을 허용하거나 차단하는 데 사용하는 테이블이 필터 테이블 | ||
- 여기서 다룰 리눅스의 호스트 방화벽은 이 필터 테이블을 통해 트래픽을 제어하는 것을 의미 | ||
- 테이블에는 방향성과 관련된 그룹이 있다고 했는데 이 그룹이 체인 | ||
- 필터 테이블에는 서버로 들어오는 트래픽, 나가는 트래픽, 통과하는 트래픽에 따라 INPUT 체인, OUTPUT 체인, FORWARD 체인이 있음 | ||
- 각 체인에는 해당 체인에 적용될 방화벽 정책을 정의 | ||
- 각 정책에는 정책을 적용하려는 패킷과 상태 또는 정보 값과의 일치 여부 조건인 매치와 조건과 일치하는 패킷의 허용(Accept)이나 폐기(Drop)에 대한 패킷 처리 방식을 결정하는 타깃으로 구성됨 | ||
|
||
- Filter 테이블 | ||
- iptables에서 패킷을 허용하거나 차단하는 역할을 선언하는 영역 | ||
- INPUT, OUTPUT, FORWARD 체인 | ||
- 호스트 기준으로 호스트로 들어오거나 호스트에서 나가거나 호스트를 통과할 때 사용되는 정책들의 그룹 | ||
- 패킷의 방향성에 따라 각 체인에 정의된 정책이 적용됨 | ||
- Match | ||
- 제어하려는 패킷의 상태 또는 정보 값의 정의 | ||
- 정책에 대한 조건 | ||
- Target | ||
- Match와 일치하는 패킷을 허용할지, 차단할지에 대한 패킷 처리 방식 | ||
|
||
10.1.2 리눅스 방화벽 활성화/비활성화 | ||
|
||
- CentOS 7, IPv4 기준 | ||
|
||
``` | ||
// firewalld 비활성화 | ||
$ systemctl disable firewalld | ||
$ systemctl stop firewalld | ||
``` | ||
|
||
``` | ||
// iptables 설치 | ||
$ yum install iptables-service | ||
``` | ||
|
||
``` | ||
// service 명령어나 systemctl 명령어로 iptables 서비스를 활성화 | ||
$ service iptables start // CentOs 6 | ||
$ systemctl start iptables.service // CentOs 7 | ||
``` |