Подробный гайд по работе с IPFire через командную строку (CLI)
Важно:
- IPFire разработан преимущественно для управления через веб-интерфейс. CLI предназначен для продвинутых задач: автоматизации, отладки, экстренного восстановления и работы без GUI. Ручное редактирование конфигурационных файлов может быть перезаписано веб-интерфейсом или привести к неработоспособности системы. Всегда делайте резервную копию перед изменениями.
1. Доступ к CLI
| Метод | Команда / Путь |
|---|---|
| Прямая консоль | Физический/виртуальный терминал |
| SSH | ssh root@ |
| Смена пароля root | Задаётся при первой загрузке через setup |
| Рекомендация | Отключите вход по паролю, используйте SSH-ключи: ssh-keygen -t ed25519, затем добавьте ключ в /root/.ssh/authorized_keys |
2. Базовые системные утилиты IPFire
IPFire 2.27+ использует systemd. Многие стандартные Linux-команды работают без изменений.
| Команда | Описание |
|---|---|
setup |
Интерактивная начальная настройка (сеть, часовой пояс, root-пароль) |
update |
Проверка и установка обновлений ядра и базовой системы |
pakfire |
Менеджер дополнительных пакетов (см. раздел 3) |
backup |
Создание резервной копии конфигурации |
restore |
Восстановление из резервной копии |
fsck |
Проверка файловой системы (запускать только в однопользовательском режиме или с live-носителя) |
Конфигурационные файлы IPFire хранятся в:
/var/ipfire/— основные настройки (firewall, Z-сеть, и т.д.)/etc/sysconfig/— сетевые и системные параметры/etc/rc.d/— скрипты инициализации
3. Управление пакетами через pakfire
Pakfire — это пакетный менеджер IPFire для дополнений (аддонов).
# Обновить список репозиториев
pakfire update
# Показать установленные пакеты
pakfire list
# Установить пакет (пример: openvpn)
pakfire install openvpn
# Удалить пакет
pakfire remove openvpn
# Показать статус и зависимости
pakfire status
# Принудительное обновление всех пакетов
pakfire update -f
Пакеты из Pakfire не обновляются через
update. Для аддонов всегда используйтеpakfire.
4. Сетевая диагностика и настройка
IPFire автоматически управляет сетевыми интерфейсами. Ручная правка /etc/sysconfig/network не рекомендуется.
Диагностика
ip addr show # Список интерфейсов и IP
ip route show # Таблица маршрутизации
ping -c 4 8.8.8.8 # Проверка связности
traceroute -m 10 ya.ru # Трассировка
dig @127.0.0.1 example.com # Проверка локального DNS (unbound)
nslookup example.com
Просмотр активных соединений
ss -tulnp # Открытые порты и процессы
conntrack -L # Таблица состояний соединений (требует пакета conntrack)
Временное добавление маршрута (до перезагрузки)
ip route add 10.10.0.0/24 via 192.168.1.1 dev eth0
5. Файрвол: iptables / nftables и правила
IPFire использует iptables (по умолчанию) с возможностью перехода на nftables. Правила генерируются веб-интерфейсом.
Просмотр текущих правил
iptables -L -n -v --line-numbers
iptables-save > /tmp/iptables-backup.txt
Добавление пользовательских правил
Создайте/отредактируйте файл:
nano /etc/rc.d/rc.firewall.local
Пример:
# Разрешить входящий TCP 8080 на RED интерфейс
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
Применить:
systemctl restart firewall
# или
/etc/init.d/firewall restart
Правила в
rc.firewall.localне очищаются при перезагрузке, но могут конфликтовать с GUI-правилами. Используйте их только для специфичных задач.
6. Резервное копирование и восстановление
Создание бэкапа
backup create
# или с указанием имени
backup create my-backup-$(date +%F)
Файл сохраняется в /var/ipfire/backup/.
Восстановление
# Список доступных бэкапов
backup list
# Восстановление
backup restore /var/ipfire/backup/my-backup-2026-04-18.tar.gz
После восстановления требуется перезагрузка:
reboot
Бэкап содержит только конфигурацию, не логи и не пользовательские данные. Для полного клонирования используйте
ddили инструменты виртуализации.
7. Логи и мониторинг
Основные логи
| Путь | Содержание |
|---|---|
/var/log/messages |
Системные события |
/var/log/firewall.log |
Блокировки/разрешения файрвола |
/var/log/unbound.log |
DNS-запросы (если включено логирование) |
/var/log/squid/access.log |
Кэширование/прокси |
/var/log/snort/alerts |
Сигналы IPS (если установлен) |
Просмотр в реальном времени
tail -f /var/log/firewall.log
journalctl -u sshd -f
journalctl -u unbound -n 50
Ротация и очистка
# Просмотр размеров логов
du -sh /var/log/*
# Принудительная ротация
logrotate -f /etc/logrotate.conf
8. Безопасность и лучшие практики
- Отключите root-вход по паролю → используйте только SSH-ключи.
- Ограничьте SSH по IP → в Web UI:
Firewall → Rules → Add: Source=Your_IP, Port=22, Protocol=TCP, Action=Accept.
3. Регулярно обновляйте:
update
pakfire update
- Не редактируйте
/var/ipfire/*.confвручную, если не уверены в синтаксисе. GUI перезаписывает эти файлы. - Тестируйте изменения в виртуальной среде (VirtualBox/Proxmox) перед применением на продакшене.
6. Включите аудит (если нужно):
auditctl -l
ausearch -m USER_LOGIN -ts today
9. Типовые проблемы и решения
| Проблема | Решение |
|---|---|
| Нет доступа по SSH | Проверьте systemctl status sshd, убедитесь, что порт 22 открыт в правилах |
| Pakfire не работает | pakfire update, проверьте DNS (ping google.com), очистите кэш: rm -rf /var/cache/pakfire/* |
| Файрвол не применяет правила | systemctl restart firewall, проверьте синтаксис в rc.firewall.local |
Забит /var (логи) |
logrotate -f, очистите старые логи: find /var/log -name "*.gz" -delete |
| Система не загружается | Загрузитесь в Rescue Mode, проверьте ФС: fsck -y /dev/sda2, восстановите бэкап |
Чек-лист перед работой в CLI
- [ ] Создан актуальный бэкап через
backup create - [ ] Доступ через SSH ограничен по IP
- [ ] Понимаете, какие файлы меняет GUI, а какие безопасны для ручной правки
- [ ] Тестируете изменения на копии системы
- [ ] Знаете, как восстановить систему через Rescue/Console