인프라/서버

CloudFlare로 보안 설정 해보기

김 숨 2024. 7. 1. 10:17

클라우드 플레어에서 두가지 기능을 사용 해보려고 한다.

  • DDos 방지
  • Zero Trust 설정
준비물 : 도메인, AWS(EC2), CloudFlare

 

https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/

 

Zero Trust를 하기 위해 생성하는 터널은 내 리소스와 Cloudflare의 글로벌 네트워크 사이에 아웃바운드 연결을 하는 역할을 한다.  클플 네트워크가 클플 데이터 센터로 트래픽을 전송해서 대신 처리를 해주는 듯 하다. 

 

  • 소프트웨어 커넥터 설치: 클라우드 플레어의 Argo Tunnel 소프트웨어를 원본 서버에 설치합니다.
  • 아웃바운드 연결을 통해 터널 생성: 원본 서버는 아웃바운드 연결을 통해 가장 가까운 클라우드 플레어 데이터 센터와 연결됩니다. 인바운드 포트가 개방될 필요는 없습니다.
  • 암호화된 터널 생성: QUIC 또는 HTTP/2 프로토콜을 사용하여 클라우드 플레어와 원본 서버 간에 암호화된 터널이 생성됩니다.
  • 방화벽 설정: 원본 서버는 모든 인바운드 포트를 닫고 아웃바운드 연결만 허용하도록 방화벽을 설정합니다.
  • 클라우드 플레어 네트워크 분산: 클라우드 플레어 네트워크를 통해 트래픽이 분산되며, DDoS 방어, 속도 향상 등의 이점을 얻을 수 있습니다.
  • 인증된 사용자만 액세스: 클라우드 플레어의 Zero Trust 보안 모델을 통해 인증된 사용자만 원본 서버에 액세스할 수 있습니다.

 

 

1. AWS에서 서버 생성

 같은 네으퉈크에 있는 터널용 서버(10.0.0.6), 내부 서버(10.0.0.10) 총 2개의 서버가 필요하다.

 

2. 도메인 생성하기

현재 가비아에서 올해말(24년 12월)까지 .Shop 도메인을 할인 하고 있다.

https://event.gabia.com/domain/dotshop/

 

2) CloudFlare에 해당 도메인을 등록한다. 

3. 도메인 공급 사이트에서 CloudFlare 네임서버 등록하기

* DNS 도메인과 생성한 서버의 레코드를 등록 하라고 하는데, 이 과정은 생략해도 된다.

 

1) CloudFlare의 네임서버를 가비아에 등록한다. 

 

https 통신을 하고 싶다면 가변 설정을 해준다. 추후에 전체 혹은 엄격으로 하는 방법을 해보려고 한다.

4. Cloudflare에서 DDos 방지 설정하기(간단)

 1) 개요 > 우측에 Under Attack 모드를 활성화 한다. 

5.Cloudflare에서 zero trust 설정하기

1) Zero Trust를 위해 터널을 뚫기 위해 대상 서버에 터널 에이전트를 설치한다. 

 터널용 서버(10.0.0.6), 내부 서버(10.0.0.10) 총 2개의 서버가 필요하다. 
(직접 sudo apt-get install cloudflared 로 설치하고 셋팅하는 방법도 있다.  최대한 간단하게 해보고 다음에 직접 config 해보는걸로)

 

- Networks > Tunnels 메뉴 클릭 >  [+ Create a tunnel] 버튼 클릭

 

- Cloudflared 클릭 > Next > 터널 이름 입력 > Next 

- 서버에 맞는 OS 환경을 클릭하고 아래 Install 명령어를 복사 하여 해당 서버에 붙여넣기 한다. 

 

2) 설치 후 터널이 생성 되었는지 확인 한다.

 

3) 터널을 설치한 private 네트워크 대역대를 routes 메뉴에서 등록해준다

 

4) 터널을 통해 접속할 서버를 public Hostname 으로 등록 한다.

 

5) 등록한 도메인으로 접속 되는지 확인 한다.

클라우드 플레어가 일종의 역방향 프록시(Reverse Proxy)의 역할을 해준다. 

 

터널이 설치된 서버에서 systemctl로 확인 해보니 설정 로그가 남는다. 

 

 

 

7. Authentication 설정하기 

현재 onetime 인증만

 터널에서 등록 했던 도메인을 등록 해준다.

 


 아래로 내리면 인증을 어떻게 할건지 묻는데 현재 나한텐 1회용 비밀번호 밖에 안보인다! 

 구글 인증 등 다양한 인증이 있는데 왜 저거만 보이는지 좀더 알아봐야겠다

 

특정 그룹만 접속 혹은 Email, IP등 정책을 등록하고 싶다면 이 페이지에서 [Add Policies] 페이지 혹은

생성한 Application에서 Policies 메뉴에 [+ Add a policy]로 등록 하면 된다.

'인프라 > 서버' 카테고리의 다른 글

proxmox 볼륨 잡기  (0) 2024.07.07
Legacy BIOS와 UEFI  (0) 2024.07.05
Proxmox VM 삭제하기  (0) 2024.06.16
elasticsearch 설치하기  (0) 2024.05.01
서버 메인보드가 나갔다  (0) 2024.03.19