반응형

 요즘 라즈베리 파이로 웹서버를 올리다보니 가지고 놀 것이 많아졌다. 쪼마난 녀석이 재밌는 기능을 많이 가지고 있어서 참 재밌는 장난감이다. 오늘은 우분투의 기본적인 방화벽인 ufw를 설정하는 방법에 대해 알아보도록 하겠다.


 iptables로 좀 더 수준 높은 방화벽을 구성할 수 있지만, 이정도만 해도 충분하다. 어차피 해외 아이피는 다 막았고... 가지갈 꺼 있으면 가져가라...



UFW 사용법

 사용법만 알면 아주 간단하다. 지금부터 따라해보도록 하자.


UFW 설치

1
2
3
4
> sudo apt-get update 
> sudo apt-get upgrade
 
> sudo apt-get install ufw
cs

 

 우선은 UFW를 설치를 해야하니, 위의 명령어를 순서대로 입력해서 UFW를 설치하도록 하자. 알아서 잘 설치가 될 것이다.



UFW 활성화 / 비활성화 

1
2
3
> sudo ufw enable
> sudo ufw disable
> sudo ufw status verbose
cs


 UFW는 설치 이후에 기본적으로 비활성화 상태이다. 위의 코드를 살펴보면

1번줄 : UFW 활성화

2번줄 : UFW 비활성화

3번줄 : UFW 상태 확인


 설치를 하자마자 활성화를 시키면... 만약 SSH로 작업중이었다면 바로 작업이 끊긴다. 참고하도록 하자. 

그래서 SSH상태에서 활성화를 시키려고 하면 혹시 SSH상태에서 작업하고 있는거 아니냐고 묻는다. 만약 SSH로 작업중이라면 해당 포트는 열어놔야한다.


UFW 기본 룰 확인 

 UFW에서 기본적으로 설정할 수 있는 룰은 다음과 같다.

- deny : 들어오는 패킷에 대해서 전부 거부. (접속불가능)

- allow : 나가는 패킷에 대해서 전부 허가. (접속 가능)


기본 룰 확인

1
> sudo ufw show raw
cs


기본정책 차단 & 허용

1
2
> sudo ufw default deny
> sudo ufw default allow
cs


UFW 허용 및 차단 설정

 이제 본격적으로 어느 포트를 열어주고 어느 IP를 차단하고 허용할지를 설정해줘야한다. 아래의 예시를 보면 이해가 갈 것이다.


1
2
3
4
> sudo ufw allow 22
> sudo ufw deny 22
> sudo ufw allow from 123.456.789.0 to any port 22
> sudo ufw deny from 123.456.789.0 to any port 22
cs


 자, 위의 코드를 보면

1번줄 : SSH 포트를 모든 사용자가 접속할 수 있도록 허용

2번줄 : SSH 포트를 아무도 접근할 수 없음

3번줄 : SSH 포트를 123.456.789 사용자만 접속할 수 있도록 허용

4번줄 : 만약 기본 정책이 Allow라면... 다른 IP에서는 22포트에 접속이 가능하지만, 123.456.789에서는 22번 포트 접속 불가능


이런 식으로 사용을 하게 된다.


특정한 IP 설정

1
2
> sudo ufw allow from 123.456.789.0
> sudo ufw allow from 123.456.789.0/24
cs


 위에서 보았지만 이러한 방식으로 특정 IP의 모든 포트 접근 자체를 거부할 수도 수락할 수도 있다.

allow ↔ deny 만 잘 기억하도록 하자.


1번줄 : 특정IP (1개)에 대해 모든 포트 허용

2번줄 : 특정 아이피대역 ex) 123.456.789.0~123.456.789.255 까지 모두 다 포트 접근 허용


2번줄의 특성을 잘 이용하면 중국이나 해외의 IP대역대를 다 차단할 수 있다.

이건 다른 포스팅에서 다루도록 하겠다.


특정 프로토콜 설정

1
> sudo ufw allow from 123.456.789.0 to any port 22 proto tcp 
cs


 이렇게도 가능하다. 123.456.789.0의 22번 포트중에 tcp 기능만 허용한다. 

이런 기능은 사용자가 원하는 기능만 오픈하도록 할 때 유용하다.



추천 UFW 설정(SSH로 작업시)

 본인의 경우는 메인컴퓨터 1대에서만 작업을 하기 때문에 모든 22번 포트를 다 닫고, 해당 컴퓨터의 IP와 포트만 열어서 사용이 가능하도록 설정을 했다.


1
2
3
4
5
> sudo ufw allow from 123.456.789.0 to any port 22 proto tcp
> sudo ufw enable 
> sudo ufw allow 80
> sudo ufw allow 443
> sudo ufw status 
cs


 이러면 123.456.789.0의 아이피에서만 22번 포트 접속이 가능하기 때문에, 깔끔하다.

만약, 여러명이 작업을 한다고 하면 해당 IP들을 다 열어주면 된다.


그리고 웹서버를 오픈했을테니 http의80번과 https의443을 같이 열어주도록 하자.

(enable을 2번째에 설정하는 이유는 혹시 22번 포트를 개방하지 않으면 SSH연결이 끊어지기 때문)

 설정이 잘 되었는지 확인을 하면 끝



반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기