origoni's Blog from Millky

origoni의 스프링 블로그 입니다.

CentOS7 방화벽 관리하기 (firewalld)

CentOS7이 나온지 벌써 1년이 되어간다.

아직 나는 실무에서는 사용하지 않고.. 개인 서버에만 사용중이다. 또 처음 도입 할 당시 프로젝트를 도커(Docker)위에 올려서 그랬는지.. 방화벽에 대해서 신경을 쓰지 않고 있었다.

CentOS7 올라오면서 많은 부분이 바뀌었지만. 그 중 웹개발 하면서 흔하게 마주칠 수 있는 방화벽의 간단한 사용법에 대해 알아보자.


CentOS6 까지는 iptables를 이용하여 관리 하였었는데 7에 와서는 firewalld 라는것이 생겼다.

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

위 주소에 가면 자세한 설명을 볼 수 있다.


여기서는 내가 사용하게된 몇가지 명령을 요약해 두도록 하겠다.

우선 간만에 톰켓을 띄워 간단한 WEB APP를 돌리려고 했는데;; 접근이 안되는거다.

이 서버가 도커 위에 다른 서비스를 돌릴때는 동작을 잘 하던 서버라서. 네트워크 설정이 다 되어있는줄 알았다. 그래서 app를 의심해서 봤는데; 너무 간단한 app이라. 다시 서버쪽을 보니..

아 방화벽이 걸려 있던 것이었다.

우선 방화벽을 내려서 정말인지 확인해 보았다.


# systemctl stop firewalld

으 방화벽 내리니 매우 잘 동작하는것을 확인 하였다.

우선은 다시 올려서 접속 안되는 것을 확인하고. 포트를 추가 하였다.


# firewall-cmd --permanent --zone=public --add-port=8080/tcp
# firewall-cmd --reload

요렇게 하여 8080을 추가하고 접속하니.. 아주 잘 된다.


설정은 vi /etc/firewalld/zones/public.xml 에 가면 확인 할 수 있다.

<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks
               to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"></service>
  <service name="ssh"></service>
  <port protocol="tcp" port="8080"></port>
</zone>


뭐 이렇게 해서 해당 서비스를 올릴 수 있었다.

자세한 사항은 내가 적는것보다.  아까 알려드린 잘 정리된 문서를 참고 하시기 바란다 ^^



back to top