WordPress так кеширует 404 страницы (ведь пока страницу не открыли не ясно что она 404 - WordPress через mod_rewrite начинает искать есть ли пост с таким названием - ведь он может быть, так как это ЧПУ). До запроса к WordPress к БД никто не знает есть ли такая страница.
Пока тестирую бесплатный Cloudflare тариф, так как пока не совсем понимаю чем именно он помогает и как. Он автоматом должен не пускать тех кто пытается кучу раз сделать запросы с одних ip, или их все равно пропустит? Может ли он частично заменить fail2ban правильно фильтруя траффик, или он по другому работает? (имеет какие-то блек листы и по ним проверяет или как).
Проблема в том что нужные страны могут быть любые (и Азия с Китаем в том числе). Как я понимаю ограничение запросов в секунду не поможет, так как IP все разные? А если ограничивать запросы в секунду в целом - то заблокируется и доступ обычным пользователям, кто зайдет в тоже время?
К сожалению я на "вы" с Linux и консолью, так что нужно объяснение:
1) Как этот скрипт добавить в авто выполнение и как запускать вручную по SSH
2) Если сервер localhost, так и указывать в серверах?
3) Как настроить привелигии?
4) Нужно чтобы отправлял email
5) Ну и скрипт выполняет лишь половину работы (БД) из той, что мне нужно
Никакой кнопочки там не будет. Заполните банковские данные и выплаты будут происходить каждый месяц автоматически на ваш счет (если баланс больше 100$).
Разрешить доступ к другим сервисам только "своим IP" проблематично - у меня не статический IP, и мне может понадобиться подключится к серверу не с моего IP (в поездке через VPN к примеру), какой я тоже не знаю какой будет.
Host is up (0.042s latency).
Not shown: 984 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
106/tcp open pop3pw
110/tcp open pop3
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds
465/tcp open smtps
587/tcp open submission
993/tcp open imaps
3306/tcp open mysql
8443/tcp open https-alt
Судя по выводу открыты только нужные порты, но почему тогда при выводе netstat я вижу что IP долбится даже в порты 40000-50000?
К примеру сейчас один IP имеет 18 соединений (странно почему, если я задавал лимит в 15):
И стучит он в 80. CLOSE_WAIT означает что его сервер "отфутболил"? Но почему он по прежнему висит в таблице соединений (и наверно продолжает тормозить сервер).
А вот другой IP у которого 10 соединений, он уже стучит во все порты подрят:
tcp 0 0 XXX.76.86.102:51326 104.20.6.155:80 TIME_WAIT
tcp 0 0 XXX.76.86.102:51322 104.20.6.155:80 TIME_WAIT
tcp 0 0 XXX.76.86.102:51304 104.20.6.155:80 TIME_WAIT
tcp 0 0 XXX.76.86.102:51313 104.20.6.155:80 TIME_WAIT
tcp 0 0 XXX.76.86.102:51358 104.20.6.155:80 ESTABLISHED
Почему тут есть ESTABLISHED если порт 51358 закрыт?
К примеру сейчас у меня у обычных IP 1-5 соединений (думаю это нормально), но есть несколько больше 10:
10 104.20.6.155
13 0.0.0.0
16 104.20.8.155
18 185.11.146.127
Это точно не реальные люди и можно ли блокировать больше 10 не боясь забанить людей (сейчас использую 15 лимит)? И почему в списке есть 0.0.0.0 (что это? для локалхоста странный адрес)?
И еще вопрос - возможно ли дополнить вашу команду чтобы помимо отклонения запросов выше лимитов IP их создающие автоматически заносились в бан по типу команды iptables -I INPUT -s 185.62.188.91 -j DROP. То есть к примеру если один IP создал больше 15 запросов одновременно он автоматически попадал в бан навсегда.
Отвечу сам себе - атака идет на все порты подрят (не только 80), поэтому ваша команда блокирует не все атаки. Как указать блокировку 15 активных соединений на ЛЮБОЙ порт?
Azazel PW: Ваш совет помог и как я вижу теперь сервер не зависает намертво (ваша команда успевает вовремя сработать и максимальное время простоя минут 5). Но меня смущает одна вещь - когда мне приходит уведомление что веб сервер не доступен, я вижу что среди активных конектов висит IP у которого 20-30 соединений, при том что я использовал вашу команду для ограничения в 15 соединений. Сервер при этом уже работает когда я захожу, но почему то в выводе я вижу эти 20-30 коннектов с одного IP. Почему и как сделать чтобы такой IP блокировался быстрее?
--connlimit-above - количество подключений? То есть к примеру если я укажу 50, то бот/пользователь какой открыл одновременно (в разных вкладках браузера к примеру, если это человек) 50 php файлов с моего сайта (50 страниц) будет заблокирован? 50 теоретически безопасное значение? (думаю живой человек не откроет столько страниц с сайта сразу в разных в кладках)
Возможно что кто-то купил ваши приложения, а потом получил Refund, тогда у вас может быть задолженность. Но странно что она такая большая (разве что у вас приложение стоит баксов 100 или кто-то купил оптом ваше приложение, а потом вернул всю покупку).
Пока тестирую бесплатный Cloudflare тариф, так как пока не совсем понимаю чем именно он помогает и как. Он автоматом должен не пускать тех кто пытается кучу раз сделать запросы с одних ip, или их все равно пропустит? Может ли он частично заменить fail2ban правильно фильтруя траффик, или он по другому работает? (имеет какие-то блек листы и по ним проверяет или как).