• Отправка писем через exim4 на домен, равный hostname, если mx запись указывает на другой хост

    charon
    @charon
    откройте конфиг экзима и посмотрите на параметр local domains (об этом, кстати, и текст ошибки говорит). Письма на домены из этого списка будут считаться обслуживаемыми эти сервером. Все остальные — чужие и будут пересылаться дальше.
    Ответ написан
    1 комментарий
  • Как запускать go lang скрипты с помощью php exec?

    @PapaStifflera
    Родился, вырос...
    Что я делаю не так?

    Абсолютно все. Начнем с того, что нет такого понятия как "go-скрипт". Есть исходняй код на Go и компилятор+линковщик. Команда go build <имя-файла.go> запускает процесс компиляции и линковки. На выходе вы получите бинарный файл для текущей операционной системы и архитектуры процессора (по умолчанию, можно изменить через параметры). Далее помещаете полученный бинарный файл в директорию из PATH. Все. Можете запускать хоть через PHP, хоть через bash.
    Ответ написан
    2 комментария
  • Где искать работу изучающему линукс?

    @pfg21
    ex-турист
    берешь список админских задач, к примеру 51 задание для оттачивания навыков системного адми..., полностью его делаешь, хорошо изучая каждое движение и команду.
    список ориетирован на локальный комп с виртуалбоксом так точ для его исполнения ничего лишнего не надо.
    потом ищешь еще парочку списков.
    и будем считать основу ты знаешь.

    Теперь идешь на сайт, предлагающий работу администраторам, и смотришь требования к кандидату (начни с джуниора, а то повесишься :). разбираешься в каждом требовании на уровне хотя бы "знаю - разок ставил".

    после такого челенджа вопросов где и что искать у тебя просто не возникнут :) удачи.
    Ответ написан
    Комментировать
  • Можно ли банить через fail2ban за определённые запросы?

    @tenhi_shadow Автор вопроса
    123
    Всем большое спасибо. Я подзагнался сделать это правильно(наверное)

    root@mail:~# cat /etc/fail2ban/filter.d/chinabots.conf  | head
    [Definition]
    failregex = <HOST> .*GET /webdav/
                            <HOST> .*GET /xmlrpc.php
                            <HOST> .*GET /Administrator/FCKeditor/fckeditor.js
                            <HOST> .*GET /Administrator/fckeditor/fckeditor.js
                            <HOST> .*GET /CFIDE/administrator/
                            <HOST> .*GET /FCKEditorV2/fckeditor.js
                            <HOST> .*GET /FCKeditor/fckeditor.js
                            <HOST> .*GET /Fckeditor/fckeditor.js
                            <HOST> .*GET /Fckeditornew/fckeditor.js


    root@mail:~# cat /etc/fail2ban/filter.d/testproxy.conf
    [Definition]
    failregex = <HOST> .*CONNECT


    root@mail:~# cat /etc/fail2ban/jail.d/web.local
    [nginx-http-auth]
    enabled = true
    filter  = nginx-http-auth
    port    = http,https
    logpath = /var/log/nginx/error.log
    enabled = true
    maxretry = 3
    bantime = 86400
    
    [chinabots]
    enabled = true
    filter  = chinabots
    port    = http,https
    logpath = /var/log/nginx/access.log
    enabled = true
    maxretry = 1
    bantime = 100500
    
    [testproxy]
    enabled = true
    filter  = testproxy
    port    = http,https
    logpath = /var/log/nginx/access.log
    enabled = true
    maxretry = 1
    bantime = 200500


    В iptables это выглядит так:
    пампампам
    -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
    пампарарарам
    -A INPUT -j DROP
    -A fail2ban-chinabots -j RETURN
    -A fail2ban-dovecot -s 176.59.85.4/32 -j DROP
    -A fail2ban-dovecot -j RETURN
    -A fail2ban-nginx-http-auth -j RETURN
    -A fail2ban-postfix -j RETURN
    -A fail2ban-roundcube -j RETURN
    -A fail2ban-testproxy -s 104.148.71.26/32 -j DROP
    -A fail2ban-testproxy -s 104.148.71.34/32 -j DROP
    -A fail2ban-testproxy -j RETURN


    root@mail:~# fail2ban-client status testproxy
    Status for the jail: testproxy
    |- filter
    |  |- File list:        /var/log/nginx/access.log
    |  |- Currently failed: 0
    |  `- Total failed:     2
    `- action
       |- Currently banned: 2
       |  `- IP list:       104.148.71.34 104.148.71.26
       `- Total banned:     2
    Ответ написан
    Комментировать
  • Как данные передаются на примере стека протоколов HTTP/TCP/IP/Wi-Fi?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Олиферов в руки - и читать. Или гугл. Про это уже писано-переписано сто тыщ мильенов раз. В целом, мысли верные, данные передаются снизу вверх и сверху вниз. Но как раз обработка HTTP запроса не совсем удобна, потому что тут еще примешивается DNS, а если это первое обращение от браузера - то и ARP :)
    Ответ написан
    Комментировать
  • Как выбрать комплексное решение для электронной почты?

    @HighMan
    Возможно со мной многими не согласятся, но мыло в докере - извращение. Впрочем, сам докер, то еще извращение, но речь не совсем о нем.
    Настройка полнофункционального почтового сервера задача не тривиальная. Подогнать его под свои нужды/хотелки развлечение на долгий срок. Еще почтовый сервер это много программных пакетов, собраных во имя "Великой Цели".
    А Вы хотите готовое решение в контейнере?
    Может, с таким подходом остановиться на MS Exchange? Впрочем, с ним так же придется помучиться.
    Кроме шуток, а может делегировать сервер на Yandex? Там все просто и надежно. Параноя насчет того что ваши письма уже не ваши, оправдана лишь отчасти. Зато вполне работоспособное комплексное решение.
    У меня почтовый сервер postfix + dovecot + PostgreSQL + SpamAssassin + greylist + RoundCube + RainLoop.... Ну и еще по мелочи, включая сито, DKIM, и что-то еще.
    А Вы хотите скачать контейнер и получить все сразу :)
    Ответ написан
    2 комментария
  • ДДос атака на nginx пакетами 1 байт?

    @younghacker
    Главная проблема в том что Ваш адрес уже засвечен и чтобы уйти под CDN нужно сразу сменить IP для бэкэнда, а старый, владельцу атономки, лучше отправить в blackhole.

    Если канал не забит (ssh нормально отвечает) пробуйте блокировать прямо в iptables регионами.
    А если nginx успевает отвечать таймаутом бэкэнда (узкое место движок сайта) - то можно блокировать в nginx.

    Первый шаг - хостер / датацентр. Спросите чем могут помочь, им по сути тоже нет резона держать хост под атакой.

    Затем вытяните из логов все запросы за время атаки отсортируйте по количеству и составьте список 100-300 самых активных и вычислите их сети автономки и регион. Если это одна страна и она не ваша целевая - блокируйте на время всю страну автономки и так далее. Для начала можете заблокировать просто около 300 конкретных хостов.
    Если сайт начнёт работать, контролируйте что происходит дальше. Атака может смещаться на другие IP.

    Если это не поможет переходите под защиту CDN с защитой от DoS.
    Сразу после этого меняйте IP так как этот уже спален.
    Кроме этого пропишите в iptables правила которые режут трафик отовсюду за исключением сетей CDN.
    Не отрежьте случайно свой ssh.

    CloudFlare имеет бесплатный вариант эккаунта. Но отмечу что нам заваливали 3 сайта которые находились на платном эккаунте. Атака велась из Вьетнама Кореи, Бразилии и Украины. Пытались блокировать по сетям прямо в CDN, но пакеты из заблокированных сетей всё равно долетали до наших серверов где мы их уже блокировали.

    По остальному смотрите что с бэкэнтом который готовит страници для nginx. Что с количеством процессов как они загружены сколько потребляют памяти и чего ждут. Атака это хороший случай чтобы над тем где бутылочное горло.
    Ответ написан
    Комментировать
  • ДДос атака на nginx пакетами 1 байт?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    500 строк в секунду - это не мощно и, вероятно, даже не DDoS. Если адрес один, то просто закройте ему доступ брандмауэром, а если адреса разные, то настройте лимит запросов в Nginx.

    nginx.conf
    http {
        ...
        limit_req_zone $binary_remote_addr zone=reqlimit:10m rate=30r/s;
        ...
    }

    some_site.conf
    server {
        ...
        location / {
            ...
            limit_req zone=reqlimit burst=10 nodelay;
        }
    }

    После этого запросы с одного ip-адреса начиная с 31-го в секунду будут отбрасываться.

    Как вишенку на торт, можно добавить ещё фильтр для fail2ban:

    nginx-req-limit.conf
    [Definition]
    
    failregex = limiting requests, excess: .* by zone .*, client: <HOST>
    ignoreregex =

    и правило в jail.local
    [nginx-req-limit]
    enabled = true
    port = http,https
    filter = nginx-req-limit
    logpath = /var/www/*/*/logs/error.log # Здесь укажите свой путь к логам виртуального хоста
    findtime = 600
    maxretry = 10
    bantime = 7200

    После этого адреса DoS'еров будут автоматически блокироваться брандмауэром на два часа. Что разгрузит Nginx от обработки паразитного трафика.
    Ответ написан
    11 комментариев
  • Как составить правила реврайта для nginx, которое будет добавлять слеш в конце ссылки?

    @globalmac
    У себя делаю примерно так:

    location / {
        rewrite ^([^.\?]*[^/])$ $1/ permanent;
        try_files $uri @clean_url;
    }


    Force Trailing Slash:

    rewrite ^([^.\?]*[^/])$ $1/ permanent;

    Данная строка добавляет слэш / в конце каждого URL, только в том случаее если в URL нет точки или параметров. Тоесть после example.com/index.php или example.com/do?some=123 слэш не поставится.
    Ответ написан
    Комментировать
  • Какие есть современные альтернативы Wordpress?

    @crast
    Вы спросили про альтернативу Wordpress в целом, но, вижу, почти все предлагают в ответ альтернативу именно блоговую. Позволю и я себе такое )) LeafPub, одни положительные впечатления.
    Ответ написан
    1 комментарий
  • Какие есть современные альтернативы Wordpress?

    @kurbatov
    Системный инженер, веб-мастер
    Я давно видел ДвижОк - cms.ru.com
    Посмотрите, может понравится.
    Ответ написан
    Комментировать
  • Какие есть современные альтернативы Wordpress?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    У меня есть мысль InstantCMS в этой роли попробовать. Единственное что — она не совсем блоговый движок, чтобы ее таковым сделать, нужно немного настроить — создать соответствующий тип контента, добавить и настроить виджеты. А по легкости и скорости показатели очень даже неплохие: у меня достаточно навороченный сайт грузится менее чем за 0.5 секунды. Плюс еще есть склейка и сжатие CSS и JS из коробки.
    Ответ написан
    2 комментария
  • Какие есть современные альтернативы Wordpress?

    Lerg
    @Lerg
    Defold, Corona, Lua, GameDev
    Для непосредственно блога и простого сайта мне нравится https://ghost.org/
    Ответ написан
    5 комментариев