Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Openvpn. Разрешить клиенту только некоторые IP за vpn-сервером.  (Прочитано 6334 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
даем в ccd
push "route 192.168.1.211 255.255.255.255"И клиент получает маршрут в сеть за vpn-сервером, про другие адреса не знает. Но ничто не мешает ему самому прописать маршрут 192.168.1.0/24. Хочу сделать так, чтобы vpn-сервер не форвардил пакеты, которые ломятся туда, куда им не разрешили.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
По дефолту запретить весь форвард и разрешить форвардить пакеты установленных соединений
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
(вообще эти правила УЖЕ должны быть на шлюзе уважающего себя админа)

Рарешить нужные соединения из сети VPN в локалку предприятия
sudo iptables -A FORWARD -i tun+ -o eth0 -d 192.168.1.15 -j ACCEPT

P.S. Комплект правил далёк от полного, потому может повлиять на работоспособность системы. Нельзя говорить о зашите всей системы точечно.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Правила у меня уже прописаны, что рубят левый форвард. Возник вопрос как зарезать доступ в сеть одному из клиентов.
На данный момент выглядят так:

iptables -F FORWARD
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -d 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.1.213 -p tcp --dport 3389 -j ACCEPT
iptables -P FORWARD DROP

Т.е. все, что ты показал уже есть. Я хочу зарезать то, что приходит от клиента с vpn-адресом 10.8.0.x.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Я хочу зарезать то, что приходит от клиента с vpn-адресом 10.8.0.x.
-I FORWARD 2 -s 10.8.0.0/24 -i tun+ -j REJECT

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
т.е. конкретного
iptables -I FORWARD 2 -s 10.8.0.x/32 -i tun+ -j REJECT
tun+ - означает любой tun-интерфейс&
что значит 2 ? нашел, порядок установки правил в цепочку.
« Последнее редактирование: 18 Июня 2014, 09:15:18 от thunderamur »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
На данный момент выглядят так:
...
Т.е. все, что ты показал уже есть.
Да ладно. Не вижу ни одного разрешающего правила для VPN-клиентов/сети.
Может покажете действующие правила данной таблицы, а не один из скриптов их загружающих?
sudo iptables -L FORWARDКак запретить одному уже подсказали. Но учтите: если появился один, то может появиться и второй и двадцать второй

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
что значит 2 ?
man iptables | grep -A1 '\-I'Но это достаточно условно.
Возможно потребуется вынести ещё какие-то правила наверх.
« Последнее редактирование: 18 Июня 2014, 09:22:24 от ArcFi »

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
ArcFi,
да я как написал сразу пошел читать)

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
надо было наоборот, сначала читать, потом писать

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
fisher74,
Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.1.0/24       anywhere             ctstate NEW
ACCEPT     all  --  anywhere             192.168.1.0/24       ctstate NEW
ACCEPT     tcp  --  anywhere             192.168.1.213        tcp dpt:3389

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

И все-таки, tun+ есть что?

Пользователь решил продолжить мысль 18 Июня 2014, 09:21:56:
fisher74,
Да не ругайся.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Да ладно. Не вижу ни одного разрешающего правила для VPN-клиентов/сети.
iptables -A FORWARD -m conntrack --ctstate NEW -o eth0 -d 192.168.1.0/24 -j ACCEPT

thunderamur, вообще говоря, это правило не гуд.
Так можно залезть в вашу корпоративную сетку из инета, прописав маршрут на 192.168.1.0/24 через шлюз.
« Последнее редактирование: 18 Июня 2014, 09:36:16 от ArcFi »

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
ArcFi,
Как раз об этом думал, что то, что показал фишер есть хорошо, т.е. ограничил интерфейсы.

Щас подправлю блок FORWARD, допишу комменты как понимаю эти правила, покажу тут, дабы поправили там, где я не понимаю :)

Пользователь решил продолжить мысль 18 Июня 2014, 09:48:10:
# Очищаем цепочку
iptables -F FORWARD

# Форвардим установленные соединения
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Форвардим новые соединения из своей сети
# Здесь ограничивать не нужно, т.к. своих нужно пускать и в ВПН и в Инет через
# сети провайдеров на других интерфейсах?
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.1.0/24 -j ACCEPT

# Форвардим новые запросы из ВПН в свою сеть
iptables -A FORWARD -m conntrack --ctstate NEW -i tun+ -o eth0 -d 192.168.1.0/24 -j ACCEPT

# Честно говоря не помню для чего я это добавлял и думается оно перекрывается правилом выше
iptables -A FORWARD -i eth0 -d 192.168.1.213 -p tcp --dport 3389 -j ACCEPT

# Запрещаем все остальное
iptables -P FORWARD DROP
« Последнее редактирование: 18 Июня 2014, 09:48:41 от thunderamur »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Да, перекрывает
И дефолтное правило обычно первым загружают - теоретически при выполнении скрипта загрузки правил до установки дефолтного запрета могут появиться установленные соединения не проходящие по политике безопасности. Потому сначала запрещаем всё, а потом начинаем разрешать.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
fisher74,
ок, буду делать как положено)

fisher74,
ArcFi,
Спасибо :)

Пользователь решил продолжить мысль 18 Июня 2014, 10:38:43:
iptables -F FORWARD
iptables -P FORWARD DROP
iptables -A FORWARD -i tun+ -s 10.8.0.116/32 -d 192.168.1.193/32 -j ACCEPT
iptables -A FORWARD -i tun+ -s 10.8.0.116/32 -j REJECT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i tun+ -o eth0 -d 192.168.1.0/24 -j ACCEPT
« Последнее редактирование: 18 Июня 2014, 10:38:43 от thunderamur »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Кстати, наврал - не перекрывает, но и видится бессмысленным, так как обращение к 192.168.1.213 не должно идти через eth0 (как входящий интерфейс)

 

Страница сгенерирована за 0.046 секунд. Запросов: 25.