среда, 7 октября 2009 г.

Подключение удаленного офиса по каналу GPRS

   На днях понадобилось организовать VPN с удаленным офисом. Там, где расположен офис, связь на данный момент можно организовать только по каналам GPRS, широкополосный доступ местные интернет провайдеры обещают только через полгода.
   Исходя из прошлого опыта построения VPN по каналам GPRS, я отказался от всякого рода GPRS маршрутизаторов на базе Linux. После изучения предложений на рынке GPRS модемов остановился на IRZ75IT: много положительных отзывов и хорошая документация. В качестве маршрутизатора выбрал Cisco 871. Модем подключил к маршрутизатору через AUX порт. Здесь никаких проблем не оказалось, примеров распайки кабеля RJ45-DB9 в Интернете очень много. Ниже приведу свою сводную табличку.




Настройки маршрутизатора.

!
chat-script tinit TIMEOUT 90 "" AT+CGDCONT=1,"ip","internet.tele2.ru" OK "ATD*99***1#" TIMEOUT 30 CONNECT
modemcap entry ES75IT:DTR=&D0:MSC=&F
!
crypto isakmp policy 25
 encr 3des
 hash md5
 authentication pre-share
crypto isakmp key officekey address DEST_IP
!
crypto ipsec transform-set office1-office2 esp-3des esp-md5-hmac
!
crypto map tunnelmap 10 ipsec-isakmp
 set peer DEST_IP
 set transform-set office1-office2
 match address IPS-ACL
!
interface Tunnel0
 ip address 10.10.1.1 255.255.255.252
 tunnel source Async1
 tunnel destination DEST_IP
 crypto map tunnelmap
!
interface Async1
 description gsm
 mtu 1412
 ip address negotiated
 encapsulation ppp
 dialer in-band
 dialer idle-timeout 900
 dialer string "*99***1#" modem-script tinit
 dialer watch-group 1
 dialer-group 1
 keepalive 100 10
 ppp authentication chap callin
 ppp chap hostname ""
 ppp chap password 7 145550
 crypto map tunnelmap
!
ip route 0.0.0.0 0.0.0.0 Async1
ip route 192.168.1.0 255.255.255.0 Tunnel0
!
ip access-list extended IPS-ACL
 permit gre host LOCAL_IP host DEST_IP
!
dialer watch-list 1 ip 192.168.1.1 0.0.0.0
dialer-list 1 protocol ip permit
!
line con 0
 modem enable
 speed 115200
line aux 0
 exec-timeout 0 0
 script activation tinit
 modem dtr-delay 60
 modem autoconfigure type ES75IT
 transport input all
 stopbits 1
 speed 115200
 flowcontrol hardware




Если есть вопросы пишите...




ссылки:
Configuring Dialout using a Modem on the AUX Port

среда, 23 сентября 2009 г.

SSL VPN (Часть 2 - Thin-Client Mode)

Во второй части, сервис SSL VPN настроим для возможности делать перенаправление по порту.
   При включении данного режима на клиентском компьютере запускается приложение, которое устанавливает перенаправление, после завершения SSL VPN сессии клиентский компьютер возвращается первоначальному состоянию.

Router(config)#webvpn context webvpn-gw
Router(config-webvpn-context)#port-forward fwd-email
Router(config-webvpn-port-fwd)#$local-port 4025 remote-server 192.168.77.2 remote-port 25 description SMTP
Router(config-webvpn-port-fwd)#$local-port 4110 remote-server 192.168.77.2 remote-port 25 description POP3
Router(config-webvpn-context)#policy group default

Заходим https://192.168.1.53
Появился раздел "Доступ к приложениям"



Запускаем, соглашаемся с установкой сертификата




Запускается приложение для проброса портов, в котром видно "куда и сколько".

