네뷸라 설정
시작하기 앞서 이 페이지에 나오는 모든 정보 및 과정은 이 레퍼런스를 상당히 많이 참고했다는 점을 밝힌다. HuskyHacks 라는 분이 올린 블로그인데, 책임감 있는 레드팀 인프라 구축에 상당히 도움이 되는 블로그다. All credits goes to HuskyHacks, I do not claim any of this as my work. I'm simply practicing/mimicking his work to get some experience on creating a redteam infra.
네뷸라 설치
네뷸라 등대서버, 리다이렉터에 먼저 네뷸라를 설치한다
# 등대 서버
sudo apt update -y
wget https://github.com/slackhq/nebula/releases/download/v1.5.2/nebula-linux-amd64.tar.gz -O nebula.tar.gz
tar -xvf nebula.tar.gz
# 리다이렉터
sudo apt update -y && sudo apt install -y socat
wget https://github.com/slackhq/nebula/releases/download/v1.5.2/nebula-linux-amd64.tar.gz -O nebula.tar.gz
tar -xvf nebula.tar.gz 이후 팀 서버에도 네뷸라를 설치하고 설정을 시작한다. 팀 서버에서는 네뷸라에서 가장 중요한 Certificate Authority 를 만든 뒤, 각 노드들에게 부여할 인증서 파일들을 생성한다.
# 팀 서버
mkdir ~/redteam/nebula
cd ~/redteam/nebula
wget https://github.com/slackhq/nebula/releases/download/v1.5.2/nebula-linux-amd64.tar.gz -O nebula.tar.gz
tar -xvf nebula.tar.gz
./nebula-cert ca -name "Korea MBTI Health, LLC"
./nebula-cert sign -name "lighthouse" -ip "192.168.100.1/24"
./nebula-cert sign -name "teamserver" -ip "192.168.100.2/24" -groups "teamservers"
./nebula-cert sign -name "redirector" -ip "192.168.100.3/24" -groups "redirectors"네뷸라 설정
이제 각 노드들이 사용할 CA의 인증서, 노드 인증서, 그리고 노드 키들을 만들었으니, 설정 파일을 만들어보자. 각 네뷸라 노드들의 설정 파일들은 다음과 같다:
lighthouse-conf.yml
redirector-conf.yml
teamserver-conf.yml
설정 파일들의 방화벽 설정은 언제든지 바꿔도 되지만, AWS의 방화벽이 우선순위가 더 높기 때문에 네뷸라 방화벽을 바꿀때에는 AWS의 방화벽/Security Group도 바꿔야한다. 더 자세한 설정을 위해선 공식 네뷸라 설정 파일을 참고한다.
모든 설정파일안의 등대 서버 공인 아이피는 꼭 본인의 등대 서버 아이피로 바꿔주자.
lighthouse-conf.yml
redirector-conf.yml
teamserver-conf.yml
팀 서버의 포트 80과 포트 443은 리스너로 사용될 예정이다. 따라서 인바운드 80/443을 열어두지만, 오로지 같은 네뷸라 네트워크에서만 포트 80과 443이 연결 가능하도록 방화벽을 설정한다.
네뷸라 실행
설정 파일들과 인증서들이 만들어졌다면 ca.crt, .crt, .key, -conf.yml 파일들을 각 서버들로 옮긴다.
등대 서버 - 네뷸라 실행
리다이렉터 - 네뷸라 실행
등대 서버와 교신 후 Handshake 를 하는 것을 확인할 수 있다.
팀 서버 - 네뷸라 실행
네뷸라 구축 확인
ip a 등의 명령어로 네뷸라 VPN이 구축된 것을 확인할 수 있다. 예를 들어 굳이 공인 아이피주소를 사용할 필요 없이, 네뷸라 아이피주소를 이용해 SSH를 할수도 있다.
레퍼런스
Last updated