UFW
Uncomplicated FireWall
다양한 리눅스 환경에서 작동되는 사용하기 쉬운 방화벽 관리 프로그램
방화벽은 netfilter를 사용하여 filtering을 수행하는데
이 필터중 리눅스에서 가장 많이 사용되는게 iptable이다.
iptable
리눅스의 패킷 필터링(Packet Filtering) 도구로서 방화벽 구성이나 NAT(Network Address Translation)에 사용된다.
사용법
iptables [-t 테이블] [액션] [체인] [매치] [-j 타겟]
Table
- filter, nat, mangle, raw
- 명시하지 않으면 기본적으로 filter이다.
Action
- -A : APPEND (정책 추가)
- -I : INSERT
- -D : DELETE
- -R : REPLACE
- -F : FLUSH
- -P : POLYCY
- -L : LIST
Chain
- INPUT
- OUTPUT
- FORWARD
- PREROUTING
- POSTROUTING
Match
- -s: 출발지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––source, ––src)
- -d: 목적지 매칭. 도메인, IP 주소, 넷마스크 값을 이용하여 표기(––destination, ––dst)
- -p: 프로토콜과 매칭. TCP, UDP, ICMP 와 같은 이름을 사용하고 대소문자는 구분하지 않음
- -i: 입력 인터페이스와 매칭(––in-interface)
- -o: 출력 인터페이스와 매칭(––out-interface)
- -j: 매치되는 패킷을 어떻게 처리할지 지정 (--jump)
Target
패킷이 규칙과 일치할 때 취하는 동작을 지정한다.
- ACCEPT: 패킷을 허용한다.
- DROP: 패킷을 버린다(패킷이 전송된 적이 없던 것처럼)
- REJECT: 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.(icmp-port-unreachable)
- LOG: 패킷을 syslog에 기록한다.
- SNAT --to [주소]: 소스 IP를 [변환(NAT)|NAT]한다.
- DNAT --to [주소]: 목적지 IP를 변환(NAT)한다.
- RETURN: 호출 체인 내에서 패킷 처리를 계속한다.
아직 다 정리 못했을정도로 방화벽 설정 절차가 복잡하기 때문에
이 모든걸 쉽게 하게해주는 UFW를 사용한다.
sudo ufw status verbose
- ufw 상태 확인
- 설치 직후 inactive 상태
sudo ufw enable
sudo ufw allow 4242