Шпаргалка по частым проблемам (TROUBLESHOOT.md)

This commit is contained in:
parent d4b35200dc
commit 9caf03ef63

135
TROUBLESHOOT.md Normal file
View file

@ -0,0 +1,135 @@
# TROUBLESHOOT.md — шпаргалка: частые проблемы и решения
Правило работы: сначала запустите check-скрипт своей машины (он скажет, ЧТО
сломано), затем откройте соответствующий раздел ниже. Все команды безопасны,
кроме отмеченных ОСТОРОЖНО.
## 0. Универсальная диагностика (всегда начинать с этого)
```
ip -4 -br a && ip route # адреса и маршруты
ping -c2 <адрес соседа> # линк жив?
ss -tlnp # что слушает по TCP (нужен root)
ss -ulnp # что слушает по UDP (нужен root)
systemctl status <служба> --no-pager # прямая сводка о службе
journalctl -eu <служба> --no-pager | tail -30 # почему служба упала
```
## 1. Сеть / NetworkManager
| Симптом | Причина | Решение |
|---|---|---|
| «Connection activation failed» | нет кабеля, пустой блок [connection], конфликт профилей | `nmcli con show`, `nmcli dev status`; перезаписать профиль и `nmcli con up <имя>` |
| NM не видит файл .nmconnection | права файла не 600 | `chmod 600 <файл>`, затем `nmcli con reload` |
| Адрес есть, пингов нет | не туда воткнуто; нет маршрута по умолчанию; VLAN-порт не в trunk | проверять `ip route`; на HQ-SW порт к роутеру должен быть trunk с VLAN 100/200/999 |
| Резолвинг не работает | пустой resolv.conf / недоступен DNS | `cat /etc/resolv.conf`, `ping <DNS>`; `systemctl restart NetworkManager` после смены |
## 2. GRE
| Симптом | Причина | Решение |
|---|---|---|
| Туннель есть, пинга нет | в remote указан не тот адрес (нужен адрес роутера в сети ISP) | на ОБЕИХ сторонах `ip tunnel show`; сверить remote/local |
| Пинг от роутера к роутеру есть, от сервера нет | нет маршрутов к офисным сетям | пропишите офисные сети в OSPF (network + passive-interface) или статикой |
| Не переживает перезагрузку | профиль без autoconnect | `nmcli con modify gre1 connection.autoconnect yes` |
## 3. OSPF (frr)
| Симптом | Причина | Решение |
|---|---|---|
| Сосед есть, но офиса не видны | забыли `network <офисная_сеть> area 0` | `vtysh -c 'show running-config'` — сравнить со списком сетей |
| Сосед в 2WAY, не Full | обычной broadcast-сети DR/BDR; в point-to-point туннеле | проще на gre: `ip ospf network point-to-point` на обеих сторонах |
| Соседей нет совсем | network-предложение не совпадает с реальной сетью; интерфейс в passive | проверить network-записи; `passive-interface default` НЕ должен включать туннель |
| MD5 не работает | другой пароль/номер ключа/нет ip ospf authentication | на обоих: `ip ospf authentication message-digest` и ОДИНАКОВЫЙ ключ+пароль |
| OSPF не слушает frr | не включены демоны | ПРОВЕРИТЬ /etc/frr/daemons: zebra=yes, ospfd=yes, `systemctl restart frr` |
## 4. NAT / Интернет
| Симптом | Причина | Решение |
|---|---|---|
| Пинг IP 77.88.8.7 не идёт из офиса | нет MASQUERADE; ip_forward=0 | `iptables -t nat -L POSTROUTING -nv`; `cat /proc/sys/net/ipv4/ip_forward` |
| После reboot правила NAT пропали | iptables не сохранён | `iptables-save > /etc/sysconfig/iptables`, `systemctl enable iptables` (ПРОВЕРИТЬ имя) |
| Пинг IP есть, имена не резолвятся | нет DNS / NAT-адресации | `ping ya.ru`; проверка DNS-конфигурации (раздел 7) |
## 5. DHCP
| Симптом | Причина | Решение |
|---|---|---|
| Клиент не получает адрес | служба dhcpd не активна; client не в нужной сети; range заполнен | `systemctl status dhcpd` (ПРОВЕРИТЬ имя), `nmcli con up <интерфейс>` снова |
| dhcpd не стартует | ошибка конфига (range вне сети, нет subnet) | `dhcpd -t`; `journalctl -eu dhcpd` |
## 6. SSH (порт 2027)
| Симптом | Причина | Решение |
|---|---|---|
| Connection refused | sshd не перезапущен после смены порта; SELinux; firewall | `ss -tlnp \| grep 2027`; `getenforce` → `semanage port -a -t ssh_port_t -p tcp 2027`; `firewall-cmd --add-port=2027/tcp --permanent && firewall-cmd --reload` |
| Permission denied | AllowUsers не содержит пользователя; MaxAuthTries? | `sudo sshd -T | grep -E 'port|allowusers|maxauthtries|banner'` |
| Баннер не показывается | баннер-файл не существует/путь другой | путь в `sshd -T` должен существовать с текстом |
## 7. DNS (dnsmasq)
| Симптом | Причина | Решение |
|---|---|---|
| dig пустой / REFUSED | служба/ports/listen-address | `systemctl status dnsmasq`; `ss -ulnp \| grep 53`; listen-address должен включать 127.0.0.1 и адрес сервера |
| A есть, PTR нет | dnsmasq не выдаёт reverse по hosts | `dig -x <IP>`; при необходимости добавить reverse-зону явно (см. QUESTIONS.md) |
| Внешние имена не резолвятся | нет `server=<адрес>` (форвардер) | `dig +short ya.ru @127.0.0.1`; добавить server-строку, рестарт |
## 8. RAID/mdadm
| Симптом | Причина | Решение |
|---|---|---|
| после reboot нет md0 | нет ARRAY-строки в /etc/mdadm.conf; initramfs старый | строка ARRAY по UUID, затем `dracut -f` |
| mdadm: device busy | диски смонтированы/грязные | размонтировать; `wipefs -a /dev/vdX` ОСТОРОЖНО (только array-диски!) |
| /raid не монтируется | неверный UUID в fstab | `blkid /dev/md0`; сверить с fstab; `mount -a` покажет ошибку |
## 9. NFS
| Симптом | Причина | Решение |
|---|---|---|
| mount: access denied | сеть клиента не в exports | `exportfs -v`; поправить строку; `exportfs -ra` |
| mount: connection refused | службы rpcbind/nfs-server не активны | `systemctl enable --now rpcbind nfs-server` (ПРОВЕРИТЬ имена); `ss -tlnp \| grep 2049` |
| Permission denied при записи | права ФС каталога | `ls -l /raid/nfs`, выставить владельца/права |
## 10. chrony
| Симптом | Причина | Решение |
|---|---|---|
| Stratum 10 | нет синхронизации с upstream | `chronyc sources -v`; доступен ли upstream; порт 123/udp |
| Клиенты не синхронизируются | нет allow <сеть> на сервере; firewall | добавить `allow <a.b.c.d/prefix>`, рестарт chronyd |
## 11. Docker
| Симптом | Причина | Решение |
|---|---|---|
| docker: command not found | пакет не установлен (или podman alias) | `dnf list installed \| grep -i dock`; соответствие пакету РЕД ОС 8 (ПРОВЕРИТЬ) |
| permission denied | docker требует root | `sudo docker ...` |
| compose: no such image | образ не загружен | `docker load -i <tar>`, затем `docker compose up -d` |
| 8080 не отвечает | контейнер упал | `docker ps -a`, `docker logs <id>`, `ss -tlnp | grep 8080` |
## 12. Nginx / apache / mariadb
| Симптом | Причина | Решение |
|---|---|---|
| nginx -t: [emerg] ... строка X | ошибка в exam-proxy.conf | поправить строку X; после правки `systemctl reload nginx` |
| 502 Bad Gateway | бэкенд недоступен с ISP (маршруты!) | `curl -v <бэкенд-IP:порт>` с ISP; если нет — статические маршруты или OSPF |
| 401 всё время | битый htpasswd | `printf "%s:%s\n" WEB "$(openssl passwd -apr1 'P@ssw0rd')" > файл` |
| виртуальный хост показывает дефолт | нет Host-маршрутизации | проверять server_name и какой блок ловит (nginx -t покажет; curl -H "Host: ...") |
| страница 500 | ошибки PHP/подключения к БД | `tail /var/log/httpd/error_log` (ПРОВЕРИТЬ путь на РЕД ОС 8); сверить учётные данные БД в index.php |
## 13. Samba DC
| Симптом | Причина | Решение |
|---|---|---|
| user create: password policy | пароль короче/проще политики | `samba-tool domain passwordsettings show`; ИСПОЛЬЗОВАТЬ пароль под политику |
| realm join fails | DNS BR-SRV не прописан на клиенте | `echo "nameserver <BR-SRV>" > /etc/resolv.conf`; тест `dig <домен>` |
| getent passwd hquser1 пусто | sssd/winbind не настроен/внизу | `systemctl status sssd`; логи; соглашение о формате имён группы ('hq' vs 'hq@домен') |
| sudo файл игнорируется | права не 440 / неверное имя группы | `chmod 440 /etc/sudoers.d/...`; имя группы сверить с getent |
## 14. fail2ban
| Симптом | Причина | Решение |
|---|---|---|
| не запускается | backend не видит журнал | в jail: `backend = systemd` (если используете journald) |
| IP не банится | maxretry/bantime не применились, jail не active | `sudo fail2ban-client status sshd`; проверьте порт 2027 в jail; `fail2ban-client reload` |
## 15. Сертификаты / https
| Симптом | Причина | Решение |
|---|---|---|
| certificate expired / not yet valid | уехало системное время | `timedatectl`; chrony должен тянуть время (задание 2) |
| unable to verify | клиент не доверяет корневому CA | root.crt в /etc/pki/ca-trust/source/anchors, `update-ca-trust` |
| браузер: CERT_AUTHORITY_INVALID | нет SAN или не доверие к CA | `openssl x509 -in cert -noout -ext subjectAltName`; домен ДОЛЖЕН быть в SAN |
## 16. Прочее
- Перезагрузка после большинства скриптов улучшает сходимость (особенно VLAN
и туннели). Ловить проблемы после reboot — пройтись check-скриптами.
- git clone падает по сертификату — на экзамене допустимо
`git config --global http.sslVerify false` (временно) или scp репозитория.
- Пустой DISPLAY? — всё по консоли, виртуальности GUI отсутствуют.
Если что-то сломалось не из этого списка: запустите check-скрипт машины,
посмотрите журналы (`journalctl -eu <служба> | tail -30`) и поиском по этому
файлу — похожие симптомы.