운영체제 깨알지식 웹핵






#VPN #무료 VPN #공짜 VPN #IP주소 #익명 네트워크 #IP 주소 은닉 #IP주소 감추기 #IP주소 숨기기 #openvpn #openvpn 설정 파일 #freeopenvpn.org #free openvpn nmap #칼리리눅스 #리눅스민트

[2019년 12월 17일]

OpenVPN을 지원하는 무료 VPN 서비스 Free OpenVPN(freeopenvpn.com) 사용법: 리눅스민트에서

요약

  1. 구글에서 openvpn을 지원하는 VPN 서비스 검색: 예) free openvpn
  2. OpenVPN 설정 파일 다운로드: 예) Russia_xx.xxx.xxx.xxx_tcp.ovpn
  3. root 권한으로 openvpn 실행: 예) sudo openvpn Russia_xx.xxx.xxx.xxx_tcp.ovpn

본문

웹서버를 점검할 때는 임의의 외부 IP주소에서 어떤 포트가 개방되어 있는 지를 확인한다. 대개는 80/tcp (http), 443/tcp (https) 포트만을 열어두는 것이 안전한 편인데 22/tcp (ssh), 3306/tcp (mysql), 3389/tcp (ms-wbt-server) 등이 열려있으면 외부접속 차단을 권고하게 된다. 이를 위해 내부와 외부에서의 nmap 실행 결과를 비교하게 되는 데 VPN을 사용하면 자리 이동없이도 한 자리에서 비교가 가능하다.

내부에서 대상 서버 nmap 스캔
jinsuk@mint:~$ nmap -A -v 10.10.22.22 -oN 10.10.22.22-nmap-in.txt

내부에서는 위와 같이 -A 옵션을 추가하여 기본 1000개 포트에 대해서 점검한다. 65535개의 모든 포트에 대해서 점검하고자 할 경우에는 nmap -p- -A -v 10.10.22.22와 같이 -p- 옵션을 추가한다. Nmap 스캔을 통해서 위의 서버에는 21, 25, 80, 443, 3389, 8080 포트가 열려있는 것을 확인했다고 가정하자.

외부에서 대상 서버 nmap 스캔

먼저 운영체제에 openvpn이 설치되어 있는 지 확인하다.

jinsuk@mint:~$ sudo apt-get -y install openvpn
[sudo] jinsuk의 암호: *********
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 openvpn는 이미 최신 버전입니다 (2.4.4-2ubuntu1.3).
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  linux-headers-4.15.0-69 linux-headers-4.15.0-69-generic linux-image-4.15.0-69-generic
  linux-modules-4.15.0-69-generic linux-modules-extra-4.15.0-69-generic
Use 'sudo apt autoremove' to remove them.
0개 업그레이드, 0개 새로 설치, 0개 제거 및 49개 업그레이드 안 함.
jinsuk@mint:~$ 

OpenVPN이 설치되어 있는 경우라면 위와 비슷한 메시지가 출력될 것이다. 설치되어 있지 않다면 설치를 진행할 것이다.

OpenVPN이 설치되었다면, 구글검색: free openvpn을 진행한다. 2019년 12월 17일 현재, 첫번째 검색 결과인 https://www.freeopenvpn.org/en/에 접속하였다. 이 사이트에서는 ID/PW가 필요한 프리미엄 서버(premium server)와 ID/PW가 없는 보통 서버로 구분하고 있었다. 이중에서 프리미엄 서버를 선택하여 tcp 기반의 OpenVPN 서버 설정 파일을 다운로드하였다. (보통 서버는 작동하지 않는 경우가 많았다.) 접속한 홈페이지는 www.freeopenvpn.org/en/logpass/russia.php이다.

jinsuk@mint:~$ wget https://www.freeopenvpn.org/ovpn/Russia_freeopenvpn_tcp.ovpn
--2019-12-17 18:52:10--  https://www.freeopenvpn.org/ovpn/Russia_freeopenvpn_tcp.ovpn
Resolving www.freeopenvpn.org (www.freeopenvpn.org)... 207.174.215.153
접속 www.freeopenvpn.org (www.freeopenvpn.org)|207.174.215.153|:443... 접속됨.
HTTP request sent, awaiting response... 200 OK
Length: 8447 (8.2K) [application/octet-stream]
Saving to: ‘Russia_freeopenvpn_tcp.ovpn’

Russia_freeopenvpn_tcp.ovpn   100%[=================================================>]   8.25K  --.-KB/s    in 0s      

2019-12-17 18:52:12 (76.2 MB/s) - ‘Russia_freeopenvpn_tcp.ovpn’ saved [8447/8447]

jinsuk@mint:~$ curl ip.memozee.com/?ipv4
183.107.102.215
jinsuk@mint:~$ 

위의 홈페이지에 접속에 필요한 ID(freeopenvpn)와 임시비밀번호(접속당시에는 764023920)를 확인할 수 있다. OpenVPN을 실행하지 않은 현재의 IP 주소는 183.107.102.215이다.

내려받은 OpenvVPN 설정 파일을 이용하여 root 권한으로 openvpn을 실행한다.

