Julian Elischer добавил в дерево исходных текстов FreeBSD-Current начальную поддержку множественных таблиц маршрутизации (Multi-routing-table). Технология протестирована и используется в продуктах компании IronPort, являющейся подразделением Cisco Systems. Число независимых таблиц маршрутизации задается при сборке ядра, через опцию "options ROUTETABLES=N", где N число таблиц. Управление производится посредством утилиты setfib (fib - Forwarding Information Base), а также две дополнительных конструкции для ipfw: "setfib N ip from anay to any" и "count ip from any to any fib N". Например, для задействования таблицы номер 3 для заданной программы (в примере - ping), можно использовать: "setfib -3 ping target.example.com". Нововведение позволяет организовать "policy based routing", т.е. маршрутизацию отправки пакета не только в зависимости от адреса получателя, путем определения правил в соответствии с которыми к пакету будет применена одна из альтернативных таблиц маршрутизации. В качестве одного из
"Effective BGP Policy Control" - полезная статья, описывающая, с приведением примеров для Cisco IOS, возможные пути изменения политики выбора маршрута или экспорта данных для внешних маршрутизаторов: использование различных механизмов фильтрации, принудительные анонсы, объединение нескольких маршрутов в один (aggregation) и наоборот, локальные автономные системы (local AS, когда для определенного соседа нужно выдать отличный от текущего номер AS), QoS, использование traffic-index (BGP policy accounting).
Одна из главнейших бед Интернета - машины зараженные троянскими программами, зловещий потенциал которых недавно проявился в атаке на корневые DNS сервера, периодически всплывает в локальных атаках и ежедневно демонстрируется в качестве отправной точки в рассылках спамеров. Миллионы машин в сети, готовых выполнить любую команду злодея - страшная угроза. В статье "Trojans - and how to protect your network against them" описываются основные типы троянских программ (контроль зараженной машины, перехват паролей, деструктивные действия, проведение DoS атак, открытые прокси для пересылки спама или для заметания следов и т.д.), методы благодаря которым осуществляется их внедрение (как правило через "человеческий фактор") и идеи по защите сети компьютеров.
Пример настройки IPsec туннеля в OpenBSD. 1. setup ip address and policy (aka. SPD, flow): # cat hostname.fxp1 inet 10.0.0.10 !ipsecadm flush !ipsecadm flow -addr 10.0.0.10/32 192.168.20.1/32 -src 10.0.0.10 -dst 192.168.20.1 -proto esp -out -require !ipsecadm flow -addr 192.168.20.1/32 10.0.0.10/32 -src 10.0.0.10 -dst 192.168.20.1 -proto esp -in -require 2. enable isakmpd (-L for debug in /var/run/isakmpd.pcap): # grep isakmpd_flags rc.conf isakmpd_flags="-L" 3. setup allow-all policy file: # cat isakmpd/isakmpd.policy Authorizer: "POLICY" # chmod 600 isakmpd/isakmpd.policy 4. generate key for IKE authentication # openssl genrsa -out isakmpd/private/local.key 1024 # chmod 600 isakmpd/private/local.key 5. extract public key: # openssl rsa -out /var/tmp/my.pub -in isakmpd/private/local.key -pubout # scp /var/tmp/my.pub peer:... 6. install public key of peers: # cp /var/tmp/peer.pub isakmpd/pubkeys/ipv4/192.168.20.1 # cat isakmpd/pubkeys/ipv4/192.168.20.1 -----BEGIN PUBLIC KEY-----
Рассказ как, для предотвращения перегрузки сервера от многопотоковых качалок или излишне активных роботов, ограничить число одновременных коннектов к apache от одного пользователя или пропускную способность, воспользовавшись модулем mod_throttle. Типы ограничений: None - ничего не делает, для тестирования; Concurrent - подпадают одновременно выполняемые запросы; Document - ограничение числа документов (не просто запросов) в промежуток времени; Idle - определяет время необходимой минимальной задержки между двумя запросами; Random - задает процент запросов которые нужно выполнять, остальные будут отвергнуты; Speed - устанавливает скорость отдачи контента клиенту в ед. времени; Volume - ограничение максимального объема данных которые клиент может получить за период времени; Request - ограничение числа запросов в промежуток времени; Пример использования: ThrottleClientIP 100 None ThrottlePolicy Speed 100K 1s ThrottlePolicy Request 5 1 SetHandler throttle-status SetHandler throttle-me
Вышло продолжение статьи "Systrace Policies", в которой рассказано как можно используя systrace, ограничить возможность использования определенных системных вызовов в программе, например, запретить открывать определенных файл через open(). Пример правил для ограничения named: Policy: /usr/sbin/named, Emulation: native native-accept: permit native-bind: sockaddr match "inet-*:53" then permit native-chdir: filename eq "/" then permit native-chdir: filename eq "/namedb" then permit native-chroot: filename eq "/var/named" then permit native-connect: sockaddr eq "/dev/log" then permit native-fsread: filename eq "/" then permit native-fsread: filename eq "/dev/arandom" then permit native-fsread: filename eq "/etc/group" then permit
"Configuring IPSec" - пошаговое руководство по настройке IPSec тунеля на FreeBSD (с использованем Racoon IKE демона). Ниже, краткий пересказ: Ядро: options IPSEC options IPSEC_ESP options IPSEC_DEBUG pseudo-device gif Ставим для управления секретными ключами - Racoon IKE: cd /usr/ports/security/racoon make install clean vi /usr/local/etc/racoon/racoon.conf path include "/usr/local/etc/racoon" ; path pre_shared_key "/usr/local/etc/racoon/psk.txt" ; # "log" specifies logging level. It is followed by either "notify", "debug" # or "debug2". #log debug; # "padding" defines some parameter of padding. You should not touch these. padding { maximum_length 20; # maximum padding length. randomize off; # enable randomize length. strict_check off; # enable strict check. exclusive_tail off; # extract last one octet. } # if no listen directive is specified, racoon will listen to all # available interface addresses. listen { isakmp A.A.A.A [500]; } # Specification of default various timer. timer { #
В статье "Traffic Engineering: Local Routing Policy" описаны несколько методов манипуляции приоритетами отправки трафика через соседние автономные системы, т.е. описано как в BGP переопределять отправку трафик на определенные сети через определенный канал или управлять балансировкой трафика между каналами. Примеры файлов конфигурации из статьи: Setting the Local Preference for all routes received from a BGP neighbor ! router bgp 60055 neighbor 192.0.254.17 remote-as 40077 neighbor 192.0.254.17 route-map ispa-in in neighbor 219.2.19.1 remote-as 50066 neighbor 219.2.19.1 route-map ispb-in in ! route-map ispa-in permit 10 set local-preference 90 ! route-map ispb-in permit 10 set local-preference 110 ! Setting the Local Preference depending on AS path ! ip as-path access-list 4 permit _30088_ ip as-path access-list 4 deny .* ! route-map ispa-in permit 10 set local-preference 90 ! route-map ispb-in permit 10 match as-path 4 set local-preference 80 ! route-map ispb-in permit 20 set
Документ "FLOS (Free/Libre and Open Source Software): Survey and Study" призван обобщить текущее состояние рынка открытых технологий, вчитываться не стал, но графики (а их множество) посмотрел с удовольствием. Отчет состоит из 5 частей: Executive Summary Overview of the FLOSS project Use of Open Source Software in Firms and Public Institutions Firms Open Source Activities: Motivations and Policy Implications Open Source Software in the Public Sector: Policy within the European Union Basics of Open Source Software Markets and Business Models Survey of Developers Source Code Survey
В статье "Redundant Internet Connections Using Linux", опубликованной в SysAdmin Journal, рассказывается как настроить резервный линк в Linux, используя пакет iproute (через policy routing). Использование 2 линков: В ядре: CONFIG_IP_ADVANCED_ROUTER=y, CONFIG_IP_MULTIPLE_TABLES=y, CONFIG_IP_ROUTE_MULTIPATH=y # Настройка первого линка ip rule add from 63.89.102.157 lookup 1 ip route add 10.0.0.0/24 via 10.0.0.1 table 1 ip route add 0/0 via 63.89.102.1 table 1 # Настройка второго линка ip rule add from 65.3.17.133 lookup 2 ip route add 10.0.0.0/24 via 10.0.0.1 table 2 ip route add 0/0 via 65.3.17.1 table 2 Для проверки результата наберите: ip route list [table 1] Балансиковка трафика: ip route add default equalize nexthop via 63.89.102.1 dev eth1 nexthop via 65.3.17.1 dev eth2