Kaylas
NoDeny
Пользователь
Карма: 0
Offline
Сообщений: 72
|
|
« Ответ #6 : 08 Августа 2010, 13:37:14 » |
|
rc.conf# cat rc.conf
# ---> LAN ifconfig_em1="inet 10.4.1.3 netmask 255.255.252.0"
#ifconfig_em0_alias0="ether 00:50:FC:E6:B8:99" ifconfig_em0="inet 109.86.106.179 netmask 255.255.255.0"
#defaultrouter="192.168.0.1" defaultrouter="109.86.106.254"
hostname="server.i-net.in.ua"
keymap=ru.cp1251 # можно не использовать, by default клавиша "CAPS LOCK" #keychange="61 ESC[K" scrnmap="win2cpp866" font8x16=cp866b-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8
gateway_enable="YES" sshd_enable="YES" mysql_enable="YES" apache22_enable="YES" pf_enable="YES" firewall_enable=YES ngnetflow_enable="YES"
# --> Сервер времени ntpd_enable="YES" ntpd_sync_on_start="YES" #ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
# --> flow_capture_enable="YES" flow_capture_profiles="nodeny" flow_capture_nodeny_flags="-n1 -N0 -R /usr/local/nodeny/netflow_8888.pl" # Ниже ип шлюза, отдающего нетфлов или 0.0.0.0, если не важна суперсекретность )) flow_capture_nodeny_remoteip="0.0.0.0" # Ниже ип биллинга, коллектора нетфлов или 0.0.0.0, если слушать на всех ифейсах flow_capture_nodeny_localip="0.0.0.0" flow_capture_nodeny_datadir="/var/db/flows" flow_capture_nodeny_pid="/var/run/flow-capture/flow-capture.pid" flow_capture_nodeny_port="8888" flow_capture_nodeny_user="root"
rc.firewall# cat rc.firewall #!/bin/sh -
f='/sbin/ipfw'
# Настройки сети маси и IP адреса iflan="em1" # интерфейс смотрящий в ЛС netlan="10.4.0.0/22" # nod_net= Локальная сеть Доступ в эту сеть будет проис ходить без авторизации.
# Настройки сети маси и IP адреса ifOut_citi="em0" # внешний интерфейс смотрит на Ситинет
# Настройки сети маси и IP адреса # ifOut_ukr="tun0" # внешний интерфейс Укртелекома
my_out_nets='127.0.0.1' # клиентская реальная сеть, не подлежащая трансляции адресов. # Вы не должны здесь указывать локальную сеть! # Если клиентам не выдаются внешние адреса, укажите 127.0.0.1.
nod_kernel='10.4.1.3' # ip сервера с ядром NoDeny, этому ip разрешим получать статистику о трафике от коллектора ipcad. ipcad_port='1' # этот порт «слушает» ipcad, в него будем направлять трафик подлежащий учету
# Сети, в/из которых трафик блокируем ${f} table 120 flush ${f} table 120 add 224.0.0.0/4 #${f} table 120 add 192.168.0.0/16 ${f} table 120 add 172.16.0.0/12 ${f} table 120 add 194.185.200.0/24 ${f} table 120 add 93.89.101.0/24 ${f} table 120 add 119.254.1.0/24
${f} -f flush
# Tcp-соединения на 445-й порт настолько «вирусны», что этот порт проще закрыть. ${f} add 100 deny tcp from any to any 445
# Разрешаем внутренний трафик ${f} add 110 allow ip from any to any via lo0
# Все пакеты от сервера направляем на правило 1000 ${f} add 120 skipto 1000 ip from me to any
# Запрещаем ${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 ${f} add 140 deny ip from any to "table(120)" ${f} add 150 deny ip from "table(120)" to any
#${f} add 156 deny log ip from any to "table(122)" via stge0 #${f} add 157 deny log ip from "table(124)" to any via stge0
# Разрешаем доступ по SSH ${f} add 160 allow tcp from any to me 50022 ${f} add 161 allow tcp from me 50022 to any
# FTP #ipfw add 162 allow tcp from any to 20,21 #ipfw add 163 allow tcp from 20,21 to any
# Все входящие пакеты отправленые мне отправляем на правило 2000 ${f} add 190 skipto 2000 ip from any to me
# пакеты пришедшие на внешний интерфейс отправляем на правило 500 ${f} add 200 skipto 500 ip from any to any via ${ifOut_citi} #${f} add 210 skipto 500 ip from any to any via ${ifOut_ukr} #${f} add 220 skipto 500 ip from any to any via tun0
# Все ВХОДЯЩИЕ пакеты отправляем на правило 4500 ${f} add 300 skipto 4500 ip from any to any in
# Исходящие пакеты попадают в netflow на ноду 100 Собераем статистику ${f} add 400 ngtee 100 ip from any to any
# Исходящие пакеты направляются на правило 450 #${f} add 401 skipto 450 ip from any to any recv ${ifOut_citi} #${f} add 402 skipto 450 ip from any to any recv ${ifOut_ukr} # Заворачиваем трафик на порт статистики #${f} add 420 divert 1 ip from any to any #${f} add 450 divert 2 ip from any to any # Разрешает прохождение любых пакетов ${f} add 490 allow ip from any to any
####################################################################
${f} add 500 skipto 32500 ip from any to any in #${f} add 510 divert 1 ip from any to any ${f} add 510 ngtee 100 ip from any to any ${f} add 540 allow ip from any to any
# -> Все пакеты от сервера выпускаем без проверок ${f} add 1000 allow udp from any 53,7723 to any ${f} add 1010 allow tcp from any to any setup keep-state ${f} add 1020 allow udp from any to any keep-state ${f} add 1100 allow ip from any to any
# -> Все пакеты пришедшие на сервер ${f} add 2000 check-state ${f} add 2010 allow icmp from any to any ${f} add 2050 allow tcp from any to any 80 ${f} add 2051 allow tcp from any to any 443 ${f} add 2053 allow udp from any to any 53 ${f} add 2061 deny ip from any to any via ${ifOut_siti} ${f} add 2082 allow udp from any to any 53,7723
# запретить любые пакеты. ${f} add 2100 deny ip from any to any # запретить любые пакеты. ${f} add 32490 deny ip from any to any # запретить любые пакеты. ${f} add 65530 deny ip from any to any
/usr/local/nodeny/netflow.txt# cat netflow.txt mkpeer ipfw: netflow 100 iface0 name ipfw:100 netflow msg netflow: setdlt { iface = 0 dlt = 12 } mkpeer netflow: ksocket export inet/dgram/udp msg netflow:export connect inet/127.0.0.1:8888 /usr/local/nodeny/netflow_8888.pl - создался автоматически. # cat netflow_8888.pl #!/usr/bin/perl $lines=`/usr/local/bin/flow-export -f2 -mdoctets,srcaddr,dstaddr,input,output,srcport,dstport,prot < /var/db/flows/$ARGV[0] 2>/dev/null`; $out_int=',1,'; $out=""; foreach $line (split /\n/,$lines) { ($bytes,$src,$dst,$src_if,$dst_if,$src_port,$dst_port,$prot)=split /,/,$line; next if $prot<1; $h="$src\t$dst\t1\t$bytes\t$src_port\t$dst_port\t$prot\t"; $out.=$h."2\n" if $out_int=~/,$src_if,/; $out.=$h."1\n" if $out_int=~/,$dst_if,/; } exit unless open (F,'>/usr/local/nodeny/sql/1-1281267079_temp'); print F $out; close(F); rename '/usr/local/nodeny/sql/1-1281267079_temp','/usr/local/nodeny/sql/1-1281267079'; unlink "/var/db/flows/$ARGV[0]";
/usr/local/etc/rc.d/ngnetflow.sh Как в руководстве cat /usr/local/etc/rc.d/ngnetflow.sh #!/bin/sh . /etc/rc.subr
name="ngnetflow" rcvar=`set_rcvar`
load_rc_config $name : ${ngnetflow_enable="YES"}
start_cmd="ngnetflow_start" stop_cmd="ngnetflow_stop"
ngnetflow_start() {
/usr/sbin/ngctl -f /usr/local/nodeny/netflow.txt
}
ngnetflow_stop() { /usr/sbin/ngctl -f- <<-NODENY shutdown netflow: NODENY }
run_rc_command "$1"
Ядроoptions KVA_PAGES=512 # Увеличение адресного пространства ядра до 2Gb. #options VM_KMEM_SIZE=1073741824 #options VM_KMEM_SIZE_MAX=1073741824
#options MAXPHYS=(1024*1024) # ? #options DFLTPHYS=(128*1024) # ? #device carp # позволяет нескольким компьютерам, находящимся в одной сети, использовать один IP адрес.
options PANIC_REBOOT_WAIT_TIME=16 # В случаае паники ядра перегрузится через 16 секунд options SC_DISABLE_REBOOT # Опция отключает перезагрузку по ctrl-alt-del
# Настройка консоли. options VESA # - для включения расширенного видеорежима: options SC_PIXEL_MODE options VGA_WIDTH90 # - подгоним под себя режим vga options SC_NORM_ATTR=(FG_GREEN|BG_BLACK) # - сделаем обычный вывод зеленый на черном options SC_KERNEL_CONS_ATTR=(FG_YELLOW|BG_BLACK)# - а сообщения ядра желтый на черном
# IPFW options IPFIREWALL # Опции для поддержки фаерволла IPFW. options IPFIREWALL_VERBOSE # - включаем логирование options IPFIREWALL_VERBOSE_LIMIT=100 # - ограничение на размер лога options IPFIREWALL_FORWARD # - включаем опции перенапрвления options IPFIREWALL_DEFAULT_TO_ACCEPT # - По умолчанию пропускать все. options DUMMYNET # - включение поддержки dummynet - искусственная задержка пакетов options IPDIVERT # - дайверт - для поддержки NAT options IPFIREWALL_NAT # - NAT в ядре без использования Дивере options LIBALIAS # - Нужно для работі IPFIREWALL_NAT
# Если нужна поддержка фаерволла PF, раскомментируем опции ниже. #device pf #device pflog # - включаем логирование #device pfsync # - включаем очереди - аналог dummynet #options ALTQ #options ALTQ_CBQ # Class Bases Queuing (CBQ) #options ALTQ_RED # Random Early Detection (RED) #options ALTQ_RIO # RED In/Out #options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) #options ALTQ_PRIQ # Priority Queuing (PRIQ) #options ALTQ_NOPCC # Required for SMP build
#options QUOTA # Поддержка квот файловых систем. Желательно, если будет много юзеров и у каждого свой файлосборник
# IPSec options IPSEC options IPSEC_DEBUG # crypto system device crypto device cryptodev
# Если нужна поддержка NETGRAPH в ядре options NETGRAPH options NETGRAPH_NETFLOW # + для посчета трафика options NETGRAPH_IPFW options NETGRAPH_NAT
# --> MPD options NETGRAPH_SPLIT options NETGRAPH_KSOCKET options NETGRAPH_SOCKET options NETGRAPH_BPF options NETGRAPH_IFACE options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_TCPMSS options NETGRAPH_VJC options NETGRAPH_TEE options NETGRAPH_CAR
options NETGRAPH_ONE2MANY options NETGRAPH_ETHER options NETGRAPH_PPPOE
ifconfig ifconfig em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:15:17:dd:b0:0e inet 109.86.106.179 netmask 0xffffff00 broadcast 109.86.106.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> ether 00:15:17:dd:b0:0f inet 192.168.5.5 netmask 0xffffff00 broadcast 192.168.5.255 inet 10.4.1.3 netmask 0xfffffc00 broadcast 10.4.3.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC> ether 48:5b:39:43:43:b8 media: Ethernet autoselect (10baseT/UTP <half-duplex>) status: no carrier fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 02:1e:8c:d5:45:a1 ch 1 dma -1 fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500 lladdr 0.1e.8c.0.0.d5.45.a1.a.2.ff.fe.0.0.0.0 ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet 127.0.0.1 netmask 0xff000000
|