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

Linux, безопасность, сети и все что с этим связано
potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

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

Сообщение potlaty »

Имеется локальная сеть(ip - 192.168.0.1/150).
Имеется ADSL модем(ip - 192.168.0.100).
Модем, который просто врубается в свич и те у кого установлены настройки(Основной шлюз: ip модема; 2 DNS) имеют доступ в интернет. То есть как только включается комп тут же есть выход в интернет без всяких подключений. В связи с тем, что такой интернет достаточно тяжело держать под контролем, я решил поставить сервер и предоставлять пользователям инетрнет через VPN. Первоначально изменил ip в сети на 192.168.1.1/150.

Сервер:
Intel Celeron 1200, 128MB.
Linux Debian Etch (4.0r0)
2 интерфейса:
  • eth1 (смотрит в сеть):
    • ip: 192.168.1.1
      netmask: 255.255.255.0
    eth2 (подключен к ADSL модему):
    • ip: 192.168.0.1
      netmask: 255.255.255.0
      gateway: 192.168.0.100
DNS прописаны, те которые дал провайдер
Теперь сервер без проблем видит инет и сеть.

Поднимаю pptpd. В первоначальном(тот который в example) \etc\pptpd.conf раскоментил 2 строчки:
localip 10.8.0.1
remoteip 10.8.0.2-150

Если я правильно понимаю то теперь при VPN подключении клиента ему будет выдаваться ip из пространства 10.8.0.2-150, а сервер в этой подсети будет иметь ip 10.8.0.1.

Затем -> # /etc/init.d/pptpd restart
Потом -> # echo "client pptpd 11111 *" >> /etc/ppp/chap-secrets
Ставлю iproute -> # apt-get install iproute

После этого запускаю следующий скрипт nat.sh:
  • echo 1 > /proc/sys/net/ipv4/ip_forward
    #ip сервера на eth2
    INET_IP=192.168.0.1
    #ip модема
    INET_GW=192.168.0.100
    iptables -t nat -A POSTROUTING --source 10.8.0.2/150 -o eth2 -j SNAT --to-source $INET_IP
    ip route add default via $INET_GW dev eth2 table inet
Без проблем запусается и в таблицах iproute и iptables появляются соответствующие записи.

Клиент:
Создаю стандартное VPN подключение(ip сервера 192.168.1.1), убираю шифрование, ввожу Логин: client, Пароль: 11111. Соединяется с сервером, всё норм(правда иногда бывает замыкание на себя, приходится пересоединятся), НО клиент интернета не видит.

На сервере: # ifconfig
Появилось ppp0, соединение с клиентом.

У клиента: Пуск - Выполнить - cmd - ipconfig:
  • Адаптер Ethernet Подключение по локальной сети:
    IP-адрес............: 192.168.1.7
    Маска подсети...: 255.255.255.0
    Основной шлюз..:

    PPP подключение через VPN:
    IP-адрес............: 10.8.0.2
    Маска подсети...: 255.255.255.255
    Основной шлюз..: 10.8.0.2
Не могу понять почему не работает.
Я так понимаю если есть задумки по поводу контроля трафика и простейшему билингу, то тут уже нужно смотреть в сторону ABills или чего-то подобного?

Заранее спасибо.

Hermit
Неотъемлемая часть форума
Сообщения: 354
Зарегистрирован: 22 сен 2004, 13:47
Откуда: Minsk
Контактная информация:

Сообщение Hermit »

а что такое 192.168.0.1/150 и 10.8.0.2/150 ???

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

Hermit писал(а):а что такое 192.168.0.1/150 и 10.8.0.2/150 ???
В локальной сети ip компьютеров из пространства от 192.168.0.1 до 192.168.0.150.
В скрипте 10.8.0.2/150 это правило(что если ip из этого пространство то делаем действие). Пробовал вместо 10.8.0.2/150 писать просто 10.8.0.2 и подрубать одного клиента, но всё равно не работает.

Hermit
Неотъемлемая часть форума
Сообщения: 354
Зарегистрирован: 22 сен 2004, 13:47
Откуда: Minsk
Контактная информация:

