방화벽, 포트 및 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