Задать вопрос
  • Логирование трафика через iptables?

    martin74ua
    @martin74ua Куратор тега Компьютерные сети
    Linux administrator
    Настройте syslog на запись лога от этого источника в отдельный файл
    ну а дальше - фильтруйте, обрабатывайте...
    Ответ написан
    Комментировать
  • Как дать WSL2 больше процессора?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Вы уверены, что ваш архиватор умеет использовать все ядра (и делает это по умолчанию)?
    Ответ написан
    1 комментарий
  • Как развернуть локальную сеть на основе VPN на linux сервере?

    @AlexVWill
    А мне необходимо, чтобы по внутренним VPNовским IP я мог достучаться до другого компьютера в виртуальной сети.

    Обычно для этого достаточно в настройках VPN указать что возможна маршрутизация пакетов внутри сети между клиентами.
    Поскольку ты не указал, что за VPN ты используешь, то читай мануал настройки к своему серверу. В OpenVPN за эту настройку отвечает опция client-to-client, в IPSec оно по умолчанию доступно.
    А общем и целом все сводится к маршрутизации пакетов внутри своей подсети 10.10.0.0 к примеру, которая создается при настройки VPN сервера и к которой клиенты подключаются. Iptables тут нипричем, т.к. внутри этой подсети iptables не работает, если ты конечно не дописал что-то туда сам.
    Иными словами, если у одного клиента внутренний VPN IP - 10.10.0.2, а у другого 10.10.0.3, они могут видеть друг-дружку по этим адресам внутри VPN тоннеля.
    Ответ написан
  • Как объединить две локальные сети через OpenVPN?

    Frostealth
    @Frostealth
    Backend Developer
    Не помешают конфиги OpenVPN и таблицы маршрутизации с обоих роутеров.
    Предполагаю, что на роутере1 (кв1) отсутствует маршрут до сети кв2 через VPN.
    Исходный ответ

    Настройка маршрутов в ASUS описана здесь: https://www.asus.com/ru/support/FAQ/1011706/

    Итак, требуется на роутере1 прописать маршрут к роутеру2 для сети кв2.
    Маршрут примерно такой:
    - IP-адрес сети: 192.168.1.0
    - Сетевая маска: 255.255.255.0
    - Шлюз: IP-адрес роутера2 внутри сети VPN, например 10.8.0.2

    И не забыть прописать для роутера2 статический адрес (10.8.0.2) для OpenVPN. Иначе OpenVPN сервер может выдать роутеру2 другой IP.

    Без маршрута, роутер1 не будет понимать на какой порт/интерфейс направлять запросы к сети 192.168.1.0/24.

    Если не заработает, то, вероятно, через сеть VPN в сеть клиента VPN отсутствует NAT. Тогда следует сконфигурировать брандмауэр (firewall) на роутерах, в т.ч. и на роутере1. Настройка брандмауэра в ASUS описана здесь: https://www.asus.com/ru/support/FAQ/1013630/

    Необходимо, чтобы брандмауэр на роутере1 пропускал запросы из сети 192.168.1.0/24 в сеть 192.268.0.0/24. И наоборот, на роутере2 - из сети 192.168.0.0/24 в сеть 192.168.1.0/24. Без этого роутер будет отбрасывать все запросы во внутреннюю сеть из других сетей.


    При решении данного вопроса с автором возникли проблемы с роутерами ASUS. Клиент (роутер2) ни в какую не видел сеть за сервером (возможно упустил какую-то опцию, "route ..", "iroute" и "push 'route ...'" не помогли). Решение с tap не подходило из-за отключения DHCP на роутере2.
    Основная проблема - это невозможность загрузить в роутер целиком файл конфигурации сервером. А документацию консоли роутера (через ssh) найти быстро не удалось.
    Если кто знает решение, прошу описать его в комментариях.

    Аренда VPS (выделенного сервера) с Ubuntu и поднятие OpenVPN сервера уже на нем с последующим подключением двух роутеров в качестве клиента решили проблему.
    Можно поднять и на ПК в сети, конечно. В таком случае нужно будет добавить статический IP для этого ПК и выполнить проброс портов в настройках роутера.

    Установку и основную настройку сервера OpenVPN помог упростить скрипт https://git.io/vpn, который пришлось редактировать для замены зашитой в нем сети 10.8.0.0 на другую в связи с наличием пересечения данной сети с другой на одном из роутеров.

    Итак, установка и конфигурация сервера OpenVPN на Ubuntu для объединения двух сетей роутеров без выхода в интернет через VPN. Для начала необходимо подключиться к серверу по SSH.

    Установка OpenVPN с помощью скрипта через терминал. Скачиваем скрипт и запускаем его командами ниже.
    >>> wget https://git.io/vpn -O openvpn-install.sh
    >>> sudo bash openvpn-install.sh


    Отвечаем на все запросы скрипта, выбираем протокол UDP.
    После завершения установки открываем файл nano /etc/openvpn/server/server.conf, удаляем все строки, начинающиеся на push, и добавляем следующее:
    ifconfig-pool-persist ipp.txt
    client-config-dir /etc/openvpn/server/ccd
    client-to-client
    
    route 192.168.0.0 255.255.255.0
    push 'route 192.168.0.0 255.255.255.0'
    
    route 192.168.1.0 255.255.255.0
    push 'route 192.168.1.0 255.255.255.0'

    Пояснение к конфигу

    ifconfig-pool-persist ipp.txt - будет сохранять соответствия выданных им IP адресов в файл `ipp.txt`. Таким образом, каждый клиент будет всегда получать один и тот же IP.

    client-config-dir /etc/openvpn/server/ccd - указывает серверу директорию с дополнительной конфигурацией для каждого клиента.

    client-to-client - разрешает передачу данных между клиентами.

    route 192.168.0.0 255.255.255.0 - уведомляет сервер о локальной сети (192.168.0.0/24) клиента.

    push 'route 192.168.0.0 255.255.255.0' - сервер будет передавать маршрут к указанной сети всем клиентам.


    Далее создадим указанную в конфиге директорию sudo mkdir /etc/openvpn/server/ccd.
    И добавим в нее файлы, названия которых будут отражать имена наших клиентов (указываются далее). И пропишем в них какая сеть какому клиенту принадлежит.
    /etc/openvpn/server/ccd/router1

    iroute 192.168.0.0 255.255.255.0

    /etc/openvpn/server/ccd/router2

    iroute 192.168.1.0 255.255.255.0


    Запускаем скрипт снова для добавления клиента. Для добавления второго запускаем потом еще раз.
    После запуска скрипта вводим цифру 1, соответствующую опции 1) Add a new client.
    Здесь же и указываем название клиента (router1, router2).
    >>> sudo bash openvpn-install.sh

    Скачиваем файлы конфигурации для клиентов, которые сгенерировал скрипт, и загружаем соответствующий конфиг при создании OpenVPN клиента на роутерах.
    Маршруты на роутерах прописывать не надо, как и правила в брандмауэре. OpenVPN сервер сам отправляет маршруты клиентам, которые мы указали в его конфиге ранее с помощью push 'route ...'.
    Ответ написан
    1 комментарий
  • Каким образом можно создать виртуальную сетевую папку в ubuntu?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Все просто.
    1) Делаете VPN (OpenVPN или WireGuard) между серверами
    2) Ставите на сервер дома NFS-сервер, и расшариваете папочку, пусть будет /mnt/share
    3) На удаленном сервере монтируете в какой нибудь каталог mount -t nfs /mnt/share 192.168.XXX.XXX:/mnt/share
    Ответ написан
    Комментировать
  • Два IP на одном домене. Как настроить переадресацию?

    Это разруливается не через DNS, а через балансировщик.
    У тебя будет, получается, три узла: Основной, Резервный, и Балансер.
    В DNS ты прописываешь балансер (через A/AAA или CNAME - не важно).
    Все запросы от клиентов идут на Балансер и он их пересылает на основной.
    В случае сбоя, Балансер каким-то образом выясняет состояние основного узла (может прямо запрашивать периодически какой-нибудь GET /health или смотреть на ответы, которые он даёт клиентам), и перераспределяет запросы на Резервный в случае, когда был выявлен сбой, и наоборот - в случае сбоя Резервного можно попробовать перенаправить запросы снова на Основной (тут уже как настроишь).

    Попытаться обойтись без балансера можно, но тогда ты столкнёшся с той ситуацией, с которой ты столкнулся:

    При коннекте к www.site1.ru провайдеры через раз подключаются к правильному айпи, то к основному, то к резервному.
    Соответственно где то на сайт заходит, где то нет так как конектится ко 2 айпи который в текущий момент сервер не использует.

    И уйти от этого не получиться, тк это не баг, а фича - DNS сервер провайдера будет кэшировть информацию о записях в твоём домене, чтобы не нагружать твой сервер лишними запросами и быстрее отдавать ответ своим абонентам, при этом при кэшировании может учитываться тот TTL, который ты сам указал.
    + Кэширование может, и скорее всего будет в том числе и на стороне конечного клиента.

    Придирки к терминологии

    Не существует "DNS регистраторов". Есть просто регистраторы, которые говорят что домен принадлежит тебе и позволяют назначить dns-сервера, которые будут этот домен обслуживать.
    И есть отдельно dns-хостинги, где ты можешь прописать различие записи в рамках домена.
    Ответ написан
    5 комментариев
  • Несколько почтовых доменов на одном ip - почему не работает?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В конфигурации hMail сертификат второго домена не соответствует самому домену. Жмите "View" в окошке ошибки, там увидите прописанный в сертификате домен. Самое простое - сгенерировать сертификат сразу для обоих доменов.
    Ответ написан
  • Как можно установить glibc версии 2.29 или выше на ubuntu 18.04?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Нужно - устанавливайте в докер с более свежей ОС.
    Ответ написан
    Комментировать
  • Каким образом DHCP должен понять, что надо отдать адрес именно из этого пула конкретному клиенту?

    @dronmaxman
    VoIP Administrator
    Есть такой механизм DHCP-Relay который должен быть настроен на L3 маршрутизаторе данной сети, как раз он и пересылает запросы из разных vlan на DHCP сервер, так же добавляет в него подсеть на основании который DHCP сервер понимает из какого пула надо выделить IP.

    Если не использовать DHCP-Relay, то DHCP сервер должен иметь сетевой интерфейс в каждой из сетей.
    Ответ написан
    Комментировать
  • Как сделать заход в админ-панель сервера через домен, а не IP?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если нужно для себя, и только для себя - впишите этот IP и домен в файл hosts. И всё, будет работать для компьютера, на котором прописано в hosts.
    Ответ написан
    Комментировать
  • Почему сайт, развернутый в Docker Django не работает?

    Mi11er
    @Mi11er
    A human...
    1. gunicorn tgbotshop.wsgi:application --bind 127.0.0.1:8000 - Заменить на 0.0.0.0
    2. в nginx прописать web:8000
    Ответ написан
    Комментировать
  • Как передать в цикл for два аргумента из строки bash?

    @mezhuev
    Системный администратор
    Установите необходимый разделитель через переменную $IFS.
    IFS=$'\n'
    for addr in $(cat filename); do
        IFS=' '
        telnet $addr
    done

    man bash

    Word Splitting
    The shell scans the results of parameter expansion, command substitution, and arithmetic expansion that did not occur within double quotes for word splitting.

    The shell treats each character of IFS as a delimiter, and splits the results of the other expansions into words using these characters as field terminators. If IFS is unset, or its value is exactly , the default, then sequences of , , and at the beginning and end of the results of the previous expansions are ignored, and any sequence of IFS characters not at the beginning or end serves to delimit words. If IFS has a value other than the default, then sequences of the whitespace characters space, tab, and newline are ignored at the beginning and end of the word, as long as the whitespace character is in the value of IFS (an IFS whitespace character). Any character in IFS that is not IFS whitespace, along with any adjacent IFS whitespace characters, delimits a field. A sequence of IFS whitespace characters is also treated as a delimiter. If the value of IFS is null, no word splitting occurs.

    Explicit null arguments ("" or '') are retained and passed to commands as empty strings. Unquoted implicit null arguments, resulting from the expansion of parameters that have no values, are removed. If a parameter with no value is expanded within double quotes, a null argument results and is retained and passed to a command as an empty string. When a quoted null argument appears as part of a word whose expansion is non-null, the null argument is removed. That is, the word -d'' becomes -d after word splitting and null argument removal.

    Note that if no expansion occurs, no splitting is performed.
    Ответ написан
    3 комментария
  • Как грамотно подключиться к СХД по SSH используя PS?

    @NortheR73
    системный инженер
    Пароль можно заранее сохранить в файле и потом в скрипте читать его, точно так же и ключ. В вашей ситуации лучше использовать ключ
    Ответ написан
    4 комментария
  • Как исправить скрипт?

    Достаточно обернуть все $file в кавычки:
    date=$(stat --printf '%w' "$file" | awk '{print $1}')

    mv "$file" "$date-$file"

    Но пробелы в названиях, в твоём случае, не единственная возможная проблема. Парсить вывод ls считается плохой практикой. Вместо этого надёжнее использовать глобы:
    for file in "$1"/*

    Про причины хрупкости парсинга вывода ls можно почитать тут:
    https://mywiki.wooledge.org/ParsingLs
    Ответ написан
    1 комментарий
  • Почему в терминале линукса не работают backspace и курсор?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    645a97126de88291751904.png
    Ещё настройки bash хранятся в директории пользователя, в файле .bashrc
    Ответ написан
    Комментировать
  • Как поменять операционную систему Andoid на Smart TV?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если произаодитель оборудования не поддерживает другую ОС для даноой модели, то скорее всего ничего хорошего не получится.
    Единственный вариант, если модель достаточно распространенная, поищите на ответы на 4pda
    Ответ написан
    Комментировать
  • Для тех кто пользовался сборками флибустина, стоит ли ставить сборку 10ltsc? Что по стабильности? Как долго пользовались?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ищите сборку MSDN. Автор Microsoft.
    Наименьшее число багов хотя и встречаются
    Ответ написан
    1 комментарий