본문 바로가기

컴퓨터/서버, 웹, 네트워크

vpn을 이용하여 네트워크 필터 우회 서버 만들기(ip route 명령어)

동아리 서버가 생겼다. 성능이 아주 끝내준다!

그런데 테스트를 위해 iptime ddns를 연결해보니 내부 망으로는 연결이 되는데 외부에서 접속 시 smartXfilter이라는 차단 시스템이 존재하는 모양이다.


이 필터는 다음 링크와 같이 hwp, txt 등 여러 문서에서 개인정보가 있는지 체크하고, 페이지 캐싱으로 로딩 속도를 늘리는 등의 일을 한다.

[PDF]SmartXFilter 제품소개.pdf - 가넷정보기술

따라서 VPN을 이용하여 이 필터를 우회하면 내부망에 있는 서버를 외부에서 접근할 수 있을 듯 싶다.


vpn은 iptime 공유기에 내장된 pptp vpn 기능을 사용하였다.

pppd를 이용하여 vpn 연결하는 방법은 구글 검색으로 쉽게 찾을 수 있다.

참고자료 1


참고자료 2

위의 자료는 ip route 명령어에 대한 지식을 처음 접할 수 있었던 좌표이다.

ip route는 어느 ip로 패킷을 전달할지에 대한 내용을 담고 있다.

변경 전 ip route는 다음과 같다.


따라서, 기존의 default via 192.168.200.1 dev ppp0 onlink

ip route del default를 통해 삭제하고(del인지 delete인지 remove인지 확실치 않다.)

ip route add default via 192.168.200.1 dev ppp0를 통해 새로운 route를 등록하였다.


이 사진에서 중요한 건 docker0 a및 enp5s0 관련 라인이 생긴 게 아니고, default가 ppp0 인터페이스로 변경되고, ip도 ppp0의 vpn ip로 변경된 것이다.

그래서 현재 vpn을 연결한 위치에서 ssh로 접속할 수 있다!


여기서 끝나지 않고, docker를 올려 docker0 인터페이스도 default 라우팅(?)을 따라가는지 궁금하다.


이 서버에 도커 올리는 글(아직 작성 안됨)


도커 올리다가 깨달은 내용인데, 위의 내용을 보면 default에서 192.168.200.1까지(내부 아이피)는 나가지만, 외부 아이피로 나가는 route가 없어서 인터넷 통신을 하질 못한다. 멍청한 컴퓨터

그래서 위의 방법처럼 외부 ip로 나가는 경로를 추가해줘야 한다.

ip route add (외부 ip) via 192.168.200.1(=게이트웨이) dev ppp0 192.168.200.121(vpn 아이피)

이러면 인터넷이 된다.


ip route에 관한 내용은 여기에서 볼 수 있다.


또한, iptime 공유기 vpn 사용 시 엄청나게 느리다.

그래서 iptime 대신 pptp vpn 서버를 구축해서 사용할 예정이다.


pptp vpn 서버 만들기(아직 작성 안됨)



8.11 추가


현재 서버의 /etc/crontab 파일에 root 권한으로 2시간마다 pppd call [vpn이름]을 호출하도록 해 두었고,

route add default gw [vpn 게이트웨이]를 호출하도록 설정했다.


다음 내용은 /etc/ppp/ip-up.d/route-traffic 파일이다.

#!/bin/bash
NET="10.0.0.0/8"
IFACE="ppp0"
#IFACE=$1
route add -net ${NET} dev ${IFACE}
route add default gw 192.168.200.1

route add default gw [게이트웨이] 코드가 어디서 실행되는지는 잘 모르겠으나 이 코드가 필요하다는 것은 확실하다.



->결론

다음의 코드를 이용하여 라우팅할 수 있다.

route add -net ${NET} dev ${IFACE}
route add default gw 192.168.200.1