티스토리 뷰

반응형

서버의 보안을 향상시키는 방법은 여러가지가 있으나 그 중에서 방화벽 설정이 가장 간단하지만 적의 공격을 효과적으로 막을 수 있는 방법이라고 생각한다. 리눅스에서 방화벽 설정을 하는 방법 또한 다양하지만 본 문서에서는 UFW만을 다루고자 한다. UFW는 uncomplicated firewall의 약자로 우분투를 비롯한 다양한 리눅스에서 사용되는 방화벽 명령줄 프로그램이다. 이를 사용하면 단 몇 줄의 명령어로 방화벽 설정이 가능하다. 하지만 명령어를 알고 있지 않다면 간단한 UFW라도 설정하기가 어렵다. 따라서 본 문서에서는 UFW를 사용하여 방화벽 설정을 하는 방법을 정리하여 서버 보안 향상에 도움이 되고자 한다.

UFW를 사용하기 위한 전제 조건

UFW를 사용하려면 root 권한이 있어야 하며, 서버 상에 UFW가 미리 설치되어 있어야 한다. UFW가 설치되어있지 않은 경우 apt나 yum을 사용하여 설치해 주도록 하자.

UFW 활성화하기

UFW를 활성화하기 전에 SSH를 통해 접근한 경우 접속한 SSH 포트(기본 22번)에 대해 접근을 허용해야 한다. 아래의 명령어를 통해 UFW를 활성화할 수 있다.

$ sudo ufw allow 22/tcp # SSH(22번) 접근 허용
$ sudo ufw enable

UFW 상태 조회

ufw status 명령어를 사용하여 UFW의 활성 상태나 차단된 포트 정보와 같은 UFW 상태를 조회할 수 있다.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
...

특정 port 접근 허용하기

ufw는 기본적으로 모든 port에 대해 외부 접근을 차단한다. ufw allow 명령어를 사용하면 서버의 특정 port로의 접근을 허용할 수 있다. 허용할 port의 범위를 지정할 수도 있다.

$ sudo allow [port_number]
$ sudo allow 2222 # 2222번 port 접근 허용
$ sudo allow 2222/tcp # 2222번 port tcp 접근 허용
$ sudo allow 3000:3010/tcp # 3000~3010 port tcp 접근 허용

특정 IP 접근 허용하기

port 뿐만 아니라 ip를 통한 접근 권한 부여도 가능하다. 똑같이 ufw allow 명령어를 사용하여 해당 동작을 수행할 수 있다.

$ sudo ufw allow from [IP address]
$ sudo ufw allow from 123.4.56.7 # 123.4.56.7 ip에서 모든 port 접근 허용

특정 IP 접근 제한하기

특정 IP로부터 공격이 들어오는 경우 ufw deny 명령어를 통해 특정 IP를 차단할 수 있다.

$ sudo ufw deny from [IP address]
$ sudo ufw deny from 123.45.6.78 # 123.45.6.78 IP에 대해 모든 port 접근 제한

UFW rule 삭제

ufw delete 명령어를 사용하여 ufw rule을 삭제할 수 있다.

$ sudo ufw delete [rule]
$ sudo ufw delete allow 2222/tcp # 2222/tcp 접근 허용 rule을 제거

UFW 설정 초기화

ufw reset 명령어를 사용하면 ufw rule을 초기화 할 수 있으며 ufw disable 명령어를 사용하면 ufw rule을 삭제하지 않고 비활성화만 할 수 있다.

반응형
댓글