CentOS 7.x 에서의 Port 관리법
개요
포트를 오픈하려고 iptables 명령을 사용했다. 그런데 아무런 반응이 없었다.
iptables -I INPUT -p tcp --dport 8889 -j ACCEPT |
그리고 iptables을 재실행할라하니 다음과 같은 에러를 확인했다.
$ /etc/init.d/iptables restart Failed to restart iptables.service: Unit not found. |
이에 해당 문제를 해결하고자 찾아보았더니 CentOS 7.x에서는 iptables 대신 firewall을 채용했다고 한다.
iptables 대신 firewall을 사용하게된 이유
Redhat Products & Servies의 4.11. 보안 및 액세스 제어에는 다음과 같은 설명이 나온다.
4.11.1. 새로운 방화벽 (firewalld)Red Hat Enterprise Linux 6에서 방화벽 기능은 iptables 유틸리티에 의해 제공되어 명령행이나 그래픽 설정 도구, system-config-firewall에서 설정되었습니다. Red Hat Enterprise Linux 7에서 방화벽 기능은 iptables에 의해 제공되지만 관리자는 동적 방화벽 데몬, firewalld , 설정 도구를 통해 iptables와 상호 작용합니다. 설정 도구에는 firewall-config, firewall-cmd, firewall-applet이 있으며 이는 Red Hat Enterprise Linux 7 기본값 설치에 포함되어 있지 않습니다.firewalld 는 동적이기 때문에 언제든지 설정을 변경할 수 있고 바로 실행됩니다. 방화벽을 다시 로딩할 필요가 없으므로 기존 네트워크 연결에서 의도하지 않은 중단이 발생하지 않습니다.Red Hat Enterprise Linux 6와 7 간의 방화벽에서의 주요 차이점은 다음과 같습니다:
|
그리고, firewalld concept and configuration의 Page-5를 보면 다음과 같이 필요성에 대해 서술한다.
첨언하자면, iptables과 firewall의 장단에 대해서는 이래저래 말들이 많은 듯 하다. 새롭게 나온 기능이다보니 으례 발생하는 과도기적 충돌이겠거니 싶다.ㅎㅎ
iptables vs firewall
firewall로 변경되었다고는 하나, 다음과 같이 firewall을 중지시키고 iptables를 설치해서 기존처럼 사용하는 것도 가능하다.
$ systemctl stop firewalld $ systemctl mask firewalld $ yum install iptables-services $ systemctl enable iptables $ service iptables save |
※ 결국, firewalld를 사용할지 iptables를 사용할지는 본인의 선택이다.
firewall의 설정법
맨 처음, 혹시 몰라 yum update 를 해 주었다. ㅡㅡ;;
systemctl enable firewalld systemctl start firewalld |
systemctl stop firewalld systemctl disable firewalld |
방화벽을 사용설정 하였다면 이제 방화벽 상태를 확인하자.
firewall-cmd --state |
firewall-cmd --get-zones |
firewall-cmd --get-default-zone |
firewall-cmd --get-active-zones |
firewall-cmd --list-all |
firewall-cmd --zone=public --list-all |
상태를 확인하였으니, 새로운 서비스/포트를 추가해보자.
참고로 시스템 재부팅 또는 방화벽 재시작 후에도 지속적용 되도록 하려면 --permanent 옵션을 붙인다. |
Add FTP Service
firewall-cmd --permanent --add-service=ftp |
Delete FTP Service
firewall-cmd --remove-service=ftp |
Add FTP Port
firewall-cmd --permanent --add-port=21/tcp |
Delete FTP Port
firewall-cmd --remove-port=21/tcp |
Add HTTP Service
firewall-cmd --permanent --zone=webserver --add-service=http |
Add HTTP port
firewall-cmd --permanent --zone=webserver --add-port=9090-9100/tcp |
Delete HTTP port
firewall-cmd --permanent --zone=webserver --remove-port=9090-9100/tcp |
중요) 설정내용을 Reload 해야만 적용된다.
firewall-cmd --reload |
댓글 없음:
댓글 쓰기