[centos] firewalld

2019. 4. 22. 20:25study/centos 7 server & network

- firewalld ?

: centos 7부터는 방화벽으로 iptables가 아닌 firewalld를 사용한다. 

: 따라서, 방화벽을 설정하기 위해서는 다음 명령어를 사용해야한다.

1. firewall-cmd (콘솔)

2. firewall-config (x윈도우) 



firewalld는 설정을 변경할 시 다시 로딩할 필요가 없다. 

즉, 기존 네트워크 연결에서 의도하지 않은 중단이 발생하지 않는다. 

(단, 영구적인 설정 등은 reload가 필요하다. 이렇게 reload가 필요한 경우는 밑에서 자세히 다루겠다.) 


단, centos 7에서 iptables를 사용할 수도 있다.

이럴 때는 firewalld를 중지시키고 사용해야한다.


# stop firewalld

[root@localhost ~] # systemctl stop firewalld

[root@localhost ~] # systemctl mask firewalld


# install iptables

[root@localhost ~] # yum install iptables-services

[root@localhost ~] # systemctl enable iptables


이번 글에서는 firewall-cmd를 사용해서 방화벽을 설정하는 방법을 포스팅하고자 한다.



1. zone

: 서버의 용도에 맞게 사전에 정의된 네트워크의 신뢰 레벨을 의미한다.

: zone에 대한 내용은 다음 포스팅에서 더 자세히 다룰 예정이다. 


* 모든 설정은 --permanent로 영구적으로 유지할 수 있으며, 이후 반드시 --reload를 해줘야 반영된다.


1.1 사전에 정의된 존 목록 출력

firewall-cmd --get-zones


1.2 전체 존 목록을 출력

firewall-cmd --list-all-zones


1.3 default 존 출력

firewall-cmd --get-default-zone


1.4 활성화된 존 출력

firewall-cmd --get-active-zone


1.5 존 추가

firewall-cmd --new-zone=[ZONENAME ]


1.6 존 삭제

firewall-cmd --delete-zone=[ZONENAME ]



2. 서비스

* 모든 설정은 --permanent로 영구적으로 유지할 수 있으며, 이후 반드시 --reload를 해줘야 반영된다.


2.1 서비스 목록

firewall-cmd --get-services


2.2 서비스 추가

firewall-cmd --add-service=[SERVICE NAME ]


2.3 서비스 삭제

firewall-cmd --remove-service=[SERVICE NAME ]



3. 포트/ip

* 모든 설정은 --permanent로 영구적으로 유지할 수 있으며, 이후 반드시 --reload를 해줘야 반영된다.


3.1 포트 추가

firewall-cmd --add-port=[port_num ] / [protocol ]

* 포트 추가는 firewall-cmd --reload 를 해줘야 반영된다.


3.2 포트 삭제

firewall-cmd --remove-port=[port_num ] / [protocol ]


3.3 허용 ip 추가

firewall-cmd --add-source=[source range ] / [netmask ]


ex) firewall-cmd --add-source=192.168.1.0/24

: 192.168.1.0 대역에서의 접근을 허용



4. rich-rule

: 위의 설정보다 복잡한 규칙 설정이 필요할 때 rich rule를 사용하여 직접 방화벽 규칙을 설정할 수 있다.

* 모든 설정은 --permanent로 영구적으로 유지할 수 있으며, 이후 반드시 --reload를 해줘야 반영된다.


firewall-cmd --add-rich-rule='rule [rule ] '


: rich rule를 사용해서 규칙을 설정하는 방법은 링크에 설명되어있다.

: rich rule에 대한 내용도 다음 포스팅에서 자세히 다룰 예정이다.



5. direct 

: 기존의 iptables 명령처럼 직접 방화벽 내부에 접근해서 설정할 수 있다.

: 즉, iptables 설정 방법과 비슷하며, 그 형식을 따른다.


5.1 rule 목록 확인

firewall-cmd --direct --get-all-rules


5.2 direct 설정

firewall-cmd --direct --add-rule [rule]


: 이에 대한 내용도 다음 포스팅에서 자세히 다룰 예정이다.

'study > centos 7 server & network' 카테고리의 다른 글

[centos] firewalld --direct  (0) 2019.04.22
[centos] iptables  (0) 2019.04.15
[centos] 방화벽  (0) 2019.04.11
[centos] ftp  (0) 2019.04.09
[centos] ssh  (0) 2019.04.09