What's new
Runion

This is a sample guest message. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Статья Настройка OpenVPN без логов / логирования

grozdniyandy

Midle Weight
Депозит
$0

verb 0​

Для кого предназначена эта статья?

Для всех, кто хочет настроить свой собственный openvpn. Я видел множество людей, продающих это как услугу, и множество людей, которые хотят купить это как услугу, так что написать статью об этом - не такая уж плохая идея. Я не убиваю чей-либо бизнес (возможно сам начну продажу), очевидно, что люди, которые хотят купить это как услугу, либо ленивы, либо ничего не понимают в Linux.

Предварительные требования:
  1. Базовые знания Linux
Словарь
Журнал - лог

Содержание
  1. Местоположение логов в Linux
  2. Настраиваем OpenVPN
  3. Стоит ли автоматом ежедневно удалять логи?
  4. Мы -> OpenVPN -> Tor
С момента моего рождения :лол: в нашей жизни обеспечение онлайн-приватности стало более актуальным, чем когда-либо. OpenVPN - это одно из наиболее надежных решений для создания виртуальных частных сетей (VPN). В этой статье мы рассмотрим, как настроить OpenVPN и удалить все логи для обеспечения максимальной приватности.

Прежде чем приступить к настройке openvpn и т.д. Сначала мы должны понять, что регистрируется в нашем Linux и где. Одной из клёвых частей Linux является система регистрации событий, которая позволяет нам отслеживать работу системы - логирование.

Я не знаю, как вы, ребята, это настраиваете, если есть что-то, что я пропустил, не стесняйтесь добавлять в комментариях.

Местоположение логов в Linux​

В большинстве дистрибутивов Linux, лог файлы хранятся в каталоге /var/log. В этом каталоге каждый сервис может создавать собственный лог файл. Я воспользуюсь атак боксом TryHackMe и посмотрю, какие логи там хранятся, в которых может содержаться информация о подключении.

auth.log​

Давайте начнем с auth.log. Этот файл содержит информацию о попытках аутентификации, включая попытки входа в систему по SSH и другим методам. Мы можем найти IP-адреса, из которых выполнялись попытки подключения, а также информацию о том, удалось ли успешно аутентифицироваться или нет. Администраторы могут анализировать этот лог для выявления неудачных попыток аутентификации и источников, откуда эти попытки были предприняты. Также стоит упомянуть, в системах Debian и Ubuntu используется auth.log, в то время как в CentOS и Red Hat этот файл может иметь название "secure".

syslog​

Системный журнал, известный как syslog является стандартным логом событий в большинстве дистрибутивов Linux. Он включает в себя информацию о системных событиях, включая сетевую активность. Журнал syslog подразделяется на уровни важности, что упрощает фильтрацию и анализ, и позволяет обнаруживать проблемы, связанные с безопасностью и производительностью. Обычно статьи советуют вам искать "ssh" и т.д. Я предпочитаю искать по IP-адресам. Для этого можно использовать команду grep с регулярными выражениями.

1697285260277.png


Изображение [1]: syslog​

На изображении ниже мы видим несколько IP-адресов. Один из них из Кореи, похоже, кто-то оттуда сканировал IP-адреса aws на username "Admin", которое предназначено для Windows, но почему-то захотел подключиться по ssh.

Эта команда извлекает уникальные IP-адреса из файлов auth.log/syslog:
Код: Скопировать в буфер обмена
Code:
cat auth.log | grep -E -R '([0-9]{1,3}\.){3}[0-9]{1,3}'
cat syslog* | grep -E -R '([0-9]{1,3}\.){3}[0-9]{1,3}'

1.png


Изображение [2]: auth.log

1697283966639.png


Изображение [3]: Корейский IP

3.png


Изображение [4]: IP адреса в syslog​

Очевидно, что у меня нет возможности понять, где IP-адреса регистрируются в вашей системе. Итак, я создал "однострочник", который может помочь вам определить файлы, в которых регистрируются IP-адреса.

