본문 바로가기

IT, Computer/Linux

centos7 방화벽 firewall 대충 원하는거 바로적용하기

개인적으로 firewall가 기존의 iptable보다 훨씬 복잡하다.

물론 다양한명령어를 나름(?)의 쉬운 커맨드명령어로 치게해주는건 좋은데

복잡한건 같으며 차라리 인터넷의 예제를 보고 iptable의 파일을 수정하는게 개인적으로 훨씬 편하다.


물론 firewall역시 그렇게 하는방법이 있으며, 이미 이렇게 하는사람도 많은듯하다.



수정할파일은

# vi /etc/firewalld/zones/public.xml

<?xml version="1.0" encoding="utf-8"?>

<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 name="http"/>
  <service name="https"/>
  <port protocol="tcp" port="8080"/>
  <port protocol="tcp" port="10000-11000"/>
  <rule family="ipv4">
    <source address="ssh접근을가능하게할 ip주소"/>
    <service name="ssh"/>
    <accept/>
  </rule>

  <rule family="ipv4">

    <source address="모든접근을 차단할 ip주소"/>

    <reject/>

  </rule>

  
</zone>

저장후

# firewall-cmd --reload


만약 서비스가 실행되고 있지않다면 # systemctl start firewalld

재부팅후 계속 방화벽 유지하고싶다면 # systemctl enable firewalld


수정한 파일을 설명하자면

http접속허용(80번포트) https접속허용(433포트) 8080포트허용(주로 tomcat)

포트 10000부터 11000까지 허용

이외는 전부차단하되 ssh용포트(주로21포트)는 특정ip만 허용한다!

대신 한 ip주소는 어떠한 접근으로도 차단한다!

이다.

reject대신에 drop을 사용하면 차단하였다는 경고메세지를 보내지않고 순수하게 차단만한다.


개인적으로 public.xml이 아니라 goat.xml을 따로 만들어서 적용하고싶은데

국내글에는 만드는방법만있지 그걸 적용하는방법에 대해선 언급이없다.

(디폴트로 설정하는게 적용하는것은 아닌데말이다)

다들 귀찮아서 기존의 public.xml을 수정하는듯하다. 원래 iptables도 그러했으니..



보아하니 공유기없이 깡ip로 운영할경우 당연하듯이 공격이 들어온다고한다.

회사는 물리방화벽장비가 구축되어있으나 개인은 당연히 없을터 필히 centos자체 방화벽을 켜야한다고한다.


회사방화벽속에 살아 항상 방화벽을꺼온 나에게 반성한다.