방화벽, 포트 및 IP 접근제어

포트와 IP 접근제어를 적절히 하면 대부분의 보안 위협은 막을 수 있다.



규칙

외부 IP에서 해당 호스트로 접속하는 인바운드 방화벽 규칙을 선언한다.


규칙을 선언하는 방식은 크게 2가지가 있다.

  • 허용(allow) 방식 : 10.0.10.5 만 해당 호스트에 접속할 수 있다.
  • 거부(deny) 방식 : 10.0.10.5 는 해당 호스트에 접속할 수 없다.


허용(allow)방식의 규칙이 강력하다. 단, 고정 IP만 규칙에 넣을 수 있다. IP가 유동적으로 바뀌는 모바일 기기나, 일반 가정용 인터넷을 을 사용하는 PC에서는 접속이 제한될 수 있다.


CentOS 방화벽

firewalld (firewall-cmd)를 통해 적용한다.

포트 접근제어 : RHEL/CentOS 에서 방화벽(firewall) 설정하기 - lesstif.com

IP 접근제어 : 리눅스(CentOS7) 방화벽에 IP allow, deny 적용하기 - UX공작소

백업 : /etc/firewalld/ 디렉터리를 백업

(참고) IP 접근제어의 add-rich-rule 부분은 iptables 문법과 동일하다


Ubnutu 방화벽

ufw 를 통해 적용한다.

포트 접근제어 : 우분투 방화벽 UFW - 제타위키

IP 접근제어 : UFW - 우분투 한국커뮤니티 위키 >> IP 허용/거부

백업 : /etc/ufw/ 디렉터리를 백업


iptables

구식 시스템에서 이용한다. iptables 사용이 어렵기에 firewalld 와 ufw 도구가 나왔다.

IP+포트 조합의 특정 조건에 맞는 CHAIN 을 선언하고, 해당 체인에 패킷이 들어오면 DROP 하도록 설정하여 방화벽을 구현한다.


tcp_wrapper

TCP wrapper 는 리눅스 커널의 TCP 패킷 처리과정에 관여하여 접속을 allow 또는 deny 한다.

/etc/hosts.allow, /etc/hosts.deny 파일 을 통해 특정 서비스에 대한 IP 접속을 허용/거부할 수 있다.

(유의사항) 최신 리눅스 커널에서는 사용할 수 없다(depricated). CentOS 8 이상부터는 사용할 수 없다.

https://fedoraproject.org/wiki/Changes/Deprecate_TCP_wrappers