Код: Скопировать в буфер обмена
cat ./* | grep -E -R '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -oE '^[^:]+:' | awk -F ':' '{print $1}' | uniq

4.png


Изображение [5]: Файлы с IP адресами​

Я советую вам использовать "strings" вместо cat.

Код: Скопировать в буфер обмена
strings ./* | grep -E -R '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -oE '^[^:]+:' | awk -F ':' '{print $1}' | uniq

Если вы хотите просмотреть все IP-адреса, залогированные в вашей системе, используйте это:
Код: Скопировать в буфер обмена
strings ./* | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | uniq

Я попытался отфильтровать локальные IP-адреса и проверить, сколько существует внешних IP-журналов. Ответ таков : 1255 - что, честно говоря, странно, почему сервер, который работает менее одного часа, уже имеет 1255 уникальных IP-подключений.

Код: Скопировать в буфер обмена
strings ./* 2>/dev/null | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | uniq | grep -v '10\|192\|127\|172\|0.0' | wc -l

5.png


Изображение [6]: Кол-во IP адресов​

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

Я не смог удержаться и написал еще одну строчку, которая покажет нам организацию и страну IP-адресов.

Код: Скопировать в буфер обмена
strings ./* 2>/dev/null | grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' | grep -v '10\|192\|127\|172\|0.0\|255' | uniq -u | xargs -I % curl https://ipinfo.io/% 2>/dev/null | jq -r '.ip, .country, .org'

Чего я не учел, так это того, что, возможно, в спистке логов также существуют IP-адреса, к которым мы пытались подключиться. Я понял это, когда проверил однострочки на своем собственном сервере. Либо это, либо системы, которым я отправлял запросы, пытались атаковать в ответ :lol:

Мое лицо после контратаки CTF:

cherniyklever.jpg


Изображение [7]: Анимеееее​

Настраиваем OpenVPN​

Что такое OpenVPN?​

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

Устанавливаем OpenVPN​

Существует очень, очень простой способ установки и настройки openvpn. Это скрипт на github, который мы будем использовать.
Код: Скопировать в буфер обмена
Code:
wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh

Мы должны ввести наш паблик IP-адрес, затем мы должны выбрать наш порт, это зависит от вас, я буду использовать 31337, я использовал TCP в качестве протокола, для OpenVPN по умолчанию используется UDP, как DNS resolver, я использовал Cloudflare. Теперь все, что нам нужно сделать, это подождать, и он запросит у нас имя клиента.

6.png


Изображение [8]: Настройка OpenVPN​

Мы добавили пользователя "xss", теперь у нас есть файл "xss.ovpn", который является нашим файлом для openvpn.

7.png


Изображение [9]: Добавление пользователя​

Мы также можем добавить нового пользователя, если захотим, сделав это ./openvpn-install.sh

8.png


Изображение [10]: Добавление пользователя​

Теперь давайте проверим наш IP-адрес и проведем небольшой тест на утечку DNS, чтобы увидеть, не просочилось/утекло ли что-нибудь.

9.png


Изображение [11]: Whoer

10.png


Изображение [12]: DNSLeakTest

11.png


Изображение [13]: Whoer - DNS Leak​

Как вы можете видеть на фотографиях, все выглядит идеально.

Стоит ли автоматом ежедневно удалять логи?​

Часть OpenVPN готова, мы проверили системные логи, теперь пришло время для логов OpenVPN.

В моем случае я просто отредактировал /etc/openvpn/server.conf и заменил verb 3 на verb 0.
Код: Скопировать в буфер обмена
Code:
sudo nano /etc/openvpn/server.conf
#Заменяйте
verb 0
status /dev/null
Если увидите строки которые начинаются на log, log-append -добавьте перед ними # или ;
Код: Скопировать в буфер обмена
Code:
log
log-append

Удаление логов: Почему не следует удалять /var/log

Удаление лог-файлов или даже всего каталога /var/log является плохой идеей. Логи играют важную роль в обеспечении безопасности и отслеживании активности системы. Важно понимать, что некоторые процессы и службы могут зависеть от существования лог-файлов, и их удаление может нарушить работоспособность системы.

Для удаления устаревших лог-файлов мы можем использовать cron. Например, для удаления всех лог-файлов, содержащих ключевое слово "vpn", каждый час, мы можем создать соответствующую задачу cron:
Код: Скопировать в буфер обмена
0 */1 * * * find /var/log -exec grep -q 'vpn' {} \; -delete
Добавьте приведенный выше код внутрь /etc/crontab

НО если вы хотите удалить строки, содержащие слово "vpn", то используйте следующий код:
Код: Скопировать в буфер обмена
0 */1 * * *find /var/log -type f -exec sed -i '/vpn/d' {} \;

Я удалил /var/log, что делать?

Код: Скопировать в буфер обмена
Code:
sudo mkdir /var/log
sudo chmod 755 /var/log
Скопируйте и вставьте приведенный выше код, а затем перезагрузите сервер, он снова начнет логировать.

