Страница 1 из 1
Список разрешенных IP в IPFW
Добавлено: 2011-07-21 13:35:55
alex117
Собственно вопрос: как в конфиге IPFW указать список ip-адресов? Пробовал создавать переменную типа:
Где в /etc/black_list построчно были записаны нужные ip-адреса, но не катит
Мне нужно, чтобы в инет через NAT ходили только несколько компов, а остальные - через SQUID. При моей настройке все, у кого прописан шлюз имеют выход в инет, пока борюсь с этим добавлением запрещающих правил для каждого компа, но это не выход. Нужно что-то типа " запретить всем, кроме ip из белого списка.
Re: Список разрешенных IP в IPFW
Добавлено: 2011-07-21 15:24:46
snorlov
man ipfw, а там на table()
Re: Список разрешенных IP в IPFW
Добавлено: 2011-07-28 4:07:30
km
Конечно я несупер спец, но сделал бы так:
1. Настроить прозрачный прокси, если не знаешь как, читай форум.
1. Создал файл с ip адресами, тем кому можно на NAT(white_list);
2. Создал файл с ip адресами, тем кому только через squid(black_list);
3. В файле конфигурации firewall использовал table:
Код: Выделить всё
#!/bin/sh
ipfw -f flush
ipfw table all flush
iip="192.168.1.1"
oip="xxx.xxx.xxx.xxx"
oif="xl0"
iif="em0"
cat /etc/black_list | while read cLine1; do
ipfw table 1 add $cLine1
done
cat /etc/white_list | while read cLine2; do
ipfw table 2 add $cLine2
done
ipfw add 10 check-state
ipfw add 20 allow all from any to any via lo0
ipfw nat 1 config if ${oif} deny_in same_ports unreg_only
ipfw add 40 nat 1 tcp from "table(2)" to any 80 out via ${oif}
ipfw add 50 nat 1 tcp from any 80 to ${oip} in via ${oif}
ipfw add 60 fwd ${iip},8080 tcp from "table(1)" to any 80 recv ${iif}
ipfw add 70 allow ip from any to any via ${iif}
ipfw add 80 deny all from any to any
4. Перезапустил файрвол.
Вышеуказанные настройки указаны для FreeBSD 7.2(ipfw+kernel NAT+SQUID)
Re: Список разрешенных IP в IPFW
Добавлено: 2011-07-28 4:25:38
km
Тут подумал, можно даже проще сделать.
Используя только черный список ip.
Код: Выделить всё
#!/bin/sh
ipfw -f flush
ipfw table all flush
iip="192.168.1.1"
oip="xxx.xxx.xxx.xxx"
oif="xl0"
iif="em0"
cat /etc/black_list | while read cLine; do
ipfw table 1 add $cLine
done
ipfw add 10 check-state
ipfw add 20 allow all from any to any via lo0
ipfw add 30 fwd ${iip},8080 tcp from "table(1)" to any 80 recv ${iif}
ipfw nat 1 config if ${oif} deny_in same_ports unreg_only
ipfw add 40 nat 1 tcp from ${iip}/24 to any 80 out via ${oif}
ipfw add 50 nat 1 tcp from any 80 to ${oip} in via ${oif}
ipfw add 70 allow ip from any to any via ${iif}
ipfw add 80 deny all from any to any