Проверяем работу
telnet 127.0.0.1 4025
Если видим приглашение почтового сервера, значит все настроено правильно.
220 mailserver.local ESMTP CommuniGate Pro 5.2.3 is glad to see you!
 На этом настройка SSL VPN в Thin-Client  режиме заканчивается.

понедельник, 14 сентября 2009 г.

SSL VPN (Часть 1 - Clientless mode)

В этой части рассматривается конфигурирование сервиса Cisco SSL VPN в режиме clientless (клиентском)

Разрешим использование веб-сервиса по протоколу https:
Router(config)#ip http secure-server
Теперь включим SSL VPN сервис, по умолчанию он работает в режиме clientless.
Router#webvpn enable webvpn-gw 192.168.1.53
где webvpn-gw - имя webvpn шлюза, а 192.168.1.53 адрес интерфейса, на котором будет ожидаться подключения.
Итогом работы команды станет следующая конфигурация:
webvpn gateway webvpn-gw
ip address 192.168.1.53 port 443
ssl trustpoint TP-self-signed-4294967295
inservice
!
webvpn context webvpn-gw
ssl authenticate verify all
!
!
policy group default
default-group-policy default
gateway webvpn-gw
inservice
!
Настраиваем аутентификацию пользователей:
Router(config)#aaa new-model
Router(config)#username cisco password cisco
Теперь можно подключиться к серверу по адресу https://192.168.1.53 и увидеть приглашение на вход.

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


Интерфейс легко русифицировать, используя языковой шаблон, который можно получить с помощью команды:
Router#webvpn create template language disk0:
на диске появится файл lang.js.
Router#show disk0: -#- --length-- -----date/time------ path 1 10699 Sep 15 2009 15:27:38 lang.js 66863104 bytes available (12288 bytes used)
Скопируйте в любое удобное место и выполните перевод по своему вкусу.
Мой вариант перевода можно взять тут.

Скопируйте отредактированный вариант шаблона на диск маршрутизатора.

Router#show disk0:
-#- --length-- -----date/time------ path 1 10699 Sep 15 2009 15:27:38 lang.js 2 15417 Sep 15 2009 15:29:50 Ru-ru.js 66846720 bytes available (28672 bytes used)

Применим шаблон в рамках нашего контекста:

Router(config)#webvpn context webvpn-gw
Router(config-webvpn-context)#language customize Russian disk0:Ru-ru.js
Перезайдите и выберите из доступных языков русский.
Если вам надо внести корректировку в шаблон, не забудьте выполнить следующую операцию:
Router(config-webvpn-context)#no language customize Russian disk0:Ru-ru.js
Router(config-webvpn-context)#language customize Russian disk0:Ru-ru.js


Теперь придадим немного функционала, добавив закладки на наши внутренние web-ресурсы.
Есть 3 способа добавления закладок:
1. Пользователь сам добавляет закладки используя интерфейс сервиса;
2. Вручную в режиме конфигуратора задаем закладки;
3. Используем шаблон закладок.

Второй способ:

Router(config)#webvpn context webvpn-gw
Router(config-webvpn-context)#url-list company-url
Router(config-webvpn-url)#heading "Terminal Servers"
Router(config-webvpn-url)#url-text TS-1C url-value http://192.168.1.20/ts
Router(config-webvpn-url)#exit

В политике, используемой нашим контекстом, укажем использовать наш список:
Router(config-webvpn-context)#policy group default
Router(config-webvpn-group)#url-list company-url
Router(config-webvpn-group)#end

Третий способ:

Router#webvpn create template url-list disk0:
Для удобства я переименовал url_list_tpl.xml в my_link.xml

Router(config)#webvpn context webvpn-gw
Router(config-webvpn-context)#url-list company-url
Router(config-webvpn-url)#import disk0:my_link.xml
Выйдите и зайдите снова. В разделе закладок появится наша закладка на web ресурс. У меня это web шлюз сервера терминалов.


