четверг, 22 января 2009 г.

Cisco Zone-Based Policy Firewall и WCCP + Squid 2.7

Рассмотрим пример конфигурирования CISCO 871 в роли Брандмауэра (Firewall) c помощью новой модели конфигурирования Zone-Based Policy Firewall (ZFW), а также настроим на использование WCCP (Web Cache Control Protocol), в качестве кэша будем использовать прокси- сервер SQUID 2.7 работающий под ОС Linux Ubuntu 8.10.
Топология сети представлена ниже.


Что имеем:
CISCO 871 – с IOS Advanced IP Service K9, если у вас отличная от этой версия IOS, то вы не сможете использовать больше одно VLAN’а. Конечно, если вы не используете спец. сборку IOS, в которой имеется поддержка VLAN.

FastEthernet 4 (FE4) – Порт подключен к сети провайдера (WAN), присвоены:

  • IP адрес: 79.XXX.XXX.XXX
  • Маска подсети: 255.255.255.252
  • Шлюз: 79.XXX.XXX.XXVLAN 1
VLAN 1

  • IP адрес: 192.168.2.2
  • Маска подсети: 255.255.255.000
VLAN 2

  • IP адрес: 192.168.77.1
  • Маска подсети: 255.255.255.000
WCCP cache – SQUID 2.7 под управлением ОС Ubuntu 8.10 располагается в DMZ зоне, на сервере имеются следующие сетевые интерфейсы:
eth0 – Порт подключен к FastEthernet 2 на Cisco, присвоены:

  • IP адрес: 192.168.77.2
  • Маска подсети: 255.255.255.000
  • Шлюз: 192.168.77.1
Mail server – CGPro под управлением ОС Ubuntu 8.10 располагается в DMZ зоне, на сервере имеются следующие сетевые интерфейсы
eth0 – Порт подключен к FastEthernet 2 на Cisco, присвоены:

  • IP адрес: 192.168.77.3
  • Маска подсети: 255.255.255.000
  • Шлюз: 192.168.77.1
Пользовательские ПК, располагающиеся в LAN зоне, подсеть 192.168.2.0/24 с шлюзом 192.168.2.2


Определились с исходными данными – теперь нам стоит определиться с тем, какими ресурсами/сервисам сети интернет и наших серверов пользователи могут использовать, а также какие сервисы будут доступны из сети интернет.
Из сети интернет пользователям доступны сервисы, работающие по следующим протоколам: aol, http, https, ftp, dns, icmp, udp, ssh. А также разрешен доступ к почтовым серверам mail.ru по протоколам smtp и pop.
Из зоны DMZ для пользователей разрешено все, если вам понадобится разрешить доступ к чему- то конкретному, вы легко сможете сделать это по аналогии.
Из зоны LAN для серверов также разрешено все. Для серверов из интернета доступны http, https, ftp, dns, icmp, udp, ssh, smtp, pop.
Из сети интернет доступны следующие сервисы из зоны DMZ: smtp и openvpn, работающий на 2000 порту по протоколу TCP.
На рисунке ниже схематично изображено использование сервисов зонами.



Приступим непосредственно к конфигурированию брандмауэра. Руководство по конфигурированию ZFW описывает порядок выполнения процедуры по конфигурированию:
  • Определить зоны (zone);
  • Определить пары зон (zone-pair);
  • Определение классов (class-map), описывающих трафик, к которому будет применяться политика на пересечении пары зон;
  • Определение политик (policy-map), применяемых к ранее созданным классам трафика (class-map);
  • Применение политик к паре зон;
  • Связывание интерфейса с зоной.
Определим зоны

В нашем случае используется три зоны: LAN – подсеть, в которой находятся пользователи, DMZ – подсеть серверов, WAN – сеть провайдера (интернет).

!
zone security lan
zone security dmz
zone security wan
!

Определим пары зон

Из рисунка 2 можно увидеть, что получается пять пар зон.

