일반적으로 포트 오픈 시
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
기본적으로는 ssh와 dhcpv6-client 서비스가 등록되어 있다. 참고로 firewalld를 올려도 ssh 연결이 가능한 이유가 바로 ssh 서비스가 디폴트이기 때문이다.
여기에 <port> 태그를 아래 형식처럼 추가하면 된다.
<port protocol="tcp" port="포트"/>
3306 포트를 추가해서 firewalld를 올려보자.
2. firewalld 서비스 시작
[root@newhost zones]# systemctl start firewalld
오픈된 포트를 확인한다.
[root@newhost zones]# firewall-cmd --list-all
3306이 이미 오픈되어 있는 걸 볼 수 있다.