Есть нюанс: сейчас пользователи имеют доступ не только ко внутренним ресурсам, но и ко внешних. Исправим это:

Router(config)#webvpn context webvpn-gw
Router(config-webvpn-context)#acl my_acl
Router(config-webvpn-acl)#error-msg "WARNING!!! Access deny!!!"
Router(config-webvpn-acl)#permit ip any 192.168.1.0 0.0.0.255
Router(config-webvpn-acl)#deny ip any any
Разрешили использовать ресурсы в 192.168.1.0/24 подсети

Не забываем указать список доступа в политике контекста.
Router(config-webvpn-context)#policy group default
Router(config-webvpn-group)#acl my_acl
Проверяем, теперь при попытке доступа к внешнему сервису система отвечает отказом.


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

Router(config)#webvpn context webvpn-gw Router(config-webvpn-context)#nbns-list my-nbns Router(config-webvpn-nbnslist)#nbns-server 192.168.1.21 master Router(config-webvpn-nbnslist)#exit

192.168.1.21 в моем случае сервер под управлением ОС Windows 2003, тут описаны действия которые необходимо выполнить для работы CIFS:
CIFS login fails in domain mode with Windows 2003 server (W2k3)

Создадим список ресурсов котрые будут отображаться на главной странице
Router(config-webvpn-context)#cifs-url-list my-cifs Router(config-webvpn-cifs-url)#url-text "Share folder" url-value "//MAIN-SERVER/share/" Router(config-webvpn-cifs-url)#exit
Router(config-webvpn-context)#policy group default
Router(config-webvpn-group)#nbns-list my-nbns
Router(config-webvpn-group)#cifs-url-list my-cifs
Router(config-webvpn-group)#functions file-access
Router(config-webvpn-group)#functions file-brow
Router(config-webvpn-group)#functions file-entry
Router(config-webvpn-group)#end
Теперь нам доступны внутренние сетевые ресурсы.


На этом настройка SSL VPN сервиса в режиме clientless (Клиентский) закончена. Во второй части будем настраивать для режима Thin-Client (Тонкий клиент)

Подробно тут:
SSL VPN

воскресенье, 26 июля 2009 г.

Мониторинг трафика SPAN + iptraf

Порой требуется мониторить трафик, проходящий через порт/ы коммутатора, в IOS есть возможность зеркалировать трафик определенного порта или группы портов на другой порт для дальнейшего анализа трафика.
Настроить мониторинг трафика очень просто, понадобится настроить Switched Port Analyzer (SPAN) на коммутаторе cisco и установить iptraf на компьютере с ОС linux (FreeBSD - trafshow, Windows - Wireshark) ну или tcpdump :).

Дано:
  • Коммутатор Cisco 2960;
  • Ubuntu server 8.10.

ШАГ 1. SPAN
  1. enable
  2. configure terminal
  3. monitor session session_number source {interface interface-id | vlan vlan-id} [, | -] [both | rx | tx]
  4. monitor session session_number destination {interface interface-id [, | -] [encapsulation {dot1q | replicate}]}
  5. end
Более детальное описание параметров http://www.cisco.com/en/US/docs/switches/lan/catalyst2960/software/release/12.2_25_see/configuration/guide/swspan.html#wp1207676

пример:
!
monitor session 1 source vlan 1 - 2
monitor session 1 destination interface Fa0/5
!

ШАГ 2. IPTRAF

Устанавливаем
sudo adt-get install iptraf
запускаем
sudo iptraf
Включаем режим прослушивания


и мониторим



воскресенье, 19 июля 2009 г.

Cisco DCHP Server постоянная привязка (DHCP Static Mapping)

В IOS DHCP server присваивать постоянные IP адреса можно двумя способами: через создание отдельных пулов для каждого узла или используя структурированный текстовый файл, (Static Mapping Text File) из которого DHCP сервер считывает данные о сопоставлении IP и аппаратном адресах (hardware address).
Создание файла
Файл содержит следующие элементы:
  1. Дата и время создания файла;
  2. Версия базы;
  3. IP адрес;
  4. Тип оборудования;
  5. Аппаратный адрес;
  6. Срок окончания аренды;
  7. Тег окончания файла.
