# vpn, eth0 и роутинг

## Cleus

Есть сетевая карта, adsl и кабельный интернет (домовая сеть). 

Сетевая карта, по умолчанию, то есть по /etc/conf.d/net поднимает адрес 192.168.1.2, соответственно шлюз у нее 192.168.1.1 (то есть адрес adsl-модема). Все нормально работает.

Провайдер, естественно, работает на чем-то виндовом (соответственно в виндах все работает нормально), но все-таки любезно сообщил некоторые настройки. Вот например, такие, для настройки pptp-linux:

```
Tunnel Name: vpn_ds

Server IP: 10.8.0.1

What route(s) would you like to add when the tunnel comes up?

This is usually a route to your internal network behind the PPTP server.

You can use TUNNEL_DEV and DEF_GW as in /etc/pptp.d/ config file

TUNNEL_DEV is replaced by the device of the tunnel interface.

DEF_GW is replaced by the existing default gateway. 

The syntax to use is the same as the route(8) command. Enter a blank line to stop. 

Route: add -host <IP_GATEWAY> gw DEF_GW

Route: add -net <IP_NET>TUNNEL_DEV

```

В Генту нашем, ставится, как я понял, pptpclient. ОК, поставил, прописал логин, пароль, а вот дальше у меня полное непонимание и отсутствие всяческого сознания.

Что надо писать в 

```
Route: add -host <IP_GATEWAY> gw DEF_GW

Route: add -net <IP_NET>TUNNEL_DEV
```

Спасите, помогите, я в сетевых настройках не понимаю ровным счетом ничего!!!

----------

## Cleus

Почитал я всякого, и понял - ничего я не понял! То есть я смутно догадываюсь, что мне нужно, чтобы сетевая карта была с адресом типа 10.8.х.х ???? И шлюз соответствующий какой-то такой же, чтобы главным был сервер провайдера 10.8.0.1??? 

Как это должно быть, в итоге?

----------

## d_n_k

поднимаешь сетевую карту с адресом 192.168.1.2, но без маршрута поумолчанию.

потом настраиваешь маршрут для своей локалки на gw 192.168.1.1

потом настраиваешь маршрут до pptp-сервера

правишь /etc/ppp/chap-sercret так: добавляешь запись 

<login> * <password>

потом pptp <адрес pptp-сервера> -- <опции к pppd>

в опциях к pppd можешь указать из какого файла брать настройки или прям писать эти настройки.

я сразу пишу настройки, т.е pptp <адрес> -- name <login>

если пошагам заруботает, можешь писать init-скрипты для автоматизации

----------

## Cleus

Имя сестра, имя!!! (С)

 *Quote:*   

> потом настраиваешь маршрут для своей локалки на gw 192.168.1.1 
> 
> потом настраиваешь маршрут до pptp-сервера

 

Как это делается! Все, более или менее, понимаю, но вот с этими маршрутизаторами, роутерами, айпишнками - как дуб, просто сквозь мозг проносится - как это тупо, на пальцах, на примере, выглядит???

----------

## mobILL

Короче у меня есть локальная сетка, что бы воспользоваться интернетом, мне нужно создать VPN-соединение. Препологаю что почти тоже самое что у тебя.

Вот пример как настраивал я:

Скрипт для вбивания маршрутов: 

#!/bin/sh 

GATEWAY=10.63.1.1 

route add -net 10.0.0.0 netmask 255.0.0.0 gw $GATEWAY; 

route add -net 213.85.88.16 netmask 255.255.255.240 gw $GATEWAY; 

route add -net 213.85.88.96 netmask 255.255.255.224 gw $GATEWAY; 

route add -net 213.85.88.128 netmask 255.255.255.128 gw $GATEWAY; 

route add -net 212.15.96.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.36.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.175.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.176.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.5.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.131.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.8.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 213.85.177.0 netmask 255.255.255.0 gw $GATEWAY; 

route add -net 192.168.0.0 netmask 255.255.0.0 gw $GATEWAY; 

route add -host 10.60.1.21 gw $GATEWAY; 

route del default 

#################конец файла 

