Как восстановить настройки iptables в системе Debian 12?

Сегодня я заметил, что в Debian, начиная с 10 версии, уже не используется iptables. Я установил чистую версию Debian 12 и после этого выполнил команду `apt install iptables`. Пакеты успешно установились, но при выполнении команды `iptables -L` я получил сообщение: <i>bash: iptables: command not found</i>. 

Я также попробовал выполнить рекомендации из официальной документации по адресу <a href="https://wiki.debian.org/iptables" rel="nofollow">https://wiki.debian.org/iptables</a>, указав команды:
<i>  # update-alternatives --set iptables /usr/sbin/iptables-legacy<br/>
  # update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy</i>. 

Однако в результате по-прежнему получаю сообщение: <i>bash: iptables: command not found.</i> 

Может, кто-то мог бы помочь мне разобраться, что я делаю не так?
  • 4 октября 2024 г. 8:44
Ответы на вопрос 2
В Debian 12, как и в предыдущих версиях, iptables все еще доступен, но начиная с Debian 10, по умолчанию используется `nftables`. Это может вызывать некоторые проблемы при использовании iptables.

Вот что вам следует сделать, чтобы решить вашу проблему:

1. **Проверьте установку:**
   Уложите убедиться, что пакеты `iptables` действительно установлены. Выполните команду:
   ```bash
   dpkg -l | grep iptables
   ```

   Если пакеты `iptables`, `iptables-legacy` и/или `iptables-nft` не установлены, вы можете установить их с помощью:
   ```bash
   sudo apt install iptables
   ```

2. **Проверьте путь к iptables:**
   Убедитесь, что `iptables` установлен в `/usr/sbin`. Вы можете проверить это с помощью:
   ```bash
   ls -l /usr/sbin/iptables*
   ```

3. **Настройте альтернативы:**
   Убедитесь, что у вас правильно настроены альтернативы для `iptables`. Выполните следующие команды:
   ```bash
   sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
   sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
   ```

4. **Проверьте наличие бинарника:**
   После выполнения вышеуказанных команд попробуйте снова вызвать `iptables`:
   ```bash
   /usr/sbin/iptables -L
   ```

5. **Проверьте PATH:**
   Убедитесь, что `/usr/sbin` находится в переменной окружения `PATH`. Вы можете проверить это с помощью:
   ```bash
   echo $PATH
   ```
   Если `/usr/sbin` отсутствует, добавьте его:
   ```bash
   export PATH=$PATH:/usr/sbin
   ```

6. **Перезагрузите терминал:**
   Если вы внесли изменения в `PATH` или устанавливаете альтернативы, попробуйте закрыть и заново открыть терминал, чтобы применить изменения.

Если после выполнения всех этих шагов проблема все равно не решена, возможно, стоит проверить, есть ли дополнительные системные ограничения или конфликты в конфигурации, которые нужно устранить.
У вас скорее всего в переменной окружения $PATH потерян каталог /usr/sbin (в дебиан он вроде только у пользователя root в окружении в переменной присутствует) 
Попробуйте так:
/usr/sbin/iptables -V
Похожие вопросы