Мы -> OpenVPN -> Tor​

Первым шагом является установка Tor. Для этого выполняем следующую команду:
Код: Скопировать в буфер обмена
sudo apt install tor
Далее мы настроим Tor, добавляя определенные параметры в файл "/etc/tor/torrc". Эти параметры определяют, как Tor будет работать. Файл "/etc/tor/torrc" - это конфигурационный файл Tor, где определены различные настройки.
Код: Скопировать в буфер обмена
sudo echo -e "VirtualAddrNetwork 10.192.0.0/10 \nAutomapHostsOnResolve 1 \nDNSPort 10.8.0.1:53530 \nTransPort 10.8.0.1:9040" >> /etc/tor/torrc

VirtualAddrNetwork - определяет, какие виртуальные адреса могут быть использованы в сети Tor.
AutomapHostsOnResolve - автоматическое сопоставление хостов при разрешении DNS-запросов.
DNSPort - указывает, на каком порту Tor будет слушать DNS-запросы.
TransPort - определяет порт, на котором Tor будет слушать входящие транспортные соединения.

После настройки Tor необходимо перезапустить службу, чтобы изменения вступили в силу:
Код: Скопировать в буфер обмена
sudo systemctl restart tor

Что такое iptables?​

IPTables - это инструмент для настройки правил брандмауэра (firewall) в системах Linux. Он позволяет управлять тем, какие сетевые пакеты могут входить и выходить из нашей системы.

Что такое tun0?​

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

Что такое DNAT?​

DNAT (Destination Network Address Translation) - это механизм в iptables, который позволяет изменять адрес назначения пакетов при их прохождении через брандмауэр. Мы используем DNAT для перенаправления трафика через Tor.

Эти правила позволят маршрутизировать трафик от OpenVPN через Tor.
Сначала мы разрешим входящие пакеты на интерфейсе "tun0" с исходным адресом 10.8.0.0/24:
Код: Скопировать в буфер обмена
sudo iptables -A INPUT -i tun0 -s 10.8.0.0/24 -m state --state NEW -j ACCEPT
Затем мы произведем перенаправление (DNAT) UDP-трафика с портом 53 с исходным (source) адресом 10.8.0.0/24 на адрес и порт (destination) 10.8.0.1:53530:
Код: Скопировать в буфер обмена
sudo iptables -t nat -A PREROUTING -i tun0 -p udp --dport 53 -s 10.8.0.0/24 -j DNAT --to-destination 10.8.0.1:53530
Также перенаправляйем TCP и UDP трафик:
Код: Скопировать в буфер обмена
Code:
sudo iptables -t nat -A PREROUTING -i tun0 -p tcp -s 10.8.0.0/24 -j DNAT --to-destination 10.8.0.1:9040
sudo iptables -t nat -A PREROUTING -i tun0 -p udp -s 10.8.0.0/24 -j DNAT --to-destination 10.8.0.1:9040
Теперь у нас настроены правила iptables для маршрутизации трафика через Tor.

В конечном итоге, этот процесс обеспечивает более высокий уровень приватности и безопасности при использовании OpenVPN. Надеюсь, что данная статья окажется полезной для всех, кто стремится защитить свои данные и соблюдать конфиденциальность в онлайн-мире.

Также отдельно спасибо f5ociety (не реклама) - часть с тор написал благодаря им - https://github.com/f5ociety/OpenVPN-over-Tor

Автор grozdniyandy

Источник https://xss.is/

 
Отличная статья. А на счёт логов: разве провайдер не сможет логировать подключения НЕ на уровне сервера? Речь об дата-центре, через который проходит подключение. То есть, мы отключили логи на самом VPN сервере, а подключаемся через мост, где наш айпи будет проходить через дата-центр, на котором потенциально все это хранится.
 
Quanter сказал(а):
разве провайдер не сможет логировать подключения НЕ на уровне сервера?
Нажмите, чтобы раскрыть...
Да, ISP будет логировать, я щас отдыхаю, дополню статью.
До этого попробовал Client -> OpenVPN -> Tor - 2 часа игрался чтобы все проходило через тор, перечитал документации, пока что не вышло.

Сделать как выше +- усложнит нахождение реального айпи, лучше было бы вообще Client -> VPN -> Tor -> VPN. Но тут уже угадай скорость интернета)

К сожалению документации которые я смотрел пишут об одном и том же Client -> Tor -> VPN . Что по мне тупо, есть одно чтобы ISP видел подключение к какому то амазон серверу, есть другое к Тор, там как раз hostname и выходит - Тор.
 
