it-swarm-ru.tech

Белый список разрешенных IP-адресов (вход / выход) с использованием iptables

У меня есть несколько диапазонов IP-адресов, к которым я хочу подключить мой сервер и к которым подключаются пользователи. Все остальное должно быть заблокировано.

Как мне это сделать с iptables?

Моя ОС - дистрибутив Linux на основе Debian.

22
Frank Bannister

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

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this Host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
27
Zenham
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Это превратит вашу систему в несуществующую систему для запрещенных компьютеров.

15
Kevin M

Если вы хотите разрешить произвольные диапазоны, а не целые подсети, вы можете использовать модуль iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

например, разрешит трафик, поступающий со всех машин с адресами между 192.168.1.30 и 192.168.1.50.

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

- определить политики по умолчанию, чтобы удалить все:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

- создать новую цепочку:

iptables -N allowed_ips

- если источник является частью допустимого диапазона, примите

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- если нет, вернитесь в цепочку вызывающего абонента, чтобы продолжить обработку

iptables -A allowed_ips -j RETURN

- сделать так, чтобы весь трафик входящий и выходящий из машины проходил через нашу новую цепь

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

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

7
Thiagodrv

Если вы довольны своими правилами, вы, вероятно, хотите их сохранить . Комментарии в этой ссылке имеют несколько вариантов, как это сделать.

Простой в использовании генератор правил iptables для простых нужд --- fw . Пакет доступен в нестабильной версии Debian.

Также попробуйте Firestarter . Доступен в Ленни.

1
Not Now

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

0
giomanda