Скорее в ipmi-логе это уже последствия самой перезагрузки. То есть что-то происходит до, оно кстати, после такого ребута требует еще и F1 жать (отключаемая опция).
Софт одинаковый на серверах (в том числе и ядра), такой же как и на другой платформе R430, там таких проблем нет, потому думаю тут проблема железная, но какая только вот.
Что-то тут видимо другое, я гонял несколько дней stress test, так и не упал сервер, а при не загруженном так сервере, берет и падает сам по себе.
Ядра ставил разные, сейчас стоят cloudlinux-ядра и elrepo 3-ей ветки - эффект один.
Игорь Петров: https://javapipe.com/iptables-ddos-protection использовал mangle фильтры, но при этом не получится использовать iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
На практике показало, что существуют атаки которые умеют маскироваться под трушный syn, и в эти правила он не попадает.
Все эти настройки iptables, и вообще тюннинг sysctl все не поможет, нужно именно в mangle или raw блокировать. Собственно вопрос в том, как правильно составить правило для определенной атаки.
Алекс: Туннель SSH требует наличия пароля или ключа, то есть это не всегда универсально. Плюс я не знаю что будет после разрыва сессии, скорее всего туннель тоже отпадет.
Алекс: Не пробовал, но в любом случае тоже выглядит костыльно, уверен, что задача решается на уровне маршрутизации. В целом задачу решил другим способом, вернее в процессе ее решения, с применением активного сетевого оборудования. Спасибо за советы.
Для 443-го порта нужны оригинальные сертификаты и ключи доменов, перетаскивать их на сервер A слишком большой костыль. Легче уж завесить на сервере Б на IP 192.168.168.1 все нужные домены и делать как выше в задаче описывал. Но это костыльное решение:)
Есть два сервера А (XXX.XXX.XXX.XXX) и Б(YYY.YYY.YYY.YYY), на каждом из них по внешнему IP, к примеру как описано, в статье. Нам нужно чтобы трафик попал c A(XXX.XXX.XXX.XXX) на Б(YYY.YYY.YYY.YYY), например, потому что A-сервер фильтруется защитой. Между ними создается туннель, на сервере A (IP туннеля 192.168.168.1) на сервере Б (192.168.168.2). Далее при помощи DNAT на сервере A перенаправляем:
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX -j DNAT --to-destination 192.168.168.2
iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
На сервере Б прописываем правила роутинга:
ip rule add from 192.168.168.0/30 table 5
ip route add default via 192.168.168.1 table 5
Трафик успешно попадает на сервер Б, но на IP 192.168.168.2, нам же теперь нужно чтобы трафик попал на IP YYY.YYY.YYY.YYY, потому что там висят все нужные нам записи в конфигах веб-сервера.
Пытаюсь сделать:
iptables -t nat -A PREROUTING -d 192.168.168.2 -p tcp -m tcp --dport 80 -j DNAT --to-destination YYY.YYY.YYY.YYY:80
Но назад пакеты не уходят. Если на сервере A сделать:
ipables -t nat -A POSTROUTING -j MASQUERADE
То пакеты уйдут и прийдут, но естественно подменится src посетителя на 192.168.168.1, что нам не нужно.
Есть еще вариант на сервере Б сделать:
ip rule add from YYY.YYY.YYY.YYY/32 table 5
Так оно заработает, но при этом естественно отпадет прямая связь с YYY.YYY.YYY.YYY, в общим это тоже плохой вариант.
В целом нужно, чтобы при заходе на IP А (XXX.XXX.XXX.XXX) попасть на Б(YYY.YYY.YYY.YYY)
Гуглом я тоже пользовался, только вопрос как быть в данной ситуации, а не почему она происходит. Кодировки в mysql есть:
+---------+---------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+--------------------+--------+
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
+---------+---------------+--------------------+--------+