Сообщение Hermit »

potlaty писал(а):
Hermit писал(а):а что такое 192.168.0.1/150 и 10.8.0.2/150 ???
В локальной сети ip компьютеров из пространства от 192.168.0.1 до 192.168.0.150.
В скрипте 10.8.0.2/150 это правило(что если ip из этого пространство то делаем действие). Пробовал вместо 10.8.0.2/150 писать просто 10.8.0.2 и подрубать одного клиента, но всё равно не работает.
Счетчики по правилу увеличиваются? (iptables -t nat -nvL )

и попробуй в скрипте написать

iptables -t nat -A POSTROUTING --source 10.8.0.0/24 -o eth2 -j SNAT --to-source $INET_IP

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

Hermit писал(а): Счетчики по правилу увеличиваются? (iptables -t nat -nvL )
Прости, не совсем понимаю вопрос, у меня не сильно большой опыт использования iptables.
Ещё дело в том, что к серверу у меня не всегда доступ есть. Мне бы хотелось по возможности узнать что в моей цепочке действий может быть неверного и я бы, когда будет доступ могу взять логи и попробовать разные варианты, которые вы предложите.

leave
Неотъемлемая часть форума
Сообщения: 1055
Зарегистрирован: 25 окт 2006, 14:50
Откуда: minsk
Контактная информация:

Сообщение leave »

iptables -t nat -A POSTROUTING --source 10.8.0.2/150 -o eth2 -j SNAT --to-source $INET_IP
эта строчка у тебя в жизни не заработает. по причине того, что через слеш пишется маска подсети, а не конечный айпишник диапазона.

[offtopic mode]
и - мой тебе совет - не следуй примеру наших провайдеров, делай обычный NAT и ставь NetAMS (для простого контроля MRTG можно заюзать). Так ИМХО намного проще и приятнее для конечного юзера.
[/offtopic mode]

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

так я вместо 10.8.0.2/150 писал 10.8.0.2, тоже не помогло.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

http://www.linux.by/wiki/index.php/Debi ... 0.B2.D1.8B

НУ и настройки сети на клиент до поднятия и после него тоже крайне желательно показывать.
Опыт растет прямо пропорционально выведенному из строя оборудованию

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

Llama писал(а): НУ и настройки сети на клиент до поднятия и после него тоже крайне желательно показывать.
Я же вывел Пуск - Выполнить - cmd - ipconfig.
Или реч идёт о каких-то других настройках?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

ага, не заметил.
Тогда вопрос нумер 1: почему клиент роутится сам на себя? :) Наверное надо ему сказать чобы роутился через 0.1
Про iptables уже написали выше...
Опыт растет прямо пропорционально выведенному из строя оборудованию

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

Просто, когда я дома подключаю инет(обычная домашняя сеть, в которой стоит модем Белинфонета), ipconfig выводит что ip совпадает с gateway:

Адаптер ADSL:
  • IP-адрес.............: 81.25.41.196
    Маска подсети....: 255.255.255.255
    Основной шлюз...: 81.25.41.196
Я долго искал, где менять настройки сети клиента, вроде нашёл, что в \etc\ppp\pptpd.options
Но всё-равно таже ситуация. Может они меняются в другом месте?

Hermit
Неотъемлемая часть форума
Сообщения: 354
Зарегистрирован: 22 сен 2004, 13:47
Откуда: Minsk
Контактная информация:

Сообщение Hermit »

Llama писал(а):Тогда вопрос нумер 1: почему клиент роутится сам на себя? Наверное надо ему сказать чобы роутился через 0.1
Про iptables уже написали выше...
для pointtopoint интерфейсов роут на ip нормально, на самом деле там вообще ip не нужен, достаточно указать интерфейс.


potlaty писал(а):
Hermit писал(а):а что такое 192.168.0.1/150 и 10.8.0.2/150 ???
В локальной сети ip компьютеров из пространства от 192.168.0.1 до 192.168.0.150.
В скрипте 10.8.0.2/150 это правило(что если ip из этого пространство то делаем действие). Пробовал вместо 10.8.0.2/150 писать просто 10.8.0.2 и подрубать одного клиента, но всё равно не работает.
Удалялось ли при этом старое правило?
был ли при этом клиент подулючен именно с адресом 0.2?

