Назад | Перейти на главную страницу

разрешить только один IP и заблокировать все IP ТАБЛИЦЫ

Как разрешить только определенные IP-адреса и заблокировать подключение всех остальных IP-адресов в iptables?

Для разрешения я ввел следующую команду

iptables -A INPUT -s 192.168.1.1 -j ACCEPT

Что мне делать для блокировки?

Следует помнить, что правила брандмауэра проверяются в том порядке, в котором они перечислены. Ядро прекратит обработку цепочки, когда сработает правило, которое разрешает или запрещает пакет или соединение.

Предполагая, что в вашем текущем брандмауэре есть только одно правило (проверьте, например, iptables-save или iptables -L -v -n --line-numbers):

Вам нужно добавить второе правило, которое указывает вашему брандмауэру, что делать с трафиком, который не соответствует первому правилу.

Правила без более конкретного правила сопоставления будут соответствовать чему угодно и очень коротко:

iptables -A -j REJECT 

должно хватить.

Проверить с iptables-save и вы должны увидеть минимальный брандмауэр, подобный этому:

[root@host ~]# iptables-save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.1.1 -j ACCEPT
-A INPUT -j REJECT 
COMMIT

Ядро прекратит обработку цепочки, когда сработает правило, которое разрешает или запрещает пакет или соединение.

Приложение: когда правила не срабатывают, политика то, что установлено на цепочке, применяется. Поэтому вместо того, чтобы добавлять правило, которое блокирует все в конце вашей текущей конфигурации, вы также можете установить / изменить политику в цепочке ввода для достижения того же:

iptables -P INPUT DROP

и

[root@host ~]# iptables-save
*filter
:INPUT DROP[0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.1.1 -j ACCEPT
COMMIT