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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: выпускаем недоверенную сеть в интернет (как защитить доверенную?)  (Прочитано 1402 раз)

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

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
прошу помочь в разрешении следующего вопроса, а то запутался совсем:

есть сеть (не доверенная!) - 192.168.0.0/24
в ней есть сервер с двумя сетевыми картами (192.168.0.1 и 192.168.1.7)
это сервер стоит на границе двух сетей (доверенной и не доверенной )
сервер выходит в интернет, через шлюз доверенной сети 192.168.1.1 (NAT)


задача закрыть сеть 192.168.1.0/24 (ну кроме шлюза) от сети 192.168.0.0/24
рулить сервером 192.168.1.1 нельзя (((
« Последнее редактирование: 23 Марта 2010, 15:28:19 от nucleon »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
iptables применить.
На сервере {192.168.0.1 и 192.168.1.7} написать что-то вроде
iptables -P FORWARD DROP
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d 192.168.1.1/32 -j ACCEPT
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d ! 192.168.1.0/24 -j ACCEPT
Не?

Правила с ключом -P делают ненужными правила типа
iptables -A FORWARD+INPUT -p ALL -s 192.168.0.0/24 -d 192.168.1.0/24 -j DROP

Можно добавить в правила указание интерфейсов, опции -i и -o.
« Последнее редактирование: 23 Марта 2010, 22:15:36 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Моя идея разрешить из сети 0.0/24 на шлюзе 0.1/1.7 форвард к шлюзу 1.1 только. И следующей строкой разрешить аналогичный форвард, но только если адрес назначения не равен 192.168.1.0/24. Там вписан '!'.

Ах да! По всей видимости на шлюзе 0.1/1.7 не мешает делать
iptables -A PREROUTING -t nat -s 192.168.0.0/24 -j SNAT --to-source 192.168.1.7
echo 1 >/proc/sys/net/ipv4/ip_forward
или
-j MASQUERADE

Смотря что значит "защитить" и какие другие обстоятельства.
« Последнее редактирование: 23 Марта 2010, 22:42:06 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
замечательно... на первый взгляд...
но есть одна проблемка... шлюз 192.168.1.1 может обращаться ко всем компам в сети 192.168.1.0
и в моем случае, если у человека не сбросилась старая маршрутизация пакеты идут через него...

т.е. в нормальном режиме все хорошо все пользователи 0 подсети не получаю никакого доступа к сети 1
но есть прописан маршрут через шлюз 192.168.1.1 то они идут через него...
т.е. по следующему пути:
192.168.0.*  ->(192.168.0.1-192.168.1.7) -> 192.168.1.1 ->192.168.1.х

вот как это заблокировать я и не понимаю

щаз проверю это, может поможет...
iptables -P FORWARD DROP
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d 192.168.1.1/32 -j ACCEPT
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d ! 192.168.1.0/24 -j ACCEPT

Пользователь решил продолжить мысль 24 Марта 2010, 18:50:29:
Цитировать
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d ! 192.168.1.0/24 -j ACCEPT

если я правильно понял правило - то это правило разрешает FORWARD для всех из сети 0.0 во всюду кроме 1.0 подсети?
оно точно необходимо?
« Последнее редактирование: 24 Марта 2010, 18:50:29 от nucleon »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Допустим, что eth0 192.168.1.7/24 а eth1 192.168.0.1/24

iptables -t nat -A POSTROUTING -o eth0 ! -d 192.168.1.0/24 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 ! -d 192.168.1.0/24 -j ACCEPT

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
спасибо
вроде работает,

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Допустим, что eth0 192.168.1.7/24 а eth1 192.168.0.1/24

iptables -t nat -A POSTROUTING -o eth0 ! -d 192.168.1.0/24 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 ! -d 192.168.1.0/24 -j ACCEPT

вот кстати и не правильный это вариант ((
ибо незащищенная сеть видит защищенную... что не есть хорошо

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Интерфейсы не попутал? От этого многое зависит. Правило iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 ! -d 192.168.1.0/24 -j ACCEPT разрешает доступ с eth1 куда угодно, кроме 192.168.1.0/24.

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
не у меня вот с этим не заработало...
Цитировать
iptables -P FORWARD DROP
а вот c
Цитировать
iptables -P FORWARD REJECT
почему-то  работает но как-то не стабильно...

вот в результате сделал немного по другому:
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
#(вот в этом немного не уверен - всмысле помоему не обязательно)

iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j SNAT --to-source 192.168.1.7
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d 192.168.1.0/24 -j REJECT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE





Пользователь решил продолжить мысль 12 Апреля 2010, 09:51:51:
Цитировать
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
разрешаю пользователям 1 подсети (eth1) обращаться к нулевой
попутно необходимо для VPN правила которого я не выкладываю
« Последнее редактирование: 12 Апреля 2010, 09:51:51 от nucleon »

Оффлайн podkovyrsty

  • Старожил
  • *
  • Сообщений: 1547
  • Content-Type: alternative
    • Просмотр профиля
Вы сами на свой вопрос и ответили, вашу задачу, при политике ACCEPT решает вот это правило
iptables -A FORWARD -p ALL -s 192.168.0.0/24 -d 192.168.1.0/24 -j REJECT

только -p ALL можно убрать
iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j REJECT


а вообще, вот:
допустим, eth0 192.168.1.7/24 а eth1 192.168.0.1/24,

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -p OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A FORWARD -i eth1 -d ! 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -d 192.168.1.1 -j ACCEPT

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A POSTROUTING -t nat -o eth0 -j SNAT --to-source 192.168.1.7
iptables -A POSTROUTING -t nat -o eth1 -j SNAT --to-source 192.168.0.1



Шаг за шагом можно достичь цели.

Оффлайн nucleon

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
в моем варианте iptables -A FORWARD -i eth1 -d 192.168.1.1 -j ACCEPT не требуется...

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

 

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