Ответы пользователя по тегу Сетевое администрирование
  • Как настроить сетевое окружение между сервером vpn и компьютерами из разных сетей?

    @younghacker
    Какой vpn используете?
    Ответ написан
    Комментировать
  • Как настроить VPN?

    @younghacker
    Если сети разные то ключевое слово в ответе - routing

    Все хосты в сети А должны знать что сеть Б находится за гейтом А1
    (или если А1 является default gateway для хостов в сети А то он (А1) должен знать что сеть Б находится за роутером Б1)

    Все хосты в сети Б должны знать что сеть А находится за гейтом Б1
    (или если Б1 является default gateway для хостов в сети Б то он (Б1) должен знать что сеть А находится за роутером А1)

    сеть А ==== А1 ---[VPN]--- Б1 ====== сеть Б
    Ответ написан
    Комментировать
  • С чего начать разработку VPN сервиса?

    @younghacker
    Работу с шифрованием хорошо начинать с освоения криптоматематики.
    Она сразу поставит всё на свои места. Если осилите тогда дерзайте дальше.
    Параллельно можно почитать классику в подлинниках например OpenVPN, IPSEC.
    Постарайтесь найти проблемы в OpenVPN сравните потом свои достижения с результатами аудита кода профессионалами (как известно на аудит OpenVPN собраны деньги).
    Ответ написан
    Комментировать
  • Почему выводится белый экран, при открытии сайта?

    @younghacker
    Сайт случайно не на вордпресс?
    Памяти добавьте для php в .htaccess.
    php_value memory_limit 96M
    Ну и как сказал ThunderCat читайте логи.
    Ответ написан
    Комментировать
  • Как научить bareos/bacula удалять использованные тома и автоматически создавать новые?

    @younghacker
    У каждого пула и задания есть параметр Volume Retention который задаёт время по истечении которого файлы попавшие в этот том бакула считает удалёнными. Если установлена опция AutoPrune = yes то bacula удалит записи из каталога (SQL). А если установлена опция ActionOnPurge = Truncate то урежет размер файла до нуля.

    Нужно для себя уяснить одну вещь: bacula/bareos заточена под ленты и воспринимает файлы как ленты. И ведёт себя соответственно, использует их повторно если не установлен параметр Maximum Volume Jobs = 1. Проблема заключается в том что у меня объём бэкапов растёт и сложно понять сколько нужно хранить. И часто случалось что какой-то том раздувался и заполнял диск. Мы ведь в большинстве своём используем диски, а не ленты. Удалять такие тома дело сложное особенно когда задание "размазано" по нескольким файлам-лентам.
    Поэтому для себя я решил так что задания будут иметь определённый формат напрямую связанный с именем сервера, типом бэкапа и датой. В этом случае очередь на удаление очевидна. Кроме этого не возникает больших проблем при восстановлении из одного лишь файла бэкапа (без SQL каталога, несколько раз приходилось это делать) так как всё задание целиком в одном файле.

    За основу можете взять скрипт отсюда исправить его под свою задачу и добавить в cron. Помните что этот скрипт для ручного запуска. Он интерактивный и удаляет файлы по датам и невзирая на то сколько файлов осталось. Другими словами если бэкап не будет создаваться этот скрипт, выполняясь, будет удалять файлы. И в конце концов удалит все бэкапы. Кстати, скрипт вместо крона можно вставить в обработчик например каталога. Поставить бэкап SQL каталога в конец очереди и в него добавить задание "RunScript after/Run After Job"
    Ответ написан
    Комментировать
  • Что означает странное DNS-имя регистратора?

    @younghacker
    Подключите регистратор к роутеру (который позволяет перехватывать трафик) и на роутере посмотрите трафик. Возможно ждать активности придётся долго.
    А имя странное это где? каким образом вы его получили?
    Домен ресолвится на cloudflare.net а за ним пусто "DNS points to prohibited IP"
    Ответ написан
    1 комментарий
  • Проблемы с роутами openvpn?

    @younghacker
    Основная причина:
    в логе клиента написано tun1
    TUN/TAP device tun1 opened

    а в роуте на целевой хост который потом пингуется написано tun0
    10.49.0.0 10.13.0.1 255.255.0.0 UG 0 0 0 tun0


    Некрасиво:
    Wed Jan 11 11:45:38 2017 ERROR: Linux route add command failed: external program exited with error status: 2


    Роуты добавлены руками?
    Ответ написан
    Комментировать
  • OpenVPN роутеры со встроенными клиентами, как настроить подсети?

    @younghacker
    Дмитрий Шицков дело говорит!
    Маршрутизируются только те пакеты которые должны идти в чужие сети!
    У Вас обе сети по сути одна сеть. Имеется в виду сеть подкласса С, 254 адреса.
    Ни один клиент в этой сети не пошлёт пакет в маршрутизатор пока он видит что пакет предназначен в его родную сеть.
    Подсказка:
    Если в сетях не более 126 хостов поделите их пополам маской.
    Вот калькуляция.
    [user001@localhost ~]$ ipcalc 192.168.0.0/24
    Network:        192.168.0.0/24
    Address space:  Private Use
    Address class:  Class C
    Netmask:        255.255.255.0 = 24
    Broadcast:      192.168.0.255
    
    HostMin:        192.168.0.1
    HostMax:        192.168.0.254
    Hosts/Net:      254
    
    [user001@localhost ~]$ ipcalc 192.168.0.0/25
    Network:        192.168.0.0/25
    Address space:  Private Use
    Address class:  Class C
    Netmask:        255.255.255.128 = 25
    Broadcast:      192.168.0.127
    
    HostMin:        192.168.0.1
    HostMax:        192.168.0.126
    Hosts/Net:      126
    
    [user001@localhost ~]$ ipcalc 192.168.0.128/25
    Network:        192.168.0.128/25
    Address space:  Private Use
    Address class:  Class C
    Netmask:        255.255.255.128 = 25
    Broadcast:      192.168.0.255
    
    HostMin:        192.168.0.129
    HostMax:        192.168.0.254
    Hosts/Net:      126
    Ответ написан
    Комментировать
  • Как прокинуть порт iptabless в сеть за VPN?

    @younghacker
    Схема непонятна.
    Как я её вижу: Приходит пакет на Ваш публичный IP потом он зачем-то попадает в VPN после него он уходит в локальную сеть и там находит конечное устройство. Между вашим IP и локальной сетью включён VPN хотя обычно его включают между внешними публичными IP при передаче информации по чужим линиям связи.

    Попробую угадать схему и проблему.
    Вы пытаетесь подключившись снаружи через VPN добраться до устройства которое ничего не знает о Вашем существовании. Уточняю. Вы приходите из сети скажем с адресами 10.0.0.0/24, а устройство подключено в сеть с адресным пространством 192.168.1.0/24.
    Вопросы:
    • На конечном устройстве настроен Default Gate? Иначе оно не знает куда слать ответ в чужую сеть;
    • Default Gate находится на том же ядре на котором поднят VPN? Иначе откуда ему знать где находится Gate для сети 10.0.0.0/24;
    • Там где поднят VPN включена маршрутизация? И в ядре и в VPN?


    Есть два пути:
    1) настроить маршрутизацию
    2) настроить порт форвардинг или DMZ

    tcpdump Вам откроет все тайны сетей.
    Ответ написан
    Комментировать
  • Пустить программы через определенный сетевой интерфейс на windows 7, как?

    @younghacker
    В дополнение решения с прокси, о которых уже высказались добавлю, что можно эти "некоторые" программы которые обязаны ходить только через TAP поставить в Виртуалку. И там же в виртуалке поднять этот TAP (но почему автор пишет TAP...). А снаружи и внутри резать весь исходящий трафик кроме того что идёт в адрес VPN сервера.
    Но я не знаю как в Windows настроить per-interface rules для Firewall (просьба не путать с классами или типами).
    Ответ написан
    Комментировать
  • Где найти мануал по миграции с шаред-хостинга на VDS?

    @younghacker
    Да чего там переносить-то? Это ж как два файла скопировать.
    • Сначала уменьшаете время TTL в NS которые обслуживают домен например на 600 секунд (10 минут);
    • Затем настраиваете LAMP VDS или что Вам там нужно;
    • Потом запаковываете файлы и базу на шареде; Кладёте в место доступное только тому кто знает пароль (подсказка .htaccess) или доступное только через FTP (за пределами public_html). Сайт переводите в режим поддержки или ReadOnly чтобы не "профукать" изменения;
    • Стягиваете на VDS-ку и распаковывыете. Файлы кладёте куда нужно, а базу ресторите.
    • Прописываете в файл hosts на своём компе нужное имя домена и IP вашего VDS и проверяете что сайт работает с вашего VDS и как нужно. Хорошо бы положить на VDS какой-то "маркер" чтобы легко отличить от основного работающего сайта;
    • Если всё пучком - меняете A запись в NS и возвращаете свой hosts в исходное состояние;
    • Удаляете сайт с shared хостинга;
    • Решаете вопрос с бэкапами: чем, куда и как часто;
    • Постепенно вникаете в работу администратора Linux сервера

    Ну а руководство по настройке LAMP Вы легко наяндексите
    А возникнут вопросы - спрашивайте!
    Ответ написан
    Комментировать
  • Как можно определить момент, когда клиент подлкючается и отключается от OpenVPN сервера?

    @younghacker
    В конфиг сервера нужно добавить:
    script-security 2 # to run scripts
    client-disconnect "scripts/on-client-disconnect.sh"

    Заготовка скрипта.

    /etc/openvpn/script/on-client-disconnect.sh

    #!/bin/bash
    ## Parse variables
    
    if [ ! -z "${time_ascii}" ]; then
      sessionStart=${time_ascii}
    else
      sessionStart="UNSET"
    fi
    
    if [ ! -z "${trusted_ip}" ]; then
      clientHostAddress=${trusted_ip}
    else
      clientHostAddress="UNSET"
    fi
    
    if [ ! -z "${username}" ]; then
      clientUID=${username}
    else
      clientUID="UNSET"
    fi
    
    if [ ! -z "${time_duration}" ]; then
      sessionDuration=${time_duration}
    else
      sessionDuration="UNSET"
    fi
    
    if [ ! -z "${bytes_sent}" ]; then
      txVolume=${bytes_sent}
    else
      txVolume="UNSET"
    fi
    
    if [ ! -z "${bytes_received}" ]; then
      rxVolume=${bytes_received}
    else
      rxVolume="UNSET"
    fi
    
    if [ ! -z "${common_name}" ]; then
      client_cn=${common_name}
    else
      client_cn="UNSET"
    fi
    
    ## Send to syslog
    logger -t openvpn -- "Disconnect: CommonName: ${client_cn} Username: ${clientUID} HostIP: ${clientHostAddress} Duration: ${sessionDuration} seconds opened at ${sessionStart} Session Traffic: TX: ${txVolume} bytes RX: ${rxVolume} bytes"


    В логе будут такие вот записи, которые Вы можете затем парсить.

    Sep 17 17:02:35 gw1-vpn openvpn: Disconnect: CommonName: vpn-client14 Username: UNSET HostIP: 444.555.666.777 Duration: 755 seconds opened at Sat Sep 17 16:50:00 2016 Session Traffic: TX: 20676207 bytes RX: 3596392 bytes

    В скрипте Вы всегда можете запустить export и слить его в файл. Увидите там переменные которые установил OpenVPN.

    И не забудьте поставить для скрипта атрибут на запуск и добавить в selinux правило открывающее доступ openvpn демону к этому файлу.
    Ответ написан
  • Как настроить доступ к клиенту VPN извне?

    @younghacker
    Я бы поставил на статическом IP в интернете OpenVPN сервер. На Raspberry Pi OpenVPN клиент. Вернее настроил бы как клиента. Настроил бы iptables на нужные пробросы portforwarding или же включил бы маршрутизацию и анонсировал бы адрес Raspberry Pi на VPN сервер, а оттуда на клиентов которые будут к нему подключаться чтобы получить доступ к Raspberry Pi. Или http прямо на публичный интерфейс как у Вас нарисовано на схеме.
    Ответ написан
    Комментировать
  • Как соединить 2 сети в одну?

    @younghacker
    Опции OpenVPN сервера:
    route - сказать ядру что такие-то пакеты нужно отправлять в openvpn процесс
    iroute - сказать что такая-то подсеть находится у такого-то клиента. Вяжется с CN common name сертификата клиента, поэтому шаред сертификаты не пойдут. Роутерам идут только индивидуальные сертификаты.
    push route - сказать клиенту что пакеты отправлять через TUN интерфейс на OpenVPN сервер.

    И не забудьте включить маршрутизацию в ядре. :) (в винде тоже она выключена по умолчанию)
    Firewall — настройте.
    Если у вас Linux c Selinux то ахтунг! Но не выключить, а настроить!

    Никаких маршрутов прописывать руками в системе нет нужды. Всё работает прямо из OpenVPN если его правильно сконфигурировать.

    Ваши друзья:
    Linux | Windows
    tcpdump | windump (WinPcap) WireShark
    ip route | route print
    ip a | ipconfig /all
    ping | ping

    Включите логи в OpenVPN на клиенте и на сервере.
    Добавье опцию verb 5
    почитайте логи после установки соединения. Там видны команды добавления маршрутов.

    Если речь идёт о подключении только одного IP то можно не настраивать полную маршрутизацию, а сделать NAT (Forwarding) в сторону вашего сервера 192.168.1.202
    В этом случае соединяться нужно будет на адрес вашего TUN интерфейса, а попадёте на сервер. Сервер не узнает ваш IP так как ему будет подсунут IP компа в его подсети и он отправит пакеты ему, а тот отмаскарадит их обратно в вашу сторону. Но это не исключает того что и в этом случае если вы соединяетесь не прямо с гейта,а из другого компа офисной сети то этот комп должен знать куда слать такой запрос иначе он отправит его в адрес Default Gate. Но это отпадает если OpenVPN стоит на роутере Default Gate.

    P.S.
    Вы себе не представляете как схема с адресами да с пояснениями облегчает ответ на поставленную задачу. :) В ней уже половина ответа!
    Ответ написан
    Комментировать
  • Почему не открывается сайт?

    @younghacker
    Проверить домен в разных NS.
    nslookup мойсайт.ру 8.8.8.8
    если ответит значит всё в порядке.
    пинганите адрес указанный в качестве A записи.
    ping x.x.x.x
    если ответит — пропишите у себя в hosts строку вида
    x.x.x.x мойсайт.ру
    и зайдите на сайт мойсайт.ру в браузере.
    на сайте должна быть какая-то страничка чтобы она открылась. При определённых условиях браузер может показать полностью пустую страницу или ошибку. Это может указывать на отсутствие в корне сайта необходимой страницы. Создайте index.html и откройте её в браузере http://мойсайт.ру/index.html
    Должна отобразиться именно страница либо будет ошибка.

    Если 8.8.8.8 не вернёт адрес проверьте его в тех NS которые указаны в домене. Команда такая же только 8.8.8.8 замените на адрес DNS привязанного к домену.
    Если не вернёт корректный адрес, смотрите привязку домена к DNS.

    Файл hosts отрабатывает до ресолва имён в DNS подсистеме. Тоесть имеет более высокий приоритет позволяет иметь доступ к сайту без реального существования имени в DNS подсистеме (разумеется web сервер должен отвечать на это имя)
    Ответ написан
    Комментировать
  • Можно ли исключить диапазон ip из трафика Openvpn?

    @younghacker
    На роутере или на машине где установлен VPN сделайте то что сказали ранее. Пропишите статические маршруты через интерфейс к вашему провайдеру. Имейте ввиду что DNS запросы могут уходить либо в VPN либо через провайдера, в зависимости от настроек на вашем VPN роутере. И если используется CDN то ответ может быть разным. Сделайте скрипт который будет проверять целевой IP в DNS и изменять или оповещать вас что изменился адрес который вам нужен. Также внутренние ресурсы провайдера могут не ресолвиться в DNS снаружи, например гуглом.

    Если же речь идёт о сети провайдера просто подсмотрите их AS получите их сети и затем пропишите их сети "статикой".

    Также придётся разобраться как прописывать маршруты в конкретной вашей системе.
    Ответ написан
    Комментировать
  • OpenWRT как задать имена большому количеству клиентов?

    @younghacker
    Я бы копал в сторону отладки и логов.
    Из вашего поста не ясно что используется в качестве dhcpd и dns сервера dnsmasq/odhcpd+named
    Также неясно когда падает и падает ли демон: в момент старта с большим пулом статических хостов или при подсоединении более чем 22-го клиента.
    strace тоже может что-то подскажет.
    Выделена ли сеть достаточной ёмкости? Может там /30. Не пересекаются ли динамические адреса со статическими и динамика "наезжает" на статику.
    Явно где-то расконфигурация либо глюк в демоне.
    Хватает ли памяти? Не сбойная ли память.
    Ответ написан
    Комментировать
  • Как объединить две локальные сети в одну через OpenVPN?

    @younghacker
    Важно чтобы на сервере был статический адрес. Либо нужно будет прикручивать какой-то домен и настраивать DynDNS.
    На машине которая будет сервером программы ENERGO запустите OpenVPN в режиме сервера.
    Затем откройте на модеме/роутере за которым находится этот сервер portforwarding для UDP порта скажем 12129 и пробросьте его на внутренний IP адрес сервера на порт который слушает OpenVPN сервер. Другие порты прокидывать не нужно. DMZ тоже не стоит активировать чтобы не подставлять вашу XP.

    На всех клиентах которым нужно соединяться с программой ENERGO запустите OpenVPN в режиме клиента. Внеший IP используйте тот за которым стоит OpenVPN сервер.

    OpenVPN для Windows инсталируется просто.
    Не нужно ставить OpenVPN GUI. После установки откройте mmc останстку "службы" и найдите там OpenVPN service. Установите автоматический запуск.
    После того как положите конфиги сервера и клиентов в их каталоги запустите сервис OpenVPN. Затем проверьте что появились необходимые интерфейсы и маршруты.
    ipconfig
    route print
    После этого каждый клиент сможет достучаться до сервера.
    Ваша серверная программа ENERGO должна слушать все интерфейсы в том числе TUN который создаст VPN сервер. Перезапустите её если она не слушает.
    Cтяните бесплатную утилиту sysinternals TCPView чтобы посмотреть процессы и открытые ими порты.

    Если Вы будете поднимать сервер и клиен на конечных машинах тоесть именно на них будет запущен сервер ENERGO и клиенты то с маршрутизацией вам не нужно заморачиваться. Достаточно убедиться чтобы приватная сеть выделяемая для OpenVPN не конфликтовала с вашими другими сетями. Например 172.16.23.0/26 это сеть на 62 адреса в диапазоне который далёк от обоих ваших диапазонов. Сервер в этом случае будет находиться на адресе 172.16.23.1.
    В серверном конфиге для этого нужно использовать такую строку:
    server 172.16.23.0 255.255.255.192
    В остальном всё просто.
    Если будут вопросы — спрашивайте.

    PS.
    Если в офисе клиентов будет больше 3-5 тогда я бы рекомендовал ставить с их стороны VPN роутер, например как рекомендовал Gring76. В таких случаях я предпочитаю прошивать Mikrotik или TPLink в OpenWRT. (в Микротике ущербная реализация OpenVPN)

    PPS. Если будут тормоза (непонятно сколько трафика гоняет программа) смотрите в сторону Remote Desktop Services. Тоесть поднять терминальный сервер у себя в офисе, или у ближайшего отзывчивого хостера на VDS где установлена Windows.
    Ответ написан
    Комментировать
  • Как правильно настроить маршрутизацию?

    @younghacker
    Ваш сервер должен сообщить VPN клиенту что сеть 10.7.0.0/24 должна маршрутизироваться через VPN интерфейс сервера.
    Или просто руками на VPN клиенте добавьте маршрут. route add 10.7.0.0/24 gw "адрес сервера через VPN туннель".
    Маршрут по умолчанию на клиенте должен остаться через физический интерфейс. Иначе не будет выхода в интернет через его провайдера.
    Если вам нужна вся подсеть 10.7.0.0/24 то проброс портов не решает этого. Нужен только доступ к VPN серверу и правильная марштуризация на VPN сервере. Он должен знать маршрут как в 10.7.0.0/24 так и к VPN клиенту. Ну и конечно Win2008 сервер должен знать маршруты в сторону VPN клиента. И конечно на нём должна стоять птичка маршрутизация разрешена. ipconfig /all посмотрите там.

    Чтобы понять почему в сети что-то не проходит берите бумажку (образно TCP пакет) рисуйте на нём адреса источников и получателей, и играйте в прохождение пакета через узлы. На узлах нарисуйте таблицы маршрутизации. Сразу всё встанет на свои места.

    Более конкретного ответа не получите. Нужна информация о технологиях и настройках всех участников.

    Дампер пакетов (tcpdump, wireshark, wincap) Вам в помощь!
    Ответ написан
    Комментировать