# PPTP VPN Server za firewallem

## karaluch

Witam, serwer stoi za firewallem na freebsd. Admin przekierował mi TCP 1723 na kartę WAN na serwerze VPN.

Od wewnątrz sieci ze stacji na XP łącze się wbudowanym klientem bez problemów, natomiast od zewnątrz już mnie nie chce wpuścić.

Czy samo przekierowanie portu PPTP wystarczy czy trzeba coś jeszcze dostawić?

----------

## gall

Source: 

http://www.chebucto.ns.ca/~rakerman/port-table.html#Protocols

 *Quote:*   

> Note that certain services such as IPSec and Microsoft's PPTP use non-TCP/UDP protocols so they may be more complicated to use. In particular, PPTP uses GRE (protocol 47) and IPSec uses ESP (protocol 50) and AH (protocol 51). Protocol numbers are not the same as port numbers. IANA maintains the Assigned Internet Protocol Numbers.

 

Więc najlepiej będzie jak przekierujesz cały port z wszystkimi protokołami.

Ewentualnie pisali też że niektóre implamentacje powinny działać przy konfiguracji TCP/UDP

Jak będziesz miał dalej problemy zawsze możesz OpenVPN'a postawić. Działa niezawodnie i stabilnie.

Przekierowanie 1 portu UDP załatwia sprawę podłączenia z zewnątrz.

----------

## karaluch

Admin przekierowal mi caly ruch na maszyne wiec nie powinno byc problemo ale teraz zmagam sie w wewnetrznym firewallem na gentoo. Wczesniej nie napisalem ale VPN Sever jest zwirtualizowany, od wewnatrz mozna sie na niego dostac natomiast z WAN juz nie.

Sadzilem ze jest to problem po stronie freeBSD ale jak sie okazuje nie do konca tak jest.

Moje iptables wygladaja tak

```
 iptables -A INPUT -p TCP --dport 1723 -i ${WAN} -j ACCEPT

 iptables -A INPUT -p UDP --dport 1723 -i ${WAN} -j ACCEPT

 iptables -A INPUT -p GRE -i ${WAN} -j ACCEPT

 iptables -t nat -A PREROUTING -p tcp --dport 1723 -i ${WAN} -j DNAT --to 172.16.111.254

 iptables -t nat -A PREROUTING -p udp --dport 1723 -i ${WAN} -j DNAT --to 172.16.111.254
```

----------

## gall

```
 iptables -A INPUT -p TCP --dport 1723 -i ${WAN} -j ACCEPT

 iptables -A INPUT -p UDP --dport 1723 -i ${WAN} -j ACCEPT

 iptables -A INPUT -p GRE -i ${WAN} -j ACCEPT 
```

Po co takie kombinowanie ? Myślisz że taki wpis aż tak pogorszy twoje bezpieczeństwo?

```
 iptables -A INPUT  -i ${WAN} -j ACCEPT
```

----------

## karaluch

Nie bardzo moge teraz przebudwowac kernel aby na gentoo zrobic tego vpn-a, dopiero po sw bede mogl zrestartowac maszyne, wiec na szybko postawilem pfsense na VM i tam odpalilem PPTP VPN. Sadzilem ze jak na firewallu brzegowym admin przekieruje mi ruch na WAN wirtualnego firewalla to przejde do okola gentoo na polaczeniu VPN ale jak sie okazuje wcale nie jest to takie proste. Mozesz cos doradzic, teraz gentoo jest wpiete do WAN bez ochorny brzegowego i nie chce otwierac calego ruchu tylko to co potrzeba.

---- EDIT ----

Udalo się przebudować kernel i zrestartować maszyne...

Na podstawie https://forums.gentoo.org/viewtopic-t-470858-highlight-pptp+howto.html tyle ze bez shorewall

Lacze sie z Windowsa ze strony WAN, nawiazuje polaczenie i podczas weryfikacji wywala E619, musi byc cos nie tak jeszcze z firewallem.