jinsuk@mint:~$ sudo openvpn Russia_freeopenvpn_tcp.ovpn
Tue Dec 17 14:57:06 2019 DEPRECATED OPTION: --max-routes option ignored.The number of routes is unlimited as of OpenVPN 2.4. This option will be removed in a future version, please remove it from your configuration.
Tue Dec 17 14:57:06 2019 OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on May 14 2019
Tue Dec 17 14:57:06 2019 library versions: OpenSSL 1.1.1  11 Sep 2018, LZO 2.08
Enter Auth Username: freeopenvpn
Enter Auth Password: *********
Tue Dec 17 14:57:27 2019 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Dec 17 14:57:27 2019 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Dec 17 14:57:27 2019 TCP/UDP: Preserving recently used remote address: [AF_INET]109.248.11.138:443
Tue Dec 17 14:57:27 2019 Attempting to establish TCP connection with [AF_INET]109.248.11.138:443 [nonblock]
Tue Dec 17 14:57:28 2019 TCP connection established with [AF_INET]109.248.11.138:443
Tue Dec 17 14:57:28 2019 TCP_CLIENT link local: (not bound)
Tue Dec 17 14:57:28 2019 TCP_CLIENT link remote: [AF_INET]109.248.11.138:443
Tue Dec 17 14:57:29 2019 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue Dec 17 14:57:30 2019 VERIFY OK: depth=1, O=5df214509260d8543fd20939, CN=5df214509260d8543fd20946
Tue Dec 17 14:57:30 2019 VERIFY KU OK
Tue Dec 17 14:57:30 2019 Validating certificate extended key usage
Tue Dec 17 14:57:30 2019 NOTE: --mute triggered...
Tue Dec 17 14:57:31 2019 4 variation(s) on previous 3 message(s) suppressed by --mute
Tue Dec 17 14:57:31 2019 [5df214559260d8543fd2094b] Peer Connection Initiated with [AF_INET]109.248.11.138:443
Tue Dec 17 14:57:38 2019 Outgoing Data Channel: Cipher 'AES-128-CBC' initialized with 128 bit key
Tue Dec 17 14:57:38 2019 Outgoing Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Dec 17 14:57:38 2019 Incoming Data Channel: Cipher 'AES-128-CBC' initialized with 128 bit key
Tue Dec 17 14:57:38 2019 NOTE: --mute triggered...
Tue Dec 17 14:57:38 2019 1 variation(s) on previous 3 message(s) suppressed by --mute
Tue Dec 17 14:57:38 2019 TUN/TAP device tun0 opened
Tue Dec 17 14:57:38 2019 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Tue Dec 17 14:57:38 2019 /sbin/ip link set dev tun0 up mtu 1500
Tue Dec 17 14:57:38 2019 /sbin/ip addr add dev tun0 192.168.225.232/24 broadcast 192.168.225.255
Tue Dec 17 14:57:38 2019 Initialization Sequence Completed

다른 터미널을 실행하여 작업을 진행한다.

jinsuk@mint:~$ curl ip.memozee.com/?ipv4
109.248.11.138
jinsuk@mint:~$ 

위에서 확인할 수 있듯이 현재 나의 모든 네트워크 요청/응답은 러시아의 모스크바에 위치한 109.248.11.138를 거쳐서 - 암호화된 상태에서 - 통신이 이루어진다. 이제 앞서 발견했던 포트들을 대상으로 nmap을 실행한다.

외부에서는 내부에서 발견된 포트를 대상으로 nmap 스캔 수행
jinsuk@mint:~$ nmap -p21,25,80,443,3389,8080 -v 10.10.22.22 -oN 10.10.22.22-nmap-out.txt

위에서 이미 내부에서 열려있는 포트를 확인했으므로 확인된 포트들이 완전한 외부에서도 접근이 가능한 지만 점검한다. 다만 앞서 점검했을 때의 내부 IP주소에서의 접근 권한이 불명확한 경우에는 내부와 유사하게 nmap을 재스캔할 필요성도 있다.

jinsuk@mint:~$ rm -f Russia_freeopenvpn_tcp.ovpn
jinsuk@mint:~$ 

다음에는 정보가 달라질 가능성이 매우 높으므로 사용했던 OpenVPN 설정 파일은 제거한다.

칼리리눅스에서는 - 주로 root 권한으로 작업을 진행하므로 - 명령어에서 sudo없이 실행하면 된다.

터미널의 명령행에서 openvpn 다음에 [tab] 문자가 먹통일 때는 /tip/20191210.001 : BASH 자동완성 오류 문서를 참조할 것.

[처음 작성한 날: 2019.12.17]    [마지막으로 고친 날: 2019.12.17] 


< 이전 글 : 버추얼박스(VirtualBox) 주인OS-손님OS 사이 복사후 붙여넣기(CrtlC/CrtlV) 오류 해결 방법 (2019.12.19)

> 다음 글 : 터미널에서 URL 오른쪽 단추의 [링크 연결]이 작동하지 않을 때의 처방 (2019.12.16)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
웹핵.다이누.넷 대문 깨알지식 대문