firewall freebsd

Подсказки о том, как собрать поддержку этих firewall в ядре в /usr/src/sys/conf/NOTES.

Основные опции:
### ipfw
options IPFIREWALL # поддержка файрвола
options IPFIREWALL_VERBOSE # поддержка логирования
options IPDIVERT # поддержка divert-сокетов (нужна для natd)
options DUMMYNET # поддержка шейпера dummynet

### ipf
options IPFILTER # поддержка файрвола
options IPFILTER_LOG # поддержка логирования

### pf
device pf # поддержка файрвола
device pflog # поддержка логирования
device pfsync # отслеживание состояния
options ALTQ # поддержка шейпера ALTQ


запуск /etc/rc.conf.
задаются:
### ipfw
firewall_enable="YES" # поддержка файрвола
firewall_type="/etc/ipfw.rules" # тип (способ инициализации)
natd_enable="YES" # поддержка natd

### ipf
ipfilter_enable="YES" # поддержка файрвола
ipfilter_rules="/etc/ipf.rules" # файл с правилами
ipnat_enable="YES" # поддержка ipnat
ipnat_rules="/etc/ipnat.rules" # файл с правилами NAT

### pf
pf_enable="YES" # поддержка файрвола
pf_rules="/etc/pf.rules" # файл с правилами


особенности
// ipfw
add check-state
add allow tcp from any to any out setup via rl0 keep-state

// ipf
pass out on rl0 proto tcp from any to any flags S keep state

// pf
pass out on rl0 proto tcp from any to any flags S/SA keep state


nat
// ipfw (должен быть запущен natd на порту 8668)
add divert 8668 ip from 10.10.0/24 to any out via bge0
add divert 8668 ip from any to 1.2.3.4 in via bge0

// ipf (правила выносятся в ipnat.rules, запускаются командой ipnat)
map rl0 10.10.0.0/24 -> 1.2.3.4/32

// pf (размещаются в общей конфигурации перед правилами фильтрации)
nat on rl0 from 10.10.0.0/24 to any -> 1.2.3.4/32


шейпинг
// ipfw
add pipe 1 ip from any to 192.168.0.0/24
pipe 1 config bw 128Kbit/s

// pf
altq on rl0 cbq queue q_limited
queue q_limited bandwidth 128Kb cbq(default)
pass quick from any to 192.168.0.0/24 keep state queue q_limited

backup dd freebsd

через файл
dd if=/dev/ad0 of=/iso.iso bs=8K conv=noerror,sync


на прямую с диска на диск
dd if=/dev/ad0 of=/dev/ad1 bs=8K conv=noerror,sync


запись образа на диск
dd if=/iso.iso of=/dev/ad1 bs=8K conv=noerror,sync


могут быть проблемы записи корневого раздела. может помочь шаманство с sysctl
или создание раздела такой же версии и копированием файлов

скорость диска

мерим скорость диска на вдс от Клодо
www.clodo.ru

результат прямо омрачает с клодо.
[root@ns3 ~]# dd if=/dev/zero of=tempfile count=512 bs=1024k conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 13.9991 s, 38.4 MB/s
[root@ns3 ~]#

мерим диск на одном из служебных серверов с RAID1 на сата дисках, ось UBUNTU
root@icata:/var/log# dd if=/dev/zero of=tempfile count=512 bs=1024k conv=fdatasync
512+0 записей считано
512+0 записей написано
скопировано 536870912 байт (537 MB), 5,47437 c, 98,1 MB/c
root@icata:/var/log#

мерим диск на сервере под шаред хостинг, дисковая RAID10 SAS диски, ось FreeBSD.
сервер живой, нагружен без малого под 15-20%
s1# dd if=/dev/zero of=tempfile count=512 bs=1024k
512+0 records in
512+0 records out
536870912 bytes transferred in 2.044129 secs (250.47 Mbytes/sec)
s1#

мерим скорость записи и чтения на диск файла в 512 Мб на вдс, ось CentOS
[root@ipv6 ~]# dd if=/dev/zero of=tempfile count=512 bs=1024k conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.36952 s, 123 MB/s
[root@ipv6 ~]#

мерим скорость записи/чтения на самой вдс ноде… раздел для вдс образов, RAID10 SAS диски. сервер живой, нагружен без малого под 25-30%
[root@vds-node02 tmp]# dd if=/dev/zero of=tempfile count=512 bs=1024k conv=fdatasync
512+0 записей считано
512+0 записей написано
скопировано 536870912 байт (537 MB), 2,74562 c, 196 MB/c
[root@vds-node02 tmp]#

ubuntu raid6 12tb, 16 дисков sata по 1тб.
сервер загружен в ночное время. тест проводился с относительно спокойное состояние дисковой.
root@backup:/home/_script# dd if=/dev/zero of=tempfile count=512 bs=1024k conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 1,89082 s, 284 MB/s
root@backup:/home/_script#


