LINUX.ORG.RU
решено ФорумAdmin

Домены в openvpn

 , ,


0

1

Всем привет!

Настраиваю nextcloud на raspberry pi. Хочу его использовать только внутри сети своего openvpn сервера. Подключил малинку к своему серверу, на котором установлен openvpn. Задал ей статичный ip. Теперь хочу прописать ей домен, например, nextcloud.home. Чтобы любой клиент, подключенный к этому vpn серверу, мог открывать админку nextcloud в своем браузере по пути http://nextcloud.home. Пробовал просто прописать в /etc/hosts/, но не помогло. Подскажите, плз, как это можно настроить?

Подскажите, плз, как это можно настроить?

  • поднимаешь свой NS
  • пушишь клиентам dhcp-option DNS
vvn_black ★★★★★ ()
Последнее исправление: vvn_black (всего исправлений: 2 )

1. Настроить dns сервер. Так как у вас всего один хост достаточно будет dnsmasq, в его конфиге пропишите этот хост.
2. Клиентам vpn сервера раздавать адрес вашего dns cервера.
3. Если клиентам впн не раздается defgw то либо раздавать роут до вашей малинки, либо dnat на неё.

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

Я настроил dnsmasq на том же сервере, на котором поднят openvpn, его айпишник в tun0 10.8.0.1. На серве команда dig @10.8.0.1 nextcloud.home выдает айпишник малинки. Т.е., на сколько я могу судить, dnsmasq я настроил верно. Однако, айпишник серва - 10.8.0.1 не пингуется с клиентов, но зато клиенты спокойно пингуют друг друга. Не хочется поднимать лишний сервак и подключать его в качестве клиента к этому vpn соединению. Подскажите, пожалуйста, как сделать так, чтобы клиенты видели основной сервер через tun0.

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

Можно поподробнее? Что вы имеете ввиду под айпишником внутренней сети?

Когда я запускаю nmap, то он находит только ip клиентов.

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

вариант №1 - настраиваешь маршрутизацию на сервере с OpenVPN
Вариант №2 - настраиваешь не чистый тунель, а например бридж(мост) между «tap_vpn» с сетевой картой которая смотрит в локальную сеть. Кусок конфига-примера для сервера ниже.
В примере используется протокол UDP и сертификаты.

local MY_EXT_IP
daemon
mode server
tls-server
port 4989
dev tap_vpn
proto udp

persist-key
persist-tun
verb 6
tun-mtu 1500
mssfix


ca /etc/openvpn/vpnserver_CA.crt
cert /etc/openvpn/vpnserver_SRV.crt
key /etc/openvpn/vpnserver_SRV.key

crl-verify /etc/openvpn/CA_CRL.crl

log-append /var/log/openvpn-vpnserver.log

status /var/log/openvpn-status.log
dh /etc/openvpn/dh2048.pem
status-version 3

client-to-client

keepalive 60 240
script-security 2
comp-lzo

hand-window 400
tran-window 86400
status-version 2
reneg-sec 86400

sndbuf 262144
rcvbuf 262144
push "sndbuf 262144"
push "rcvbuf 262144"

tcp-queue-limit 256

push "explicit-exit-notify 3"

# route 10.19.1.0 255.255.255.0 10.19.0.41

# push "route-metric 5"
# push "route-gateway dhcp" - ne otrabaty`vaet

server-bridge 'nogw'

bcast-buffers 1024

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

Я хочу настроить именно на сервере с OpenVPN. Он находился не в локальной домашней сети. И я не могу понять, почему он не доступен клиентам в рамках vpn туннеля.

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

openvpn - стоит на отдельном сервере в инете и твоя малинка это обычный клиент openvpn? Тогда попробуй вставить в серверный конфиг строчку

client-to-client

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

Эта настройка стоит. Клиенты друг друга видят и пингуют. Но сам сервер, на котором установлен OpenVPN не может пинговать клиентов и с клиента через nmap не видно сервер в сети тоннеля. Но сам vpn работает исправно.

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

Добавил в строчку в server.conf, перезагрузил openvpn, ничего не поменялось.

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

Сервер

