본문 바로가기
CS & Reversing

리눅스 방화벽/ iptable, ufw, firewall

by m_.9m 2022. 10. 1.

 

Columbia 대학 컴퓨터 공학과 교수인 Steven Bellovin는 원치않는 네트워크 트래픽을 필터링하는 과정을 방화벽으로 처음부른 사람이다. 내부 네트워크가 외부와 연결되는 부분에 일종의 필터를 삽입하는 행위를 방화벽이라고 부르게 되었다.

지금은 현재 5가지 유형의 방화벽이 있다.

 

  1. 패킷 필터링 방화벽
  2. 회로 수준 게이트웨이
  3. 애플리케이션 수준 게이트웨이(일명 프록시 방화벽)
  4. 상태 기반 검사 방화벽
  5. 차세대 방화벽(NGFW)

다섯가지 종류에 대한 자세한 설명은 여기 링크를 참고해 설명을 볼 수 있다. 우리는 이 방화벽을 통해 네트워크 패킷에 대한 관리를 할 수 있는데 여러 운영체제 중 리눅스의 방화벽에 대해 살펴보겠다.

 

리눅스 방화벽은 iptable이 기본으로 되어있다. iptable와 ufw는 모두 리눅스 시스템 방화벽이며 ufw는 iptable을 통해  구현된다. 둘은 약간의 차이점이 있는데 iptable은 유연하지만 ufw에 비해 훨씬 복잡하고 TCP/IP에 대한 이해를 요구한다, ufw(Uncomplicated Firewall)는 사용자가 방화벽을 더 쉽게 설정할 수 있게 도와준다.

 

iptable

iptable은 정책을 사용해 트래픽을 허용하거나 차단하는 명령줄 방화벽 유틸리티이다. 연결이 시작되면 iptable은 일치되는 정책을 찾고 해당되는 필터가 없을 시 기존 작업을 수행하게 된다. iptable은 리눅스 커널의 네트워크 스택에 있는 패킷 필터링 Hook(netfilter framework)와 상호작용한다. netfilter 프레임 워크의 최상단에 위치하는 사용자 레벨의 프로그램이다. 현재 거의 모든 Linux 배포판에 사전 설치되어 제공된다. iptable의 운영은 입력, 출력, 전달의 세가지로 나뉜다. 더 자세한 동작 원리는 다음 링크에서 확인할 수 있다. 더보기

 

ufw

iptable의 작업을 간편화해주는 소프트웨어가 ufw이다. 간단한 명령으로 사용할 수 있으며 기본적으로 8.04 LTS 이후의 모든 데비안 및 우분투에서 사용할 수 있다.

apt-get install ufw //설치

 

firewalld

CentOS7부터 이전의 iptable을 대체해 나온 패킷 필터링 방화벽이다. 이에 따라 사용자 레벨의 프로그램에서는 iptables 명령어 대신 명령행에서는 firewall-cmd, GUI 환경에서는 firewall-config를 사용하게 되었다. 

https://www.lesstif.com/ws/firewalld-43844015.html

 

방화벽 정책을 영구적으로 유지하기 위해서는 --permanent 옵션을 추가해서 실행하면 되지만 이는 즉시 적용되지 않고 firewall-cmd --reload 명령어로 방화벽 정책을 재구동하거나 재부팅을 하기 전에는 변경한 방화벽 설정이 적용되지 않는다.

 

 

Fedora Linux와 CentOS에는 네트워크 구역이 있는데 firewalld의 특징 중 하나는 네트워크 구성과 영역을 기본설정으로 포함시켜 어떤 Zone에 포함시킬지만 정하면 다른 옵션을 따로 지정할 필요가 없다는 점이다. 

https://www.lesstif.com/ws/%EB%84%A4%ED%8A%B8%EC%9B%8D-%EA%B5%AC%EC%84%B1%EA%B3%BC-%EB%B0%A9%ED%99%94%EB%B2%BD-43843953.html