Дистант. Удаленный доступ к ПК школы
В предыдущей статье мы определили круг задач, для реализации проекта по информатизации удаленной школы.
Итак, наша первоочередная задача — получить удаленный доступ к ПК школы. На ПК школы установлены ОС Xubuntu и Windows (XP, 7). Т. е. Решение должно быть кроссплатформенным.
Было найдено несколько решений:
- TeamViewer — позволяет удаленно управлять ПК, но продукт коммерческий и имеет определенные ограничения. Но на начальных этапах был незаменим. Так как прост в установке и настройке и обычные пользователи легко справляются с его инсталляцией. Но данный продукт коммерческий и накладывает определенные ограничения на использование.
- LogMeIn Hamachi – хост-служба VPN, позволяющая безопасно организовывать виртуальные ЛВС Т.е. данный сервис позволяет организовать небольшую VPN сеть, но также является коммерческим продуктом и бесплатно можно задействовать только 5 ПК одновременно. Удобно для удаленного администрирования серверов, но в масштабах сети, содержащей более 50 ПК такое решение не в полной мере отвечает нашим требованиям.
-
Организация собственного VPN-сервера. VPN — (с англ. Virtual Private Network) Виртуальная Частная Сеть. Это один из методов соединения компьютера или нескольких клиентов с сервером, предоставляющим доступ в интернет или другую сеть. Само соединение с помощью VPN может быть реализовано с использованием различных средств сетевой безопасности (т.н. IPSec), и/или с использованием других протоколов (таких как IPX), и, как правило, с использованием средств сжатия данных (т.н. MPPE-MPPC от Microsoft для совместимости с клиентами, использующими операционную систему Windows). Поразмыслив немного, посоветовавшись с гуру, я решил, что раз есть коммерческие VPN -сети, то почему бы мне не создать свою? Это было оптимальное решение, которое позволяет решить целый спектр задач по администрированию и преподаванию.
Для того, чтобы организовать собственный vpn-сервер необходимо иметь «белый» ip. К сожалению «белым» ip не обладали ни я, ни школы. Выход был найден — аренда vps-сервера. Цена вопроса составляет от 200 до 300 рублей в месяц. За эти деньги можно арендовать вполне приличный виртуальный сервер с необходимыми параметрами. К примеру мой сервер, на данный момент, имеет следующие параметры:
процессор |
2500 Мгц |
оперативная память |
512 Мб |
диск |
10 Гб |
Порт |
10 мбит |
ipv4 адреса |
1 шт. |
ОС |
Ubuntu Server 13.04 |
Заказать VDS-сервер
Следующий момент — настройка vpn-сервера.
Для начала нужно определиться, какой именно софт мы будем использовать. Существует организация VPN путем организации pptpd сервера и OpenVPN сервера
По простоте настройки и использования я остановился на организации vpn-сервера на основе pptpd.
Приступаем к установке и на стройке ПО на сервере:
- Устанавливаем пакет pptpd:#apt-get install pptpd
- Редактируем файл /etc/ppp/pptpd-options:и указываем следующие параметры (эти параметры для своего подключения я установил опытным путем):#mcedit /etc/ppp/pptpd-options
# имя сервера
name pptpd
#определяем размер фрейма при передаче блока данных на канальном уровне сети.
mtu 1372
mru 1372
#указываем способ шифрование данных для канала
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#позволяем пользователям видеть друг-друга в сети
proxyarp
#указываем не устанавливать для компьютера основной маршрут, выдаваемый провайдером для VPN-соединения
nodefaultroute
#позволяет выводить отладочную информацию в syslog. Бывает полезно, если что-то идёт не так.
debug
#dns-сервер по умолчанию
ms-dns 8.8.8.8
lock
# указываем куда писать логи
logfile /var/log/pptpd.log
- Указываем параметры конфигурационного файла сервера:
option /etc/ppp/pptpd-options
debug
logwtmp
bcrelay eth0
# (Recommended)
localip 192.168.99.1
remoteip 192.168.99.5-238,192.168.99.245
# or
#localip
192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
-
В файле /etc/ppp/chap-secrets указываем логин, пароль и если хотим жестко привязать ПК к ip, то и ip, который будет назначаться компьютеру:
# Secrets for authentication using CHAP
# client server secret IP addresses
admin pptpd пароль ip-адрес клиентского ПК
-
В файле /etc/sysctl.conf раскомментируем строку net.ipv4.ip_forward=1
- Запускаем сервер командой:
#service pptpd start
Следующий этап – настройка подключения на стороне клиента.
- mcedit /etc/ppp/options.pptp #Параметры шифрования нужно будет определить исходя из ваших потребностей.lock
noauth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
- mcedit /etc/ppp/peers/vpnpersist
maxfail 0
lcp-echo-interval 60
lcp-echo-failure 100
defaultroute
pty «pptp ip или адрес сервера —nolaunchpppd»
name имя пользователя
remotename pptpd
+chap
file /etc/ppp/options.pptp
holdoff 15
- mcedit /etc/ppp/chap-secrets# Secrets for authentication using CHAP# client server secret IP addresses
указываем в соответствии с синтаксисом те же параметры для пользователя, что мы указали на сервере
- В моем случае пришлось указать параметры внутренней сети, которые должны были загружаться при подключении к vpn-сети, иначе ПК никак не хотели выходить в интернет.
- mcedit /etc/ppp/ip-up.d/vpn#!/bin/shroute add -net 192.168.99.0/24 ppp0
- Указываем права доступа для файла /etc/ppp/ip-up.d/vpn:chmod +x /etc/ppp/ip-up.d/vpn
- И прописываем команду подключения к vpn-сети при загрузке системы:mcedit /etc/rc.localpon vpn
- Подключаемся к сети, вводим команду:pon vpn
- Проверяем подключение. Это можно сделать несколькими командами, я использую ip a и пингуем ya.ru и как-либо ПК в нашей удаленной сети:school@kschool-server:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:94:ab:ec brd ff:ff:ff:ff:ff:ff
inet 192.168.0.39/24 brd 192.168.0.255 scope global eth1
inet6 fe80::a00:27ff:fe94:abec/64 scope link
valid_lft forever preferred_lft forever
3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1372 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp
inet 192.168.99.10 peer 192.168.99.1/32 scope global ppp0
Пинг:
school@kschool-server:~$ ping 192.168.99.11
PING 192.168.99.11 (192.168.99.11) 56(84) bytes of data.
64 bytes from 192.168.99.11: icmp_req=1 ttl=63 time=105 ms
64 bytes from 192.168.99.11: icmp_req=2 ttl=63 time=184 ms
— 192.168.99.11 ping statistics —
3 packets transmitted, 2 received, 33% packet loss, time 2004ms
rtt min/avg/max/mdev = 105.150/144.797/184.445/39.649 ms
Один из самых сложных этапов выполнен. Все ПК мы завели в одну сеть. Осталось только воспользоваться инструментами для удаленного администрирования.