!
zone-pair security lan-dmz source lan destination dmz
zone-pair security dmz-lan source dmz destination lan
zone-pair security dmz-wan source dmz destination wan
zone-pair security wan-dmz source wan destination dmz
zone-pair security lan-wan source lan destination wan
!

Определим классы трафика


Проходящий трафик может классифицироваться по нескольким критериям: Access-group, Protocol, Class-map, Not. Трафик может быть классифицирован при условии полного совпадения всех критериев (match-all) или неполного – от одного и более (match-any).
В нашем примере пользователи в интернете имеют доступ только к почтовым серверам mail.ru, для этого нам следует определить список доступа:

!
ip access-list extended mail.ru-acl
permit ip any host 91.190.232.8
permit ip any 194.67.23.0 0.0.0.255
permit ip any 194.67.57.0 0.0.0.255
permit ip any 194.168.55.0 0.0.0.255
permit ip any 194.186.55.0 0.0.0.255
!

Также в DMZ у нас находится VPN сервер:

!
ip access-list extended openvpn-acl
permit tcp any any eq 2000
!


Следующий список доступа будет нам давать полный доступ между зонами DMZ и LAN в обоих направлениях

!
ip access-list extended lan-dmz-all-acl
permit ip any any
!

Определим классы

!
class-map type inspect match-any lan-dmz-all-class
match access-group name lan-dmz-all-acl
class-map type inspect match-any smtp-class
match protocol smtp
class-map type inspect match-all smtp-mail.ru-acl-class
match class-map smtp-class
match access-group name mail.ru-acl
class-map type inspect match-any internet-traffic-class
match protocol http
match protocol https
match protocol ftp
match protocol dns
match protocol icmp
match protocol udp
match protocol aol
match protocol ssh
class-map type inspect match-any user-allow-traffic-class
match class-map internet-traffic-class
match class-map smtp-mail.ru-acl-class
class-map type inspect match-any dns-smtp-openvpn-class
match protocol dns
match protocol smtp
match access-group name openvpn-acl
!

Определим политики

!
policy-map type inspect wan-dmz-policy
class type inspect dns-smtp-openvpn-class
pass
class class-default
drop
policy-map type inspect lan-wan-policy
class type inspect user-allow-traffic-class
inspect
class class-default
drop
policy-map type inspect dmz-wan-policy
class type inspect
internet-traffic-class
inspect
class type inspect smtp-class
inspect
class class-default
drop

policy-map type inspect lan-dmz-all-policy
class type inspect landmz-gre-class
pass
class class-default
drop
!

Применим политики к паре зон

!
zone-pair security lan-dmz source lan destination dmz
service-policy type inspect  lan-dmz-all-policy
zone-pair security dmz-lan source dmz destination lan
service-policy type inspect  lan-dmz-all-policy
zone-pair security dmz-wan source dmz destination wan
service-policy type inspect
dmz-wan-policy
zone-pair security wan-dmz source wan destination dmz
service-policy type inspect wan-dmz-policy
zone-pair security lan-wan source lan destination wan
service-policy type inspect lan-wan-policy
!

Свяжем зоны с интерфейсами

!
interface FastEthernet4
ip address 79.XXX.XXX.XXX 255.255.255.252
ip nat outside
zone-member security wan
!
interface Vlan1
ip address 192.168.2.2 255.255.255.0
ip nat inside
zone-member security lan
!
interface Vlan2
ip address 192.168.77.1 255.255.255.0
ip nat inside
zone-member security dmz
!


Конфигурация NAT’а для доступа к ресурсам DMZ:
Для почтового и VPN серверов

!
ip nat inside source static tcp 192.168.77.3 25 interface FastEthernet4 25
ip nat inside source static tcp 192.168.77.3 2000 interface FastEthernet4 2000
!


С настройками ZFW закончили, перейдем к конфигурированию WCC.

Минимальные настройки SQUID

http_access allow all
http_port 3128 transparent
wccp router 192.168.77.1
wccp version 4

