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


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

Автор Тема: подскажите как с сервера openvpn кинуть натом интернет на интерфейс tun0  (Прочитано 2377 раз)

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

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
на сервере и клиенте openvpn подключения создается сетка все ок , только голову ломаю как натом кинуть интернет с eth0на интерфейс tun0 чтоб был интернет ,кидал для локалки eth1 10.1.14.0   все нормально.
вот моя конфиги  /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0 #здесь с ната мака идет интернет
iface eth0 inet static
address 192.168.1.237
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.1
dns-search rcdo.school.test

auto eth1 # это сеть локалки
iface eth1 inet static
address 10.1.14.18
netmask 255.255.255.0
gateway 10.1.14.1
dns-nameserver 10.10.1.3

post-up /etc/nat
вот настройка /etc/openvpn/openvpn
# На каком локальном IP адресе OpenVPN сервер будет работать.
# (не обязательный параметр, если не установить будет работать на всех)
local 10.1.14.18

# Порт на котором он будет работать
# Стандартный порт 1194, но мб и другой
port 1194

# TCP или UDP сервер?
proto udp

dev tun

#Пути до ключей
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key  # This file should be kept secret

dh /etc/openvpn/keys/dh1024.pem

# Сеть и маска соединения
server 17.7.254.0 255.255.255.0
# Если нужно, что бы клиентам выдавался один и тот же адрес при
# каждом соединениии
#ifconfig-pool-persist ipp.txt
# Route для клиентов (используется такая маска, что бы можно было видеть все
# локальные сети с адресами 172.16.ххх.ххх. параметры мб другими, например,
# push "route 172.16.128.0 255.255.240.0"
# тогда route будет на сети 172.16.128.0-172.16.143.254)
push "route 17.7.254.0 255.255.255.0"
# Директория настройки файлов клиентов
client-config-dir /etc/openvpn_tun/ccd
# Route для того что бы сервер видел клиентов (см выше, но только для сервера)
#route 192.168.1.0 255.255.240.0
# Для того что бы клиенты видели друг друга
client-to-client

# Проверка связи каждые 10 сек. Если в течении 120 сек
# ответа не будет, считается, что канал упал
keepalive 10 120

# Нужна ли компрессия соединения.
comp-lzo
# Максим кол-во клиентов
max-clients 100
# Группа и пользователь, от имени которых работает демон.
user nobody
group nobody

persist-key
persist-tun

# Куда писать статус лог. Тут мы можем посмотреть кто законектился на сервер,
# с каким адресом и его route.
status openvpn-status.log
# Куда писать  лог.
log        /var/log/openvpn/openvpn.log
# Уровень логирования
verb 4
вот настройка нат /etc/nat
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT #тут я пытаюсь кинуть интернет на нат нечего
iptables -A FORWARD -i eth0 -o eth0 -j REJECT
iptables -t nat -A PREROUTING -i eth1 ! -d 10.1.14.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 10.1.14.18:3128
iptables -t nat -A POSTROUTING -s 17.7.254.0/24 -j MASQUERADE
iptables -A FORWARD -i tun0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT #делаю и это для tun0
iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT# tun0

теперь моя настройка клиента ifconfig
muslim@muslim:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr 00:22:15:3c:6e:f9  
          inet addr:10.121.3.4  Bcast:10.121.3.255  Mask:255.255.255.0
          inet6 addr: fe80::222:15ff:fe3c:6ef9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:52923 errors:0 dropped:0 overruns:0 frame:0
          TX packets:47180 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:25505498 (25.5 MB)  TX bytes:9120758 (9.1 MB)
          Interrupt:45

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:720 (720.0 B)  TX bytes:720 (720.0 B)

tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  #при соеденения сеть видит норма
          inet addr:17.7.254.6  P-t-P:17.7.254.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

только проблема в том как кинуть интернет на интерфейс tun0 на сервере что на клиенте был интернет
« Последнее редактирование: 29 Ноября 2010, 21:50:50 от Sharabdin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
iptables -t nat -A POSTROUTING -s 17.7.254.0/24 ! -d 17.7.254.0/24 -j MASQUERADEНе?