#/etc/ppp/options.pptp 

name твой_логин 

remotename trc 

defaultroute 

noauth 

persist 

maxfail 500000 

holdoff 3 

connect /bin/true 

asyncmap 0 

crtscts 

lock 

hide-password 

local 

noproxyarp 

lcp-echo-interval 15 #вообще, во время работы (закчки чего либо. толку от этой опции никакой. она начнет прорываться к vpn серверу. можно поднять значение) 

lcp-echo-failure 4 #аналогично 

noipx 

mtu 1500 #по фигу. можно было бы и больше поставить. ничего не теряется 

mru 1500 

####################конец файла 

#/etc/ppp/chap-secrets 

твой_логин trc пароль_в_инет 

trc твой_логин пароль_в_инет 

#########конец файла 

НУ ЧТО ПРОБУЕМ КОННЕКТИТЬСЯ?

1) Запускаем скрипт маршрутов

Теперь запускаем pptp-command и выбираем Setup

1) name - login

2) remotename - trc (или то что указывали в файле #/etc/ppp/options.pptp в строке remotename)

3) на вопрос о маршрутах просто жмём ENTER

4) запускаем pptp-command заново и выбираем START и своё соединение

Теперь простенький файрволл: 

# emerge net-firewall/iptables 

# iptables -F 

# iptables -t nat -F 

# iptables -P INPUT ACCEPT 

# iptables -P OUTPUT ACCEPT 

# iptables -P FORWARD DROP 

# export LAN=eth0 

# iptables -I INPUT 1 -i ${LAN} -j ACCEPT 

# iptables -I INPUT 1 -i lo -j ACCEPT 

# iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT 

# iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT 

# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP 

# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP 

Если есть прокси-сервер и мы юзаем его для собственных нужд, то можно еще добавить и этот порт: 

# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 3128 -j DROP 

# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 3128 -j DROP 

# /etc/init.d/iptables save 

# rc-update add iptables default 

должно получиться следущее 

iptables -L 

Chain INPUT (policy ACCEPT) 

target prot opt source destination 

ACCEPT all -- anywhere anywhere 

ACCEPT all -- anywhere anywhere 

REJECT udp -- anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable 

REJECT udp -- anywhere anywhere udp dpt:domain reject-with icmp-port-unreachable 

DROP tcp -- anywhere anywhere tcp dpts:0:1023 

DROP tcp -- anywhere anywhere tcp dpt:3128 

DROP udp -- anywhere anywhere udp dpts:0:1023 

DROP udp -- anywhere anywhere udp dpt:3128

p.s. эту инфу мне предоставил EsTaF, за что ему гигантское СПАСИБО

----------

## Cleus

Теперь у меня другая проблема, интерфейс ppp0 не поднимается никак.

----------

## mobILL

 *Cleus wrote:*   

> Теперь у меня другая проблема, интерфейс ppp0 не поднимается никак.

 

через mknod создай! при запуске pptp-command если нет ppp0 он начиенает матюгаться и подсказывает как через mknod создать ppp0

----------

## fank

как насчёт поиска по форуму?

если уж так не устраивает английские руководства, то я и ещё кто-то когда-то подробно помогали даме по впн

 *Quote:*   

> Теперь у меня другая проблема, интерфейс ppp0 не поднимается никак.

 

логи, логи, и ещё раз логи

 *Quote:*   

> через mknod создай!

 

это если так просят, а интерфейс не поднимается по другой причине, скорее всего

----------

## Cleus

 *Quote:*   

> через mknod создай!

 

Создавал. Правда он предлагает создавать 

```
ppp
```

----------

## b-s-a

/etc/conf.d/net.ppp0:

```
# /etc/conf.d/net.ppp0:

# $Header: /var/cvsroot/gentoo-x86/net-dialup/ppp/files/confd.ppp0,v 1.3 2005/02/06 09:22:13 mrness Exp $

# Config file for /etc/init.d/net.ppp0

PEER="myprovider"                  # Define peer (aka ISP)

DEBUG="no"                      # Turn on debugging

PERSIST="yes"                   # Redial after being dropped

ONDEMAND="no"                   # Only bring the interface up on demand?

#MODEMPORT="/dev/pty1"          # TTY device modem is connected to

#LINESPEED="115200"              # Speed pppd should try to connect at

INITSTRING=""                   # Extra init string for the modem

DEFROUTE="yes"                   # Must pppd set the default route?

HARDFLOWCTL="yes"               # Use hardware flow control?

ESCAPECHARS="yes"               # Use escape caracters ?

PPPOPTIONS="unit 0 logfile /var/log/ppp0.log sync"                   # Extra options for pppd

USERNAME="твой логин"        # The PAP/CHAP username

PASSWORD="твой пароль"             # Your password/secret.  Ugly I know, but i

                                # will work on something more secure later

                                # on.  700 permission on /etc/init.d/net.ppp0

                                # should be enouth for now.

NUMBER=""                       # The telephone number of your ISP

                                # leave blank for leased-line operation.

REMIP=""                        # The ip of the remote box if it should be set

NETMASK=""                      # Netmask

IPADDR=""                       # Our IP if we have a static one

MRU="1500"                      # Sets the MRU

MTU="1500"                      # Sets the MTU

RETRYTIMEOUT="10"               # Retry timeout for when ONDEMAND="yes" or

                                # PERSIST="yes"

IDLETIMEOUT="600"               # Idle timeout for when ONDEMAND="yes"

PEERDNS="no"                    # Should pppd set the peer dns?

AUTOCFGFILES="no"               # By default this scripts will generate

                                # /etc/ppp/chat-isp, /etc/ppp/chap-secrets,

                                # /etc/ppp/pap-secrets and /etc/ppp/peers/isp

                                # automatically.  Set to "no" if you experience

                                # problems, or need specialized scripts.  You

                                # will have to create these files by hand then.

AUTOCHATSCRIPT="yes"            # By default this script iwll generate

                                # /etc/ppp/chat-${PEER} automatically. Set to "no"

                                # if you experience problems, or need specialized

                                # scripts. You will have to create these files by

                                # hand then.

# Directory where the templates is stored

TEMPLATEDIR=/etc/ppp
```

/etc/ppp/peers/myprovider:

```
-pap

+mschap

noauth

nopcomp

noaccomp

nobsdcomp

nodeflate

pty "/usr/sbin/pptp central.tushino.ru --nolaunchpppd --sync"

connect /bin/true

defaultroute

name <твой логин>

remotename myprovider

ipparam myprovider

lock
```

----------

## Cleus

Вот логи

Jul 26 21:51:24 localhost pptp[8228]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated

Jul 26 21:51:24 localhost pptp[8231]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'

Jul 26 21:51:24 localhost pptp[8231]: anon log[ctrlp_disp:pptp_ctrl.c:738]: Received Start Control Connection Reply

Jul 26 21:51:24 localhost pptp[8231]: anon log[ctrlp_disp:pptp_ctrl.c:772]: Client connection established.

Jul 26 21:51:25 localhost pptp[8231]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'

Jul 26 21:51:25 localhost pptp[8231]: anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.

Jul 26 21:51:25 localhost pptp[8231]: anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established (call ID 0, peer's call ID 47048).

Jul 26 21:51:25 localhost pppd[8228]: pppd is unable to open the /dev/ppp device. You need to create the /dev/ppp device node by executing the following command as root:   mknod /dev/ppp c 108 0

Jul 26 21:51:27 localhost pptp[8235]: anon warn[decaps_hdlc:pptp_gre.c:197]: short read (-1): Input/output error

Jul 26 21:51:27 localhost pptp[8235]: anon warn[decaps_hdlc:pptp_gre.c:209]: pppd may have shutdown, see pppd log

Jul 26 21:51:27 localhost pptp[8231]: anon log[callmgr_main:pptp_callmgr.c:231]: Closing connection (unhandled)

Jul 26 21:51:27 localhost pptp[8231]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'

Jul 26 21:51:27 localhost pptp[8231]: anon log[call_callback:pptp_callmgr.c:78]: Closing connection (call state)

Jul 26 21:51:30 localhost eth0: no IPv6 routers present

Jul 26 21:51:38 localhost pptp[8246]: anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated

Jul 26 21:51:38 localhost pptp[8249]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'

Jul 26 21:51:38 localhost pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:738]: Received Start Control Connection Reply

