Author Topic: ipfw - блокируется трафик  (Read 5599 times)

0 Members and 1 Guest are viewing this topic.

Offline fredina

  • Sr. Member
  • ****
  • Posts: 367
  • Karma: +0/-0
ipfw - блокируется трафик
« on: April 13, 2008, 21:18:28 »
Цель - для компьютера в локальной сети, на шлюзе запретить внешний трафик, оставить только томский.
А также запретить любой интернет (и внешний и томский) при смене пользователем IP-адреса.
Сеть построена на неуправляемых коммутаторах. MAC-адрес пользователь не может подменить (он не знает как это делается), а вот IP-адрес может (знает как).
После рестарта шлюза, некоторое время такая конструкция работает, но потом весь траффик блокируется (и томский и внешний).
Почему это происходит?

rl0 - внешний интерфейс шлюза
vr0 - внутренний
table 1 - список томских сетей

ipfw show
Code: [Select]
00050  divert 8668 ip4 from any to any via rl0
00100  allow ip from any to any via lo0
00200  deny ip from any to 127.0.0.0/8
00300  deny ip from 127.0.0.0/8 to any

00400  deny ip from not table(1) to 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any
00500  deny ip from 192.168.0.141 to not table(1) via vr0 MAC any 00:11:22:33:44:55
00600  deny ip from any to not 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any

65000  allow ip from any to any
65535  allow ip from any to any

00400 - запрет трафика не от томских сетей (от внешних) к компьютеру с IP=192.168.0.141 и MAC=00:11:22:33:44:55
00500 - запрет трафика от компьютера к нетомским сетям (к внешним)
00600 - запрет трафика к компьютеру с MAC=00:11:22:33:44:55 если на нем левый IP-адрес (не 192.168.0.141)

ipfw table 1 list
Code: [Select]
62.68.128.0/19 0
...
217.106.147.0/28 0
« Last Edit: April 13, 2008, 21:55:06 by fredina »

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
ipfw - блокируется трафик
« Reply #1 on: April 13, 2008, 21:40:53 »
Quote from: fredina
Сеть построена на неуправляемых коммутаторах. MAC-адрес пользователь не сможет подменить, а вот IP-адрес может.
Вряд ли неуправляемость коммутаторов помешает пользователю поменять МАС!
Это делается за пять секунд не отходя от компьютера!
Имхо, лучшее решение - это аутентификация на шлюзе (точнее на прокси, на нем стоящем), а не нагромождение правил фильтра пакетов!

Offline fredina

  • Sr. Member
  • ****
  • Posts: 367
  • Karma: +0/-0
ipfw - блокируется трафик
« Reply #2 on: April 13, 2008, 22:04:27 »
Quote from: never hood
Вряд ли неуправляемость коммутаторов помешает пользователю поменять МАС!
я имел ввиду что пользователь просто не знает как это делается))

P.S. Первое сообщение подправил, чтобы было понятнее.

P.P.S. Я не понимаю почему трафик блокируется, может быть это связано с divert'ом?
« Last Edit: April 13, 2008, 22:05:02 by fredina »

Offline never hood

  • Hero Member
  • *****
  • Posts: 845
  • Karma: +16/-10
  • www.4job.co
    • Работа, которую ты искал
ipfw - блокируется трафик
« Reply #3 on: April 13, 2008, 22:19:43 »
Quote from: fredina
я имел ввиду что пользователь просто не знает как это делается))
вы занимаетесь...  
мягко говоря, мартышкиным трудом!

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
ipfw - блокируется трафик
« Reply #4 on: April 14, 2008, 12:45:34 »
По прекращению трафика - она, скорее всего, действительно связана с natd/divert.

А что касается запрещения смены MAC-адреса - правила построены совершенно некорректно. Во-первых, неясно, включена ли вообще обработка пакетов на L2, без нее матчить не будет. Во-вторых, с ней включенной пакет будет проходить через ipfw не 2, а 4 раза, и правила обработки здесь лучше разделить, а не совмещать.
В-третьих, текущие правила говорят о запрещении не-томского трафика с некорректным маком - в Томск пользователя выпустит с любым (либо с невключенным L2 они не проверятся и для внешки).

