У меня есть несколько диапазонов IP-адресов, к которым я хочу подключить мой сервер и к которым подключаются пользователи. Все остальное должно быть заблокировано.
Как я должен сделать это с iptables?
Моя ОС - дистрибутив Linux на основе Debian.
Я бы предложил взять инструмент настройки брандмауэра, такой как 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
Это превратит вашу систему в несуществующую систему для недопустимых компьютеров.
источник
Если вы хотите разрешить произвольные диапазоны, а не целые подсети, вы можете использовать модуль 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 и т. д.
источник
Если вы довольны своими правилами, вы, вероятно, захотите их сохранить . Комментарии в этой ссылке имеют несколько вариантов, как это сделать.
Простой в использовании генератор правил iptables для простых нужд - это UFW . Пакет доступен в нестабильной версии Debian.
Также попробуйте Firestarter . Доступно в Ленни.
источник
Вы также можете использовать ferm, который я также использовал в течение прошлого года и который мне очень помог в таких случаях, как условные правила брандмауэра.
источник