반응형
테스트한 날짜: 2024년 2월 20일

 

 

잠깐 !!
PPTP Server 구축하기 전에 PPTP Client 설정 및 터널 생성하는 법을 알고 싶다면 아래 문서를 참고 !

 

       https://andrewpage.tistory.com/257

 

 

PPTP 패키지 설치

$ sudo  apt install pptpd

 

 

PPTP 서버 설정

##
## Tunnel Interface에 할당할 IP address를 설정한다.
##   예를 들어, PPTP server는 ppp0 tunnel interface에 10.1.0.1 주소를 할당.
##            PPTP client는 ppp0 tunnel interface에 10.1.0.100 주소를 할당.
##

$ cat /etc/pptpd.conf
... 중간 생략 ...

localip 10.1.0.1
remoteip 10.1.0.100-130

... 중간 생략 ...


##
## PPTP client에 접속 요청할 때, PPTP server가 아래의 network 구성 정보를 client에게 전달하도록 함.
## mtu 값은 실제 physical NIC의 mtu 값보다 대략 60~100 bytes 정도 작게 설정해야
## tunnel session을 통해서 IP 패킷이 전송될 때, IP 패킷의 꼬리 부분이 짤리는 현상이 없다.
## 예를 들어서, physical NIC의 MTU 값이 1500 이라고 가정해보면
##   PPTP tunnel interface의 MTU는 1400 정도 되어야 IP packet이 버려지지 않고 전송된다.
## 만약 실수로 tunnel mtu를 1500으로 설정하면, 1500 byte 짜리 IP packet이 전송되려 할 것이고
## 이 때 IP packet의 뒷 부분 60~100 bytes 정도가 짤리는 현상이 발생할 것이다.
##

$ cat /etc/ppp/pptpd-options
... 중간 생략 ...

ms-dns 1.1.1.1
mtu 1400
mru 1400

default-asyncmap

... 중간 생략 ...


##
## 반드시 ip_forward를 enable 시켜야 한다.
## ip_forward 설정이 enable 되어야 한개의 Linux OS내부에서 Physical port 'ens3'와 ppp0 간에 패킷이 forward된다.
##

$  sudo sysctl -w net.ipv4.ip_forward=1

$  cat  /etc/sysctl.conf
... 중간 생략 ...

net.ipv4.ip_forward=1

... 중간 생략 ...

$

 

PPTP 계정 설정

PPTP client가 PPTP server에 접속할 때 사용할 Account 정보를 설정한다.

$ cat /etc/ppp/chap-secrets

# client        server  secret                  IP addresses
mynewid         pptpd   my!pass@word            *
gildong         pptpd   me!hahahoho@            *

 

 

PPTP 서비스 기동

$ systemctl start pptpd

$ systemctl enable pptpd

