LINUX.ORG.RU

openvpn вроде работает, но на сайты не пускает, а IP тот же

 ,


0

1

вот по этому конфигу настроил:
https://wiki.debian.org/OpenVPN

в итоге как будто бы подключилось
но
1. ip НЕ меняется, вот тут: https://myip.ru/
2. сайты НЕ открываются (если systemctl stop openvpn-client@client, то работают)
3. в логах визуально ошибок не видно, куда копать не ясно

в iptables правила все удалил, везде ACCEPT
Squid на том же сервере проксирует всё ок (щас отключён), на сервер не грешу

там зачем-то советуют форвардить трафик, но это только для IOS/Android:
Forward traffic to provide access to the Internet on the Server
In Server enable runtime IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward

Edit /etc/sysctl.conf uncomment the following line to make it permanent:
net.ipv4.ip_forward = 1

короче, не понятно, что ему не хватает?
сделано всё как в инструкции...
сервер Debian, клиент Ubuntu


вот по этому конфигу настроил:
https://wiki.debian.org/OpenVPN

Предполагаю что это не конфиг, а мануал (инструкция)

ip НЕ меняется, вот тут: https://myip.ru/

У меня другой. Не такой как у тебя.

И так, для решения проблемы в консоли сервера openvpn достаточно ввести

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
Shprot ★★
()
Последнее исправление: Shprot (всего исправлений: 1)
Ответ на: комментарий от Shprot

после исполнения в правилах всё равно пусто:

Chain INPUT (policy ACCEPT 309K packets, 489M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 2477 packets, 166K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 237K packets, 488M bytes)
 pkts bytes target     prot opt in     out     source               destination 

tip78
() автор топика
Ответ на: комментарий от tip78

после исполнения в правилах всё равно пусто

Ты показываешь цепочки, а надо ещё таблицы. Если быть ещё точнее, то таблицу nat. Я на nftables перешёл, поэтому сейчас не вспомню как точно посмотреть, но скорее всего как рекомендует @l0stparadise сделай.

P.S> в твоей инструкции кстати есть пункт с nft. Я бы рекомендовал использовать его ибо iptables - RIP.

Shprot ★★
()
Ответ на: комментарий от tip78

Лучше показывать вывод iptables-save там и все таблицы и все цепочки.

И нужно добавить MASQUERADE-правило, как в инструкции, а не ту ерунду с ″-o tun0″ как ранее посоветовали. Естественно, что вместо $IF_MAIN нужно подставить правильно имя сетевого интерфейса сервера. И вместо $YOUR_OPENVPN_SUBNET нужно указать подсеть, выделеную для openvpn-тунеля.

mky ★★★★★
()
Ответ на: комментарий от l0stparadise

server

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:16:05:3d:28:be brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
37: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none


$ iptables -t nat --list-rules
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o tun0 -j MASQUERADE


client
$ ps aux|grep vpn
root      202357  0.3  0.1  13508  8832 ?        Ss   04:11   0:00 /usr/sbin/openvpn --suppress-timestamps --nobind --config client.conf

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether bc:e9:2f:89:e2:7d brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 70:66:55:e9:dd:33 brd ff:ff:ff:ff:ff:ff
4: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:16:3e:00:00:00 brd ff:ff:ff:ff:ff:ff
11: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none 


$ iptables -t nat --list-rules 
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT

tip78
() автор топика
Ответ на: комментарий от mky

вот это всё надо применить?

In Server enable runtime IP forwarding:
echo 1 > /proc/sys/net/ipv4/ip_forward

Edit /etc/sysctl.conf uncomment the following line to make it permanent:
net.ipv4.ip_forward = 1

Execute the following command in server for testing (Old way):
IF_MAIN=eth0
IF_TUNNEL=tun0
YOUR_OPENVPN_SUBNET=10.9.8.0/24
#YOUR_OPENVPN_SUBNET=10.8.0.0/16 # if using server.conf from sample-server-config
iptables -A FORWARD -i $IF_MAIN -o $IF_TUNNEL -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -s $YOUR_OPENVPN_SUBNET -o $IF_MAIN -j ACCEPT
iptables -t nat -A POSTROUTING -s $YOUR_OPENVPN_SUBNET -o $IF_MAIN -j MASQUERADE

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 1)
Ответ на: комментарий от tip78

ip_forward надо, но, вроде, вы уже делали ″echo 1 > /proc...″