port 1194
proto udp
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpnserver.crt
key /etc/openvpn/server/vpnserver.key
dh /etc/openvpn/server/dh.pem
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
duplicate-cn
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
auth SHA512
auth-nocache
keepalive 20 60
persist-key
persist-tun
compress lz4
daemon
user nobody
group nogroup
log-append /var/log/openvpn.log
verb 3
client-to-client
client-config-dir ccd

Клиент

client
dev tun
proto udp
remote **** 1194
cipher AES-256-CBC
auth SHA512
auth-nocache
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
resolv-retry infinite
compress lz4
nobind
persist-key
persist-tun
mute-replay-warnings
verb 3

<ca>
-----BEGIN CERTIFICATE-----
~~~
-----END CERTIFICATE-----
</ca>

<key>
-----BEGIN PRIVATE KEY-----
~~~
-----END PRIVATE KEY-----
</key>

<cert>
-----BEGIN CERTIFICATE-----
~~~
-----END CERTIFICATE-----
</cert>

Iptables-save

# Generated by iptables-save v1.8.7 on Mon Oct 25 19:45:05 2021
*filter
:INPUT DROP [2016905:93897154]
:FORWARD DROP [2290:230263]
:OUTPUT DROP [24716:1879371]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -i ens3 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -i ens3 -p udp -m udp --dport 1194 -m state --state NEW -j ACCEPT
-A INPUT -i ens3 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o ens3 -j ACCEPT
-A FORWARD -i ens3 -o tun0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -o ens3 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A OUTPUT -o ens3 -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -o ens3 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Oct 25 19:45:05 2021
# Generated by iptables-save v1.8.7 on Mon Oct 25 19:45:05 2021
*nat
:PREROUTING ACCEPT [2185227:103884937]
:INPUT ACCEPT [284956:15754652]
:OUTPUT ACCEPT [630398:36471780]
:POSTROUTING ACCEPT [607331:34719928]
-A POSTROUTING -s 10.8.0.0/24 -o ens3 -j MASQUERADE
COMMIT
# Completed on Mon Oct 25 19:45:05 2021
ribas160 ()
Ответ на: комментарий от anc
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd XX:XX:XX:XX:XX:XX
    altname enp0s3
    inet X.X.X.X/32 brd X.X.X.X scope global ens3
       valid_lft forever preferred_lft forever
    inet6 XXX::XXX:XX:XXX:XXX/64 scope link 
       valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::aac:98f7:31d3:3fca/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
ribas160 ()
Ответ на: комментарий от anc

Спасибо!

Сервер действительно начал пинговаться. Но основная проблема все еще осталась: ДНС, которые настроены на сервере через dnsmasq по прежнему не работают. Так же, с сервера по прежнему не пингуются клиенты(

ribas160 ()
Ответ на: комментарий от ribas160
iptables -I INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
iptables -I INPUT -p udp --dport 53 -j ACCEPT

Дядь ты правила iptables копипастой с сайта «как стать сисадмином за 10 минут» что ли брал? Это без подкола, с одной стороны в некотором роде чересчур строгие правила, с другой стороны абсолютно ламерские вопросы.

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

Нет, я их сам писал.

Сначала все запретил, а потом прописывал правила, в случае необходимости. Обычно было легко нагуглить порты, которые используют приложения, но в случае связки openvpn и dnsmasq вся инфа про настройку конфига openvpn, поэтому я решил что проблема кроется именно в нем, и из-за этого совсем забыл про порт для dns в цепочке INPUT.

Все взлетело, спасибо большое за помощь!

Для справки: так же, я открыл порт в цепочке OUTPUT

iptables -I OUTPUT -p udp --sport 53 -j ACCEPT
ribas160 ()
Ответ на: комментарий от anc

Я читал, что чем строже правила, тем лучше.

И смотря на правила, я знаю какая программа какое правило использует. Это помогает лучше понимать конфигурацию сети на сервере. Так же я чувствую свою власть над пакетами :D. Я ведь не сисадмин, поэтому для меня все это не столь очевидно. Но, в частности, благодаря строгим правилам, я понял через какие протоколы и какие порты работают определенные программы, что дало определенное представление об организации работы сети.

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

И что? Какая-то «не конкретная» программа не сможет работать соединяясь например на 80-й порт?

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

Но, например, если я устанавливаю гит, то знаю, что для него нужно открыть 22 порт.

Кто вам сказал что это нужно?

anc ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.