$ systemctl status pptpd
● pptpd.service - PoPToP Point to Point Tunneling Server
     Loaded: loaded (/lib/systemd/system/pptpd.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2024-02-20 22:35:17 KST; 34min ago
     
... 중간 생략 ...

 

 


PPTP Client를 이용하여 PPTP 터널 생성 테스트하기

Ubuntu OS에서 PPTP Client를 설정하는 방법은 아래 문서를 참고 !


     https://andrewpage.tistory.com/257

 

 

 


 

반응형

테스트 날짜, 작성일 : 2023년 12월 22일
테스트한 OS 버전: Raspbian 12 (bookworm)

 

 

Raspberry Pi 4, Pi 5를 사용하면서 Pi 3와 다른 점이 몇 가지 있는데, VNC가 다른 것 중에 하나이다.

 

VNC Server 설치, 설정

Pi 4, Pi 5에서 VNC Server는 기본으로 설치되어 있기 때문에 아래와 같이

[ 라즈베리 파이 환경설정 ] 화면에서 [ VNC ] 항목을 활성화시키는 작업만 하면 된다.

 

 

VNC Client(Viewer) 설치

이것저것 VNC Client를 다 테스트해봤는데, RealVNC Viewer만 정상 동작하고 나머지 VNC Client 들은 몇 가지 기능들이 오동작하는 이슈가 있었다.

따라서 RealVNC Viewer를 설치해서 사용하길 추천한다.

RealVNC Viewer 설치, 설정 절차는 너무 간단해서 설명을 생략~

 


 

반응형

 


 

테스트한 날짜:  2024년 2월 20일
테스트에 사용한 OS: Ubuntu 22.04

 

Linux 장비를 PPTP Client로 사용하기 위한 방법

Client 입장에서 Linux PC를 PPTP 서버와 GRE Tunnel을 생성하는 방법이다.

 

전제 조건:
    아래 PPTP Client 예제를 수행하기 전에 PPTP 서버가 이미 구성되어 있어야 한다. 
    IPTIME 같은 인터넷 공유기에 PPTP 서버 기능이 있으니까, 쉽게 테스트하려면 IPTIME 공유기를 이용하는 것이 좋다.

 

잠깐 !!
Linux 장비(Ubuntu 22.04)에 PPTP Server를 구축할 계획이라면, 아래 문서를 참고하기 !

 

       https://andrewpage.tistory.com/361

 

##########################################################
## Client Linux OS에서 아래의 명령을 수행
##########################################################

##########################################################
## pptp 관련 패키지를 설치한다.
##########################################################
$  sudo apt install pptp-linux


##########################################################
## /etc/ppp/options 파일을 편집한다.
##########################################################
$  cat  /etc/ppp/options

lock
noauth
nobsdcomp
nodeflate
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
mtu 1400

$

##########################################################
## /etc/ppp/chap-secrets 파일을 편집한다.
##########################################################
$  cat  /etc/ppp/chap-secrets

sejong  PPTP  "my-password" *

$

##########################################################
##  /etc/ppp/peers/sejong 파일을 편집한다.
##########################################################
$  cat  /etc/ppp/peers/sejong

pty "pptp 55.123.12.123 --nolaunchpppd"
name sejong
remotename PPTP
file /etc/ppp/options
ipparam sejong




##########################################################
## << 참고:  이 작업은 필요한 경우만 할 것 !!! >>
##
## 이 내용은 꼭 필요한 것은 아닌데, ppp0 tunnel port가 생성되고 IP address가 설정되고 나서
## static routing table에 추가하고 싶은 내용이 있다면, 
## 아래와 같이 ip-up 파일에 route 명령을 추가한다. 
## (이렇게 하는 것이 정석적 방법인지는 모르겠다.  일단, 나는 이렇게 사용하고 있다.)
##########################################################
$  cat  /etc/ppp/ip-up

... (중간 생략) ...
ip route add 192.168.0.0/24 dev ppp0    # <-- 나는 이 내용을 추가했다.

$


##########################################################
## 이제 설정 작업은 모두 끝났다. pon 명령을 실행하면 잘 동작할 것이다. ^^
##########################################################

##########################################################
## 위에서 설정한 파일을 이용하여 PPTP 서버와 GRE 터널을 만든다.
## 참고로 pon 명령은 "ppp on"을 줄인 말이다.
##########################################################
$  pon  sejong  debug  dump  logfd 2  nodetach

...
...
local  IP address 192.168.0.220
remote IP address 192.168.0.1
Script /etc/ppp/ip-up started (pid 14290)
Script /etc/ppp/ip-up finished (pid 14290), status = 0x0

 

참고로, 위 pon 명령을 수행하면 명령행 prompt가 출력되지 않는다.
왜냐하면 pon 명령이 백그라운드로 동작하는 것이 아니기 때문에 pod 명령을 수행한 터미널은 이 상태로 두고,
다른 터미널을 하나 더 열어서 작업해야 한다.
새 터미널에서 아래와 같이 VPN 서버 쪽으로 ping을 보내본다.

 

$  ping 192.168.0.1

ing 192.168.0.1 -c 1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=4.45 ms

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 4.448/4.448/4.448/0.000 ms

$

 

 


 

PPTP 및 GRE Tunnel 설정 관련 문서

 

 

PPTP Client - ArchWiki

pptpclient is a program implementing the Microsoft PPTP protocol. As such, it can be used to connect to a Microsoft VPN network (or any PPTP-based VPN) provided by a school or workplace. Installation Install the pptpclient package. Configure To configure p

wiki.archlinux.org

 

 


 

반응형

 

REST API Server

Go 기본 Package만 사용해서 REST API Server 만들기

일단, 아래 블로그가 예제 코드를 복사해서 실습하기 좋게되어 있다.

https://woony-sik.tistory.com/12

 

Golang REST API 만들기

오늘은 Golang으로 간단한 REST API를 만드는 방법을 쓸까 한다. 바로 시작하자 우선은 Directory를 하나 만들고 시작 mkdir rest go module 등록 go mod init noah.io/ark/rest main.go 생성 touch main.go Direc..

woony-sik.tistory.com

 

 

gorilla package의 mux를 이용해서 REST API Server 만들기

이 블로그는 자동 Test하는 Code까지 포함되어 있다.

따라서 상용 Software PKG 개발할 때, 참고하면 좋다.

 

https://velog.io/@soosungp33/Golang%EC%9C%BC%EB%A1%9C-%EC%9B%B9%EC%84%9C%EB%B2%84-%EB%A7%8C%EB%93%A4%EA%B8%B04

 

 

Golang으로 웹서버 만들기(4)

RESTful API - GET과 POST 다뤄보기

velog.io

 

 

 

REST API Client

go-resty 라는 'REST client library'를 이용하면, 쉽게 REST API Client App을 개발할 수 있다.

아래 GitHub에 Case by Case로 Example이 있기 때문에 장황한 설명보다는 아래 Web Docs에 있는 Example Code를 보고 이해하고 따라해보는 것이 좋을 듯하다.

https://github.com/go-resty/resty
 

GitHub - go-resty/resty: Simple HTTP and REST client library for Go

Simple HTTP and REST client library for Go. Contribute to go-resty/resty development by creating an account on GitHub.

github.com

 

go-resty를 소개한 블로그이다. 쉽게 설명했으니까 한번 읽어보면 좋을 것이다.

go-resty를 사용하면, JSON Type의 Request / Response 를 Marshal, Unmarshal할 필요가 없다.

 

https://wookiist.dev/104
 

[Go/Golang] Go의 HTTP & REST Client 라이브러리 - Resty

Go의 HTTP & REST Client 라이브러리 - Resty API Client 이전 포스팅에서 다뤘던 Echo는 Go의 Web Framework입니다. Echo로 구현한 프로그램은 API Server 등으로 동작할 수 있고, 큰 어려움 없이 Web Server로..

wookiist.dev

 

 

 

 

 

기타 Reference 하면 좋을 Blog

 

https://doitnow-man.tistory.com/259

 

[Go Lang] 4. 실전 - http server + swagger 만들기

목표 web framework를 사용하여 간단한 web api server를 만들어 보겠습니다. 배포는 추후 포스트에서 다루겠습니다. 개발 환경 - ubnutu 18.04 - go version go1.16.3 linux/amd64 (업그레이드 방법: golang.org..

doitnow-man.tistory.com

 

 

블로그 작성자: sejong.jeonjo@gmail.com

 

 

반응형

 

Netcat(nc) TCP, UDP를 통해 Peer(Client/Server) 연결하고, 데이터를 읽고 쓰는 유틸리티 프로그램이다.

 

대부분 개발자, 운영자가 아래와 같은 목적으로 NC 명령을 사용할 것이다.

 

1)  두 장비(Network Node) 간에 IP Network이 정상인지 확인하거나

2)  중간에 방화벽이 있다면, 방화벽 정책이 적용되었는지 직접 TCP, UDP 트래픽을 테스트하기 위해서 NC를 사용한다.

3)  서버 또는 클라이언트 한쪽만 개발(구현)한 뒤에 Peer를 시뮬레이션하기 위해서...  (즉, 시뮬레이터 만들기 귀찮아서 ㅋㅋ) 

 

 

 

설치

 

##
## Mac OS 에 설치하는 경우
##

$  brew install netcat


##
## Ubuntu 에 설치하는 경우
##

$  apt install -y netcat


##
## CentOS, Redhat 에 설치하는 경우
##

$  yum install -y nc

 

 

 

사용 방법 / 예제

 

장황하게 설명하는 것보다는 아래 화면 캡처 하나가 훨씬 이해하기 좋을 듯~~~

그냥 아래 화면처럼 따라하면 테스트가 잘 된다.

 

##
## Netcat Server
##

$  nc  -l  -p 9090


##
## Netcat Client
##

$  nc  10.10.5.3  9090

이것은 테스트 메시지이다. (enter key)
...
...
... 이런 식으로 메시지를 타이핑하면서 테스트한다 ...
...
...

^C

$

 

 

게시물 작성자: sejong.jeonjo@gmail.com

 

+ Recent posts