Рейтинг:1

IPTABLES разрешают подключение к списку IP-адресов конкретному пользователю (ip) - блокируют все остальные только от этого пользователя

флаг za

У всех нас есть пользователь, которому нужен доступ только к определенному диапазону IP-адресов в сети, где у всех есть доступ к Интернету, поэтому...

# IP вперед
эхо "1" > /proc/sys/net/ipv4/ip_forward
# Очистка
iptables-F
iptables -X
iptables -F -t физ
iptables -X -t физ

# Давай бросим
iptables -P ВХОД DROP
iptables -P ВЫХОД DROP
iptables -P ПЕРЕДАЧА.

iptables -A INPUT -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ
iptables -A ВЫВОД -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО,НОВОЕ -j ПРИНЯТЬ
iptables -A ВПЕРЕД -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО,НОВОЕ -j ПРИНЯТЬ

# Маскировка
iptables -A POSTROUTING -t nat -o $IF_EXTERNAL -j MASQUERADE

# РАЗРЕШИТЬ ТОЛЬКО СПИСОК ДОСТУПА К 192.168.10.10 ОСТАЛЬНЫЙ ИНТЕРНЕТ БЛОКИРОВАН
ALLOW_IP_RANGE="8.8.4.0/24 8.8.8.0/24 8.34.208.0/20 8.35.192.0/20 23.236.48.0/20"
iptables -N РАЗРЕШИТЬ РАЗРЕШЕНИЕ
для IPLIST в $ALLOW_IP_RANGE; делать
    iptables -I FORWARD -m tcp -p tcp --destination $IPLIST -j ALLOWEDIPS
сделано
iptables -I ALLOWEDIPS -s 192.168.10.10 -j ПРИНЯТЬ
iptables -A ВПЕРЕД -s 192.168.10.10 -j ОТКЛОНИТЬ

# Перенаправить остальную часть Интернета всем остальным
iptables -A FORWARD -i @IF_INTERNAL -j ПРИНЯТЬ

Это не работает, и я попытался переместить:

iptables -A ВПЕРЕД -s 192.168.10.10 -j ОТКЛОНИТЬ

от начала до конца, но IP все равно получает полный интернет.

Рейтинг:3
флаг us

Вероятно, это не чистое решение, но оно будет работать.

Все пользователи будут иметь доступ к Интернету, кроме пользователя с ограниченным доступом.

# Определяем переменные
ПОЛЬЗОВАТЕЛЬ_IP=172.16.0.101
ALLOW_IPS="1.2.3.4 2.3.4.5 3.4.5.6"
IF_EXTERNAL=vmbr0

# Очистка iptables от предыдущих разрешающих правил ip с помощью комментария и маскировки
iptables-сохранить | grep -v "userrestricted\|MASQUERADE" | iptables-восстановление

# Генерация правил для маскировки от ограниченного пользователя (ip)
для ALLOW_IP в $ALLOW_IPS
делать
iptables -t nat -A POSTROUTING -s ${USER_IP} -d ${ALLOW_IP} -o ${IF_EXTERNAL} -j MASQUERADE -m comment --comment userrestricted
сделано

# Трюк с SNAT сделает недействительными целевые пакеты
iptables -t nat -A POSTROUTING -s ${USER_IP} -o ${IF_EXTERNAL} -j SNAT --to 127.0.0.1 -m comment --comment userrestricted

# Вернуть общее правило маскарада
iptables -t nat -A POSTROUTING -o ${IF_EXTERNAL} -j MASQUERADE

Это работает для меня, убедитесь, что у вас есть общее правило маскарада после ограниченных правил пользователя

Пожалуйста, проверьте это, если это не то, что вы хотите, я могу исправить ответ

Ответить или комментировать

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