☆ Linux Mint ☆

воскресенье, 4 июля 2010 г.

VPN-сервер в Linux Ubuntu

как-поднять на домашнем серваке с Ubuntu Linux VPN сервер, для того чтобы можно было подключаться к нему из офиса, иметь удаленный доступ, брать нужные файлы, запускать закачки, смотреть через web-камеру, что делается в квартире и т.п. Поднял я его без особых трудностей, и теперь опишу, как я это делал и как это делать Вам если вдруг понадобиться.

становим VPN сервер:
Код:
sudo apt-get install pptpd ipx ipxripd
Настройка VPN сервера.
Отредактируйте файл /etc/ppp/pptpd-options
Код:
name pptpd
refuse-pap
refuse-chap
require-mschap
require-mschap-v2
require-mppe-128
ms-dns 10.0.0.1
ms-dns 10.0.0.2
proxyarp
nodefaultroute
lock
nobsdcomp
#IPX (todo)
ipx
ipx-network 4
ipx-node 1:0
ipx-routing 2
ipx-router-name Linux_router
ipxcp-accept-remote
Отредактируйте файл /etc/pptpd.conf
Код:
option /etc/ppp/pptpd-options
logwtmp
localip 172.16.16.1
remoteip 172.16.16.2-254
Теперь можно добавить пользователей, для этого отредактируйте файл /etc/ppp/chap-secrets
Код:
# Secrets for authentication using CHAP
# client server secret IP addresses
heiniken pptpd vladimir «*»
Мы добавили пользователя heiniken с паролем vladimir и с возможностью доступа с любого ip адреса.
Если хотите с определённого адреса то вместо * впишите ип адрес.
Перезапускаем VPN сервер
Код:
/etc/init.d/pptpd restart
На этом настройка VPN сервера закончена, осталось настроить фаервол и форвардинг пакетов.
Настройка фаервола
Создадим простой скрипт фаервола в домашней директории /home:
Код:
touch /home/vpn-firewall.sh
chmod +X /home/vpn-firewall.sh
gedit /home/vpn-firewall.sh
В открывшемся окне впишите:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
iptables –flush
iptables –delete-chain
iptables –table nat –flush
iptables –table nat –delete-chain
iptables -P FORWARD ACCEPT
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables –table nat –append POSTROUTING –out-interface ИМЯ ВАШЕГО ИСХОДЯЩЕГО ИНТЕРФЕЙСА например eth0 -j MASQUERADE
echo vpn firewall loaded OK.
Пропишите этот скрипт в автозагрузку отредактировав файл /etc/rc.local
Должно получится следующее:
Код:
#!/bin/sh -e
/home/vpn-firewall.sh
exit 0
Запустите скрипт фаервола, он должен написать ”vpn firewall loaded OK.”
Код:
/home/vpn-firewall.sh
На этом настройка закончена, можете настраивать windows клиенты, никаких особенных параметров не требуется, просто создаете подключение vpn с адресом вашего сервера, на вкладке ”Безопасность” нужно снять галочку с пункта ”Требуется шифрование данных (иначе отключаться)”, а так же логином и паролем которые вы вписали в конфигурационный файл.

Если у Вас еще не установлен пакет pptpd – запускаем его установку следующей командой:

sudo apt-get install pptpd ipx ipxripd

Необходимые пакеты установлены, теперь перейдем к изменению конфигурационных файлов VPN-сервера, для начала правим файл /etc/ppp/pptpd-options.

Вводим в терминале:

sudo gedit /etc/ppp/pptpd-options

Вот что пишем внутри:

name pptpd

refuse-pap

refuse-chap

require-mschap

require-mschap-v2

require-mppe-128

ms-dns 10.0.0.1

ms-dns 10.0.0.2

proxyarp

nodefaultroute

lock

nobsdcomp

#IPX (todo)

ipx

ipx-network 4

ipx-node 1:0

ipx-routing 2

ipx-router-name Linux_router

ipxcp-accept-remote

После этого правим файл /etc/pptpd.conf выполнив в терминале:

sudo gedit /etc/pptpd.conf

Вот как этот файл выглядит у меня:

option /etc/ppp/pptpd-options

logwtmp

localip 172.16.16.1

remoteip 172.16.16.2-254

Затем в файл /etc/ppp/chap-secrets добавляем пользователей которые будут иметь право подключатся к VPN-сети. Пишем в терминале:

sudo gedit /etc/ppp/chap-secrets

Добавляем в него информацию в таком виде:

# Secrets for authentication using CHAP

# client server secret IP addresses

youruser pptpd yourpassword «*»

Таким образом мы наделили пользователя youruser с паролем yourpassword правом подключаться к нашей VPN сети с любого IP-адреса. Если же Вы планируете подключатся к VPN серверу исключительно с определенного IP, тогда вот этом – «*» меняйте на желаемый айпишник.

С настройками VPN-сервера мы завершили, теперь нужно его перезапустить для того, чтобы изменения которые мы внесли вступили в силу. Для этого выполним в терминале:

/etc/init.d/pptpd restart

Теперь VPN-сервер работает с новыми параметрами которые мы только что ему задали. Осталось лишь разрешить доступ к нему через файервол и настроить форвардинг. Для этого как один из вариантов, можно написать специальный скрипт. Пишем в терминале по очереди:

touch /home/vpn-firewall.sh

chmod +x /home/vpn-firewall.sh

gedit /home/vpn-firewall.sh

Вводим содержание скрипта в редактор:

#!/bin/sh

echo 1 > /proc/sys/net/ipv4/ip_forward

echo 1 > /proc/sys/net/ipv4/ip_dynaddr

iptables –flush

iptables –delete-chain

iptables –table nat –flush

iptables –table nat –delete-chain

iptables -P FORWARD ACCEPT

modprobe iptable_nat

modprobe ip_conntrack_ftp

modprobe ip_nat_ftp

iptables –table nat –append POSTROUTING –out-interface eth0

echo vpn firewall loaded OK.

В предпоследней строке вместо eth0 подставляйте название Вашего сетевого соединения. Неплохо было бы, чтобы этот скрипт запускался сам, при старте системы, верно? Значит нужно добваить его в автозагрузку. За автозагрузку отвечает следующий файл: /etc/rc.local

sudo gedit /etc/rc.local

… и добавим в него следующие строки (вернее среднюю, т.к. первые две по идее должны уже у Вас быть):

#!/bin/sh -e

/home/vpn-firewall.sh

exit 0

Затем запускаем скрипт фаервола, выполнив следующую команду: /home/vpn-firewall.sh и если все ОК, то последней строчкой он выведет: ”vpn firewall loaded OK.”

Всё, готово, можете подключаться к VPN-серверу со стороны клиента, где нужно естесственно указать логин и пароль, который Вы забили в файл /etc/ppp/chap-secrets. Удачного VPN-соединения!


www.linux-tux.org.ua



5 Коментарии::

IPX-то там зачем? И чем оно удобнее OpenVPN, либо простого, имеющегося везде ssh?

Т.е. pptp штука хорошая, не вопрос, но она несколько для другого, как мне кажется.

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

проблема. скорость интернета через vpn падает... проблемы в firewall.sh ???

У меня постоянно разрывается соединение. Либо сразу после подключения, либо через 1-2 мин. Пробовал под XP, Win7, Android. На клиентах устанавливал различные параметры безопасности. Ничего не помогает. Кто знает в чем может быть причина?

Интересная статься, но я предпочитаю пользоваться уже готовым сервисом для работы. Советую http://face-guard.com

Отправить комментарий

Написать комментарий

Подписаться

Twitter Delicious Facebook Digg Stumbleupon Favorites More