Tech support ADM: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) Нет описания правки |
Losted (обсуждение | вклад) Нет описания правки |
||
Строка 52: | Строка 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== etc === | |||
* Восстанавливаем рутовый доступ | |||
<syntaxhighlight lang="sql"> | |||
# В конфиге указываем: | |||
skip-grant-tables | |||
# делаем рестарт mysql и выполняем: | |||
UPDATE mysql.user SET `authentication_string` = PASSWORD('123456789') WHERE `User` = 'root'; | |||
# Убираем опцию и снова перезапускаем MySQL | |||
</syntaxhighlight> | |||
== DDoS == | == DDoS == | ||
Строка 79: | Строка 90: | ||
Предварительно создав резервную копию этих файлов. Иногда еще надо удалить папку "courierimaphieracl" | Предварительно создав резервную копию этих файлов. Иногда еще надо удалить папку "courierimaphieracl" | ||
== libvirt == | |||
=== Запретить сон и гибернацию === | |||
<syntaxhighlight lang="xml"> | |||
<pm> | |||
<suspend-to-mem enabled='no'/> | |||
<suspend-to-disk enabled='no'/> | |||
</pm> | |||
</syntaxhighlight> |
Версия от 21:01, 27 сентября 2021
Тут будут полезные штучки из моей работы будучи системным инженером.
Python
Дебаг питона при падении
Достаточно запустить скрипт с PYTHONINSPECT=1
или python -i
, чтобы при смерти скрипта (естественной или сбое) вывалился шелл со всеми переменными.
Bash
Пробрасываем ssh ключ
Хотим подключиться с host1 к host2 с нашим ключем на localhost. Делаем:
ssh-agent bash
ssh-add ~/.ssh/id_rsa
ssh -A host1
host1 ~: ssh host2
host2 ~:
MySQL
Юзеры
- Ищем юзеров
select User,Host from mysql.user where User like "ca66833%";
- Создаем юзера с правами
CREATE USER 'ca66833_test'@'localhost' IDENTIFIED BY '123456789';
GRANT ALL PRIVILEGES ON ca66833_test.* TO 'ca66833_test'@'localhost';
flush privileges;
Таблицы
- Создадим простую InnoDB таблицу
create database twosa_innodb;
use twosa_innodb;
CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) ENGINE = InnoDB;
etc
- Восстанавливаем рутовый доступ
# В конфиге указываем:
skip-grant-tables
# делаем рестарт mysql и выполняем:
UPDATE mysql.user SET `authentication_string` = PASSWORD('123456789') WHERE `User` = 'root';
# Убираем опцию и снова перезапускаем MySQL
DDoS
Отражение nginx'ом
Рекомендую в блокирующих правилах указывать return 444;
, так как в таком случае nginx не будет ничего отдавать клиенту, а будет сразу закрывать соединение при получении нехорошего запроса.
Отражение через iptables
iptables -I INPUT -p tcp --dport 80 -m string --string "ca66833.tmweb.ru" --algo kmp -j DROP
iptables -I INPUT -p tcp --dport 443 -m string --string "ca66833.tmweb.ru" --algo kmp -j DROP
ip6tables -I INPUT -p tcp --dport 80 -m string --string "ca66833.tmweb.ru" --algo kmp -j DROP
ip6tables -I INPUT -p tcp --dport 443 -m string --string "ca66833.tmweb.ru" --algo kmp -j DROP
Скорее всего не сработает для 443 (https), поэтому надо дополнительно блокировать через nginx, если атака идет по https, но обычно атакуют именно http.
Почта
Проблемы с IMAP (courier-imap)
В папке с файлами писем удаляем все что только можно:
rm courierimapsubscribed courierimapuiddb courierpop3dsizelist courierimapuiddb.lock
Предварительно создав резервную копию этих файлов. Иногда еще надо удалить папку "courierimaphieracl"
libvirt
Запретить сон и гибернацию
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>