• Можно ли исключить диапазон ip из трафика Openvpn?

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

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

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

    @younghacker
    Вы бы схемку нарисовали. Реверс тунель или прямой? Как-то тяжело понять что конкретно нужно то. Да и для каких целей.
    Может так сойдёт? https://wiki.openwrt.org/doc/uci/sshtunnel
    Ответ написан
    Комментировать
  • 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.
    Ответ написан
    Комментировать
  • Как подключиться к VNC?

    @younghacker
    Конкретика:
    на сервере:
    --------------------------------------------------------
    # netstat -nlp -A inet
    и проверяем что слушает сервер vnc (адрес и порт). (0.0.0.0 5900)

    # iptables -nvL
    и проверяем то что открыты порты 5900
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT

    SELinux
    $ getenforce
    Permissive
    если стоит Enforced то на время проверки сделать
    # setenforce 0

    на клиенте
    --------------------------------------------------------
    $ vncviewer 172.16.82.242:0

    :0 означает индекс порта который слушает сервер относительно стандартного 5900
    :1 - 5901

    Если после этого не будет работать тогда будем ковырять дальше.
    Ответ написан
  • Есть ли возможность настроить Openvpn-клиента yf Windows без сертификатов?

    @younghacker
    1. Отключать сертификаты плохая идея.
    2. Подключение без прокси напрямую работает?
    3. Время и дата между клиентом и сервером синхронизированы?
    4. Кто контролирует прокси? Никаких sslstrip не делает?
    5. Было бы хорошо нарисовать схему подключения.
    6. log verbosity включите на максимум


    Сказанное ниже к делу скорее всего не относится. Чисто как замечание.
    Не знаю как ситуация выглядит сейчас но раньше у микротика с OpenVPN были ограничения. Не поддерживался UDP и по-моему нельзя использовать ta ключи. С тех пор я использую только перешитые Mikrotik.
    Ответ написан
    Комментировать
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    @younghacker
    Вам верно написали про политики ограничения запуска программ (Software Restriction Policy или SRP / App Locker). Попробую немного прояснить суть решения проблемы.

    Главное что нужно сделать это при помощи NTFS ACL заблокировать пользователям возможность запускать программы отовсюду куда они могут записать файлы и при помощи SRP ограничить операционке права запускать программы только каталогами каталогами в которые пользователи не могут писать. В общем случае должно быть разрешено запускать программы только из Program Files и Windows, но запрещено запускать из systemdrive:\Windows\tmp и systemdrive:\Windows\blablabla\spooler

    Для этого нужно понимать, что такое права NTFS их наследование. Все диски в системе на которых есть программы которые можно запускать программы — сделать NTFS. Лучше всего всегда чтобы запускаемые программы были только в Program Files при этом пользователи этих программ никогда не должны иметь прав записи в системные каталоги.

    Любые манипуляции с NTFS и ACL должен проводить человек который понимает что делает!

    Затем:
    1. изменить права на диски таким образом чтобы гость, да и вообще пользователи не могли создавать каталоги и файлы. Единственное обязательное разрешение папки с профилями пользователей и временные папки Windows включая "принтерный спулер". Главный запрет папка с Program Files (незачем туда писать ни пользователям ни пользователям удалённого рабочего стола ни инсталяторам. Всёравно ставить программы и обновления будем от учётки админа)
    2. снять к права пользователей c папки Program Files. Не запретить, а именно снять! (запретом можно случайно сломать доступ и админам) Пользователям можно оставить только Читать каталоги и подкаталоги но не файлы! Traverse folders
    3. после этого включите политику ограничения программ или App Locker и проверьте что пути откуда допускается запуск программ не допускают пользователям записывать данные. Для пущего запрета можете добавить блокировку запуска из некоторых каталогов в Program Files но очень осторожно! Можно повредить систему так что потом и системы и у админа будут проблемы.
    4. проверьте и добавьте ограничение запуска из временных папкок Windows и spooler Windows. Они обычно находятся в папке Windows, а на неё включено разрешение запуска программ (иначе система не стартанёт).
    5. после этого разрешите в Program Files пользователям запускать программы только из папки Google Chrome хотя я рекомендую Mozilla Firefox
    6. также рекомендую снять право пользователей запускать Internet Explorer (некоторые программы Microsoft умеют обходить SRP)

    Теперь при установке программ от учётной записи администратора нужно будет отключать SRP и ставить программу или обновление, затем включать SPR.

    Несколько замечаний.
    SRP и/или AppLocker есть не во всех дистрибутивах Windows. Понятно, что MS это машина по зарабатыванию денег. Но SRP напрямую затрагивает основу основ компьютерной безопасности операционных систем Windows и для меня выглядит не совсем логичным добавить UAC но не дать возможность защищать систему при помощи SRP на самой дешёвой OEM Windows системе. До появления SRP я пользовался замечательной программой TrustNoExe. Она бесплатна ставится в виде сервиса имеет белые и чёрные списки. На новых дистрибутивах Windows я её не испытывал, но она могла бы закрыть брешь в безопасности Windows где есть NTFS но нет SRP.

    SRP это не панацея. К сожалению программы умеющие исполнять скрипты например Word, Excel и т д можно использовать для инжекции постороннего исполняемого кода, а значит можно пытаться поднять привилегии используя известные и не очень уязвимости.

    Дополнительные рекомендации:
    При установке всяких программ типа Google Chrome, Mozilla Firefox, Skype, FoxItReader и т д (их количество будет продолжать расти). следить чтобы они не наставили своих сервисов. С появлением UAC в Windows, всем есть дело и все явно (есть птичка отказаться) или подло (нет выбора) ставят такие сервисы. Если программа ставит такой сервис — удалить его sc delete имя_сервиса. Назначение этих сервисов — скрытая установка своих программ. Отвратительные побочные явления — внезапная поломка системы после неудачного обвноления (включая обновления Windows) У нас был случай когда на клиентских серверах Win2008 после автоматического обновления тотально (у большого числа клиентов) перестал работать терминальный сервер, в результате чего пришлось удалять часть обновлений и ставить другие. После этогого все автообновления были отключены и заблокированы. Нехотите таких сюрпризов — пресекайте все попытки программ установить свои сервисы. Есть программы которые после своей установки хамским образом меняют NTFS acl таким образом что разрешают писать всем в каталог этой программы в Program Files — это сведёт к нулю все ваши старания ограничить запуск программ. Избавляйтесь от таких программ используйте нормальные которые не пишут в Program Files.

    Кроме этого такой подход позволит вам отказаться от антивирусов если не будете бездумно ставить всякий неизвестный и даже известный софт.
    Ответ написан
    8 комментариев
  • Как сменить ключи OpenVPN?

    @younghacker
    В инсталяционном пакете идут скрипты.
    build-ca
    build-dh
    build-inter
    build-key
    build-key-pass
    build-key-pkcs12
    build-key-server
    build-req
    build-req-pass
    clean-all
    inherit-inter
    list-crl
    Makefile
    openssl-0.9.6.cnf
    openssl.cnf
    pkitool
    README
    revoke-full
    sign-req
    vars
    whichopensslcnf

    Для всех действий права рута не нужны.
    Скопируйте скрипты в какой-то рабочий каталог.
    отредактируйте файл vars
    установите дату истечения сертификатов имя организации емейл
    export KEY_SIZE=2048
    export CA_EXPIRE=3650
    export KEY_EXPIRE=3650
    export KEY_COUNTRY="DE"
    export KEY_PROVINCE="none"
    export KEY_CITY="Berlin"
    export KEY_ORG="vpn01 v.p.n.."
    export KEY_EMAIL="vpn01@gate1.common.vpn"

    выйдите в чистый shell
    запустите
    . vars
    после этого не выходя из шела запускайте по очереди.
    ./build-ca ${NAME}
    ./build-dh
    ./build-key-server ${NAME}-server
    "${OPENVPN}" --genkey --secret "./keys/${NAME}-ta.key"

    И потом для каждого клиента
    ./build-key ${NAME}-client${i}
    Где OPENVPN=`which openvpn`
    NAME="vpn01.gw01.common.vpn" - общая часть имени ключей
    i - номер клиента

    Далее вы получите файлы.
    ca.crt - клиентам и серверу (публичный)
    ca.key - только на машине которая подписывает (не храните на сервере!!!)
    ta.key - для клиентов и для сервера (секретный)
    dh2048.pem - (для сервера)
    vpn01.gw01.common.vpn.server.crt - для сервера (публичный)
    vpn01.gw01.common.vpn.server.key - для сервера (секретный)
    vpn01.gw01.common.vpn.client1.crt - для клиента (публичный)
    vpn01.gw01.common.vpn.client1.key - для клиента (секретный)

    Весь каталог со скриптами включая созданную папку (keys) сохраните в секретное место и удалите с сервера.
    Если понадобится догенерировать или отозвать сертификаты.
    Ответ написан
    Комментировать
  • Почему в коде скрипта на sh не везде срабатывает exit 1?

    @younghacker
    Прежде всего я бы перевенул цикл while чтобы он не запускался в subshell
    И выведите результат работы команды в файл чтобы потом можно было проанализировать ожидаемо ли содержимое.

    SVNRESULT=`$SVNLOOK changed -t $TXN $REPOS`
    echo -e"`date '+%F %T'`\n${SVNRESULT}" >> ~/debug-svn.log
    while read status file; do
    ....
    done <<<"${SVNRESULT}"


    И возьмите все переменные в двойные кавычки в именах файлов могут быть пробелы.
    Ответ написан
    Комментировать
  • Расшифровка со SMART на SSD OCZ VErtex 450 128Gb под Centos 7?

    @younghacker
    Device is: Not in smartctl database [for details use: -P showall]

    Это значит что Вашего диска нет в базе утилиты smartctl.
    Для того чтобы она понимала все параметры smartctl нужно обновить базу.
    Можно попробовать
    # yum update smartmontools
    Если не обновится или обновится но диск не появится то попробовать скриптом.
    У вас должен быть установлен скрипт update-smart-drivedb он загружает свежую базу дисков. Возможно и Ваш диск там есть. Скрипт должен отработать без ошибок.
    # update-smart-drivedb -v
    Download from branches/RELEASE_5_43_DRIVEDB
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  136k    0  136k    0     0  23559      0 --:--:--  0:00:05 --:--:--  169k
    /usr/share/smartmontools/drivedb.h updated from branches/RELEASE_5_43_DRIVEDB


    После этого запустите smartctl и посмотрите, что получится. Сообщение о том что диска нет в базе должно бы исчезнуть, а параметры должны получить соответствующие имена.

    После этого будете читать ошибки.

    PS
    Мне нравятся SSD Intel. Заходишь на их сайт "стягиваешь" спецификацию читаешь её и пишешь скрипт который парсит выдачу smartctl и получаешь вот такой более менее человеческий ответ:
    "The workload took 244041 minutes (169.473 days) to complete with 51% reads and 49% writes. A total of 12507.7GB of data was written to the device, which increased the media wear in the drive by 2.72949%. At this point in time, this workload is causing a wear rate of 2.72949% for every 244041 minutes, or 0.000671074%/hour"
    Ответ написан
    Комментировать
  • Как правильно настроить маршрутизацию?

    @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) Вам в помощь!
    Ответ написан
    Комментировать
  • Как реализовать VPN?

    @younghacker
    Вам нужно определиться с угрозами от которых защищаться.
    В любом случае свой трафик Вы подставите VDS хостеру.
    Будете хостером подставите магистральному провайдеру.

    Ставьте OpenVPN. Для него есть клиент и под Android.
    При настройке не забудьте про DNS leak. Желательно "зарезать" на вашем Firewall на компьютере или телефоне любой исходящий трафик куда либо кроме IP адреса VPN сервера. А то бывает VPN специально "уронили", а Вы и не в курсе, что роутинг выпустил весь трафик через обычное соединение. Интернет то работет.

    А для того чтобы радоваться жизни, у Вас уже всё есть. :)
    Ответ написан
    Комментировать
  • Как работать с вводом данных от пользователя и if else в bash?

    @younghacker
    Олег, это вопрос из разряда исправьте ошибки в моём скрипте. :)

    Виталий,
    Для начала вставьте пробел после открывающей скобки
    if [$
    Перед закрывающими скобками то Вы зачем-то его поставили. Где же красота симметрии? :)
    Затем найдите в документации отличия между одинарными скобками [ ] и двойными [[ ]]
    Вам нужны двойные. Так как внутри регулярное выражение. А также после = поставьте тильду и разберитесь с регуляными выражениями.
    if [[ $doport =~ y|Y ]]; then
    Этот код сработает на любой "y" в любой строке. например ответьте nnnooooyes. :)
    Думаю так будет лучше:
    if [[ $doport =~ ^[Yy]$ ]]; then
    можете добавить ключик -n 1 в оператор read
    обработайте ситуацию с отрицательным или неверным ответом (например кириллица).
    и потом разберитесь с командой cut
    зачем там touch ? зачем >> ? вам файл нужно дополнять? Что будет после двух запусков скрипта? Думаю это может выглядеть так:
    `cat > myjson.json <<EOF
            {
            "host" : "$host",
            "port" : "$port"
            }
            EOF`

    Для редактирования файла конфигурации из скрипта изучите sed.
    Ну и наконец переделайте алгоритм :)
    По ходу разберитесь с оформлением и отступами читая чужие хорошие скрипты.
    Ответ написан
    Комментировать
  • Сколько vps/vds можно развернуть на таком железе?

    @younghacker
    Разберитесь с RAID. Если хотите соединить 10 дисков в ленту то это сразу смерть. Сбой одного диска приводит к смерти всего рейда. А вероятность сбоя вырастает с ростом количества дисков. Рекомендую RAID 10. 5 зеркал по 2 диска. Но тогда получите результирующий размер в 2 раза меньше чем суммарная ёмкость дисков.

    Совет: Чтобы дать клиентам больше места поставьте 4 диска SAS 1-2TB и остальные 6 SSD. И давайте в гостевые виртуалки по 2 диска один с SAS RAID второй диск с SSD.

    Глянул на размер вашего SSD и заметил что он имеет размер 480 вместо ожидаемых мной 400 гигабайт. Осторожно c использованием SSD на серверах. IOPs-ы убивают диск. Ресурс записи ограничен. Берите только диски из линейки datacenter. Дорого но необходимо. Например Intel DC-S3700

    Если речь идёт о нагруженном сервере, я бы рекомендовал ставить аппаратный RAID контроллер минимум с 1гигом кеша. Ну и с батарейкой-конденсатором.

    Корпус 1U на 10 дисков с горячей заменой не проблема. Например Supermicro SC116.

    В остальном, извините за тавталогию, PrAW — прав.
    1) сколько гости будут хотеть дисков (помните про backup и ребилд рейда)
    2) сколько сети (помните про служебный трафик например backup)
    3) сколько процессора (помните что процессор понадобится и для обслуживания пакетов через сетевые интерфейсы)
    Это те самые узкие места, а не память.
    Ответ написан
    1 комментарий
  • Как открыть свой хостинг?

    @younghacker
    Прежде всего определитесь с целью, для чего Вам полноценный хостинг.
    Просто чтобы было... Сделать хостинг, поиграться и затем продать. Или же построить бизнес.
    Если поиграться и продать, то помните что основной ценностью являются только "живые" клиенты, а не оборудование и самописанные вебпанельки у правления хостингом.
    Если построить бизнес, то изучайте бизнеспроцессы, маркетинг, управление персоналом. Здесь не играет большой роли что это хостинг или автомобилестроение.
    Для любого бизнеса жизненно важно умение продавать. Иначе это просто увлечение и для его содержания нужны немалые время и деньги. Сервера стоят дорого, а устаревают быстро. Диски последних лет "летят" не отслужив гарантийного срока и часто меняются на такие-же refurbished, remanufaсtured и вылетают за концом гарантийного срока. А стоят дорого. Ещё одна задачка с которой однозначно столкнётся быстро растущий бизнес это покупка IPv4 адресов. Персонал. Где найти настоящих работников которые будут ваше радеть за дело как за своё и вкладывать в него свою душу, так же как и вы?

    А регистрация фирмы, получение лицензий офис с рюшечками не сделает хостинг полноценным. Только единомышленники, персонал, знания и умения помогут вам сделать полноценное самостоятельное детище.

    Но вот чтобы вкусить работу хостера и получить полезный опыт и навыки то наилучший на мой взгляд вариант уже предложили: Поработайте в любой хостинговой компании, вакансий — море. В дневные и ночные смены, под кондиционированием и без солнечного света в сильном шуме. Когда пройдёте этот квест будете знать что вам предстоит.

    А в общем в добрый путь.

    PS.
    Облака это только красивая рекламная уловка.
    Ответ написан
    Комментировать
  • Как в Bash обратиться к AD?

    @younghacker
    Живой пример для mydomain.com (домен выдуман):
    ldapsearch -xLLL -D "uid=nss,ou=People,dc=mydomain,dc=com" -w `</etc/1sEcretNfOlder/ldap.secret` -H  ldap://ldap-master.mydomain.com/ -Z -b "dc=mydomain,dc=com" "*" "+" | sed -e ':a;N;$!ba;s/\n //g'


    Тут лежит пароль к LDAP /etc/1sEcretNfOlder/ldap.secret
    Атрибуты на файл с паролем нужно поставить так чтобы кроме пользователя от которого запущен скрипт никто не прочитал его. Да и паролю дать право только читать LDAP.

    sed удаляет переводы строки перед строками начинающимися с пробела чтобы потом из файла можно было в скрипте парсить нужные данные. В моих версиях ldapsearch эта проблема не решается ключами.
    Ответ написан
    Комментировать
  • Почему не меняется IP после подключения к VPN?

    @younghacker
    Речь идёт о сети интернет?
    Тогда что это????
    server 93.189.42.0 255.255.255.0

    Разве адрес который сервер использует для построения своей локальной сети не должен быть из local диапазонов? 10.x.x.x, 172.16.x.x 192.168.x.x
    выберите любой каких нет у вашего компьютера-клиента в "локалках".
    Например
    server 10.22.44.0 255.255.255.0
    Когда произоёдет подключение у клиента должен появиться один роут
    0.0.0.0/0 --> tunX с лёгким весом (легче чем у оригинального через ваш локальный сетевой интерфейс)
    и второй роут на сервер 93.189.42.##

    А в iptables добавьте вот это правило:
    iptables -t nat -A POSTROUTING -o tun+ -j MASQUERADE

    Это правило гласит: любой пакет в через любой tun интерфейс "замаскарадить"

    И ещё. Проверьте что DNS на клиенте изменился на 8.8.8.8. (хотя я бы рекомендовал поднять DNS на сервере и не сливать гуглу свои похождения по интернетам)
    К тому же я обычно даже блокирую любой DNS трафик через интерфейс отличный от tun чтобы избежать DNS leak когда VPN отваливается.

    После этого можете войти браузером на сервис по определению IP.
    Ответ написан
    Комментировать
  • Шара на одной машине с серевром OpenVPN за роутером - можно ли установить тождество адресов шары в локальной сети и подсети VPN?

    @younghacker
    Вы бы картинку нарисовали. Например, мне довольно сложно прочесть это и понять.

    1. Проверьте что на WS2008R2 включена маршрутизация.
    2. Опубликуйте VPN клиентам роут до сервера.

      server 192.168.2.0 255.255.255.0
      push "route 192.168.1.104 255.255.255.255"


    Вы ничего не сказали про подсеть клиента. Роутится он или нет, потому что если он роутится нужно будет добавить его сеть в конфиг сервера опцией route и ccd конфиг к тому сертификату который отвечает за роутер.
    Ответ написан
    Комментировать
  • Как узнать какой скрипт PHP создал файл?

    @younghacker
    Стандартных возможностей я не знаю.

    Чтобы быстро "заткнуть" вопрос, поставьте на все файлы и каталоги которые не должны изменяться атрибут immutable при помощи chattr. Это ликвидирует возможность создать или изменить файл на диске до тех пор пока не будут повышены привилегии до рута. В каталогах куда пишутся временные файлы установите .htaccess с запретом инерпретации любых файлов как исполняемые.
    php_flag engine 0
    AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
    и сам файл запретите изменять при помощи immutable:
    chattr +i .htaccess

    Можете сделать bash-python-php скрипт запускаемый по крону который будет бегать по указанному каталогу и подкаталогам и сверять список файлов с эталонным и обнаружив "левые" файлы или каталоги будет переносить их в специальный каталог-карантин недоступный снаружи и сразу создавать дамп системных журналов с момента своего последнего запуска. Это позволит получить франменты логов непосредственно предшествующих внесению изменений на диск.
    Скрипт запускать ежеминутно, но отслеживать файлы именно по списку по критериям имя размер времена атрибуты. Не искать ничего внутри файлов чтобы не нагружать сервер. Обнаруживаете чужеродный файл — переносите в карантин. В конце часа шлёте себе оповещение. После этого у Вас будет материал для анализа проблемного места.

    Скрипты рассылающие спам отлавливаются и другим способом. Для этого в iptables добавляете правила которые блокируют SMTP трафик и пишут лог. Например:

    -A OUTPUT -o br0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -d 127.0.0.1 -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -m owner --gid-owner mail -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -m owner --uid-owner root -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -m owner --uid-owner smfs -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -j LOG --log-uid --log-prefix "Reject outgoing SMTP "
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -j REJECT --reject-with icmp-admin-prohibited


    После этого настраиваете свой rsyslog или что там у Вас, можно и zabbix, таким образом чтобы он слал оповещение когда в логе появляются записи "Reject outgoing SMTP ". В этих правилах вы видите разрешение работать почтовику поэтому стандартным мейлером скрипт-спамер сможет рассылать спам. Сделайте для него временно́е окно, ваша задача состоит в том чтобы отловить спамер-скрипт и проанализировать логи. Особенно http что там вызывали и с какими параметрами. Если можете поступить круче то вообще запретите вещание со всех портов кроме разрешённых 22, 80, и 443 (только очень аккуратно: — не лишите себя удалённого управления сервером).

    Есть также возможность поставить утилиту которая будет мониторить изменения в каталоге и его вложениях. Например, incron : Inotify cron system. Она будет следить за указанными каталогами и как-только произойдут выбранные вами события выполнит скрипт. А в скрипте анализировать проблема это или легальная операция.

    Из перспективных возможностей, пропатчить php так чтобы он при операциях и диском (создание и изменение файлов), он писал в специальный журнал. Это вполне реально, но разрабочики php не считают это важным и нужным. Хотя допускаю, что я плохо информирован и они уже работают или сделали эту фичу.
    Ответ написан
    Комментировать
  • Гипервизор на локальной машине?

    @younghacker
    athacker
    Я думаю, речь идёт о возможности быстро развернуть некий образ на любой машине. А ставить дистрибутив линукса слишком долгая процедура.

    По существу вопроса:
    Дистрибутивов таких не знаю, но я бы попробовал сделать его при помощи kickstart-а. И разместил бы его на флешке. Таким способом я создаю виртуальные машины. Разбивает ся диск, прописываются настройки сети, ставятся нужные репозитории и т д. Получается довольно быстро и удобно.
    Можно также подтянуть из сети или загрузить с флешки и образы виртуалки и настроить VNC на весь экран.
    Ответ написан
    Комментировать