UFW (Uncomplicated Firewall)
기본 제공 도구Ubuntu, Debian
UFW(Uncomplicated Firewall)는 Ubuntu의 기본 방화벽 프런트엔드입니다. ufw allow 22/tcp와 같은 간단한 명령어로 커널의 패킷 필터를 관리합니다. 기본적으로 설치되어 있으나 비활성화되어 있으며, 기본 정책은 들어오는 연결은 거부하고 나가는 연결은 허용합니다.
1규칙
ufw allow 443/tcp는 포트를 열고, ufw deny는 차단하며, ufw limit ssh는 SSH를 허용하되 너무 자주 연결하는 주소는 차단합니다. ufw allow from 203.0.113.5 to any port 22는 특정 주소만 허용합니다. 'OpenSSH'와 같은 애플리케이션 프로필은 ufw app list로 확인할 수 있습니다.
2상태 및 삭제
ufw status verbose는 정책과 규칙을 보여주며, ufw status numbered는 규칙에 번호를 부여하여 ufw delete <number>로 삭제할 수 있게 합니다.
3Docker와 UFW
Docker는 게시된 컨테이너 포트에 대해 자체 iptables 규칙을 작성하며, 이는 UFW 규칙보다 먼저 처리됩니다. 따라서 docker run -p로 게시된 포트는 UFW에서 허용하지 않더라도 도달 가능할 수 있습니다.
연결이 끊기지 않고 UFW를 켜는 방법
- 먼저 SSH 허용:
sudo ufw allow OpenSSH - 필요한 다른 서비스 허용(예):
sudo ufw allow 443/tcp - 방화벽 켜기:
sudo ufw enable - 결과 확인:
sudo ufw status verbose
주의 사항
- SSH 규칙 없이 SSH를 통해 UFW를 활성화하면 연결이 끊어집니다.
- Docker 컨테이너가 게시한 포트는 UFW 규칙을 우회할 수 있습니다.
관련 문서
- SSH 키SSH 키 인증의 작동 방식, ssh-keygen을 사용하여 키를 생성하고 서버에 설치하며 보호하는 방법입니다.
- systemd 유닛과 systemctlsystemd 유닛이 무엇인지, 일반적인 유닛 유형은 무엇인지, 그리고 systemctl을 사용하여 서비스를 시작, 중지, 활성화 및 검사하는 방법을 설명합니다.
- journalctl과 systemd 저널journalctl로 로그를 읽고, 저널이 차지하는 용량을 확인하며 --vacuum 옵션으로 안전하게 줄이는 방법입니다.
출처
- ufw(8) 설명서 페이지 (Ubuntu) manpages.ubuntu.com
- 방화벽 (Ubuntu Server 문서) ubuntu.com
최종 검토: