Содержание

Настройка VPN

Настройка сервера

Установить демона ВПН

sudo apt-get install pptpd

Создаем заменяем файлы:

sudo nano /etc/pptpd.conf
speed 230400
noipparam
# любой несуществующий серый адрес будет выставлятся в качастве шлюза тем кто подключился
localip 192.168.15.1   
# тоже самое будет выставляться тем кто подключился если не прописан ИП для пользователя в chap-secrets
remoteip 192.168.15.10-20 
#listen 192.168.0.3
option /etc/ppp/pptpd-options
logfile /var/log/pptpd1.log
# debug
sudo nano /etc/ppp/pptpd-options
name pptpd
mtu 1490
mru 1490
require-chap
refuse-pap
refuse-eap
refuse-mschap
refuse-mschap-v2
proxyarp
nodefaultroute
lock
nobsdcomp
logfile /var/log/pptpd.log
# debug
lcp-echo-interval 0
lcp-echo-failure 0
sudo nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
# логин  сервер_всегда_pptpd  пароль IP_который_будет_выдаваться
login pptpd pass 192.168.7.153 # незанятый ИП внутри сети 

Выставляем права на файл с паролями

sudo chmod 600 /etc/ppp/chap-secrets

Разрешаем видеть машины кроме сервера

до перезагрузки

 echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

после

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1

Перезапускаем демон pptpd:

sudo /etc/init.d/pptpd restart

Настройка клиента Linux

для начала мы должны знать следующие вещи

ЛогинПодключения     (attid)
ПарольПодключения    (password)
СерверПодключения    (mywork.homeip.net)
ИмяПодключения       (mywork)
УдаленаяСеть         (192.168.0.0)
УдаленаяМаска        (255.255.255.0)

пароли хранятся тут :

sudo nano /etc/ppp/chap-secrets

добавляем строчку

ЛогинПодключения ИмяПодключения ПарольПодключения *

создаем файл подключения

sudo nano /etc/ppp/peers/ИмяПодключения

пишем туда следующее

remotename ИмяПодключения
linkname ИмяПодключения
ipparam ИмяПодключения

pty "pptp --loglevel 1 СерверПодключения --nolaunchpppd"

name ЛогинПодключения
nomppe
noauth
# остается вывод в консоль 
nodetach
# перезванивет при потере
persist

lock
bsdcomp 9,15
deflate 9,15

так как подключение у нас не дефолтное то прописываем маршруты

sudo nano /etc/ppp/ip-up.d/99route
chmod x+ 99route
chown user:user 99route
#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# если наше соединение
if [ "$PPP_IPPARAM" = "ИмяПодключения" ]; then
  route add -net УдаленаяСеть netmask УдаленаяМаска gw $PPP_REMOTE
fi

Подключаемся

sudo pon ИмяПодключения

Отключаемся

sudo poff ИмяПодключения

Настройка клиента Windows

Создаем подключение, вбиваем логин\пароль, входим в настройки

вписываем IP или адрес сервера к которому будем подключаться

Выставляем галочки как показано на рисунках

на вкладке сеть входим в свойства протокола TCP\IP, входим в дополнительные настройки

убираем галку с шлюза по умолчанию

Настройка Брандмауэр

чтоб у вас все работало в вашем брандмауэре должен быть открыть порт PPTP(1723) и GRE (IP-протокол 47)

под iptables будет примерно так

/sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
/sbin/iptables -A FORWARD -p 47 -j ACCEPT

вторая строка может не понадобится

также в некоторых дистрибутивах возможно понадобится подгружать доп модули

modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp

Настройка Cisco

если у нас все закрыто циской то вышесказанное никто не отменял для полнеценной работы (в том числе отчетов) надо настроить

а. портмаппинг

пробрассываем 80 443 1723 (и видео если хотим)

permit tcp host 1.2.3.4 host 5.6.7.8 eq 80

б. акцесс лист закрывающий портмаппинг

что-то вроде

permit tcp host 1.2.3.4 host 5.6.7.8 eq 22 80 

с. ip inspect (мы же не ходтим делать неправильный акцесс лист в котором в конце стоит permit ip any any

ip inspect name Belko http 
ip inspect name Belko https
ip inspect name Belko ftp
ip inspect name Belko dns
ip inspect name Belko smtp
ip inspect name Belko pop3
ip inspect name Belko ldap
ip inspect name Belko tcp router-traffic
ip inspect name Belko udp router-traffic
ip inspect name Belko icmp router-traffic

вешаем инспект на интерфейс на выход

ip inspect Belko out

аут это направление

ip access-list ext test

 permit tcp host 1.2.3.4 host 5.6.7.8 eq 80

inspect

ip inspect name Belko http
ip inspect name Belko ftp
ip inspect name Belko dns

и конечный конфиг интерфейса

interface FastEthernet4.1
 ip nat outside
 ip inspect Belko out 
ip access-group test

пример проброски в лине и в циске

в этом примере у нас есть 3 порта и предположим 4 Ипа

видео сервер на 10.10.10.10

в линукс надо выполнить следущее

/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,1  --dport 80 -j DNAT --to 10.10.10.10:80;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,1  --dport 4550 -j DNAT --to 10.10.10.10:4550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,1  --dport 5550 -j DNAT --to 10.10.10.10:5550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,2  --dport 80 -j DNAT --to 10.10.10.10:80;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,2  --dport 4550 -j DNAT --to 10.10.10.10:4550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,2  --dport 5550 -j DNAT --to 10.10.10.10:5550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,3  --dport 80 -j DNAT --to 10.10.10.10:80; 
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,3  --dport 4550 -j DNAT --to 10.10.10.10:4550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,3  --dport 5550 -j DNAT --to 10.10.10.10:5550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,4  --dport 80 -j DNAT --to 10.10.10.10:80;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,4  --dport 4550 -j DNAT --to 10.10.10.10:4550;
/sbin/iptables -t nat -A PREROUTING -p tcp -s 1,1,1,4  --dport 5550 -j DNAT --to 10.10.10.10:5550;

циско проброс портов

ip nat inside source static tcp 10.10.10.10 http interface FastEthernet4.1 http
ip nat inside source static tcp 10.10.10.10 4550 interface FastEthernet4.1 4550
ip nat inside source static tcp 10.10.10.10 5550 interface FastEthernet4.1 5550

ip access-list ext video

permit tcp host 1.1.1.1 host 10.10.10.10 eq 80 4550 5550
permit tcp host 1.1.1.2 host 10.10.10.10 eq 80 4550 5550
permit tcp host 1.1.1.3 host 10.10.10.10 eq 80 4550 5550
permit tcp host 1.1.1.4 host 10.10.10.10 eq 80 4550 5550

inspect

ip inspect name Belko http 
ip inspect name Belko 4550 
ip inspect name Belko 5550 

interface FastEthernet4.1

ip nat outside
ip inspect Belko out 
ip access-group video