우선 구축의 목적은 내부에서의 사용도 있었지만, 아이패드로 eve-ng를 이용한다던지 윈도우 RDP를 쓴다던지 하고 싶었다.
구글링을 해보았고 주된 내용은 아래와 같았다.
1. proxmox의 관리페이지는 최대한 노출이 안 되는게 좋음
2. 노출은 reverse proxy 정도로 서비스만 오픈 하는 것을 추천
3. 내부에 vpn구축 후 접속 하는게 가장 좋다.
vpn에 대해서 추가로 검색을 해 보았다.
VPN 또는 가상 사설 네트워크는 인터넷을 통해 디바이스 간에 사설 네트워크 연결을 생성합니다. VPN은 퍼블릭 네트워크를 통해 데이터를 안전하게 익명으로 전송하는 데 사용됩니다. 또한 사용자 IP 주소를 마스킹하고 데이터를 암호화하여 수신 권한이 없는 사람이 읽을 수 없도록 합니다.
- 터널링 프로토콜
가상 사설 네트워크는 기본적으로 로컬과 다른 vpn서버 사이에 보안 데이터 터널을 생성
온라인이 되면 이 vpn서버가 모든 데이터의 소스가 되며 ISP와 기타 서드파티는 인터넷 트래픽을 볼수 없음
- 암호화
VPN프로토콜은 데이터 터널을 통해 데이터를 전송하기 전에 데이터를 스크램블
VPN서비스는 필터 역할을 하여 한쪽 끝에서는 데이터를 읽을 수 없게 만들며, 다른 쪽 끝에서는 디코딩만 함
네트워크 연결이 손상 될 수는 있으나 개인 데이터 오용을 방지 할수 있음 > 공격에 취약하지 않으며 인터넷 연결이 안전하게 됨
출처 : https://aws.amazon.com/ko/what-is/vpn/
솔직히 이걸로는 이해가 잘 안된다. 그래서 구축을 해보기로 했다.
구축에는 서버 포럼의 달소님 글을 참고 했습니다.
출처 : https://svrforum.com/os/282701
구축 순서
LXC생성(Ubuntu) > Docker 설치 > wg-easy(Wireguard GUI Ver.)

local > CT Templates > Templates로 이동합니다.

많은 양의 템플릿들


Ubuntu 23.04 다운로드 진행을 하였으나, 다운로드가 되지 않았다.
**CAUSE: dns 설정 문제
SOLVE:
구글링해보니 dns를 한번 체크해보라는 의견이 있었다.
참고 사이트 : https://forum.proxmox.com/threads/cannot-download-container-templates.58723/

ssh로 서버접속해서 resolv.conf 파일을 확인

맙소사...
데비안 OS의 네트워크 수정경로는 아래와 같았다.
"/etc/network/interfaces"

nano에디터로 게이트웨이 아래에 dns 경로를 추가 해 주었다.
이 후, 네트워크 재시작 "service networking restart"

잘 다운로드 되었다. ㅎㅎ

우측 상단의 Creat CT 클릭

LXC컨테이너는 보안상 권한이 없는 컨테이너로 만들어야 안전하다고 한다.

템플릿은 아까 다운로드 했던 ubuntu를 선택해 준다.

디스크는 20G정도 주었다.
cpu와 램은 나중에 수정을 해도 되니 최대한 적게 잡아주었다. (1core/1024M)

네트워크는 위와 같이 설정

dns는 8.8.8.8로 설정 했다.

최종적으로 설정 확인

생성 완료!

콘솔로 접속도 잘 된다.
접속 후, "apt update와 apt upgrade -y" 진행해주었다.
아래의 명령어로 curl 패키지 설치
(경량화 LXC이다보니 curl도 설치가 필요하다.)
apt install curl
docker설치를 위해서 서버에 ssh로 연결을 하려고 했으나 아래와 같이 접근이 거부 되었다.

그래서 또 구글을 뒤졌다.
CAUSE: 리눅스 보안설정으로 root계정으로 바로 접속이 불가능
SOLVE: /etc/ssh/ssh_config 파일 내용 중, PermitRootLogin을 주석 제거 및 Yes로 변경
service sshd restart 명령어로 서비스 재시작
참고 사이트 : https://mkil.tistory.com/493
해결이 되는가 싶었으나... ssh 서비스 재시작 에러가 발생이 되었다.


journalctl로 에러로그 확인 및 구글 검색
참고 사이트 : https://askubuntu.com/questions/1113607/failed-to-start-openbsd-secure-shell-server-error-when-i-try-to-run-apt-get-or-t
CAUSE: ssh_config 구문 오류
SOLVE: ssh_config의 PermitRootLogin 구문 뒤에 yes추가

ssh 접속 완료
도커 설치는 아래의 사이트를 참고 했다.
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
apt 리포지터리 설치 및 사용
#Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
#Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
(. /etc/os-release && echo "VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
docker 패키지 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
(위 명령어를 그대로 복사해서 붙여 넣으면 된다.)
잘 설치 되었는지 hello-world 이미지 불러오기

apt install -y docker-compose 명령어를 입력하여 설치해 주었다.
아래 명령어로 디렉터리를 생성 및 이동
mkdir wg-easy
cd wg-easy
wget https://raw.githubusercontent.com/WeeJeWel/wg-easy/master/docker-compose.yml
yml 파일을 nano나 vi로 열어준다.

yml 파일에서 필요한 부분은 내 서버에 맞게 수정했다.

수정 후 아래 명령어로 compose 진행
docker-compose up --detach

docker ps 명령어로 가동중인 컨테이너 확인

CAUSE: .yml파일 주석이 제거되지 않아 적용이 되지 않음
SOLVE: .yml파일 수정 및 변경된 이미지를 다시 빌드

CAUSE: 읽어보니 yml파일의 문법에 문제가 있어 체크 > 7번째 줄의 띄어쓰기 문제
SOLVE: 수정 후 docker-compose up --build --force-recreate -d 로 재빌드

패스워드 창 확인!

CAUSE: yml 파일의 WG_DEFAULT_ADDRESS=의 설정이 잘못 되어 있었음
SOLVE: 사이트 참고하여 DEFALUT값으로 입력 > rebuild 후 정상접속
SITE:https://github.com/WeeJeWel/wg-easy
감사합니다.