리눅스 서버 외부에서 접속하기

배경 및 목표

집에 노트북 한대가 남아 해당 컴퓨터로 웹서버를 운영하고자 시도하면서 겪은 문제와 새롭게 얻은 지식에 대해 작성하고자 한다.

일반적으로 집에서 웹서버를 만든다고 한다면 해당 기기는 공유기에 물려있을 것이다. 그래서 리눅스 서버에 외부접속을 할려면 외부망과 공유기안의 사설망을 1:1로 대응시켜주는 과정이 필요하다.

포트개방

먼저 서버 컴퓨터에서 사용하고자 하는 포트가 개방되어있는지 확인을 해야한다. 확인하기 전에 방화벽 상태를 확인하고 설치가 되어있지 않다면 방화벽을 설치해주면 된다.

Firewall 상태확인

firewall-cmd --state

현재 실행중이면 runnig, 실행중이 아니면 not running을 출력한다.

Firewall 설치

기본적으로 Firewall이 설치되어 나오지만 간혹 설치가 되어있지 않은 경우도 존재한다. 이럴때 firewall 설치하는 방법입니다.

sudo apt-get update # 패키지 업데이트
sudo apt-get install firewalld

설치 완료후 부팅/재부팅시 자동으로 firewall이 실행되게 합니다.

sudo systemctl enable firewalld
sudo systemctl start firewalld

 

특정 포트 방화벽 해제하기

저는 주로 8081포트를 자주사용하기에 8081포트를 해제하겠습니다.

sudo firewall-cmd --permanent --add-port=8081/tcp

변경된 firewall 구성을 적용하기

firewall을 설정했으면 반드시 리로딩을 해주어야 반영이 됩니다.

sudo firewall-cmd --reload

현재 방화벽 리스트 보기

현재 등록되어 있는 방화벽 리스트를 확인합니다.

firewall-cmd --list-all

inet 192.168.x.xxx라는 아이피를 확인할 수 있고 해당 아이피를 통해 같은 와이파이 네트워크를 공유하는 기기에 192.168.x.xxx:8081을 입력하면 리눅스 서버에 접속이 가능합니다. 반면에 네트워크를 공유하지 않으면 접속이 불가능 한데 이는 공유기 포트포워드를 통해 해결해야 한다.

공유기 설정

공유기의 아이피와 특정 포트에 접속하면 리눅스 서버로 이동시켜주는 포트 포워딩을 진행해야 한다.

포트포워딩 설정

우선 cmd를 열고 ipconfig를 통해 자신의 ip를 확인후 브라우저 주소창에 ip를 입력하면 공유기 설정창으로 이동이 가능하다.

외부포트는 외부에서 접속할 `포트번호`, 내부 아이피는 포워딩 시킬 ip`리눅스 서버 아이피`, 내부포트는 `리눅스 서버 포트`

추가설정

리눅스 서버에 고정 IP 할당

리눅스 컴퓨터의 IP는 시간에 따라 다른 IP를 할당해주기에 IP가 바뀐다면 위에서 설정한 포트포워딩이 작동이 안될 것이다. 이를 해결하는 방법이 고정 IP를 할당하는 것이다.

MAC 주소에는 리눅스 컴퓨터의 MAC주소 IP주소는 내가 원하는 고정 IP 그리고 사용을 선택후 저장한뒤 공유기 재부팅하면 리눅스 컴퓨터에 내가 원하는 IP가 고정되어 할당된것을 확인할 수 있다.

공유기 자체 DDNS 설정

공유기 IP가 바뀔때 마다 계속해서 확인해야 하는 번거로움이 발생하고 이를 해결하는 방법이 DDNS다. DDNS를 사용하면 IP주소가 바뀌어도 알아서 바뀌 IP로 연결해주게된다. 나의 경우 xxx.tplinkdns.com을 도메인으로 사용하고있다.

마무리

이것으로 홈서버를 위한 기본적인 설정을 모두 마쳤다.