вывод. пока сам не сделаешь, лучше тебя никто не сделает. думаю скоро будем переходить на ssd диски, как только придет их черед.

php5 ffmpeg FreeBSD

WWW
ставим ffmpeg
Port:   php5-ffmpeg-0.6.0_7
Path:   /usr/ports/graphics/php5-ffmpeg
Info:   The ffmpeg shared extension for php


подключаем
/usr/local/etc/php/extensions.ini
extension=ffmpeg.so


phpinfo или php -i

ffmpegffmpeg-php version 	0.6.0-svn 
ffmpeg-php built on 	Oct 21 2012 23:22:22 
ffmpeg-php gd support 	enabled 
ffmpeg libavcodec version 	Lavc52.123.0 
ffmpeg libavformat version 	Lavf52.111.0 
ffmpeg swscaler version 	SwS0.14.1


установка проверена под
php -v
PHP 5.3.16 with Suhosin-Patch (cli) (built: Sep  6 2012 18:51:57)
Copyright © 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies
    with the ionCube PHP Loader v4.0.10, Copyright © 2002-2011, by ionCube Ltd.

Динамическая маршрутизация в FreeBSD с BIRD, Quagga

under


http://subnets.ru/wrapper.php?p=7
http://subnets.ru/blog/?p=1728
http://subnets.ru/blog/?p=19


http://subnets.ru/forum/viewtopic.php?f=3&t=371&start=30

hostname AS123456
password zebra
enable password zebra
log file /var/log/bgpd.log
router bgp 123456
bgp router-id 173.45.248.98
bgp log-neighbor-changes
no synchronization
network 48.151.4.0/23
neighbor 173.45.248.97 remote-as 45975
neighbor 178.45.248.97 next-hop-self
neighbor 178.45.248.97 route-map ROSTELEKOM_IN in
neighbor 178.45.248.97 route-map ROSTELEKOM_OUT out
!
ip prefix-list bogons description bogus nets
ip prefix-list bogons seq 15 permit 0.0.0.0/8 le 32
ip prefix-list bogons seq 20 permit 127.0.0.0/8 le 32
ip prefix-list bogons seq 30 permit 10.0.0.0/8 le 32
ip prefix-list bogons seq 35 permit 172.16.0.0/12 le 32
ip prefix-list bogons seq 40 permit 192.168.0.0/16 le 32
ip prefix-list bogons seq 45 permit 169.254.0.0/16 le 32
ip prefix-list bogons seq 50 permit 224.0.0.0/4 le 32
ip prefix-list bogons seq 55 permit 240.0.0.0/4 le 32
ip prefix-list default description default route
ip prefix-list default seq 10 permit 0.0.0.0/0
ip prefix-list our-CIDR-blocks seq 5 permit 48.151.4.0/23 le 32
ip prefix-list upstream-out seq 10 permit 48.151.4.0/23
!
ip as-path access-list 1 permit _6451[2-9]_
ip as-path access-list 1 permit _645[2-9][0-9]_
ip as-path access-list 1 permit _64[6-9][0-9][0-9]_
ip as-path access-list 1 permit _65[0-9][0-9][0-9]_
!
route-map ROSTELEKOM_IN deny 100
match as-path 1
!
route-map ROSTELEKOM_IN deny 110
match ip address prefix-list bogons
!
route-map ROSTELEKOM_IN deny 115
match ip address prefix-list default
!
route-map ROSTELEKOM_IN deny 120
match ip address prefix-list our-CIDR-blocks
!
route-map ROSTELEKOM_IN permit 200
set local-preference 100
!
route-map ROSTELEKOM_OUT permit 100
match ip address prefix-list upstream-out
!
route-map ROSTELEKOM_OUT deny 200



gw# vtysh

Hello, this is Quagga (version 0.99.21).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

gw#
  clear        Reset functions
  configure    Configuration from vty interface
  copy         Copy from one file to another
  debug        Enable debug messages for specific or all part.
  disable      Turn off privileged mode command
  end          End current mode and change to enable mode
  exit         Exit current mode and down to previous mode
  list         Print command list
  no           Negate a command or set its defaults
  ping         Send echo messages
  quit         Exit current mode and down to previous mode
  show         Show running system information
  ssh          Open an ssh connection
  start-shell  Start UNIX shell
  telnet       Open a telnet connection
  terminal     Set terminal line parameters
  traceroute   Trace route to destination
  undebug      Disable debugging functions (see also 'debug')
  write        Write running configuration to memory, network, or terminal
gw#


получить список подсетей из кваги и залить по ftp

#!/bin/bash
# получить список подсетей AS и залить на фтп
file=/tmp/zebra/peering_as_subnets
echo "sh ip ro bgp" | vtysh | grep 127,0,0.1 | awk {'print $2'} > $file
echo "send $file" | pftp lt.lan
rm $file