Настрока IPFW

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Настрока IPFW

Непрочитанное сообщение almos » 2006-03-31 0:37:05

Hi all!

Есть такая задача: есть шлюз на FreeBSD 6, на нем поднят нат, юзвери ходит в нет, нужно ограничить скорость работы с серваком до 100Мбит/с, а в нет пускать на скорости 80Кбит/с.

Я это организовал так:

Код: Выделить всё

#!/bin/sh
ipfw -f flush
ipfw -f pipe flush
ipfw -f queue flush

int_net="192.168.0.0" #internal network
net_mask="24" # network mask
ip_out="222.222.222.222" #external
ip_in="192.168.0.1" #server int ip

#DummyNET
#from local net to inet
ipfw pipe 1 config bw 80Kbit/s queue 20
ipfw queue 1 config pipe 1 weight 50 queue 100 mask dst-ip 0xffffffff
ipfw queue 11 config pipe 1 weight 50 queue 100 mask src-ip 0xffffffff
ipfw add queue 1 ip from any to ${int_net}/${net_mask}
ipfw add queue 11 ip from ${int_net}/${net_mask} to any

#from local net to server
ipfw add pipe 2 ip from ${ip_out} to ${int_net}/${net_mask}
ipfw pipe 2 config bw 100000Kbit/s
ipfw add pipe 3 ip from ${ip_in} to ${int_net}/${net_mask}
ipfw pipe 3 config bw 100000Kbit/s

ipfw add check-state
ipfw add allow ip from any to any via lo0
после изучения статей с данного сайта ну и парочки других.
У меня есть подозрение что он немного неправильно работает, в плане ограничения проп. способности в инет.

У кого какие мысли? Где могут быть ошибки?
Заранее благодарен

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-31 7:52:39

подозрения или факты? И зачем тебе queue?

Навскидку вроде всё правильно, но надо смотреть скоорости.
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-03-31 14:18:11

Факты.
Скорость доступа из сетки в инет оооочень маленькая.
В ipfw не очень разбираюсь, почитал несколько статей и слепил приблизительно то что было нужно. Но немного неудачно ограничил скорость в инет. Как это сделать правильнее?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-03-31 17:16:52

А чем мой вариант не устроил? Он 100% рабочий - у меня щас сттоит...
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-03-31 23:00:09

Паралельно с dummynet решил юзать скрипт-файрволла выложенный на данном сайте.
У меня возникла проблемка наверное с интерфейсом ppp0.

Я честно говоря не знаю как лучше сделать. Делов том что у меня для выхода в инет используется модем Sirius 128k, подключается к нету через com (rs-232), со скоростью 115200bit/s, все настройки определены в /etc/ppp/ppp.conf (используемый порт, скорость)

в /etc/rc.conf у меня так:

Код: Выделить всё

gateway_enable="YES"
ppp_enable="YES"
ppp_mode="dedicated"
ppp_nat="YES"
ppp_profile="sirius"
#
natd_enable="YES"
firewall_enable="YES"
firewall_script="/etc/firewall.rules.sh" # это собсно скрипт
после запуска скрипта файрволла, инет пропал в локалке, извне сервисы типа pop3,smtp,ssh,ftp вырубились
---------------------
ну вот после подключения у меня команда ifconfig отображает новый интерфейс tun0, а как проинициализировать ppp0? Если этого нельзя сделать как мне поменять скрипт файрволла, чтобы он правильно работал?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-02 9:23:09

А чё за фаер воткнул-то?
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-04-02 16:26:42

Главное пинг в мир идет, все остальное не работает
И еще у меня последним правилом в ipfw (65535) идет allow ip from any to any
Так и должно быть или нет? И как его можно убить (ipfw delete 65535) не работает

ADSL модем у меня подключен непосредственно к этому серверу. Модем комовский (Sirius 128k), подключается через com порт, инициализируется через ppp.

Вот собсно фаерволл:

Код: Выделить всё

#!/bin/sh

LanOut="tun0"
LanIn="rl0"
IpOut="222.222.222.222"
IpIn="192.168.0.1"
NetMask="24"
NetIn="192.168.0.0"