Ну и для правильной маршрутизации добавить в конфиг сервера
push "redirect-gateway def1"
А клиенту
pull
« Последнее редактирование: 29 Ноября 2010, 22:32:18 от fisher74 »

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
спасибо что откликнулись! к сожалению  :-[ не помогло куда же копать?
« Последнее редактирование: 29 Ноября 2010, 22:55:44 от Sharabdin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
ну видимо всё-таки надо результирующие данные смотреть
sudo iptables-save
ifconfig -a
route -n
Причём последние 2 комманды и на клиенте.

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
sudo iptables-save
[code]
# Generated by iptables-save v1.4.4 on Mon Nov 29 22:59:00 2010
*nat
:PREROUTING ACCEPT [137:10877]
:OUTPUT ACCEPT [829:53541]
:POSTROUTING ACCEPT [829:53541]
-A PREROUTING ! -d 10.1.14.0/24 -i eth1 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 10.1.14.18:3128
-A POSTROUTING -s 17.7.254.0/24 ! -d 17.7.254.0/24 -j MASQUERADE
-A POSTROUTING -s 17.7.254.0/24 ! -d 17.7.254.0/24 -j MASQUERADE
COMMIT
# Completed on Mon Nov 29 22:59:00 2010
# Generated by iptables-save v1.4.4 on Mon Nov 29 22:59:00 2010
*filter
:INPUT ACCEPT [6658:2389373]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6799:2668928]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o eth0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i tun0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Nov 29 22:59:00 2010
ifconfig -a на клиенте
rcdos@rcdo:~$ ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:22:15:3c:6e:f9  
          inet addr:10.121.3.4  Bcast:10.121.3.255  Mask:255.255.255.0
          inet6 addr: fe80::222:15ff:fe3c:6ef9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:93937 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80852 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:55360689 (55.3 MB)  TX bytes:14285268 (14.2 MB)
          Interrupt:45

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1128 (1.1 KB)  TX bytes:1128 (1.1 KB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:17.7.254.6  P-t-P:17.7.254.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:968 (968.0 B)  TX bytes:744 (744.0 B)

wlan0     Link encap:Ethernet  HWaddr 00:1f:1f:34:53:5a  
          inet6 addr: fe80::21f:1fff:fe34:535a/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1951 (1.9 KB)  TX bytes:7355 (7.3 KB)


route -n на клиенте
Таблица маршутизации ядра протокола IP

Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.14.18      10.121.3.1      255.255.255.255 UGH   0      0        0 eth0
17.7.254.5      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.121.3.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0
17.7.254.0      17.7.254.5      255.255.255.0   UG    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         17.7.254.5      128.0.0.0       UG    0      0        0 tun0
128.0.0.0       17.7.254.5      128.0.0.0       UG    0      0        0 tun0
0.0.0.0         10.121.3.1      0.0.0.0         UG    0      0        0 eth0

вот то что выдало на сервере и две последние на клиенте


[/code]
« Последнее редактирование: 29 Ноября 2010, 23:10:05 от Sharabdin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Учитывая статику на интернет-интерфейсе я бы посоветовал всё-таки сделать SNAT
iptables -t nat -A POSTROUTING ! -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.1.237Если не хотите 10.1.14.0 форвардить, то добавьте в исключение.

А ip_forward включен? (то что форвардили 10.1.14.0 читал) Перепроверьте.

P.S. Первая половина цепочки FORWARD бессмысленна при ":FORWARD ACCEPT [0:0]".
P.P.S. А нули-то прямо таки толкают на то чтобы посмотреть состояние ip_forward

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Учитывая статику на интернет-интерфейсе я бы посоветовал всё-таки сделать SNAT
iptables -t nat -A POSTROUTING ! -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 192.168.1.237Если не хотите 10.1.14.0 форвардить, то добавьте в исключение.

А ip_forward включен? (то что форвардили 10.1.14.0 читал) Перепроверьте.

P.S. Первая половина цепочки FORWARD бессмысленна при ":FORWARD ACCEPT [0:0]".
P.P.S. А нули-то прямо таки толкают на то чтобы посмотреть состояние ip_forward
10.1.14.0 нужен для squid-a(делаю прозрачный прокси на 10.1.14.0)как добавить в исключения что это даст будет ли потом прозрачный прокси? ,  не знаюip_forward должен  работать если в конфиге есть,и ,а как проверить что ip_forward включен?
« Последнее редактирование: 30 Ноября 2010, 00:05:57 от Sharabdin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
cat /proc/sys/net/ipv4/ip_forwardДолжна быть 1

P.S. Извиняюсь, в скрипте увидел echo. Но перепровериться никогда не помешает.

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
rcdos@rcdo:~$ cat /proc/sys/net/ipv4/ip_forward
1
спасибо ,все нормально сейчас конфиг ната пересоберу посмотрю

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
По поводу 10.1.14.0 смотрите какая ерунда получается:
Пакет из сети 10.1.14.0  приходит в цепочку PREROUTING таблицы nat.
Если он направлен во внешний мир на порты 80 или 8080, то попадая под правило
-A PREROUTING ! -d 10.1.14.0/24 -i eth1 -p tcp -m multiport --dports 80,8080 -j DNAT --to-destination 10.1.14.18:3128как м ы и желаем, перенаправляется в прокси.
Но... Если же порт отличается, то он преспокойненько топает дальше.
И, так как он не напрвляется к локальным процессам сервера (! -d 10.1.14.0/24), то попадает в цепочку FORWARD таблицы filter.
Тут мы его первым же правилом
-A FORWARD -i eth1 -o eth0 -j ACCEPTпропускаем дальше (при учёте включенного ip_forward)
Дальше он попадает в цепочку POSTROUTING таблицы nat и ...
в связи  стем, что он не попадает под правило
-s 17.7.254.0/24 ! -d 17.7.254.0/24в неизменном виде попадает в большую сеть.
Причём заметьте, что source-адрес у него остался неизменным. До абонента пакет может и дойдёт, но вот ответа клиент уже не получит.

P.S. "Фонить своими "серыми" адресами в "чужую" сеть не есть хорошо.

Пользователь решил продолжить мысль 30 Ноября 2010, 00:19:07:
rcdos@rcdo:~$ cat /proc/sys/net/ipv4/ip_forward
1
спасибо ,все нормально сейчас конфиг ната пересоберу посмотрю
Выключен был?
« Последнее редактирование: 30 Ноября 2010, 00:21:10 от fisher74 »

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля

1
спасибо ,все нормально сейчас конфиг ната пересоберу посмотрю
Выключен был?
[/quote]
нет все работалосейчас уберу 10.1.14.0 посмотрю что будит

Пользователь решил продолжить мысль 30 Ноября 2010, 00:30:20:
настраивал скрипт ната  перегрузился все равно нету на клиенте интернета=(
/etc/nat
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -A INPUT -i lo -j ACCEPT
#iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#iptables -A FORWARD -i eth0 -o eth0 -j REJECT
#iptables -t nat -A PREROUTING -i eth1 ! -d 10.1.14.0/24 -p tcp -m multiport --$
iptables -t nat -A POSTROUTING -s 17.7.254.0/24 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 17.7.254.0/24 ! -d 17.7.254.0/24 -j MASQUERA$
iptables -A FORWARD -i tun0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

« Последнее редактирование: 30 Ноября 2010, 00:34:01 от Sharabdin »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13761
    • Просмотр профиля
Кстати, а как прверяется интернет на клиенте?
Стандартными методами?
ping -c4 8.8.8.8
nslookup ya.ru
nslookup ya.ru 8.8.8.8
ping -c4 ya.ru

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
ping -c4 8.8.8.8
muslim@muslim:~$ ping -c4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=52 time=77.9 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=52 time=77.4 ms
64 bytes from 8.8.8.8: icmp_req=3 ttl=52 time=77.4 ms
64 bytes from 8.8.8.8: icmp_req=4 ttl=52 time=93.2 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 77.456/81.542/93.274/6.785 ms
nslookup ya.ru
muslim@muslim:~$ nslookup ya.ru
;; connection timed out; no servers could be reached
nslookup ya.ru 8.8.8.8
muslim@muslim:~$ nslookup ya.ru 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
Name: ya.ru
Address: 77.88.21.3
Name: ya.ru
Address: 87.250.250.3
Name: ya.ru
Address: 87.250.251.3
Name: ya.ru
Address: 93.158.134.3
Name: ya.ru
Address: 213.180.204.3

ping -c4 ya.ru

ping -c4 ya.ru

ого ! кажись интернет есть только имена не привязываются к ipi  8.8.8.8 пингует это айпи яндекса?

Пользователь решил продолжить мысль 01 Декабря 2010, 03:11:37:
нечего себе ! :D интернет на клиенте работает но имена доменов не пингует только ip адресса!))) спасибо большое  за то что мне помогали без вас бы не додумался)))))fisher74
 как вы думаете почему имена доменов не видны? :D
« Последнее редактирование: 01 Декабря 2010, 03:11:37 от Sharabdin »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Потому что DNS сервера не прописаны.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Sharabdin

  • Автор темы
  • Участник
  • *
  • Сообщений: 247
    • Просмотр профиля
Потому что DNS сервера не прописаны.
dns прописать в /etc/resolv.conf ?

Пользователь решил продолжить мысль [time]Wed Dec  1 11:35:43 2010[/time]:
ого помогло!прописал пришлось прописать dns не openvpn servera а dns ,машины которая раздает интернет на сервер т.е это 192.168.1.1!
спасибо всем вам большое что помогли разобраться буду дальше эксперементировать!

Пользователь решил продолжить мысль [time]Wed Dec  1 11:42:11 2010[/time]:
Слава богу , на клиенте теперь указал ip своего openvpn servera(по моим конфигам это 17.7.254.1) в /etc/resolv.conf теперь все работает!!еще раз большая благодарность всем тем кто помогал мне дай Бог вам Блага в обоих мирах!
« Последнее редактирование: 01 Декабря 2010, 11:49:44 от Sharabdin »

 

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