Если у вас в iptables политика (-P) ACCEPT, то FORWARD правила не нужны. Вам нужно MASQUERADE правило (последняя строка):

iptables -t nat -A POSTROUTING -s 10.9.8.0/24 -o eth0 -j MASQUERADE

Если вы назначили другие адреса для тунеля, то поменять 10.9.8.0.

mky ★★★★★
()
Ответ на: комментарий от mky

только освободился
так, ну оно вроде как запустилось
и телега больше не зависает
сайты работают
только вот IP остался мой...
и всякие закрытые фейсбуки не открываются

tip78
() автор топика
Ответ на: комментарий от tip78

правила сейчас вот так выглядят:

# iptables -t nat --list-rules
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.9.8.0/24 -o eth0 -j MASQUERADE

часть конфига:
topology subnet

server 10.9.8.0 255.255.255.0  # internal tun0 connection IP
ifconfig-pool-persist ipp.txt

push "route 192.168.0.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 8.8.8.8"
user nobody
group nogroup

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 3)
Ответ на: комментарий от tip78

Ну сделайте ″traceroute -I myip.ru″, раз он вам показывает ваш ip-адрес.

Ещё можете на сервере временно добавть:

iptables -I FORWARD -d 178.62.9.171 -j DROP

и снова попробовать открыть https://myip.ru/ Если откроется, значит вы у себя намудрили с маршрутизаций или проксями.

mky ★★★★★
()
Ответ на: комментарий от mky
traceroute -I myip.ru
traceroute to myip.ru (178.62.9.171), 64 hops max
  1   10.9.8.1  54,923ms  48,670ms  57,370ms 
  2   5.61.34.10  50,471ms  53,953ms  56,528ms 
  3   5.61.32.2  49,692ms  50,772ms  55,483ms 
  4   212.95.37.34  58,103ms  60,485ms  58,136ms 
  5   31.31.34.216  49,144ms  50,556ms  52,591ms 
  6   31.31.34.52  74,931ms  64,099ms  59,743ms 
  7   31.31.34.21  76,025ms  73,472ms  62,987ms 
  8   195.66.231.145  63,340ms  82,223ms  63,955ms 
  9   143.244.224.146  78,820ms  66,176ms  64,868ms 
 10   *  *  * 
 11   *  *  * 
 12   *  *  * 
 13   *  *  * 
 14   *  *  * 
 15   178.62.9.171  69,200ms  64,602ms  62,747ms 



вроде в тоннель заходит...

но myip.ru открывается (
сервер то обычный VPS
сложно там намудрить с маршрутизацией

$ iptables -t nat --list-rules
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.9.8.0/24 -o eth0 -j MASQUERADE


$ iptables -vnL
Chain INPUT (policy ACCEPT 492K packets, 145M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 282K packets, 226M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       0    --  *      *       0.0.0.0/0            178.62.9.171        

Chain OUTPUT (policy ACCEPT 676K packets, 365M bytes)
 pkts bytes target     prot opt in     out     source               destination


3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.9.8.1/24 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::68f6:8512:d1c3:9932/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 1)
Ответ на: комментарий от tip78

Вы, после того, как добавили -j DROP правило в FORWARD прбовали открыть в браузере https://myip.ru/ ?

И, ещё, попробуте не браузером посмотреть ip-адрес, допустим:

ssh sshmyip.com

nslookup myip.opendns.com. resolver1.opendns.com

Может проблема в браузере.

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

конечно пробовал
открывается с моим IP
а ютуб, например, НЕ открывается

$ ssh sshmyip.com
The authenticity of host 'sshmyip.com (2600:1f16:227:6200::100)' can't be established.
RSA key fingerprint is SHA256:OhNL391d/beeFnxxg18AwWVYTAHww+D4djEE7Co0Yng.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'sshmyip.com' (RSA) to the list of known hosts.
{


"comment": "##     Your IP Address is 2a00:1370:818c:2402:a422:a43c:2b40:707 (37056)     ##",


"family": "ipv6",
"ip": "2a00:1370:818c:2402:a422:a43c:2b40:707",
"port": "37056",
"protocol": "ssh",
"version": "v1.3.0",
"website": "https://github.com/packetsar/checkmyip",
"sponsor": "Sponsored by ConvergeOne, https://www.convergeone.com/"
}
 Connection to sshmyip.com closed by remote host.


$ nslookup myip.opendns.com. resolver1.opendns.com
Server:         resolver1.opendns.com
Address:        2620:119:35::35#53

Non-authoritative answer:
Name:   myip.opendns.com
Address: 2a00:1370:818c:2402:a422:a43c:2b40:707

tip78
() автор топика
Ответ на: комментарий от tip78

У меня работающий openvpn только между офисами. Фейсбук мне не нужен, а ютуб пока работает. Пока мне лень заморачиваться с VPS и тунелем туда. Плюс, ходят слухи, что гугл блокирует/обрезает по скорости ip-адреса, выдаваемые на хостинг (VPS и пр.).

А так, я не понял. Если вам показывает ipv6, значит у вас ipv6 выход в инет? То есть к ipv6 сайтам ваш комп (который openvpn-клиент) идёт по ipv6. А тунель вы подняли для ipv4, да и на VPS, поди, нет ipv4.

Наверно, вам надо прояснить вопрос с ipv4/ipv6 и дальше думать / создавать тему, что делать — отключать ipv6, фильтровать AAAA в своём DNS-резолвере, пускать браузер через прокси (3proxy умеет предпочитать v4/v6), ковырять настройки браузера (если он умеет переключаться в режим ipv4-only)...

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)
Ответ на: комментарий от mky

