리눅스 firewalld 시작 전 포트 미리 열어 놓는 방법

일반적으로 포트 오픈 시

firewall-cmd --zone=public --permanent --add-port=[포트번호]/tcp

명령어를 사용하게 되는데 이건 firewalld 서비스를 실행한 뒤에야 쓸 수 있다.

운영 중인 서버 장비에 뒤늦게 방화벽을 기동하는 경우도 있는데 이럴 땐 firewalld 서비스를 시작하는 순간 모든 포트가 일제히 막히는 문제가 있다. 즉 포트를 오픈하는 동안 다운 타임이 생긴다.

하지만 미리 오픈할 포트를 정해두고 firewalld를 실행하는 방법이 있으니 걱정하지 않아도 된다.

1. /etc/firewalld/zones/public.xml 파일 수정

firewalld에서 오픈하는 포트 정책은 public.xml 설정 파일에 기록된다. firewall-cmd –zone=public –permanent –add-port=[포트번호]/tcp 명령으로 포트를 오픈해도 결국 이 파일이 수정되는 것이다.

해당 파일을 편집해준다.

[root@newhost zones]# cd /etc/firewalld/zones
[root@newhost zones]# vim public.xml
public.xml 파일

기본적으로는 ssh와 dhcpv6-client 서비스가 등록되어 있다. 참고로 firewalld를 올려도 ssh 연결이 가능한 이유가 바로 ssh 서비스가 디폴트이기 때문이다.

여기에 <port> 태그를 아래 형식처럼 추가하면 된다.

<port protocol="tcp" port="포트"/>

3306 포트를 추가해서 firewalld를 올려보자.

3306 포트 추가

2. firewalld 서비스 시작

[root@newhost zones]# systemctl start firewalld

오픈된 포트를 확인한다.

[root@newhost zones]# firewall-cmd --list-all

3306이 이미 오픈되어 있는 걸 볼 수 있다.

firewalld 오픈

관련 글

댓글 남기기