# 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 `; `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 `; при необходимости добавить 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 `, рестарт 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 `, затем `docker compose up -d` | | 8080 не отвечает | контейнер упал | `docker ps -a`, `docker logs `, `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 " > /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`) и поиском по этому файлу — похожие симптомы.