Документация по ОС FreeBSD Пятница, 22.11.2024, 07:01
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
IPFW [58]

Главная » Статьи » FireWall » IPFW

Пакетный фильтр в FreeBSD: ipfw, IP-Filter
Как в FreeBSD перебросить соединение через NAT во внутреннюю сеть
 
Вот реализация для ipfw:
if1IP="ип_смотрящий_в_инет", if1="интерфейс_смотрящий_в_инет"
ifLIP="ип_на_который хотим делать редирект"
  ipfw add divert natd tcp from any to ${if1IP} 80 via ${if1}
  ipfw add divert natd ip from any to ${ifLIP} to any via ${if1}
  ipfw add allow tcp from any to ${if1IP} 80 via any
  natd -n ${if1} -redirect_port tcp ${ifLIP}:80 80

Решение от miaso :
  tproxy -s 80 -r nobody -l /var/log/transparent_proxy.log [int_ip] 80
 
Как разрешить или запретить выполнение следующих ipfw правил после встречи dummynet pipe
 
Завершить выполнение цепочки ipfw правил после попадания в pipe:
   sysctl -w net.inet.ip.fw.one_pass=1                                            
Продолжить выполнение следующих ipfw правил после попадания в pipe:
   sysctl -w net.inet.ip.fw.one_pass=0
 
Как правильно зафильтровать ICMP через FreeBSD ipfw
 
Расшифровка кодов ICMP сообщений:
echo reply (0), destination unreachable (3), source quench (4), redirect (5), echo request (8), router adver-tisement (9), router solicitation(10), time-to-live exceeded (11), IP header bad (12), timestamp request (13), timestamp reply (14), information request (15), information reply (16), address mask request (17) and address mask reply (18).
${fwcmd} add 00300 allow icmp from any to внешний_IP in via внешний_интерфейс icmptype 0,3,4,11,12
${fwcmd} add 00301 allow icmp from внешний_IP to any out via внешний_интерфейс icmptype 3,8,12
${fwcmd} add 00304 allow icmp from внешний_IP to any out via внешний_интерфейс frag
${fwcmd} add 00305 deny log icmp from any to any in via внешний_интерфейс
 
Как организовать редирект порта на внутреннюю машину через ipnat в FreeBSD
 
man 5 ipnat  в /etc/ipnat.conf:
  rdr fxp0 205.15.63.3/32 port 80 -> 192.168.1.1 port 80 tcp
# Базансировка нагрузки между 2 IP:
  rdr le0 203.1.2.3/32 port 80 -> 203.1.2.3,203.1.2.4 port 80 tcp round-robin
 
Как у ipfilter обнулить статистику без перезагрузки ?
 
ipf -z -f my_ipfilter_rules_file
 
Пример ограничения полосы пропускания трафика в FreeBSD
 
Собираем ядро с опциями:
   options         DUMMYNET
   options         IPFIREWALL
Ограничиваем трафик для сеток 1.1.1.0/24 и 3.3.3.0/24 на 14000 кбит/с:
   ipfw add pipe 50 tcp from any to 1.1.1.0/24 via fxp0
   ipfw add pipe 50 tcp from any to 3.3.3.0/24 via fxp0
   ipfw pipe 50 config bw 14Kbit/s
Для внесения задержки на N ms, используйте delay N после config.
Для установки веса данного пайпа по отношению к другим пайпам используйте weight вес.
Для WF2Q ограничения трафика используйте ipfw queue
(queue N config [pipe pipe_nr] [weight weight] [queue {slots | size})
PS (комментарий от gara@mail.ru):
Если возникает необходимость организовать "канал" для каждого пользователя из данной сети то пишем:
ipfw pipe 10 config mask dst-ip 0x000000ff bw 1024bit/s  queue
ipfw add pipe 10 tcp from any to 1.1.1.0/24 via fxp0
Теперь каждый хост из сети 1.1.1.0/24 имеет свой канал 1024bit/s
 
Можно ли отфильтровывать пакеты (вести лог) в зависимости от UID пользователя ?
 
Для FreeBSD:
ipfw add count tcp from any to not 192.168.1.0/24 uid 231
uid user (или gid group) - под правило попадают все TCP или UDP пакеты посланный или принятые пользователем user (группой group).
В Linux в ядрах 2.4.x в iptables можно использовать модуль owner.
 
Как запретить открывать более 30 соединений с одного IP
 
Запретим более 30 коннектов для 80 порта сервера 1.2.3.4.
    ipfw add allow tcp from any to 1.2.3.4 80 limit src-addr 30
    ipfw add allow tcp from any to 1.2.3.4 80 via fxp0 setup limit src-addr 10
Вместо src-addr можно использовать src-port, dst-addr, dst-port
Конструкция работает в последних версиях FreeBSD 4.x ветки.
 
Как обеспечить работу active FTP режима в FreeBSD NAT
 
В ipnat воспользуйтесь модулем ftp proxy:
  map fxp0 0/0 -> 0/32 proxy port ftp ftp/tcp
  map rl0 172.16.33.0/24 -> 212.46.231.50/32 proxy port ftp ftp/tcp
не забудьте поместить правило трансляции ftp перед общим правилом трансляции, порядок следования правил важен.
 
Как запустить трансляцию адресов (NAT) под FreeBSD
 
В /etc/rc.conf:
  ipnat_enable="YES"
В /etc/ipnat.rules:
  map ppp0 172.16.1.0/24 -> 194.46.124.53/32
Перечитать: ipnat -CF -f /etc/ipnat.rules
 
Как организовать Policy Routing на FreeBSD
 
ipfw add 100 fwd 10.0.0.2 ip from 10.0.2.0/24 to any

Если нужно использовать 2 шлюза, то можно воспользоваться:
  ipfw add  fwd $ext_gw_ip ip from $ext_net to any out xmit $ext_int
 
Автоматическая нумерация правил ipfw в FreeBSD
 
Для автоматической нумерации правил ipfw мы применяем следующий несложный прием:
$C=300 # начальное значение
$STEP=100 # Шаг увеличения
ipfw add $C $(C=$(($C+$STEP))) allow ip from 10.128.0.0/16 to
10.128.0.0/16
ipfw add $C $(C=$(($C+$STEP))) allow ip from 195.131.31.0/24 to               
195.131.31.0/24
Категория: IPFW | Добавил: oleg (23.10.2007)
Просмотров: 5752 | Комментарии: 1 | Рейтинг: 5.0/1 |
Всего комментариев: 1
1 1_2_3  
0
А у меня такая ситуация:
Я открыл порты на ipfw и через nat пробросил порты
redirect_port tcp ip_пк_внутри_сети:26180 26180
redirect_port udp ip_пк_внутри_сети:26181 26181
Но попасть в p2p сеть не смог, хотя в клиенте прописал эти порты.
Возможно ли не конкретизировать в правилах nat'а tcp или udp я буду использовать?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024