LINUX.ORG.RU

Вопрос по настройке OpenVPN на VPS

 , , ,


0

1

Добрый день! Помогите пожалуйста новичку в настройке. Есть несколько вопросов по настройке OpenVPN на VPS. На сервере установлен debian 10.Сервер вроде как настроен и запущен. Ну, по крайней мере, команда «systemctl status openvpn@server» выдает данные о том, что запущен (active running). Правильно ли я понял, что в файл «server.conf» в строке «local ip» нужно ввести ip моего VPS сервера вместо a.b.c.d или ничего вводить не надо?? А в файле «client.conf» в строке «remote» нужно указать тоже ip VPS сервера? Нужно ли раскомментировать строки? push «dhcp-option DNS 8.8.8.8» push «dhcp-option DNS 8.8.4.4» Это ведь для направления всего трафа через VPN? Какой днс вообще лучше использовать? Гугл, Опенднс? При настройке файрвола лучше использовать UFW или iPtables? Правильно ли прописана конфигурация для IPtables? Использую модификатор I, чтобы добавить это правило первым к цепочке. iptables -I INPUT -i eth0 -m state –state NEW -p tcp –dport 443 -j ACCEPT iptables -I FORWARD -i tun+ -j ACCEPT iptables -I FORWARD -i tun+ -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -i eth0 -o tun+ -m state –state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -A POSTROUTING -s «здесь мне прописать ip сервера?» -o eth0 -j MASQUERADE iptables -A OUTPUT -o tun+ -j ACCEPT

При настройке файрвола лучше использовать UFW или iPtables?

Используй то, что знаешь.

iptables -I INPUT -i eth0 -m state –state NEW -p tcp –dport 443 -j ACCEPT 
iptables -I FORWARD -i tun+ -j ACCEPT 
iptables -I FORWARD -i tun+ -o eth0 -m state –state RELATED,ESTABLISHED -j ACCEPT 
iptables -I FORWARD -i eth0 -o tun+ -m state –state RELATED,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o tun+ -j ACCEPT

Если у тебя политика ACCEPT, то эти правила не имеют смысла, он всё разрешают и нет ни одного блокирующего правила.

iptables -t nat -A POSTROUTING -s «здесь мне прописать ip сервера?» -o eth0 -j MASQUERADE 

Если ты хочешь, что бы через твой сервер выходили в Internet твои VPN клиенты, то здесь нужно прописать IP адрес сети твоих VPN клиентов.

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

То есть эти правила по умолчанию включены? У меня только один клиент. iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Вот этот Ip нужен?

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

Я знаю про этот скрипт, но я без него все делал. Вот вопрос остался только в том, нужно ли в строчке local a.b.c.d что то прописывать или нет? Это я как понял вообще для raspberry настройка? Или нет

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

Утилита iptables позволяет изменять правила пакетного фильтра ядра Linux.

Когда сетевой пакет попадает на интерфейс сетевой карты компьютера с Linux, то он проходит по нескольким цепочкам пакетного фильтра.

В зависимости от того кому предназначается пакет цепочки разные.

Если пакет предназначается самому компьютеру с Linux, то это цепочки:

  • PREROUTING
  • INPUT
  • OUTPUT
  • POSTROUTING

Если пакет является транзитным, т.е. должен быть передан другому компьютеру или VPN клиенту, как в твоём случае, то:

  • PREROUTING
  • FORWARD
  • POSTROUTING

В цепочках ещё есть таблицы, но тебе это не важно.

И у каждой цепочки есть некоторая политика обработки пакетов, обычно политика ACCEPT, разрешающая прохождение пакетов.

Узнать какая политика выставлена можно набрав команду

iptables-save

И посмотрев на строки в начале:

:PREROUTING ACCEPT [1407522:201336067]
:INPUT ACCEPT [747333:42968012]
:OUTPUT ACCEPT [486983:36957155]
:POSTROUTING ACCEPT [471190:35335055]