Jul 26 21:51:38 localhost pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:772]: Client connection established.

Jul 26 21:51:39 localhost pptp[8249]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'

Jul 26 21:51:39 localhost pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.

Jul 26 21:51:39 localhost pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established (call ID 0, peer's call ID 47051).

Jul 26 21:51:39 localhost CSLIP: code copyright 1989 Regents of the University of California

Jul 26 21:51:39 localhost PPP generic driver version 2.4.2

Jul 26 21:51:39 localhost pppd[8256]: pppd 2.4.2 started by root, uid 0

Jul 26 21:51:39 localhost pppd[8256]: using channel 1

Jul 26 21:51:39 localhost pppd[8256]: Using interface ppp0

Jul 26 21:51:39 localhost pppd[8256]: Connect: ppp0 <--> /dev/pts/1

Jul 26 21:51:39 localhost pppd[8256]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x5bac07f5> <pcomp> <accomp>]

Jul 26 21:51:41 localhost pppd[8256]: rcvd [LCP ConfReq id=0x83 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

Jul 26 21:51:41 localhost pppd[8256]: No auth is possible

Jul 26 21:51:41 localhost pppd[8256]: sent [LCP ConfRej id=0x83 <auth chap MD5>]

Jul 26 21:51:41 localhost pppd[8256]: rcvd [LCP ConfRej id=0x1 <pcomp> <accomp>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: rcvd [LCP ConfReq id=0x84 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x84 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: rcvd [LCP ConfReq id=0x85 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x85 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x86 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x86 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x87 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x87 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x88 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x88 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x89 <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x89 <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x8a <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x8a <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x8b <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x8b <auth chap MD5>]

pppd[8256]: rcvd [LCP ConfReq id=0x8c <mru 1460> <magic 0x201804f3> <auth chap MD5>]

pppd[8256]: No auth is possible

pppd[8256]: sent [LCP ConfRej id=0x8c <auth chap MD5>]

pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:787]: Received Stop Control Connection Request.

pptp[8249]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 4 'Stop-Control-Connection-Reply'

pptp[8249]: anon log[callmgr_main:pptp_callmgr.c:255]: Closing connection (shutdown)

pptp[8249]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'

pptp[8249]: anon log[ctrlp_disp:pptp_ctrl.c:928]: Call disconnect notification received (call id 47051)

pptp[8249]: anon log[call_callback:pptp_callmgr.c:78]: Closing connection (call state)

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

sudo:     trop : TTY=pts/2 ; PWD=/home/trop ; USER=root ; COMMAND=/bin/su

su[8299]: Successful su for root by root

su[8299]: + pts/2 root:root

su(pam_unix)[8299]: session opened for user root by (uid=0)

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x5bac07f5>]

pppd[8256]: LCP: timeout sending Config-Requests

pppd[8256]: Connection terminated.

pppd[8256]: Exit.

pptp[8284]: anon warn[decaps_hdlc:pptp_gre.c:197]: short read (-1): Input/output error

pptp[8284]: anon warn[decaps_hdlc:pptp_gre.c:209]: pppd may have shutdown, see pppd log

----------

## Cleus

Тьфу, победил я его, путем установки ~x86 пакетов. Теперь мне интересно, как бы настроить сеть одновременно на vpn и adsl-роутер?

----------

## fank

во-первых, у тебя слишком рестриктивные настройки

поменьше no...

nodeflate, -pap и т.п. - пусть демон сам договорится с сервером, если только это уж совсем не критично

 *Quote:*   

> Теперь мне интересно, как бы настроить сеть одновременно на vpn и adsl-роутер?

 

пора отпусков - телепатов щас пока нет  :Smile: 

кстати, и почитай faq на pptpclient.sf.net - он там уж очень хорош!

----------

