우분투(Ubuntu) 22.04 Server 방화벽(ufw) 설정 방법
안녕하세요. YeopBox의 상큼한놈 입니다.
이번에는 우분투 22.04의 방화벽 툴인 ufw에 대하여 알아보도록 하겠습니다.
ufw의 경우 해당 기능의 사용 방법만 알고 있으면 추후 간단하게 방화벽을 수정하실 수 있습니다.
SSH, Nginx, MariaDB 등의 서버 프로그램을 이용하시게 되면 사용 빈도는 더 늘어날 것입니다.
이번에는 기본이 되는 방화벽 오픈/차단 방법에 대하여 간략하게 알아보고자 합니다.
우분투 방화벽 UFW 활용 전 팁!
우분투 방화벽 설정 방법은 Docker 등 다른 프로그램에 비해 이용 방법이 심플합니다.
주로 일반적인 영역에서는 ‘help’ 커맨드를 통한 내용으로도 충분히 방화벽 오픈/차단을 진행할 수 있으며, 저처럼 커맨드를 자주 잊어버리신 분들은 ‘help’ 커맨드를 참고하시면 좋습니다.
1 |
ufw help |
우분투 방화벽 UFW 기본적인 사용 방법
- UFW 방화벽 오픈/차단 및 삭제
1 2 3 4 5 6 |
// 이용 방법 sudo ufw allow <port>/<protocol> // 실제 사용 예제 sudo ufw allow 12345/tcp // 적용 확인 sudo ufw status |
protocol은 생략 가능하며 생략 시 ‘tcp/udp’ 모두 적용 됩니다.
방화벽 차단의 경우 allow 대신 deny 커맨드를 이용해 주시면 됩니다.
위와 같이 IPv4 및 IPv6에 대한 방화벽 허용 정책이 적용된 것을 확인하실 수 있습니다.
이번에는 포트가 아닌 서비스 명을 이용하여 방화벽 오픈을 진행해 보겠습니다.
1 |
sudo vi /etc/services |
서비스 명을 변경하기 위하여 서비스 파일을 편집기로 실행합니다.
원하는 서비스를 검색하여 찾은 다음 열고자 하는 방화벽 포트에 부합하는지 확인합니다.
만일 다를 경우 변경 뒤 저장해 주시면 됩니다. (Mac에서 할당된 포트를 수정하는 것과 동일한 방법임.)
1 2 3 4 5 6 7 8 |
// 기존에 등록된 12345/tcp 설정을 삭제 sudo ufw delete allow 12345/tcp // 현재 등록된 방화벽 리스트 확인 sudo ufw status // ssh 서비스에 관한 방화벽 오픈 sudo ufw allow ssh // 다시한번 현재 등록된 방화벽 리스트 확인 sudo ufw status |
다음과 같이 ‘/etc/services’에서 수정된 포트 정보로 방화벽 오픈이 진행된 것을 확인하실 수 있습니다.
- UFW 방화벽 활성화
설정이 끝났다면 방화벽을 아래와 같이 활성화 시킬 수 있습니다.
1 2 3 4 5 6 |
// UFW 방화벽 활성화 sudo ufw enable // UFW 방화벽 비활성화 sudo ufw disable // UFW 방화벽 상태 확인 sudo ufw status |
ufw enable 이후 status를 확인해 보면 활성화(active) 상태임을 확인할 수 있습니다.
- 방화벽 리스트 순서를 통하여 관리
방화벽 관리 시 포트 번호나 서비스 명을 통하여 수정할 수도 있지만 방화벽 적용 순서를 통하여도 관리하실 수 있습니다.
1 2 3 4 5 6 |
// 방화벽 적용 순서를 맞춰 현재 상태를 띄어줌 sudo ufw status numbered // 두번째 방화벽 룰을 삭재 sudo ufw delete 2 // 현재 상태 확인하기 sudo ufw status |
위 스크린샷과 같이 2번째에 할당 되어 있던 IPv6 방화벽 룰이 사라진 것을 확인하실 수 있습니다.
- 특정 IP에 대한 방화벽 오픈/차단 및 삭제
특정 아이피에 대하여 방화벽 오픈 및 차단을 설정하실 수 있습니다.
from 키워드를 이용한 뒤 IP주소 혹은 서브넷 마스크를 입력하시면 됩니다.
1 2 3 4 5 6 |
// 172.16.163.1에 대한 방화벽 차단 sudo ufw deny from 172.16.163.1 // 서브넷을 통한 방화벽 차단 sudo ufw deny from 172.16.163.0/24 // 기존 172.16.163.1에 대한 방화벽 차단 정책 삭제 sudo ufw delete deny from 172.16.163.1 |
다음과 같이 특정 서브넷 마스크에 대한 방화벽이 Deny 된 것을 확인할 수 있습니다.
단, 실제 12345/tcp에 대하여 172.16.163.0/24에 포함된 아이피에서 접근할 수 있는데, 이는 방화벽 설정 시 우선순위가 존재하기 때문입니다.
- 방화벽 설정 시 우선순위 확인하기
172.16.163.0/24에 대한 방화벽 차단 정책이 우선 되도록 다시 방화벽 정책을 적용하였습니다.
1 2 |
// 방화벽 정책을 확인 sudo ufw status numbered |
위와 같이 172.16.163.0/24에 대하여 방화벽 차단이 최상단에 존재할 경우, 아래와 같이 12345 포트가 열려 있음에도 불구하고 접속 할 수 없습니다.
마치며…
이번에는 우분투 22.04 Server에 대한 ufw 설정 방법에 대하여 확인해 보았습니다.
이용 방법이 iptables에 비교해 크게 어려운 부분은 없기에 간혹 사용이 필요한 경우 ‘ufw help’를 이용하여 사용할 예정입니다.
수정되어야 하는 사항이나 추가되었으면 하는 사항을 댓글로 남겨주시면 반영 할 수 있도록 노력하겠습니다.
감사합니다.