RadarURL
Skip to content
조회 수 46 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

CentOS 7부터 기본 방화벽 시스템이 변경되었습니다. 이전에는 iptables 를 사용했었는데.. CentOS 7에서는 firewalld라는 방화벽 시스템이 기본으로 탑재되었습니다. 

 

그렇다고 iptables이 완전히 없어진 것은 아닙니다. firewalld은 그저 iptables을 기반으로해서 동작하고 있는 것 뿐입니다. firewalld이 iptables을 의존 패키지로 두고 있는 것을 보면 알 수 있습니다. 다만 iptables-service를 조작이 쉬운 firewalld로 바꾼 것 뿐입니다.

 

centos 7부터는 iptables-service를 더 이상 사용하지않지만, iptables-service를 계속 사용할 수도 있습니다. 리눅스를 계속 사용해온 사용자라면 당연히 익숙했던 iptables-service가 더 편할 것입니다. 하지만 기본 방화벽 시스템이 변경된 이상 iptables-service의 향후 지원도 불확실하고, 어쩌면 익숙해지면 firewalld가 더 편할 수도 있습니다.

 

이런저런 이유로 기본 firewalld 사용을 권장하고, 그 사용방법에 대해 알아보겠습니다.

 

 

1. 방화벽 살펴보기

방화벽에는 zone(영역)이라는 것이 존재합니다. 개방된 네트워크와 연결되어있다면 public zone(공개영역)에 있는 룰이 적용되고, 개인 네트워크에 있다면 다른 zone의 룰의 적용할 수 있습니다. 이 처럼 네트워크 형태에 따라 적용하는 방화벽 룰을 다르게 할 수 있습니다.

 

우리는 서버 용도로 리눅스를 사용하기때문에 개방된 네트워크 public zone 만 필요합니다. 또한 방화벽에는 public zone이 기본 zone 으로 설정되어있습니다. 이는 방화벽 설정파일에서 변경가능합니다.

 

* public zone의 설정파일

/etc/firewalld/zones/public.xml

 

* 방화벽 재로드

# firewall-cmd --reload

 

설정파일은 xml 형식으로 되어있으며, firewall-cmd --permanent --zone=public 명령으로 추가했던 룰들이 저장되어있습니다. zone의 설정파일을 변경할 경우 방화벽 재로드를 해야 반영이 됩니다. 

 

또한 firewall-cmd에서 --permanent 옵션이 들어간다면 반영은 되지않고, 해당 zone의 설정파일에서 룰 추가/수정만 이루어집니다. 따라서 --permanent 옵션 넣었다면 방화벽 재로드를 해야합니다. 

 

참고로 설정파일에 추가된 룰은 영구반영됩니다. 만약 --permanent 옵션을 넣지않으면, 일시적으로 즉시 반영됨을 의미합니다. (재부팅할 경우 zone의 설정파일에 추가되지않은 룰은 전부 삭제됩니다. )

 

 

2. 포트

포트를 방화벽에 추가하면 해당 포트는 허용됩니다.

 

* 포트추가

 

# firewall-cmd --permanent --zone=public --add-port=포트

예) firewall-cmd --permanent --zone=public --add-port=80/tcp

 

# firewall-cmd --reload

 

 

* 포트 제거

# firewall-cmd --permanent --zone=public --remove-port=포트

예) firewall-cmd --permanent --zone=public --remove-port=80/tcp

 

# firewall-cmd --reload

 

 

3. 서비스

서비스에서 사용하는 룰을 적용하려면 아래와 같이 서비스를 추가하면 됩니다. 

단, 해당 서비스 xml 룰 파일이 /usr/lib/firewalld/services 에 있어야 사용할 수 있습니다. 

 

* 서비스 추가

firewall-cmd --permanent --zone=public --add-service=서비스

예) firewall-cmd --permanent --zone=public --add-service=http

 

# firewall-cmd --reload

 

* 서비스 제거

firewall-cmd --permanent --zone=public --remove-service=서비스

예) firewall-cmd --permanent --zone=public --remove-service=http

 

# firewall-cmd --reload

 

그리고 /usr/lib/firewalld/services 디렉토리에 있는 서비스 파일들을 수정하려면 /etc/firewalld/services에 복사후 수정해야 합니다. (/etc/firewalld/services에 있는 서비스 파일들이 우선 적용되기에 관리상 편리합니다..)

 

4. 임의의 룰 (Rich rule)

포트, 서비스 룰 이외에 원하는 룰을 임의로 적용할 수 있습니다. 예를 들면 ip차단 같은...

 

* 룰 추가

# firewall-cmd --permanent --zone=public --add-rich-rule="임의의 룰"

예) firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=192.168.0.4/24 service name=http accept"

 

# firewall-cmd --reload

 

* 룰 제거

# firewall-cmd --permanent --zone=public --remove-rich-rule="임의의 룰"

예) firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=192.168.0.4/24 service name=http accept"

 

# firewall-cmd --reload

 

 

* 응용예시 - http(80번 포트) 서비스에서 특정 ip 차단

웹서버를 운영하다보면 특정ip(스팸같은)를 차단시키고 싶을 때가 있습니다. 그럴경우 아래와 같이 임의의 룰을 활용하면 됩니다.

 

 

차단시)

# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=차단ip service name=http reject"

 

차단해제시)

# firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=차단ip service name=http reject"

 

# firewall-cmd --reload

 

 

위 명령을 실행하면 즉시 , 영구적으로 해당 ip를 웹사이트에 접속하지못하게 차단시킬 수 있습니다. 이 방법은 웹서버 자체에서 ip를 차단시키는 것보다 효과적입니다.

 

 

5. 방화벽 기타 명령어

방화벽에서 유용 명령어들입니다

 

* 허용한 포트 목록

# firewall-cmd --list-ports

 

 

* 방화벽 상태 확인

# firewall-cmd --state

 

* 활성화된 zone 목록

# firewall-cmd --get-active-zones

 

* 현재 존재하는 서비스 목록

# firewall-cmd --get-service

 

public zone에 있는 서비스 목록

 

# firewall-cmd --zone=public --list-services

 

 

 

참조 : http://oracle-base.com/articles/linux/linux-firewall-firewalld.php

 

출처 : https://www.conory.com/note_linux/42477

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
179 CentOS 7 리눅스 방화벽(firewalld) 포트 포워딩(Port Forwarding) JAESOO 2017.06.20 75
» 리눅스 방화벽 firewalld (CentOS 7) JAESOO 2017.06.20 46
177 [CentOS] 7으로 버전업된 방화벽관리(firewall-cmd) JAESOO 2017.06.20 27
176 CentOS 7 초기 서버 세팅 / WordPress 설치하기 JAESOO 2017.06.20 37
175 AIX 5.3 TL07이상에서 MD5 패스워드 사용하기 2 JAESOO 2017.06.13 25
174 리눅스(linux) hostname 변경하는 방법 (CentOS 6, 7) JAESOO 2017.06.02 14
173 CentOS 멀티 IP 설정 방법 JAESOO 2017.06.02 19
172 [CentOS] IP설정 ifconfig , ifcfg-eth0 설정하기 JAESOO 2017.06.02 14
171 centos 7 방화벽 해제- firewalld down JAESOO 2017.05.12 27
170 CentOS7 방화벽 관리하기 (firewalld) JAESOO 2017.05.12 44
169 RHEL/CentOS 7 에서 방화벽(firewalld) 설정하기 JAESOO 2016.11.09 119
168 Linux 'systemctl restart httpd.service' 오류 해결방법 JAESOO 2016.11.09 742
167 Netdata 설치 및 구성 (리눅스 오픈 소스) JAESOO 2016.11.09 177
166 Buffer와 Cache의 차이점 TOP을 통해 본 리눅스 메모리 JAESOO 2016.10.25 67
165 리눅스 웹서버 구축전 고민사항 JAESOO 2016.10.25 71
164 CentOS Linux 에서 설치시 uuid/uuid.h: No such file or directory JAESOO 2016.10.24 68
163 한번에 끝내는 CentOS 7.x (7.0 ~ 7.2) 웹서버세팅 (센토스 서버세팅) JAESOO 2016.10.24 128
162 리눅스(Linux) 디렉토리 구조 JAESOO 2016.10.19 69
161 ssh서버가 비밀번호를 거부했습니다. 다시 시도하십시오. JAESOO 2016.08.26 284
160 [리눅스] IP 설정 변경 하기 JAESOO 2016.08.26 160
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

PageViews   Today : 1,620   Yesterday : 1,534   Total : 19,195,223  /  Counter Status   Today : 491   Yesterday : 507   Total : 1,252,840
Site Info   Member : 58  /  Total documents : 1,197   New documents : 0  /  Total comments : 25

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소