Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Ubuntu server 10.10 не получается настроить pptpd на входящее соединение  (Прочитано 4154 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Снова я Linux-незнайка. осталось совсем немного. Есть сервер с поднятой маршрутизацией и прокси, задача состоит в том чтобы можно было соединяться с этим сервером ч/з интернет используя Windows-VPN. Мои настройки:

$ sudo nano /etc/network/interfaces
   # LOOPBACK
   auto lo
   iface lo inet loopback

   # ADSL
   auto eth0
   iface eth0 inet dhcp

   # LAN
    auto eth1
   iface eth1 inet static
      address 192.168.66.1
      netmask 255.255.255.0

$ sudo nano /etc/pptpd.conf
   option /etc/ppp/pptpd-options
   logwtmp
   # IP-адрес сервера в VPN-сети:
   localip 192.168.66.1
   # Диапазон адресов для выдачи VPN-клиентам:
   remoteip 192.168.66.10-20,192.168.66.3
   # Включим передачу VPN-клиентам широковещателных пакетов с внутреннего интерфейса роутера:
   bcrelay eth1

$ sudo nano /etc/ppp/pptpd-options
   name pptpd
   refuse-pap
   refuse-chap
   refuse-mschap
   require-mschap-v2
   require-mppe-128
   proxyarp
   nodefaultroute
   lock
   nobsdccomp
   auth
   logfile /var/log/pptpd.log
   
$ sudo nano /etc/ppp/chap-secrets
   vpn_client * 123456 192.168.66.3

$ sudo nano /etc/rc.local
   #!/bin/sh
   echo 1 > /proc/sys/net/ipv4/ip_forward

   # НАСТРОЙКУ VPN РЕКОМЕНДУЮТ
      # ИЛИ ТАК
   #iptables -A INPUT -p gre -s 0/0 -j ACCEPT
   #iptables -A OUTPUT -p -gre -m state --state RELATED,ESTABLISHED -j ACCEPT
   #iptables -A INPUT -p -tcp -s 0/0 --dport 1723 -j ACCEPT
      # ИЛИ ТАК
   #iptables -A INPUT -p gre -j ACCEPT
   #iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT

   # ТЕКУЩИЙ КОД
   iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/24 -j MASQUERADE
   iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

При попытки соединиться с Windows 7 пишет ошибка 807. Помогите кто сможет

Оффлайн shamsky

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
В логи что нибудь летит когда подключаетесь?
tcpdump -i <inet> src host <ip от куда коннект>

Оффлайн OldSamuray

  • Активист
  • *
  • Сообщений: 840
    • Просмотр профиля
# vpn
# Разрешаем протокол GRE для всех;
iptables -A INPUT -p gre -j ACCEPT
# Разрешаем соединение с PPTP-сервером для всех;
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
Посмотрел чужие костыли — не понравились — сделал свои, родные

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
В логи что нибудь летит когда подключаетесь?
tcpdump -i <inet> src host <ip от куда коннект>

Да все заработало, после того как заблокировал все настройки маршрутизации
# НАСТРОЙКУ VPN РЕКОМЕНДУЮТ
      # ИЛИ ТАК
   #iptables -A INPUT -p gre -s 0/0 -j ACCEPT
   #iptables -A OUTPUT -p -gre -m state --state RELATED,ESTABLISHED -j ACCEPT
   #iptables -A INPUT -p -tcp -s 0/0 --dport 1723 -j ACCEPT
      # ИЛИ ТАК
   #iptables -A INPUT -p gre -j ACCEPT
   #iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
оставил только
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/27 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -d ! 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

Пользователь решил продолжить мысль 23 Марта 2011, 17:53:40:
# vpn
# Разрешаем протокол GRE для всех;
iptables -A INPUT -p gre -j ACCEPT
# Разрешаем соединение с PPTP-сервером для всех;
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT


Все отлично заработало, но есть вопрос а как сделать чтобы коннектиться мог только адрес 192.168.66.3 который я выдаю /etc/ppp/chap-secrets
« Последнее редактирование: 23 Марта 2011, 17:53:40 от ZolteR »

Оффлайн OldSamuray

  • Активист
  • *
  • Сообщений: 840
    • Просмотр профиля
iptables -A INPUT -s 192.168.66.3 -m tcp -p tcp --dport 1723 -j ACCEPT

как-то так
Посмотрел чужие костыли — не понравились — сделал свои, родные

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
после того как заблокировал все настройки маршрутизации
   #iptables -A OUTPUT -p -gre -m state --state RELATED,ESTABLISHED -j ACCEPT
...
Поправлю: iptables к маршрутизации никакого отношения не имеют (ну кроме косвенных случаев с подменой адресов)

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
после того как заблокировал все настройки маршрутизации
   #iptables -A OUTPUT -p -gre -m state --state RELATED,ESTABLISHED -j ACCEPT
...
Поправлю: iptables к маршрутизации никакого отношения не имеют (ну кроме косвенных случаев с подменой адресов)

Огромоное спасибо вам за вашу помощь, осталось еще малая часть с чем бы хотелось разобраться.
На моем сервере настроена маршрутизация и squid. Вот настройки:

$ sudo nano /etc/network/interfaces
   # LOOPBACK
   auto lo
   iface lo inet loopback
   # ADSL
   auto eth0
   iface eth0 inet dhcp
   # LAN
   auto eth1
   iface eth1 inet static
      address 192.168.66.1
      netmask 255.255.255.0

$ sudo nano /etc/dnsmasq.conf
   listen-address=127.0.0.1,192.168.66.1

$ sudo nano /etc/rc.local
   #!/bin/sh-e
   echo 1 > /proc/sys/net/ipv4/ip_forward
   iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/24 -j MASQUERADE
   iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

и при этом я настраиваю входящее VPN соединение с помощью пакета pptpd

$ sudo nano /etc/pptpd.conf
   localip 192.168.66.1
   bcrelay eth1

все отлично работает клиенты в инете я могу удаленно подключиться ч/з VPN, но если в файл rc.local добавить настройки которые рекомендуют для работы VPN, то у клиентов отваливается инет.

$ sudo nano /etc/rc.local
   #!/bin/sh-e
   echo 1 > /proc/sys/net/ipv4/ip_forward
      # <<<непонятные настройки
   iptables -A INPUT -p gre -j ACCEPT
   iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
      # непонятные настройки>>>
   iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/24 -j MASQUERADE
   iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

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

Пользователь решил продолжить мысль 27 Марта 2011, 20:59:14:
# vpn
# Разрешаем протокол GRE для всех;
iptables -A INPUT -p gre -j ACCEPT
# Разрешаем соединение с PPTP-сервером для всех;
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT


Появилась проблема, при добавлении этих настроек перед теми что служат для маршрутизации и проброса на проксю, у клиентов отвалился инет.
« Последнее редактирование: 27 Марта 2011, 20:59:14 от ZolteR »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Хотите ещё пару красивых слов подкину? Инкапсуляция, трансляция... Что Вы всё "маршрутизация", да "маршрутизация"
iptables НЕ МАРШРУТИЗИРУЮТ.
Вы даже маршрутизацию никакую не настраивали, она у Вас вся автоматически САМА настраивается после запуска интерфейсов.

Указанные Вами "больные" правила - ничего в вашем случае не делают. Они нужны для работы pptp, если файрвол (ака iptables) по умолчанию дропает все пакеты, т.е. бишь есть команда
Цитировать
sudo iptables -P INPUT DROP

Можно поглядеть на все правила в неработоспособном случае?
sudo iptables-save
« Последнее редактирование: 27 Марта 2011, 21:13:06 от fisher74 »

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
sudo iptables-save

*filter
:INPUT ACCEPT [183:20317]
:FORWARD ACCEPT [16:923]
:OUTPUT ACCEPT [244:31348]
-A INPUT -p gre -j ACCEPT
COMMIT

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
это всё? Или варварски кастрированное ветеринаром слонов?

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
это всё? Или варварски кастрированное ветеринаром слонов?
В том и дело это все при такой настройке:
$ sudo nano /etc/rc.local
   #!/bin/sh-e
   echo 1 > /proc/sys/net/ipv4/ip_forward
   iptables -A INPUT -p gre -j ACCEPT
   iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
   iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/24 -j MASQUERADE
   iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

А при такой настройке все работает.
$ sudo nano /etc/rc.local
   #!/bin/sh-e
   echo 1 > /proc/sys/net/ipv4/ip_forward
   iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/24 -j MASQUERADE
   iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to-destination 192.168.66.1:3128

$ sudo iptables-save
*nat
:PREROUTING ACCEPT [21:2162]
:OUTPUT ACCEPT [17:2313]
:POSTROUTING ACCEPT [17:2313]
-A PREROUTING ! -d 192.168.66.0/24 -i eth1 -p tcp -m multiport --dports 80,8080
-j DNAT --to-destination 192.168.66.1:3128
-A PREROUTING -s 192.168.66.0/27 -o eth0 -j MASQUERADE
COMMIT

В чем секрет?
« Последнее редактирование: 27 Марта 2011, 21:49:14 от ZolteR »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Откройте для себя cat
sudo cat /etc/rc.local
пробел между #!/bin/sh и -e есть?
рекомендую сделать пустую строку между ней и следующими командами.

Если вручную запустить rc.local правила измняются?
sudo /etc//rc.local
sudo iptables-save

P.S. Ну и присмотритесь "модным" способам загрузки правил, например здесь.

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
пробел между #!/bin/sh и -e есть?
рекомендую сделать пустую строку между ней и следующими командами.

Если вручную запустить rc.local правила измняются?
sudo /etc//rc.local
sudo iptables-save

Пробел есть, правила не меняются. За cat спасибо. :)

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Ну значит у Вас скрипт (rc.local) не работает.
Ищите проблему в нём.
Можете скопипастить результат вывода?
sudo cat /etc/rc.local

При ручном запуске никаких ошибок не выдаёт?

Оффлайн ZolteR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
$ sudo cat /etc/rc.local  :)
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# RUN NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -A INPUT -p gre -j ACCEPT
#iptables -A INPUT -m -tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.66.0/27 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.66.0/24 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.66.1:3128

exit 0

 

Страница сгенерирована за 0.033 секунд. Запросов: 25.