Создадим GRE туннель и зададим перенаправление порта с 80 на 3128

/etc/network/wccp.up

#!/bin/bash
ip tunnel add tnl0 mode gre local 192.168.77.2 remote 192.168.77.1 ttl 255
ip link set tnl0 up
ip addr add 192.168.90.75 dev tnl0

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128


Отмечу особенность конфигурирования WCCP на Cisco. При построении GRE туннеля на сервере с установленным прокси-сервером Squid в качестве удаленного хоста следует ввести IP адрес, указанный на маршрутизаторе Cisco как Router Identifier, узнать его можно при помощи команды show ip wccp. Если IP адрес не принадлежит той же зоне, где располагается ваш прокси-сервер, (например, IP адрес принадлежит зоне LAN) то вам следует разрешить GRE трафик между зоной, где располагается прокси-сервер и зоной, которой принадлежит IP адрес, указанный в Router Identifier.

!
ip access-list extended lan-dmz-all-acl
permit ip any any
permit gre any any
!


Существует правило: в качестве IP адреса в Router Identifier выбирается наибольший по значению IP адрес из присвоенных интерфейсам Сisco.

/etc/network/wccp.down

#!/bin/bash
iptables -t nat –F
ip tunnel del tnl0

В /etc/network/interfaces добавим

post-up /etc/network/wccp.up
pre-down /etc/network/wccp.down

В файле /etc/sysctl.conf сделаем следующие изменения:

net.ipv4.conf.all.rp_filter=0
net.ipv4.ip_forward=1


На этом все настройки со стороны сервера закончены, переходим к конфигурированию Cisco.

Указываем на каком интерфейсе будем обрабатывать http трафик, в нашем случае VLAN 1

!
interface Vlan1
ip address 192.168.2.2 255.255.255.0
ip wccp web-cache redirect in
ip nat inside
zone-member security lan
!


Так как используем первую версию протокола, то обязательно указываем ip wccp version 1, так как по умолчанию используется вторая версия.

!
ip wccp version 1
ip wccp web-cache
!

На этом конфигурирование wccp завершается.

Ссылки по теме:
Zone-Based Policy Firewall Design and Application Guide
WCCP Enhancements
WCCP2 and NAT on a private internal network



воскресенье, 11 января 2009 г.

Cisco кэширующий DNS и DHCP сервер

Конфигурирование DHCP:

cisco#configure term
// Создание обслуживаемой области, где LAN наименование конфигурации
cisco(dhcp-config)#ip dhcp pool LAN
// Указывается обслуживаемая подсеть
cisco(dhcp-config)#network 192.168.0.0 255.255.255.0
// DNS сервер и шлюз по умолчанию выдаваемые клиенту
cisco(dhcp-config)#dns-server 192.168.0.1
cisco(dhcp-config)#default-router 192.168.0.1
// Указывается время жизни выданного адреса в днях
cisco(dhcp-config)#lease 7

cisco(dhcp-config)#exit

//Ниже указывается диапазон, из которого выдавать адреса нельзя
cisco(config)#ip dhcp excluded-address 192.168.0.1 192.168.0.149
cisco(config)#ip dhcp excluded-address 192.168.0.191 192.168.0.254

На этом конфигурирование DHCP завершено, переходим к настройке кэширующего DNS сервера:

//Доменное имя компании
cisco(config)#ip domain name company.ru
//DNS адреса, выданные вашим провайдером
cisco(config)#ip name-server xxx.xxx.xxx.xxx
cisco(config)#ip name-server yyy.yyy.yyy.yyy
// Включаем трансляцию имен в адреса (host name-to-address translation)
cisco(config)#ip domain-lookup
//Этой командой включаем DNS сервер
cisco(config)#ip dns server
cisco(config)#exit

cisco#write или cisco#copy running-config startup-config

Ссылки по теме:
Configure Cisco Router as Caching/Forwarding DNS Server
Configuring DNS on Cisco Routers

Он тебя посчитал ...