• Чем провести аудит ПО в локальной сети?

    @slun Автор вопроса
    Спасибо. Бегло посмотрел на софтинку. Достаточно продуманная и вроде есть все, что нужно.
    2 детали портят общее впечатление: нужна облачная учетка и, соответственно, доступ в интернет; windows-only.
  • Как запретить кэширование на уровне блоков или как вывести динамическую информацию в Drupal 8?

    @slun Автор вопроса
    Спасибо, помогло.
    Относительно неверного использования блока: Я понимаю, что то, что я пытаюсь сделать тоже по-сути костыль, но как иначе реализовать такую схему:
    [logo] [page_title] [contacts]
    Как вариант, можно контакты убрать из брока system branding, создать для них отдельный пользовательский блок и разместить его после page_title, конечно.
  • Javascript. Какой использовать паттерн инициализации класса с асинхронным запросом внутри?

    @slun Автор вопроса
    Идея изначально была такая, что есть некий абстрактный клас модели, его задача - загрузить данные и предоставить их для анализа конкретным потомкам. Условно говоря:
    class Model {
      constructor(params){ loadData(); } //загружаем данные асинхронно, сохраням результат загрузки в this.
    }
    class User extends Model {
      constructor(id) {
        super({'id': id}) //генерируем некоторые специфичные параметры для запроса и отправляем родителю
        //анализируем ответ
      }
    }

    Ну понятно, что для того, чтобы такой код работал, нам надо тем или иным образом дождаться пока запрос будет завершен. Конкретных моделей несколько. И все они забирают данные с сервера.
    Как все это представить в качестве композиции объектов слабо укладывается в голове. Впрочем, фабрика в данной ситуации тоже не то чтобы спасение: поручаем всю грязную работу по загрузке данных фабрике, в коллбэке загрзузчика инициализируем нужный класс, инстанс уже анализирует полученные данные, но тогда коллбэк должен знать, куда результат (инстанс) положить.
  • Javascript. Какой использовать паттерн инициализации класса с асинхронным запросом внутри?

    @slun Автор вопроса
    С фабрикой есть сложность. Надо как-то выяснить имя класса из которого фабричный метод был вызван. Либо создавать по фабрике на каждый класс модели, но это убивает всю идею наследования в данной ситуации.
  • Как сделать обратный nat с помощью pf?

    @slun Автор вопроса
    athacker, Saenara: Да, я понимаю, что нат - костыль, и как следствие даже анализ логов хттп становится весьма нетривиальной задачей, но в данном случае это вынужденная мера. Надеюсь, временная.
    Вся проблема как раз в том, что стандартный файрвол виндов отключен полностью, ничего другого не стоит, в ивент логах ни слова о том, что что-то где-то было заблокировано. Но tcpdump не может врать. Хотя, конечно, стоит попробовать еще на самом виндовом сервере посмотреть, что там с пакетами происходит.
  • Как сделать обратный nat с помощью pf?

    @slun Автор вопроса
    Saenara: Да, но не только. Но если с терминальными подключениями проблема решается впн, то вот с тем же хттп это не удобно.
  • Как сделать обратный nat с помощью pf?

    @slun Автор вопроса
    Перечитал man, но так и не нашел как реализовать обратный нат. Вот правило
    rdr on $external_interface proto tcp from any to $external_ip port 80 -> 192.168.1.2
    Теперь смотрим tcpdump на внутреннем интерфейсе:
    19:45:47.199477 IP 100.2.3.4.54109 > 192.168.1.2.http: Flags [.], ack 81342, win 16317, length 0
    В адресе источника остается внешний адрес и внутренний сервер его за каким-то чертом фильтрует. Под обратным натом я все же понимаю операцию обратную "прямому" нату, с подменой адреса источника на локальный.