Natomiast gdy lacze sie z Windowsa od strony LAN to przechodzi bezblednie, co prawda musze jeszcze zrobic maskarade aby net tez chodzi ale przynajmniej sie laczy!

```
# VPN PPTP (1723)

iptables -A INPUT -p gre -d 172.16.100.100 -j ACCEPT

iptables -A INPUT -p tcp --dport 1723 -d 172.16.100.100 -j ACCEPT

iptables -A FORWARD -p gre -d 172.16.111.1 -j ACCEPT

iptables -A FORWARD -p tcp --dport 1723 -d 172.16.111.1 -j ACCEPT

iptables -A PREROUTING -t nat -p gre -d 172.16.100.100 -j DNAT --to-destination 172.16.111.1

iptables -A PREROUTING -t nat -p tcp --dport 1723 -d 172.16.100.100 -j DNAT --to-destination 172.16.111.1:1723
```

```
Dec 18 12:55:03 Serwer pptpd[3948]: GRE: read(fd=6,buffer=8059560,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

Dec 18 12:55:03 Serwer pptpd[3948]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)

Dec 18 12:55:03 Serwer pptpd[3948]: CTRL: Reaping child PPP[3949]

Dec 18 12:55:03 Serwer pptpd[3948]: CTRL: Client 0.0.0.0 control connection finished

Dec 18 12:55:04 Serwer pptpd[4087]: CTRL: Client 0.0.0.0 control connection started

Dec 18 12:55:04 Serwer pptpd[4087]: CTRL: Starting call (launching pppd, opening GRE)

Dec 18 12:55:04 Serwer pppd[4088]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.

Dec 18 12:55:04 Serwer pppd[4088]: pppd 2.4.4 started by root, uid 0

Dec 18 12:55:04 Serwer pppd[4088]: Using interface ppp0

Dec 18 12:55:04 Serwer pppd[4088]: Connect: ppp0 <--> /dev/pts/19

Dec 18 12:55:34 Serwer pppd[4088]: LCP: timeout sending Config-Requests

Dec 18 12:55:34 Serwer pppd[4088]: Connection terminated.

Dec 18 12:55:34 Serwer pppd[4088]: Modem hangup

Dec 18 12:55:34 Serwer pppd[4088]: Exit.

Dec 18 12:55:34 Serwer pptpd[4087]: GRE: read(fd=6,buffer=8059560,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

Dec 18 12:55:34 Serwer pptpd[4087]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)

Dec 18 12:55:34 Serwer pptpd[4087]: CTRL: Reaping child PPP[4088]

Dec 18 12:55:34 Serwer pptpd[4087]: CTRL: Client 0.0.0.0 control connection finished

Dec 18 12:55:36 Serwer pptpd[4223]: CTRL: Client 0.0.0.0 control connection started

Dec 18 12:55:36 Serwer pptpd[4223]: CTRL: Starting call (launching pppd, opening GRE)

Dec 18 12:55:36 Serwer pppd[4226]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.

Dec 18 12:55:36 Serwer pppd[4226]: pppd 2.4.4 started by root, uid 0

Dec 18 12:55:36 Serwer pppd[4226]: Using interface ppp0

Dec 18 12:55:36 Serwer pppd[4226]: Connect: ppp0 <--> /dev/pts/19

Dec 18 12:56:06 Serwer pppd[4226]: LCP: timeout sending Config-Requests

Dec 18 12:56:06 Serwer pppd[4226]: Connection terminated.

Dec 18 12:56:06 Serwer pppd[4226]: Modem hangup

Dec 18 12:56:06 Serwer pppd[4226]: Exit.

Dec 18 12:56:06 Serwer pptpd[4223]: GRE: read(fd=6,buffer=8059560,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs

Dec 18 12:56:06 Serwer pptpd[4223]: CTRL: PTY read or GRE write failed (pty,gre)=(6,7)

Dec 18 12:56:06 Serwer pptpd[4223]: CTRL: Reaping child PPP[4226]

Dec 18 12:56:06 Serwer pptpd[4223]: CTRL: Client 0.0.0.0 control connection finished
```

----------