хм

3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 70:66:55:e9:dd:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.65/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
       valid_lft 56128sec preferred_lft 56128sec
    inet6 2a00:1370:818c:2402:a422:a43c:2b40:707/64 scope global temporary dynamic 
       valid_lft 391sec preferred_lft 391sec
    inet6 2a00:1370:818c:2402:38b0:cd94:3bcf:4c6c/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:c16c:6f80:6587:bc3f/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:a26b:dd20:9c4e:a50f/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:1885:7104:95e3:96cd/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:84ce:6aac:21b4:3d26/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:d377:8f76:2364:9a19/64 scope global temporary deprecated dynamic 
       valid_lft 391sec preferred_lft 0sec
    inet6 2a00:1370:818c:2402:533c:18d0:e532:8f0b/64 scope global dynamic mngtmpaddr noprefixroute 
       valid_lft 391sec preferred_lft 391sec
    inet6 fe80::7173:37d5:42f1:3464/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.9.8.2/24 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::b026:fa08:6031:58b6/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

что можно прояснить тут?
провайдер МТС, его и роутер
чё он там выдал, как я это сменю?

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 1)
Ответ на: комментарий от tip78

а ютуб, например, НЕ открывается

Перезапусти браузер, а лучше ещё и кэш очисти. Если ты используешь тем более chrome, то он у себя кэширует адреса видео шлюзов youtube.

И тут две проблемы:

  • он может использовать адрес шлюза google, который уже не существует;
  • Этот адрес шлюза существует, но не доступен с твоей VPS.

Для определения какой шлюз будет использоваться для youtube перейди по ссылке: https://redirector.googlevideo.com/report_mapping?di=no

Диапазоны IP адресов google можно узнать здесь: https://support.google.com/a/answer/10026322

И заворачивать весь трафик в VPN туннель не нужно. Достаточно завернуть только сети google и то не все.

Пробуй. Но разбирайся сам. Если понимания не хватает - помогать не буду.

anonymous
()
Ответ на: комментарий от anonymous

чё так всё сложно то
вот сейчас я смотрю ютуб через Squid
на том же самом немецком VPS
прекрасно себя чувствую и не думаю ни о каких сетях гугла
через него только IG не грузит
почему нельзя так же просто запустить VPN по инструкции, чтобы делать тоже самое?!

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 1)
Ответ на: комментарий от mky

короче, оно заработало
когда я на роутере (от МТС) отключил ipv6
и оставил только ipv4
теперь правда myip.ru вообще не хочет открываться
зато ютуб работает))
и IG работает
а другой сервис показывает IP моего VPN-сервера
выглядит О-Кей

а вот как же завернуть ipv6 траф в тоннель всё-таки?

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 1)
Ответ на: комментарий от tip78

Уберите то DROP правило из FORWARD и myip будет открываться.

на роутере (от МТС) отключил ipv6

Кардинально. Если у вас openvpn-клиент был Ubuntu то там бы и отключали.

ipv6 в тунель завернуть просто, достаточно прописать в конфиге сервера:

