• Возможны ли инклюды в /etc/hosts?

    @Gynaecologist
    что вы накинулись на человека, может ему так или иначе, во что бы это не встало надо решить задачу именно записями в хостс)

    Если бы мне приспичило - решил бы задачу скриптами на бэш.
    Нужно сделать такой скрипт, который бы запускался периодически из крона, а суть его работы - брать откуда-то эталонные записи и дописывать/удалять их из локального хостс.
    Написано
  • Где у меня дыра в SMTP?

    @Gynaecologist Автор вопроса
    Проблема была в системной учетной записи user :) которая осталась после установки ОС. Спамеры аутентифицировались через нее.
    Написано
  • Где у меня дыра в SMTP?

    @Gynaecologist Автор вопроса
    AUser0, Вы правы. Я увидел, что "дыра" в оставшемся после установки debian пользователе user. Спамеры просто подобрали к нему пароль.
    Написано
  • Чем укомплектовать сервер?

    @Gynaecologist
    Согласен. Зря вы скептически настроены, от виртуализации вы только выигрываете. Риски если и есть, что что-то рухнет, то точно такие же, как в физической среде.
    Написано
  • Как правильно направить 1 IP внутрь впн на микротике?

    @Gynaecologist
    протрассируйте какой-нибудь внешний ип с того компа, который должен выходить в инет через впн, например,tracert 8.8.8.8
    так вы поймете, пытается ли хоть микрот перенаправить трафик или нет
    Написано
  • Где у меня дыра в SMTP?

    @Gynaecologist Автор вопроса
    127.0.0.0/8 - это по дефолту так
    sendmail не пойдет, надо цепляться к серверу почтовым клиентом, и подписывание писем к нему не прикрутить, а так же надо ловить возможные отбойники.
    Написано
  • Как правильно направить 1 IP внутрь впн на микротике?

    @Gynaecologist
    у вас в правиле mangle указан src address того компа/сети, которые хотите отправлять в интерфейс VPN?
    в /ip/routes у вас должно быть два правила 0.0.0.0/0 - и для main, и для vpn-таблицы
    аналогично в /ip/firewall/nat у вас должно быть два правила маскарадинга, для обоих интерфейсов
    Написано
  • Active Directory как сменить IP после восстановления?

    @Gynaecologist
    у вас IP нового контроллера пингуется с компа, который хотите завести в AD?
    если нет - разбирайтесь с этим
    В адаптере этого компа в качестве DNS сервера должен быть указан IP нового контроллера.
    Написано
  • Можно ли удалить вложения из писем?

    @Gynaecologist Автор вопроса
    скрипт на PowerShell, реализующий сабж. Механизм удаления реализован через EWS, как вы и предполагали. Удаляет в письмах нужного размера за нужный период во всех подпапках у нужного пользователя все вложения. Авторство - ChatGPT. Практически не дописывал, работает отлично!

    cls
    # Загрузка сборки EWS Managed API
    Add-Type -Path "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
    
    # Создание объекта службы EWS
    $service = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013)
    
    # Указание учетных данных пользователя
    $service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("----\-----", "-------")
    
    # Указание URL сервера EWS
    $service.Url = New-Object Uri("https://---.-------.ru/EWS/Exchange.asmx")
    
    # Указание периода и диапазона размера письма
    $startDate = [DateTime]::Parse("2022-01-01")
    $endDate = [DateTime]::Parse("2023-01-01")
    $minSize = 1048576   # Минимальный размер в байтах
    $maxSize = 10485760  # Максимальный размер в байтах
    
    # Функция для рекурсивного обхода всех папок
    function SearchEmailsInFolder {
        param (
            [Microsoft.Exchange.WebServices.Data.Folder]$folder
        )
    
        # Создание фильтра по дате
        $dateFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeSent, $startDate)
        $dateFilter2 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsLessThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeSent, $endDate)
    
        # Создание фильтра по размеру
        $sizeFilter = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::Size, $minSize)
        $sizeFilter2 = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+IsLessThanOrEqualTo([Microsoft.Exchange.WebServices.Data.ItemSchema]::Size, $maxSize)
    
        # Объединение фильтров
        $searchFilterCollection = New-Object Microsoft.Exchange.WebServices.Data.SearchFilter+SearchFilterCollection([Microsoft.Exchange.WebServices.Data.LogicalOperator]::And)
        $searchFilterCollection.Add($dateFilter)
        $searchFilterCollection.Add($dateFilter2)
        $searchFilterCollection.Add($sizeFilter)
        $searchFilterCollection.Add($sizeFilter2)
    
        # Создание запроса на поиск элементов в текущей папке
        $itemView = New-Object Microsoft.Exchange.WebServices.Data.ItemView(50)  # Получаем до 50 элементов за один запрос
        $findResults = $folder.FindItems($searchFilterCollection, $itemView)
    
        # Вывод списка найденных писем
        foreach ($item in $findResults.Items) {
            $email = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($service, $item.Id)
    
            # Проверка на наличие вложений
            if ($email.HasAttachments -and $email.Attachments.Count -gt 0) {
                Write-Host "Письмо с вложениями найдено! Удаление вложений..."
                $attachmentsToRemove = @()
    
                foreach ($attachment in $email.Attachments) {
                    try {
                        # Добавляем вложения в список для удаления
                        $attachmentsToRemove += $attachment
                        Write-Host "Вложение для удаления: " $attachment.Name
                    } catch {
                        Write-Host "Ошибка при подготовке вложения для удаления: " $_.Exception.Message
                    }
                }
    
                # Удаление вложений из письма
                foreach ($attachment in $attachmentsToRemove) {
                    try {
                        $email.Attachments.Remove($attachment)  # Удаляем вложение из коллекции Attachments
                        Write-Host "Вложение удалено: " $attachment.Name
                    } catch {
                        Write-Host "Ошибка при удалении вложения: " $_.Exception.Message
                    }
                }
    
                # Сохранение изменений после удаления вложений
                $email.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite)
            }
    
            Write-Host "Тема: " $email.Subject
            Write-Host "Кому: " $email.ToRecipients.Address
            Write-Host "Дата отправки: " $email.DateTimeSent
            Write-Host "Размер: " $email.Size " байт"
            Write-Host "Папка: " $folder.DisplayName
            Write-Host "-------------------------"
        }
    
        # Поиск и обработка подкаталогов (рекурсивно)
        $folderView = New-Object Microsoft.Exchange.WebServices.Data.FolderView(100)  # Получаем до 100 папок за один запрос
        $subfolders = $folder.FindFolders($folderView)
    
        foreach ($subfolder in $subfolders.Folders) {
            SearchEmailsInFolder -folder $subfolder  # Рекурсивно вызываем функцию для каждой подкатегории
        }
    }
    
    # Получение корневой папки "MsgFolderRoot"
    $rootFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($service, [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::MsgFolderRoot)
    
    # Запуск поиска по всем папкам
    SearchEmailsInFolder -folder $rootFolder
    Написано
  • Как сохранить все профили в Chrome при переустановке Винды?

    @Gynaecologist
    Кэш браузера хранится по этому пути - %appdata%\Google\Chrome. Нужно будет так же проверить, что после переноса на папку с кэшем стоят права на запись новому пользователю.
    Поскольку в кэше довольно много мелких файлов, копироваться будет долго. Быстрее на месте все заархивировать, и распаковать на новом месте.
    Написано
  • Локальная сеть переключается на 'Общественную'. Как исправить?

    @Gynaecologist
    Однозначно, для управления этим количеством компов нужен домен.
    Вы себе ноги сотрёте, подбегая к каждому компу, и зае*ете сотрудников, каждый раз отрывая их от работы для того, чтобы что-то настроить.
    По-видимому, вы не знакомы с Active Directory и групповыми политиками, начните хотя бы искать информацию об этом.
    Написано
  • PowerShell как показать папку с наибольшим вложением папок?

    @Gynaecologist
    ...с наибольшим вложением папок....
    -первого уровня или количества папок неограниченной вложенности?
  • Как корректно поправить сертификаты в Exchange2013?

    @Gynaecologist
    В один сертификат можно напихать несколько имен, и не только от одного родительского домена, а вообще разных. Представьте себе, можно даже делать wildcard сертификаты. Если бы вы потрудились сами во всем разобраться, вы бы не были настолько самоуверены. А если бы вы были повежливее, даже сказал бы что именно нужно сделать, чтобы получить серт одновременно на несколько имен.
    Книга перетекает клиенту по основному подключению. Autodiscover нужен только для того, чтобы словить настройки один раз.
  • Как корректно поправить сертификаты в Exchange2013?

    @Gynaecologist
    >>>нам приходится покупать честный и нехило дорогой сертификат с SAN
    ну и зря. а могли бы пользоваться бесплатно сертификатами Let's Encrypt. win-acme в помощь, прекрасно создаются CA-сертификаты и настраивается их авто-обновление.

    >>>Без автодисковера в сертификате хрен чего работать будет.
    глупости. можно не заводить поддомен с таким именем, и соответственно, не выпускать на него серт. Автонастройку внешних клиентов можно сделать без этого домена, настроив перенаправление службы в DNS. будет SRV запись вида _autodiscover._tcp 0 0 443 owa.nichego.com.
  • Как направить траффик разных приложений по разным шлюзам?

    @Gynaecologist
    Когда вы задаете шлюз, в системе возникает системный маршрут вида 0.0.0.0/0, отсюда ос понимает, куда посылать пакеты на адреса не из своей сети, вы не сможете поднять несколько системных маршрутов, да еще распределить их как-то между приложениями, т.к. нет способа переиначить системный маршрут.
    В вашем случае, если надо втупую, чтобы с одного компа разные программы обращались в разные шлюзы, надо поднимать на этом компе Hyper-V, настраивать на нем несколько виртуалок, в каждой из них указывать соответствующие шлюзы и запускать программы.
  • Как направить траффик разных приложений по разным шлюзам?

    @Gynaecologist
    Nordman99, а, так вы об этом... я думаю, что добавление адресов в этот список в вашем случае ни на что не влияет.
    Вы не сможете заставить работающие в одной ОС программы обращаться в разные шлюзы, даже если бы у вас было несколько сетевых интерфейсов и на каждом был бы настроен свой шлюз, т.к. в ОС может быть только один активный шлюз.
  • Как направить траффик разных приложений по разным шлюзам?

    @Gynaecologist
    покажите на скринах, как это вам удалось "назначить несколько шлюзов на одном интерфейсе"