*time* Jul 17 2009 12:57 PM
*version* 2
!IP_addr htype haddr Lease_expiration
192.168.1.119 /24 id 0100.248c.58a8.85 Infinite
192.168.1.120 /24 id 0100.15f2.a1c5.e1 Infinite
192.168.1.121 /24 id 0100.1cc0.1584.24 Infinite
*end*


IP_addr -Постоянный IP адрес. Маска подсети задается через пробел.
htype - Тип оборудования, например "1" обозначает, что оборудование подключено по Ethernet интерфейсу, а значение "id" говорит о том, что в поле haddr будет указан client identifer. Как сказано в RFC 2132, Client identifer представляет собой значение, состоящее из пары "htype/haddr", где htype - тип оборудования (допустимые значения можно найти здесь http://www.iana.org/assignments/arp-parameters/) и haddr аппаратного адреса (адреса, возвращаемого по ARP запросу).
haddr - данное поле может содержать - аппаратный адрес устройства, идентификатор клиента Client-Identifer.
Type Client-Identifier
+-----+-----+-----+---
| t1 | i1 | i2 | ...
+-----+-----+-----+---


В случае с Ethernet запись будет выглядеть слудующим образом
0100.15f2.a1c5.e1
первые 2 цифры t1 определяют htype далее идет MAC адрес интерфейса;
Lease_expiration - дата окончания аренды адреса. Указываем "Infinite", что обозначает бессрочную аренду.

Конфигурируем DHCP сервер
  1. enable
  2. configure terminal
  3. ip dhcp pool name
  4. origin file url
  5. end

Пример
!
ip dhcp pool POOL_NAME
origin file tftp://192.168.77.2/dhcp-static
dns-server 192.168.1.20 192.168.1.21

default-router 192.168.1.1
!

После внесения изменений в файл необходимо перезапустить DHCP сервер
  1. enable
  2. configure terminal
  3. no service dhcp
  4. service dhcpend
Отладка
Просмотреть правильно ли внесена информация в файл и какие записи попали в таблицу DHCP сервера можно командой:
show ip dhcp binding
Ну и конечно же пользоваться отладкой
debug ip dhcp server [...] ?

четверг, 28 мая 2009 г.

Virtual Box - Режим интеграции дисплея

В Virtual Box есть "Режим интеграции дисплея", вызываемый по Host+L. Позволяет одновременно работать с окнами родной системы и гостевой. Довольно удобный функционал, мне понравилось :).

четверг, 21 мая 2009 г.

Сервер архивирования файлов пользователей в небольшой сети

Задача: Создание места, где пользователи бы хранили свою информация и не переживали за ее сохранность.
Решение: ОС Ubuntu server 8.10 и связка Samba (в составе AD 2003) + quota (ограничение объема пользовательских каталогов на сервере) + webmin (для комфортного управления самими квотами).

Чуть подробнее:

1 ШАГ
Устанавливаем samba и winbind :
apt-get install samba winbind smbfs,
устанавливаем krb5
apt-get install krb5-user krb5-config krb5-doc libkrb53 libpam-krb5 libpam-mount
и все это вводим в домен, про это написано много где, просто выложу конфиги:

smb.conf
[global]
workgroup = DOMAIN
netbios
name =SRV
server string = Network Server
security = ads
hosts allow = 192.168.0. 192.168.77. 127.
log fi
le = /var/log/samba/log.%m
max log size = 50
password server = main-server
realm = DOMAIN.LOCAL
local master = no
os level = 1
domain master = no
preferred master = no
domain logons = no
dns proxy = no

auth methods = winb
ind
dos charset = UTF-8
unix charset = UTF-8
display charset = UTF-8