ipfw -f flush
ipfw add check-state
ipfw add allow ip from any to any via lo0
ipfw add deny ip from any to 127.0.0.0/8
ipfw add deny ip from 127.0.0.0/8 to any
#ipfw add deny ip from any to 10.0.0.0/8 in via ${LanOut}
#ipfw add deny ip from any to 172.16.0.0/12 in via ${LanOut}
#ipfw add deny ip from any to 192.168.0.0/16 in via ${LanOut}
#ipfw add deny ip from any to 0.0.0.0/8 in via ${LanOut}
#ipfw add deny ip from any to 169.254.0.0/16 in via ${LanOut}
#ipfw add deny ip from any to 240.0.0.0/4 in via ${LanOut}
ipfw add deny icmp from any to any frag
ipfw add deny log icmp from any to 255.255.255.255 in via ${LanOut}
ipfw add deny log icmp from any to 255.255.255.255 out via ${LanOut}
#ipfw add fwd ${IpIn},2121 tcp from ${NetIn}/${NetMask} to any 21 via ${LanOut}
#ipfw add fwd 127.0.0.1,3128 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}
#ipfw add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
#ipfw add divert natd ip from any to ${IpOut} in via ${LanOut}
#ipfw add deny ip from 10.0.0.0/8 to any out via ${LanOut}
#ipfw add deny ip from 172.16.0.0/12 to any out via ${LanOut}
#ipfw add deny ip from 192.168.0.0/16 to any out via ${LanOut}
#ipfw add deny ip from 0.0.0.0/8 to any out via ${LanOut}
#ipfw add deny ip from 169.254.0.0/16 to any out via ${LanOut}
#ipfw add deny ip from 224.0.0.0/4 to any out via ${LanOut}
#ipfw add deny ip from 240.0.0.0/4 to any out via ${LanOut}
ipfw add allow tcp from any to any established
ipfw add allow ip from ${IpOut} to any out xmit ${LanOut}
ipfw add allow udp from any 53 to any via ${LanOut}
ipfw add allow udp from any to any 53 via ${LanOut}
ipfw add allow udp from any to any 123 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 21 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 40000-65534 via ${LanOut}
ipfw add allow icmp from any to any icmptypes 0,8,11
ipfw add allow tcp from any to ${IpOut} 80 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 25 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 22 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 143 via ${LanOut}
ipfw add allow tcp from any to ${IpOut} 110 via ${LanOut}
ipfw add allow tcp from any to any via ${LanIn}
ipfw add allow udp from any to any via ${LanIn}
ipfw add allow icmp from any to any via ${LanIn}
ipfw add deny ip from any to any
вот rc.conf

Код: Выделить всё


# -- sysinstall generated deltas -- # Tue Jul 11 22:20:58 2006
# Created: Tue Jul 11 22:20:58 2006
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
ifconfig_rl0="inet 192.168.0.1  netmask 255.255.255.0"
#ifconfig_ppp0="inet 222.222.222.222  netmask 255.255.255.0"

hostname="link.vinnica.ua"
usbd_enable="YES"
sshd_enable="YES"
inetd_enable="YES"
sendmail_enable="NONE"
mysql_enable="YES"
exim_enable="YES"
dbmail_imapd_enable="YES"
dbmail_pop3d_enable="YES"
proftpd_enable="YES"
clamav_clamd_enable="YES"
named_enable="YES"

ppp_enable="YES"
ppp_mode="dedicated"
ppp_nat="YES"
ppp_profile="sirius"
#
gateway_enable="YES"
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-m -u"
#natd_interface="tun0"
firewall_enable="YES"
#firewall_script="/trafd.sh"

#ipacctd_enable="YES"
#ipacctd_flags="-v -t"
#ipacctd_rules="rl0 tun0 lo0"
#ipacctd_rule_rl0_flags="-p 10001 -f /var/log/traffic_rl0.log"
#ipacctd_rule_rl0_pid="/var/run/ipacctd.rl0"
#ipacctd_rule_lo0_flags="-p 10002 -f /var/log/traffic_lo0.log"
#ipacctd_rule_lo0_pid="/var/run/ipacctd.lo0"
#ipacctd_rule_tun0_flags="-p 10003 -f /var/log/traffic_tun0.log"
#ipacctd_rule_tun0_pid="/var/run/ipacctd.tun0"
Кстати ко всему прочему не работает ipacctd, не создает файлы в /var/log

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-02 17:54:00

покажи ipfw show и ifconfig на машине с уставновленным соединением и когда есть пинг в мир
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-04-02 21:57:41

ifconfig

Код: Выделить всё

rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=8<VLAN_MTU>
	inet6 fe80::213:8fff:fe35:933e%rl0 prefixlen 64 scopeid 0x1 
	inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
	ether 00:13:8f:35:93:3e
	media: Ethernet autoselect (100baseTX <full-duplex>)
	status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 
	inet 127.0.0.1 netmask 0xff000000 
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
	inet 222.222.222.222 --> 192.168.1.95 netmask 0xffffffff 
	Opened by PID 226 
Получается, что 222.222.222.222 - внешний ip, 192.168.1.95 - внутренний в сети провайдера

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-03 7:53:32

к прову через туннель подключаешься?
ужасть :) файрволл-то покажи работающий
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-04-06 10:00:52

Вот собсно мой фаер в работе, в мир пингует, днс определяет, странички не отдает, че за грабли незнаю.

Код: Выделить всё

00100     0        0 allow ip from any to any via lo0
00200     0        0 deny ip from any to 127.0.0.0/8
00300     0        0 deny ip from 127.0.0.0/8 to any
00400     0        0 deny icmp from any to any frag
00500     0        0 deny log logamount 500 icmp from any to 255.255.255.255 in via tun0
00600     0        0 deny log logamount 500 icmp from any to 255.255.255.255 out via tun0
00700   400   248954 allow tcp from any to any established
00800     2      153 allow ip from 222.222.222.222 to any out xmit tun0
00900     2      411 allow udp from any 53 to any via tun0
01000     0        0 allow udp from any to any dst-port 53 via tun0
01100     0        0 allow udp from any to any dst-port 123 via tun0
01200     0        0 allow tcp from any to 222.222.222.222 dst-port 21 via tun0
01300     0        0 allow tcp from any to 222.222.222.222 dst-port 40000-65534 via tun0
01400     0        0 allow icmp from any to any icmptypes 0,8,11
01500     0        0 allow tcp from any to 222.222.222.222 dst-port 80 via tun0
01600     0        0 allow tcp from any to 222.222.222.222 dst-port 25 via tun0
01700     0        0 allow tcp from any to 222.222.222.222 dst-port 22 via tun0
01800     0        0 allow tcp from any to 222.222.222.222 dst-port 143 via tun0
01900     0        0 allow tcp from any to 222.222.222.222 dst-port 110 via tun0
02000    15      720 allow tcp from any to any via rl0
02100    31     2784 allow udp from any to any via rl0
02200     0        0 allow icmp from any to any via rl0
02300    15      720 deny ip from any to any
65535 0 0 allow ip from any to any 
Можешь подсказать как подключатся к прову не через тунель, если можно пример конфига, единственно, я еще повторюсь, модем у меня комовский(/dev/cuad0).
И как после этого сделать, чтобы если коннект падал (а такое часто бывает) демон(тот что поддерживает коннект) перезапускался.....

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-06 10:11:36

almos писал(а):Вот собсно мой фаер в работе, в мир пингует, днс определяет, странички не отдает, че за грабли незнаю.

Можешь подсказать как подключатся к прову не через тунель, если можно пример конфига, единственно, я еще повторюсь, модем у меня комовский(/dev/cuad0).
И как после этого сделать, чтобы если коннект падал (а такое часто бывает) демон(тот что поддерживает коннект) перезапускался.....
однако, где диверт? невижу :( В мир пингует, небось тока с него (с FreeBSD)?

насчёт момеда... ну нету у меня модема :)И не ковырялся... могу посоветовать нарисовать скрипт для перезапуска, хотя наверняка у ppp есть своя фича на эту тему...
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-04-06 14:02:01

Я же писал, что натом занимается ppp (rc.conf: ppp_nat="YES"), divert так заворачивает, что мира не видно даже на серваке.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-06 14:48:59

блин... ну х.з... могу дать тока стандартный ответ - маны лопатить... я с модемами не общался..
Убей их всех! Бог потом рассортирует...

almos
ефрейтор
Сообщения: 55
Зарегистрирован: 2006-03-31 0:24:24
Контактная информация:

Непрочитанное сообщение almos » 2006-04-06 15:13:34

Меня больше интерисует как pppd поднять для модема на фряхе с возможностью перезагрузки драйвера в случае сбоя (есть ли аналог inittab во фре?)...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2006-04-06 15:33:41

неа.. вроде нету. Наверно даже не вроде - потому что не видел в отношении фри чего-то подобного.
Убей их всех! Бог потом рассортирует...