오늘은 Oracle Cloud 서버에
nginx에 클라이언트를 배포해 외부에서 접속하고
WorkBench를 이용해 mysql을 접속하려한다.

외부접속관련해 설정을 정리해보려한다.


📌 UFW vs iptables

iptables를 이용해 방화벽 설정을 할 수 있다.

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

와 같이 입력해주면 설정이 가능하다.
UFW는 이를 좀더 쉽게m 설정할 수 있도록 해주는 명령어이고
수준높은 방화벽 구성에는 iptables를 사용해야한다.


📌 UFW 활성/비활성

1). UFW 활성화

sudo ufw enable


2). UFW 비활성화

sudo ufw disable


3). UFW 상태확인

sudo ufw status verbose

상태확인 명령어를 입력하면

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
3306/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
3306/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)

와 같이 허용한 포트에 대해 표시가된다. ex) 80, 3306
위에서 확인이 가능하듯, 기본룰은

incoming는 전부 거부(deny)
outgoing은 전부 허가(allow)
로 UFW에 기본으로 설정되어있는 룰이다.


📌 UFW 허용,차단 룰추가

1). http 80번 포 TCP,UDP 포트를 모두허용

sudo ufw allow 80


2). http 80번 포 TCP 포트만 허용

sudo ufw allow 80/tcp


3). http 80번 포 UDP 포트만 허용

sudo ufw allow 80/udp


반대로 차단과 같은 경우에는 allow자리에
deny 명령어를 입력해주면 된다.


📌 UFW 허용,차단 룰 삭제

위에서 allow, deny명령어를 이용해
허용과 차단 룰을 추가해주었다.
sudo ufw status verbose로 조회하였을 경우에
아래와 같이 조회되었다고 가정했을때

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
80/tcp                     ALLOW IN    Anywhere
80                         DENY IN     Anywhere
80/tcp (v6)                ALLOW IN    Anywhere (v6)
80 (v6)                    DENY IN     Anywhere (v6)

해당 정책들을 삭제하고 싶은 경우에는

sudo ufw delete deny 80
sudo ufw delete allow 80/tcp

와 같은 방식으로 delete 명령어를 이용해 룰을 삭제할 수 있다.


✨ 참고 블로그
클라우드 방화벽 설정 참고 레퍼런스, 우분투 UFW 설정 참고 레퍼런스