winbind use default domain = yes
winbind uid = 10000-15000
winbind gid = 10000-15000
winbind e
num users = yes
winbind enum groups = yes
template homedir = /DOMAIN/%U
obey pam restrictions = Yes
#======================= Share Definitions ======================= [homes] path = /DOMAIN/%U
comment = Home D
irectories for %u
read only = No
browseable = No
create
mode = 0600
directory mode = 0700
v
eto files = /*.mp3/*.avi/*.wma/*.mpeg/*.exe/*.vob
delete veto files = yes


nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat

hosts: files dns wins
networks: files dns
protocols: db files
services: db files
ethers: db files
rpc: db files


/etc/pam.d/samba
@include common-auth
@include common-account
@include common-session

auth required /lib/security/pam_winbind.so
account required /lib/security/pam_winbind.so

session required pam_mkhomedir.so umask=
0077

/etc/krb5.conf

[libdefaults] default_realm = DOMAIN.LOCAL
clockskew = 300

v4_instance_resolve = false
v4_name_convert = { host = { rcmd = host f
tp = ftp } plain = { something = something-else } } [realms]
DOMAIN-NK.LOC
AL = {
kdc = srv.domain.local
admin_server =srv.domain.local
}
[domain_realm]
.domain.local = DOMAIN.LOCAL

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


2 ШАГ
Написал простенький скрипт ротации архивов. Предполагается хранить данные 3 дня

/etc/buckup_rotate.sh
#!/bin/bash
rm /BACKUP/userarch_3.tar.bz2
mv /BACKUP/userarch_2.tar.bz2 /BACKUP/userarch_3.tar.bz2
mv /BACKUP/userarch_1.tar.bz2 /BACKUP/userarch_2.tar.bz2
tar -cvjf /BACKUP/userarch_1.tar.bz2 /DOMAIN


Создаем файл:
/etc/cron.d/buckup_rotate
* 22 * * * root /etc/user_scripts/buckup_rotate.sh


Теперь архивирование будет производиться ежедневно в 22:00.

3 ШАГ
Устанавливаем пакет quota
apt-get install quota quotatool,
вносим необходимые изменения в fstab:
# /dev/sda1
UUID=b6ef4796-a71c-4abe-adbb-5c8d74dba343 / ext3 relatime,usrquota,grpquota,errors=remount-ro 0 1


4 ШАГ
Устанавливаем webmin. Скачиваем dep пакет с сайта http://webmin.com/, устанавливаем
dpkg -i ./webmin_1.470_all.deb ,
если ругается на зависимости доставляем следующие пакеты
apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
заходим на страницу администрирования https://srv:10000 логинимся, в правом меню выбираем раздел System → Disk Quotas. Здесь можно задать ограничения по каждому пользователю отдельно и/или на группу в целом.

5 ШАГ
Осталось дело за малым – на компьютере каждого пользователя сделать ярлычок открытия своей папочки на сервере. В интернете попалась интересная статья «Создаём персональный набор ярлыков для каждого пользователя в папке «Мой Компьютер»» автор Иван Коробко.
Сделал батник вносящий изменения в реестр, распространил его через доменные политики, теперь у каждого пользователя в папке мой компьютер отображается ярлык «Архив».

ссылки:
«Создаём персональный набор ярлыков для каждого пользователя в папке «Мой Компьютер»» автор Иван Коробко

среда, 20 мая 2009 г.

Ооо делааа!

Вчера на почту руководителя пришло коммерческое предложение, компании Олмар г. Новокузнецк.
Краткая цитата
"Добрый день, *****.
Наша компания оказывает услуги системного администрирования компьютеров и программного обеспечения. Мы знаем, что Вашу компьютерную и офисную технику никто не обслуживает. В свою очередь ...." бла бла бла.

И откуда они интересно знают? :)

Продолжение случилось сегодня. Звонят руководителю узнать о судьбе предложения, он вежливо гворит, что у нас есть системный администратор вполне устраивает все работает, так они набрались смелости говорить, что это они меня учили и неоднократно оказывали мне содействие. И что дешевле меня уволить и обслуживаться у них.

Компания ОЛМАР, таким образом вы не сделаете себе хорошую репутацию, а только испортите, город маленький.

Делаем выводы...

среда, 13 мая 2009 г.

Не только планировать, но и отчитываться

Планируете работы на следующий день, неделю, месяц? Отлично...
Нет? Почитайте тут Личный-тайм-менеджмент.

По своему опыту дополню, что полезно писать не только планы, но ежедневные и ежемесячные отчеты. Да это порой нудно, надо не забывать.
"Что дадут эти отчеты?", спросите Вы, попробую ответить:
1. Контроль выполнения планов;
2. Анализ распределения времени по группе работ (поддержка, разработка и т.п);
3. Наступает момент когда руководитель начинает сомневаться в вашей работе, нужны ли Вы вообще это может быть по 2 причинам все работает и вас не видно бегающим или сильно много бегаете;
4. База знаний, которая пожет вам вспомнить, что вы делали один, два, три года назад.

Сказать НЕТ

Думаю не редкость когда в компании системного администратора заставляют подкорректировать отчет в 1С, написать программку или наоборот программиста посмотреть, что с компьютером почему нет связи и т.п, а то и набрать текст или отправить почту. При этом гороят: "ну тут же просто", "да чего тут тебе делать-то". Всегда говорите "НЕТ"! Как только вы сказали "ДА" у вас уменьшится времени на основную работу, вы превратитесь в загноного человека, который вечно ничего не успевает. И Вам скорее всго за это не будут платить больше, а то и вообще спасибо не скажут.
Уметь сказть "НЕТ" - порой сложно, это может повлечь напряженность в коллективе, но скзав "ДА" напрягаться будите вечно Вы.

среда, 22 апреля 2009 г.

Опрос №1

Имеем:
  • 37 рабочих станций в 2 удаленных офисах + 1 очень удаленный офис;
  • 14 единиц оргтехники, не считая факсов;
  • 2 сервера Windows 2003 (AD - 2 сайта, 1C);
  • 1 Linux сервер (Squid, Почтовый сервер, VPN сервер);
  • Активное сетевое оборудование 2 маршрутизатора cisco и 1 коммутатор cisco, + куча "пассивки";
  • 4 входящих канала интернет;
  • МиниАТС, 16 входящих ТфОП;
  • Организация работы "аутсорсеров" по 1С и правовым системам;
  • Закупка техники, следить за заправкой картриджей.
На рабочих станциях обслуживается вагон и маленькая тележка прикладных программ, кроме 1С.

Компания находится за чертой города.

Вопрос?

1 Какой уровень специалиста требуется?
2 Какой уровень з/п требуется для данного специалиста, чтобы его заинтересовать?

P.S.
При ответе если не сложно указывайте город.
Заранее всем спасибо за ответы.

понедельник, 20 апреля 2009 г.

Особенность работы Cisco Zone-Based Policy Firewall и WCCP

Политика доступа между зоной LAN (пользователи) и зоной WAN (интернет) предусматривает, что в зоне LAN некоторым пользователям разрешен доступ к WAN по определенному набору протоколов, а остальным запрещен:

class-map type inspect match-any LAN-WAN-PROTOCOL-CLASS
match protocol http

match protocol https

match protocol aol

!

class-map type inspect match-all LAN-WAN-CLASS

match access-group name LAN-WAN-ACL

match class-map LAN-WAN-PROTOCOL-CLASS

!

ip access-list extended LAN-WAN-ACL

permit ip host 192.168.0.x any

permit ip host 192.168.0.y any

permit ip host 192.168.0.z any


Но вот особенность - если работает WCCP, то пользователи, не указанные в списке LAN-WAN-ACL, все равно имеют доступ к ресурсам WAN по протоколу http, так как WCCP делает редирект (в моем случае в зону DMZ, а между LAN и DMZ стоит правило "any any" ) и получается, что правило, которое должно было запретить доступ, не работает.

Решается указанием в редирект листе для WCCP того же списка доступа, что и в LAN-WAN-CLASS

ip wccp web-cache redirect-list LAN-WAN-ACL


понедельник, 13 апреля 2009 г.

Beeline чудит?

Внезапно на удаленном объекте перестала работать пересылка файлов по FTP, после некоторого разбирательства выяснилось:
1 - Почему-то DNS сервер beeline возвращает имя хоста из зарезервированной сети 192.168.0.0/24, что есть неправильно.








Связь устанавливалась с помощью GPRS/EDGE/3G модема GlobeTrotter, решение простое указать свой DNS-сервер вручную или если непредусматривается использование интернета кроме как для построения тунеля (мой случай) можно указать адрес loopback интерфейса 127.0.0.1 .










2 - Изменили значение MTU своего соединения, пришлось для интерфеса OpenVPN изменить MTU до 1400.














Одним словом, неприятный сюрприз от beeline :( ...

четверг, 9 апреля 2009 г.

Кросс в серверной

Так случилось, вместе с купленным нашей компанией офисным зданием, нам досталась компьютерная и телефонная сеть. В здании было некое подобие "серверного уголка" расположенного в проходной комнатке, куда сводилась вся кабельная инфраструктура. В ходе ремонта здания из проходной комнатки сделали небольшую серверную комнату. Непонятно из-за каких соображений бывшие хозяева здания обрезали все кабели как попало, попытка запихать все это в стойку и там скроссировать не увенчались успехом, выглядело ужасно. Дабы привести хозяйство в надлежащий вид пригласил поработать компанию специализирующуюся на монтаже СКС и кроссировке кабельных систем. Результатом работы стал аккуратный настенный кросс, откуда далее кабели ушли упорядоченно в стойку. Ниже представленно несколько фотографий иллюстрирующих как это делалось.





четверг, 19 февраля 2009 г.

Письмо ценою миллион...

-Алло, алло! Вы еще на работе?
-Нет, уже в пути до дома
-Вы нам срочно, срочно нужны, мы не можем уже 2 часа отправить письмо с договором, договор на миллионы!!!

Утром следующего дня директор требовал объяснений произошедшего. Внимательно выслушав объяснения, он просил подготовить проект по модернизации информационной структуры компании. Для решения задачи были привлечены сторонние специалисты высокого уровня, итогом их работы стал проект, обеспечивающий не только надежность доставки электронной почты, но и повышение отказоустойчивости локальной сети и серверов баз данных. После озвучивания конечной стоимости проекта, следовало резюме: "Что-то дорого... и так поработает". И не важно, что следующее письмо ему может стоить многих миллионов.

Производственные компании малого/среднего бизнеса на сегодняшний день не мыслимы без использования информационных технологий, но до сих пор руководители не научились считать убытки, например, в случае простоя работы финансовой системы или - еще страшней - ее потери.

На тех немногих семинарах, которые проводились в нашем городе и на которых рассказывалось о рисках в ИТ, никогда не присутствовал ни один руководитель компании, были системные администраторы, руководители ИТ отделов. Но ведь они по большей части не принимают решения, они технари, хорошие технари, но этого не достаточно для обоснования тех или иных проектов, если руководитель не понимает как оценивать риски и на основании их принимать решения о целесообразности вложения средств.

И поэтому досих пор в 90% случаев наблюдается картина "просящего сисадмина", который входит к директору с проектом и словами "Так будет лучше, надежней...", а выходит с поникшей головой и словами директора "Что-то дорого... и так поработает"

четверг, 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



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