Судя по выводу ipconfig прописаны ли у клиента DNS серверы, если нет, выдаются ли они при подключении по pptp?
есть ли интернет на самом сервере?

Чтобы точно сказать в чем проблема кидай сюда вывод
ifconfig
iptables -nvL
iptables -t nat -nvL
cat /proc/sys/net/ipv4/ip_forward


и ipconfig /all на клиенте

potlaty
Интересующийся
Сообщения: 40
Зарегистрирован: 18 янв 2006, 19:08

Сообщение potlaty »

Раньше, когда модем просто врубали в свич, то для того чтобы комп видел интернет, необходимо было в настройках сети прописать следующее:
  • Основной шлюз ........... 192.168.0.100 (ip модема)
    Предпочетаемый DNS .. 212.98.160.50
    Альтернативный DNS ... 212.98.160.65
И вчера на серваке я сделал следующее:

1) Добавил в /etc/ppp/options.pptpd:
ms-dns 212.98.160.50
ms-dns 212.98.160.65
#Как сказано в описании ms-dns эти строчки соответственно присвоят клиенту 2 DNS.

2) iptables -t nat -F POSTROUTING
Теперь при вызове следующих команд таблицы пусты:
iptables -t nat -L POSTRUTING
ip route list table inet

3) /etc/init.d/pptpd restart

4) запускаю nat.sh следующего содержания:
  • echo 1 > /proc/sys/net/ipv4/ip_forward
    #ip сервера на eth2
    INET_IP=192.168.0.1
    #ip модема
    INET_GW=192.168.0.100
    iptables -t nat -A POSTROUTING --source 10.8.0.0/24 -o eth2 -j SNAT --to-source $INET_IP
    ip route add default via $INET_GW dev eth2 table inet
Клиент конектится нормально, пингует все сайты, но при запуске браузера пишет: "Узел найден, идёт загрузка" и ступор, никакой сайт грузить не хочет, КРОМЕ google.com, gmail.com, с этими сайтами всё замечательно, всё грузится, поиск норм, в почту тоже хорошо заходит и качает с почты файлы с нормальной скоростью. Но не могу понять почему только эти ресурсы? Может кто знает?

Вывод команд на серваке:
ifconfig при 1 клиенте
*http://potlaty.narod.ru/linux/ifconfig1.txt
ifconfig при 3-х клиентах
*http://potlaty.narod.ru/linux/ifconfig3.txt
iptables -nvL
*http://potlaty.narod.ru/linux/iptables_nvL.txt
iptables -t nat -nvL
*http://potlaty.narod.ru/linux/iptables_nat_nvL.txt
cat /proc/sys/net/ipv4/ip_forward
*http://potlaty.narod.ru/linux/ip_forward.txt

Клиент:
cmd -> ipconfig /all
  • Подключение по локальной сети
    Ip-адрес .................... 192.168.1.7
    Маска подсети ........... 255.255.255.0
    Internet-PPP адаптер
    DNS-суффикс ..................................
    Описание WAN(PPP/SLIP) Interface
    Ip-адрес .................... 10.8.0.2
    Маска подсети ........... 255.255.255.255
    Основной шлюз ......... 10.8.0.2
    DNS-серверы............. 212.98.160.50
    .................................. 212.98.160.65

Hermit
Неотъемлемая часть форума
Сообщения: 354
Зарегистрирован: 22 сен 2004, 13:47
Откуда: Minsk
Контактная информация:

Сообщение Hermit »

potlaty, похоже на проблемы с mtu. Попробуйте в файле, который прописан в параметре option pptpd.conf прописать mtu для pppd:
mtu 1450

А вообще, имхо нат настраивать необязательно на самом сервере, на нем можно настроить маршрутизацию, а на модеме прописать маршрут через ip сервера на сеть 10.8.0.0/24. В твоей схеме нат происходит 2 раза: первый раз на сервере, потом на модеме.

Ответить