OS: Mac OS X
На этом наверное уже можно было не продолжать обсуждение, что там видит или не видит ISP :)

Любителям разгатывать капчу на каждом втором сайте, даю подсказку. Выход через Тор делается при помощи tor-router и смены дефолтного GW.
Если захотите запретить выход в сеть, минуя Тор, а-ля vpnkillswitch, то еще вам нужно заблокировать все соединения, кроме пользователя tor (debian-tor на ubuntu/debian, и _tor-xxxx для инстенсов из tor-instance-create).
 
Quanter сказал(а):
Отличная статья. А на счёт логов: разве провайдер не сможет логировать подключения НЕ на уровне сервера? Речь об дата-центре, через который проходит подключение. То есть, мы отключили логи на самом VPN сервере, а подключаемся через мост, где наш айпи будет проходить через дата-центр, на котором потенциально все это хранится.
Нажмите, чтобы раскрыть...
всё сетевое оборудование "провайдерского" уровня хранит логи подключений, гугли "cisco netflow", "arista sflow"
 
jfc сказал(а):
You say that ironically, right?. Because I wonder (I guess) if there is a way to avoid all those annoying captchas
Нажмите, чтобы раскрыть...
He meant that you will have to solve captcha in every second website if you will route all your traffic over tor. That's because every second website uses cloudflare and captcha will pop up. "every 2 website" was written ironically.
 
grozdniyandy сказал(а):
До этого попробовал Client -> OpenVPN -> Tor - 2 часа игрался чтобы все проходило через тор, перечитал документации, пока что не вышло.
Нажмите, чтобы раскрыть...
Для решения этой задачи именно в таком ключе надо просто настроить маршрутизацию трафика на сервере впн, чтобы она уходила в тор. Но схема кривая, см ниже.
Dread Pirate Roberts сказал(а):
всё сетевое оборудование "провайдерского" уровня хранит логи подключений, гугли "cisco netflow", "arista sflow"
Нажмите, чтобы раскрыть...
Что автоматически делает затею в чистом виде нафиг не нужной. Я считаю базовый уровень должен быть не менее впн через тор. В таком случае исключается риск перехвата трафика на экзит ноде тора с одной стороны, и попытки угадать ипишник реального клиента на впн сервере с другой стороны. Ну и учитывая, что опенвпн говно с точки зрения скорости работы и ресурсов, я бы заменил его на WireGuard.
 
grozdniyandy сказал(а):
Также отдельно спасибо f5ociety (не реклама) - часть с тор написал благодаря им - https://github.com/f5ociety/OpenVPN-over-Tor
Нажмите, чтобы раскрыть...
darkcoder_io сказал(а):
Для решения этой задачи именно в таком ключе надо просто настроить маршрутизацию трафика на сервере впн, чтобы она уходила в тор.
Нажмите, чтобы раскрыть...
Я так и сделал, только один вопрос, я не понял то что ты написал ниже. Исключая то что я использовал OpenVPN, в чем проблема? Типо на данный момент и так трафик идет Клиент -> OpenVPN -> Тор
 
grozdniyandy сказал(а):
He meant that you will have to solve captcha in every second website if you will route all your traffic over tor. That's because every second website uses cloudflare and captcha will pop up. "every 2 website" was written ironically.
Нажмите, чтобы раскрыть...
I get it, thanks. Is there any way to "trick" Cloudflare and bypass captcha when routing traffic or navigating through TOR?.
 
Срок годности .ovpn

Подскажите пожалуйста, возможно где-то прописать дату завершения файла ovpn?
По дефолту он генерируется на 1 год. Но мне надо например, чтобы он работал 2 месяца.
Где указать ему срок годности? Помогите плиз.
 
Срок годности .ovpn

Подскажите пожалуйста, возможно где-то прописать дату завершения файла ovpn?
По дефолту он генерируется на 1 год. Но мне надо например, чтобы он работал 2 месяца.
Где указать ему срок годности? Помогите плиз.
Нажмите, чтобы раскрыть...

Если при создании юзера используешь easy rsa - то зайди в папку с его скриптами, найди gen-key или key-gen (скрипт генерации ключа, название сейчас не вспомню) и там есть переменная days - соответственно поменяй ее с 365 на требуемое тебе значение
 
Где же тут безопасность если с выходной ноды TOR идет нешифрованный трафик, FTP, DNS, HTTP, SMTP все это нельзя будет использовать при таком конфиге.