push "route-ipv6 ::/0"
но дальше на сервере нужно включать форвардинг для ipv6. А ещё назначать для тунеля адреса из того диапазона ipv6 адресов, что назначены серверу на eth0, так как NAT в ipv6 считается неправильным решением.

Ваш VPS имеет ipv6 адреса? Если не имеет, то зачем вы хотите ipv6 в тунель заворачивать?

mky ★★★★★
()
Ответ на: комментарий от mky

а есть другие способы выходя в инет с ipv6 попадать в ipv4 тоннель?

я смотрел настройки в дефолтном конфиге, но не нашёл там отключение ipv6
у меня Ubuntu
как там отключить?

на сервере вот чё есть:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:16:05:3d:28:be brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    inet 5.50.40.190/32 brd 5.50.40.190 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:4ff:fe5d:28be/64 scope link 
       valid_lft forever preferred_lft forever

tip78
() автор топика
Последнее исправление: tip78 (всего исправлений: 2)

в итоге как будто бы подключилось но

Там всякие разные опции могут влиять, в зависимости от настроек сервера. Например без включенной компрессии на клиенте может не работать (и тип разный бывает), или наоборот. При этом канал как бы поднимается, маршруты пушатся и т.п.

AS ★★★★★
()
Ответ на: комментарий от tip78

Само простое — записать 1 в /proc/sys/net/ipv6/conf/wlp2s0/disable_ipv6 , можно через echo, можно командой ″sudo sysctl -w net.ipv6.conf.wlp2s0.disable_ipv6=1″

Если постоянно, то строку ″net.ipv6.conf.wlp2s0.disable_ipv6=1″ в файл /etc/sysctl.conf, или, если этого файла уже нет, то создать файл с этой строкой в каталоге /etc/sysctl.d/ .

А по хорошему, разбираться через что получаются ″scope global″ ipv6 адреса/маршруты на и wlp2s0 там настраивать.

Так то существует файл /etc/gai.conf и там можно настроить, чтобы ipv4 адреса предпочитались ipv6, но, насколько мне извсетно, браузеры игнорируют этот файл.

Теперь по поводу VPS.

На сервере у вас только «scope link» ipv6-адрес. То есть выхода в v6-интернет у сервера нет. Одно время была возможность куда-то устанавливать тунель и получать глобальный ipv6-адрес (v6 интернет). Но, не знаю, осталось ли это, да и скорость там была не особо. Пока ваш VPS-сервер не получит подключение к ipv6 интеренту, он не сможет обеспечить доступ в v6 интернет вашей Убунте. Если Убунта отправила пакет на ipv6 адрес, то этот пакет никак не переделать в ipv4.

mky ★★★★★
()
Ответ на: комментарий от mky

спасибо, всё доходчиво)

у меня по умолчанию в iptables DROP
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

# действия по умолчанию
-P FORWARD ACCEPT
-P INPUT DROP
-P OUTPUT DROP

но если FORWARD сделать тоже DROP, то VPN не пускает
а есть какое-то отдельное правило для VPN, чтобы FORWARD глобально DROP, но VPN пропускал?

tip78
() автор топика
Ответ на: комментарий от tip78

Два правила, чтобы и в одну сторону (из VPN в eth0) и в обратную (из eth0 в VPN) разрешить пакеты:

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

Ну, можно у второго правила добавить -m state --state ESTABLISHED,RELATED, чтобы из инета в tun проходили только ответные пакеты на соединения, инициированые со стороны тунеля. Это как бы защищает от атак со стороны интернета, только для этой атаки нужно в одной сети с VPS-серверном находиться да ещё и знать адрес той стороны тунеля (10.9.8.x). Особого смысла в этой добавке не вижу.

mky ★★★★★
()
Ответ на: комментарий от tip78

Точно не знаю, какие там чудеса с ipv6 возможно. Но, вроде как, нет. В случае ipv4 в сделали NAT (маскарад), прописа правило в ″iptables -t nat″. Но iptables только для ipv4, для ipv6 команда ip6tables.

И, как уже писал, для ipv6, как-бы неправильно делать NAT, нужно, по идее, как-то в тунель выдавать один из ipv6 адресов. На комп выдаётся не один ipv6 адрес, а куча. Но я не знаю, кто и как назначит для тунеля (tun0) один из ipv6 адресов с eth0.

mky ★★★★★
()