+380(66)433-69-36 | |
+380(66)433-69-36 | |
+380(66)433-69-36 |
- BitLocker с GUI под linux
- Ищем вирус elTest
- Работаем с бесплатным SSL сертификатом Letsencrypt с помощью certbot
- Синхронизация ресурсов с удаленного сервера локально
- Применение нестандартного SEO и статус 404
- MySQL синхронизируем права с разных серверов
- IPSec VPN соединение между офисами.
- "Зеркало" сайта на стороне. Донастраиваем nginx
- Дефрагментация таблиц всех баз MySQL
- Месяц в родительном падеже strftime PHP
- INIT скрипт для Dropbox
- osCommerce VAM Edition 226. Ошибки
- PositiveSSL порядок сертификатов
- osCommerce. Создаем модуль доставки
- Восстановление mySQL баз данных
- osCommerce.Перенос магазина в другой домен
- osCommerce.Прячем адмику
- osCommerce. Продление жизни сессий
- osCommerce. Создаем платежный модуль
- 10 причин выбрать нас
- GRUB2 восстановление
- osCommerce не пересчитывает общую сумму заказа
- Список потенциально опасных скриптов
- Отправка файлов из Dropbox по e-mail
- "Черный список" почтовых доменов
- Боремся с назойливыми иностранцами
- Яндекс-Диск, и стоит ли им пользоваться.
- Обновление модуля Интеркассы для osCommerce
- Веб-почта на сайте хостинга
- Подключение Outlook Express к хостингу
IPSec VPN соединение между офисами.
Для соединения нескольких офисов в одно целое, обычно используется технология VPN. В настоящеее время существуют маршрутизаторы, позволяющие сделать это без стороннего участия. Например ZyWALL. Но речь сейчас пойдет не о них, а о том как можно это сделать посредством linux сервера. Все-таки существует еще определенно большое количество маршрутизаторов, которые позволяют подключаться только по технологии PPPoE или L2TP, при этом иногда шифорвание даже не поддерживается. Итак, исходная задача. Имеем интернет сервер на Debian с адресом 111.111.111.111, внутреннюю сеть для объединения маршрутизаторов и если потребуется компьютеров 10.50.0.0/24 и 2 офисных маршрутизатора с внутренними сетями 192.168.1.0/24 (10.50.0.10) и 192.168.0.0/24 (10.50.0.20). Нам нужно чтобы компьютеры из разных сетей могли видеть друг друга.
Итак. Устанавливаем необходимые пакеты:
apt-get install xl2tpd openswan lsof
Последний пакет необходим чтобы корректно проверить установку ipsec по команде ipsec verify. После корректной установки пакетов редактируем несколько файлов. (ниже приводятся файл и их содержимое)
1. /etc/ipsec.conf
version 2.0 config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10,%v4:!192.168.2.0/24,%v4:!10.10.0.0/24,%v4:!192.168.0.0/24 oe=off protostack=netkey conn %default forceencaps=yes conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no ike=aes256-sha1,aes128-sha1,3des-sha1 phase2alg=aes256-sha1,aes128-sha1,3des-sha1 ikelifetime=8h keylife=1h type=transport left=111.111.111.111 leftprotoport=17/1701 right=%any rightprotoport=17/%any
2. /etc/ipsec.secrets
111.111.111.111 %any: PSK "MySecretPassword"
3. /etc/rc.local
#!/bin/sh -e echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F -t nat iptables -F FORWARD iptables -t nat -A POSTROUTING -s 10.50.0.0/24 -j SNAT --to-source 111.111.111.111 -o eth0 iptables -A FORWARD -s 10.50.0.0/24 -j ACCEPT iptables -A FORWARD -d 10.50.0.0/24 -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu for each in /proc/sys/net/ipv4/conf/*; do echo 0 > $each/accept_redirects; echo 0 > $each/send_redirects; done exit 0
4. /etc/sysctl.conf
net.ipv4.ip_forward = 1 net.ipv4.conf.all.forwarding =1 net.ipv4.conf.all.proxy_arp =1 net.ipv4.conf.eth0.proxy_arp =1 net.ipv4.conf.ppp0.proxy_arp =1 net.ipv4.conf.ppp1.proxy_arp =1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.conf.default.log_martians = 0 net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.neigh.default.gc_thresh1 = 1024 net.ipv4.neigh.default.gc_thresh2 = 2048 net.ipv4.neigh.default.gc_thresh3 = 4096
5. /etc/xl2tpd/xl2tpd.conf
[global] listen-addr = 111.111.111.111 ipsec saref = yes force userspace = yes [lns default] ip range = 10.50.0.2-10.50.0.255 local ip = 10.50.0.1 require chap = yes refuse pap = yes require authentication = yes name = LinuxVPNserver ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes
6. /etc/xl2tpd/l2tp-secrets оставляем без изменений. Проверяем чтобы все строки были закомментированы.
7. /etc/ppp/options.xl2tpd
require-mschap-v2 ms-dns 8.8.8.8 ms-dns 8.8.4.4 asyncmap 0 auth crtscts lock hide-password modem #debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4 mtu 1500 mru 1500 nodefaultroute
8. /etc/ppp/chap-secrets
client1 l2tpd 121212 10.50.0.10 client2 l2tpd 131313 10.50.0.20
9. /etc/ppp/ip-up.d/0000route
#!/bin/sh -e # Arg Name Example # $1 Interface name ppp0 # $2 The tty ttyS1 # $3 The link speed 38400 # $4 Local IP number 12.34.56.78 # $5 Peer IP number 12.34.56.99 # $6 Optional ``ipparam'' value foo #PPP_IFACE="$1" #PPP_TTY="$2" #PPP_SPEED="$3" #PPP_LOCAL="$4" #PPP_REMOTE="$5" #PPP_IPPARAM="$6" CMD_WC="/usr/bin/wc" CMD_AWK="/usr/bin/awk" CMD_IP="/sbin/ip" if [ "$PPP_REMOTE" = "10.50.0.10" ];then CNT=`$CMD_IP route show 192.168.1.0/24| $CMD_WC | $CMD_AWK '{print $1}'` if [ $CNT -eq 0 ];then $CMD_IP route add 192.168.1.0/24 via $PPP_REMOTE dev $PPP_IFACE fi fi if [ "$PPP_REMOTE" = "10.50.0.20" ];then CNT=`$CMD_IP route show 192.168.0.0/24| $CMD_WC | $CMD_AWK '{print $1}'` if [ $CNT -eq 0 ];then $CMD_IP route add 192.168.0.0/24 via $PPP_REMOTE dev $PPP_IFACE fi fi exit 0;
Вобщем-то описывать что это и как работает наверное не стоит - в интернете существует множество информации по этому вопросу, стоит только отметить несколько моментов.
1. Иногда в файле ipsec.conf не коррекстно прописываются параметры leftprotoport,right,rightprotoport.
2. При манипуляциях на iptables не всегда задается исходящий интерфейс - лучше его задавать явно, даже если он всего один.
3. Чтобы сети могли увидеть друг-друга, нужен скрипт /etc/ppp/ip-up.d/0000route. Здесь при подключении маршрутизаторов явно прописываются маршруты для сетей. Если маршрутизаторы сконфигурированы таким образом, чтобы все пакеты по-умолчанию пересылать через VPN на наш сервер - то ничего в таблице маршрутизаций во внутренних сетях менять не надо. Если все-таки через VPN должен идти только трафик между офисами - то нужно вручную на клиентах внутренних сетей добавлять пропись маршрута на саму по себе сеть шлюза (10.50.0.0) так и на машину(маршрутизатор) который используется для этих целей. Так, например если мы находимся во второй сети (192.168.1.0) то примерно так:
route add 10.50.0.0 10.50.0.20
route add 192.168.1.0 10.50.0.10
Вобщем-то на этом все. Теперь компьютеры в разных сетях должны видеть друг-друга по крайней мере по адресам. Чтобы сделать по именам - это уже отдельная история с применением например DNS и DHCP