Было бы безопаснее (но не анонимнее), если использовать в конце после TOR (TOR > VPN), да и как написали выше, в такой схеме (VPN > TOR) будет бесконечная 403 / каптча на 99% сайтах.
 
ThorZirael сказал(а):
де же тут безопасность если с ввходной ноды TOR идет нешифрованный трафик
Нажмите, чтобы раскрыть...
всюду ты свое мусорское рыло суешь))
как использование протоколов, передающих свои данные плейн текстом, противоречит словам "этот процесс обеспечивает более высокий уровень приватности и безопасности при использовании OpenVPN"?
 
HostBost сказал(а):
всюду ты свое мусорское рыло суешь))
как использование протоколов, передающих свои данные плейн текстом, противоречит словам "этот процесс обеспечивает более высокий уровень приватности и безопасности при использовании OpenVPN"?
Нажмите, чтобы раскрыть...
Оставить свои креды на выходной ноде которая слушается - это безопано? Объясни где тут безопасность? Или ты не слышал что на выходной ноде трафик не шифруется и ее могут слушать и как правило всегда все кому не лень сохраняют трафик?

Тут даже наоборот случается, безопасность была выше без TOR чем с ним (не путать с анонимностью).
 
ThorZirael сказал(а):
Оставить свои креды на выходной ноде которая слушается - это безопано?
Нажмите, чтобы раскрыть...
специально для тебя выделил слово "более". Более безопасно != абсолютно безопасно. Добавление тора после овпн создает долнительные слои шифрования для траффика, благодаря этому после прохождения овпн сервера траффик протоколов, передающих данные плейн текстом, будет по прежнему зашифрован. В контексте использования овпн это будет более безопасно
Если кто-то боится снифферов на выходных нодах, то пусть поднимет tor2web сервис, который позволит при использовании http + .onion включать end2end шифрование
 
HostBost сказал(а):
специально для тебя выделил слово "более". Более безопасно != абсолютно безопасно. Добавление тора после овпн создает долнительные слои шифрования для траффика, благодаря этому после прохождения овпн сервера траффик протоколов, передающих данные плейн текстом, будет по прежнему зашифрован. В контексте использования овпн это будет более безопасно
Если кто-то боится снифферов на выходных нодах, то пусть поднимет tor2web сервис, который позволит при использовании http + .onion включать end2end шифрование
Нажмите, чтобы раскрыть...
Как оно может быть БОЛЕЕ безопасно, если по дефолту весь трафик с ovpn идет шифрованный и очень мало вероятно что хостер будет его сохранять, т.е. это безопасно, но он идет дальше на выходную ноду TOR, где очень вероятно что его БУДУТ сохранять и он уже не шифрованный (не безопасно). и в контексте статьи ТС нет ни слова про защиту от снифферов на выходных нодах, даже словом не упомянул.

Ты путаешь анонимность и безопасность, типо да, то что описано ТС анонимно, и если не ходить на никакие другие сайты кроме .onion то все здорово, но зачем вообще все это если ты будешь посещать только сайты .onion, для этого есть просто tor браузер. А если посещать другие ресурсы, по мимо .onion ресурсов, то сталкиваемся с проблемой того, что без каптчи ничего не открыть, выходная нода слушается, и половина сайтов вообще будут в 403.
 
ThorZirael сказал(а):
где очень вероятно что его БУДУТ сохранять
Нажмите, чтобы раскрыть...
какая у этого вероятность?) ты мне на этот вопрос на рампе так и не ответил после вброса очередного говно-видео с инфоцыганским заголовком
ThorZirael сказал(а):
с ovpn
Нажмите, чтобы раскрыть...
ThorZirael сказал(а):
на выходную ноду TOR
Нажмите, чтобы раскрыть...
зона ответственности овпн закончилась, трафик не смогли проснифффать даже скомпроментировав овпн сервер благодаря дополнительным слоям шифрования. Все, дальше начинается зона ответственности сети тор и оценка безопасности в контексте этой сети. Поэтому применительно к овпн - безопасность стала выше

ThorZirael сказал(а):
и в контексте статьи ТС нет ни слова про защиту от снифферов на выходных нодах, даже словом не упомянул.
Нажмите, чтобы раскрыть...
так напиши ему об этом, пусть дополнит, если по твоему мнению это нужно. Статья правда называется "Настройка OpenVPN без логов / логирования", а часть про тор была написана как приятное дополнение, но все же
 
Top