В-четвертых, если уж ограничивать пары IP/MAC без жесткой привязки пользователя на управляемом свитче или VPN/Proxy, то корректно делать это не в файрволе, а вбить пары по arp -s при загрузке (опционально staticarp на интерфейс), поднять arpwatch и следить за тем, кто когда пытаем менять адреса.
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline fredina

  • Sr. Member
  • ****
  • Posts: 367
  • Karma: +0/-0
ipfw - блокируется трафик
« Reply #5 on: April 17, 2008, 11:51:49 »
При такой записи, я получил то, что хотел. (ip в правиле 00600 заменено на tcp)

ipfw show
Code: [Select]
00050  divert 8668 ip4 from any to any via rl0
00100  allow ip from any to any via lo0
00200  deny ip from any to 127.0.0.0/8
00300  deny ip from 127.0.0.0/8 to any

00400  deny ip from not table(1) to 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any
00500  deny ip from 192.168.0.141 to not table(1) via vr0 MAC any 00:11:22:33:44:55
00600  deny tcp from any to not 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any

65000  allow ip from any to any
65535  allow ip from any to any

00400 - запрет трафика не от томских сетей (от внешних) к компьютеру с IP=192.168.0.141 и MAC=00:11:22:33:44:55
00500 - запрет трафика от компьютера к нетомским сетям (к внешним)
00600 - запрет любого (from any) трафика к компьютеру с MAC=00:11:22:33:44:55 если на нем левый IP-адрес (не 192.168.0.141)

Quote from: nuclight
А что касается запрещения смены MAC-адреса - правила построены совершенно некорректно. Во-первых, неясно, включена ли вообще обработка пакетов на L2, без нее матчить не будет. Во-вторых, с ней включенной пакет будет проходить через ipfw не 2, а 4 раза, и правила обработки здесь лучше разделить, а не совмещать.
net.link.ether.ipfw = 1
Что вы подразумеваете под "разделить правила обработки"?

Offline stranger

  • Hero Member
  • *****
  • Posts: 922
  • Karma: +0/-0
    • http://
ipfw - блокируется трафик
« Reply #6 on: April 17, 2008, 17:44:06 »
Quote from: fredina
Что вы подразумеваете под "разделить правила обработки"?
Ну я так понимаю, что имелось ввиду написать правила для внутреннего и внехнего интерфейса поодтдельности (используя via интерфейс), так как для них in и out свои и то что при прохождении через файрвол пакеты проходят 4 этапа, по 2 два на каждом интерфейсе...
[span style='font-family:Geneva'][span style='font-size:8pt;line-height:100%'][span style='color:gray']Единственное условие, от которого зависит успех, есть терпение.   Л.Н.Толстой
[/span][/span][/span]

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
ipfw - блокируется трафик
« Reply #7 on: April 18, 2008, 01:01:42 »
Quote from: fredina
При такой записи, я получил то, что хотел. (ip в правиле 00600 заменено на tcp)

ipfw show
Code: [Select]
00050  divert 8668 ip4 from any to any via rl0
00100  allow ip from any to any via lo0
00200  deny ip from any to 127.0.0.0/8
00300  deny ip from 127.0.0.0/8 to any

00400  deny ip from not table(1) to 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any
00500  deny ip from 192.168.0.141 to not table(1) via vr0 MAC any 00:11:22:33:44:55
00600  deny tcp from any to not 192.168.0.141 via vr0 MAC 00:11:22:33:44:55 any

65000  allow ip from any to any
65535  allow ip from any to any

00400 - запрет трафика не от томских сетей (от внешних) к компьютеру с IP=192.168.0.141 и MAC=00:11:22:33:44:55
00500 - запрет трафика от компьютера к нетомским сетям (к внешним)
00600 - запрет любого (from any) трафика к компьютеру с MAC=00:11:22:33:44:55 если на нем левый IP-адрес (не 192.168.0.141)

Еще раз повторюсь. Это не задача контроля мак-адреса пользователя - поскольку решена не полностью. В томск будет выпускать с любым. Мешаете в кучу проверки адресов назначения и маков тут же. Вообще, в файрволе максимум что должно быть - это проверка входящего мак-адреса от пользователя, т.е. ТОЛЬКО его ip-адрес/мак и всё, и это на layer2, остальное в deny. А на исходящие к пользователю - делать в arp.

Quote
Что вы подразумеваете под "разделить правила обработки"?

То, что в man ipfw в разделе PACKET FLOW показано в примере насчет layer2.
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]