Ты пишешь:

iptables -t nat -A POSTROUTING -s «здесь мне прописать ip сервера?» -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE. Вот этот Ip нужен?

Почитай что-нибудь по правилам iptables, например вот: https://www.opennet.ru/docs/RUS/iptables/

В указанном тобой правиле параметр ‘-s’ означает «source», т.е. source-ip, в заголовке пакета указывается адрес компьютера, который послал пакет. И если тебе нужно, что бы VPN клиенты могли выходит в Internet через твой VPN сервер, то в параметре «-s» нужно указать либо IP адрес конкретного VPN клиента либо IP адрес сети VPN клиентов с маской.

нужно ли в строчке local a.b.c.d что то прописывать или нет В параметре local конфигурационного файла сервера указывается IP адрес, на котором OpenVPN сервер «слушает» запросы клиентов на подключение и с которого осуществляется обмен с клиентами.

А в файле «client.conf» в строке «remote» В этой строке нужно указать внешний IP твоего сервера, к которому будут подключаться VPN клиенты.

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

В параметре local конфигурационного файла сервера указывается IP адрес, на котором OpenVPN сервер «слушает» запросы клиентов на подключение и с которого осуществляется обмен с клиентами.

Скажи что тебе не понятно вот в этой фразе?

В параметре local указывается IP адрес, к которому будут подключаться удалённые компьютеры для поднятия VPN соединения.

Какой IP адрес тебе там указать тебе виднее.

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

Мне не понятно одно, нужно ли мне его раскомментировать или нет? Во всех гайдах, что я нашел, этот параметр вообще не трогают и оставляют по умолчанию. Если я там ничего не указываю, у меня vpn будет работать?

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

в общем, как я понял, тут мне надо прописать ip адрес моего сервера? правильно? и этот же адрес я пропишу в конфигурационном файле клиента?

moxito99
() автор топика

openvpn –config /etc/openvpn/server.conf выдает ошибку RTNETLINK answers: File exists Thu Jul 2 06:42:51 2020 ERROR: Linux route add command failed: external program exited with error status: 2 Thu Jul 2 06:42:51 2020 Could not determine IPv4/IPv6 protocol. Using AF_INET Thu Jul 2 06:42:51 2020 Socket Buffers: R=[87380->87380] S=[16384->16384] Thu Jul 2 06:42:51 2020 TCP/UDP: Socket bind failed on local address [AF_INET]xx.xx.xx.xx:443: Address already in use (errno=98) Thu Jul 2 06:42:51 2020 Exiting due to fatal error Thu Jul 2 06:42:51 2020 Closing TUN/TAP interface Thu Jul 2 06:42:51 2020 /sbin/ip addr del dev tun1 local 10.8.0.1 peer 10.8.0.2 Команда netstat -lnp | grep 443 выдает tcp 0 0 xx.xx.xx.xx:443 0.0.0.0:* LISTEN 433/openvpn в чем может быть дело?

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

etstat -lnp | grep 443 выдает tcp 0 0 xx.xx.xx.xx:443 0.0.0.0:* LISTEN 433/openvpn в чем может быть дело?

В том, что у вас уже запущен OpenVPN сервис, например через systemd, а вы из командной строки запускаете ещё одну копию на том же самом адресе и порте.

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

Подскажите пожалуйста, что в таком случае нужно сделать? вот такой результат по команде systemctl status openvpn-server@server.serviceopenvpn-server@server.service - OpenVPN service for server Loaded: loaded (/lib/systemd/system/openvpn-server@.service; disabled; vendor preset: enabled) Active: inactive (dead)

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

ввел systemctl disable openvpn-server@server перезагрузил в итоге netstat -lnp | grep 443 tcp 0 0 xx.xx.xx.xx:443 0.0.0.0:* LISTEN 448/openvpn
unix 2 [ ACC ] STREAM LISTENING 14432 466/systemd /run/user/0/systemd/private

moxito99
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.