суббота, 30 октября 2010 г.

Обновление прошивок (firmware) на серверах Dell R200, 2950 под RHEL.


  1. Скачать образ диска с обновлениями Dell Server Updates с сайта support.dell.com (3,5-4 Гб) на сервер
  2. Проверить наличие 32-х битных библиотек compat-libstdc++-33 и compat-libstdc++-296 (именно 32-х битные!)
    1. rpm -qa | grep compat-libstdc
  3. Установить данные библиотеки, если их нет в системе
    1. sudo yum -y install compat-libstdc
  4. Смонтировать образ диска с обновлениями в какую-нибудь папку, например,
    1. sudo mount -o loop OM_6.2.0_SUU.iso /mnt/
  5. Зайти в данную папку
    1. cd /mnt
  6. Запустить в консоли sudo ./suu -c для сравнения текущей версии прошивок и поставляемых на образе
  7. При наличие доступных обновлений запустить sudo ./suu -u
  8. Перегрузить сервер sudo reboot

    Возможные проблемы:
    /var/log/dell/suu/invcolOutput.log (No such file or directory)
    [/DIR/./bin/Linux/invcol]
    Problem reading from inventory output file [/var/log/dell/suu/invcolOutput.log]
    exiting SUU application ...

    Проблемы с запуском invcol. Стоит зайти в указанный каталог и вручную запустить ./invcol. В моем случае ругалось об отсутствии следующих пакетов/файлов:
    - zlib.i686 (libz.so.1)
    - procmail.x86_64 (no lockfile in $PATH) 

четверг, 28 октября 2010 г.

Автосохранение конфигурационного файла маршрутизатора Cisco на tftp-сервер.

Иногда приходится возиться с маршрутизаторами Cisco по роду деятельности. Расскажу о такой приятной возможности как автосохранение конфигурации маршрутизатора на tftp-сервер.

Установка/настройка tftp-сервера

sudo yum -y install tftp-server xinetd

vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -vvvc
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

- disable поменять с yes на no, тем самым разрешив сервис.
- Опция -c позволяет создавать новые файлы. По умолчанию, tftpd позволит выложить файл, если тот уже существует. По умолчанию, файлы создаются с разрешениями 666 (доступны на чтение/запись всем), пока не установлены опции --permissive или —umask.
- Опция -v позволяет увеличить уровень логгирования tftpd, можно указать несколько раз.
- Опция -s задает корневую директорию при старте.

Запуск сервиса

# запускать сервис на уровнях 3,4,5
sudo /sbin/chkconfig xinetd --level 345 on
# перезапустить сервер xinetd, который является посредником для tftpd
sudo /sbin/service xinetd restart

# создаем необходимые директории для хранения конфигурационных файлов
mkdir -p /var/lib/tftpboot/cisco/{krrog,kiev,poltava}
chmod -R 777 /var/lib/tftpboot/cisco

Для ограничения сервиса использовать либо iptables (tftp-сервер использует порт 69 udp), либо tcp_wrappers (бинарник in.tftpd).

Настройка cisco.

# указываем сервер имен
ip name-server 10.1.11.3
# далее директивы для управления автосохранением
archive
# путь куда будем сохранять конфигурацию
path tftp://mitra.office.com/cisco/vinnitsa/vn-branch-config
# делать сохранение по команде write memory
write-memory
# в некоторых случаях важно явно указать интерфейс, с которого связываться с tftp-сервером, например, в случае использования IPSec.
ip tftp source-interface Vlan1

Теперь, сделав
Cisco2811-Vinnica#wr me
Building configuration...
[OK]!!
Cisco2811-Vinnica#
получаем копию конфига в директории на tftp-сервере.

вторник, 26 октября 2010 г.

Настройка web-интерфейса RoundCube на RHEL 5.2

О программе.

RoundCube Webmail — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML и технологии AJAX. RoundCube Webmail устанавливается практически на любой сервер с поддержкой PHP и MySQL и предоставляет вам возможность работы с почтовыми ящиками по протоколам IMAP и SMTP.

Возможности программы
- Основана на PHP и MySQL
- Поддержка мультиязычности
- Полная поддержка MIME и HTML сообщений
- Вложения к письмам
- Поддержка IMAP
- Отправка писем сразу нескольким адресатам
- Простая адресная книга
- Система подсказки имени адресата при вводе
- Пересылка сообщений с вложениями
- Создание или удаление персональных папок
- Кэширование для ускорения доступа к письмам
- Поддержка внешнего SMTP сервера
- Расширенный пользовательский интерфейс
- Неограниченное количество пользователей и сообщений
- Полное изменение внешнего вида с помощью скинов
- Реализована область предпросмотра письма
- Проверка правописания

Делается допущение, что IMAP и SMTP серверы, MySQL сервер, а также сам RoundCube работают на одной машине с внутренним именем gw.ИМЯ_ФИЛИАЛА.office.com и внешним www.ИМЯ_ВНЕШНЕГО_ДОМЕНА (например, внутренний адрес — gw.nikolaev.office.com, внешний адрес — www.DOMAIN.nikolaev.ua). Разнести эти сервисы в разные места не составит большого труда, но тогда конфигурацию нужно будет соответствующим образом изменить.
Требования к установке RoundCube можно найти в файле INSTALL в корне архива с исходниками.

Основные требования:
- Поддержка вэб-сервером (Apache или Lighttpd) .htaccess
- PHP версии 5.2 и выше, включая
- PCRE, DOM, JSON, XML, Session, Sockets (необходимо)
- libiconv (рекомендуемо)
- mbstring, fileinfo, mcrypt (опционально)
- PHP с поддержкой OpenSSL
- MySQL (4.0.8 или выше), PostgreSQL, MSSQL

Проверка выполнения необходимых условий

Первым делом убеждаемся, что установлены все необходимые пакеты php.
$ rpm -qa | grep php
php-common-5.1.6-20.el5
php-cli-5.1.6-20.el5
php-mysql-5.1.6-20.el5
php-pdo-5.1.6-20.el5
php-5.1.6-20.el5
php-ldap-5.1.6-20.el5
$ php -v
PHP 5.1.6 (cli)

$ rpm -qa | grep mysql
mysql-5.0.45-7.el5
php-mysql-5.1.6-20.el5
mysql-server-5.0.45-7.el5
libdbi-dbd-mysql-0.8.1a-1.2.2
mysql-connector-odbc-3.51.12-2.2
mysql-5.0.45-7.el5


В данном случае версия php 5.1.6 меньше, чем в требованиях, а также не установлен пакет php-xml, отвечающий за поддержку расширения DOM. Требования к СУБД выполняются.

Обновление пакетов.

wget -c http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget -c http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

yum -y --enablerepo=remi,epel update mysql php
yum -y --enablerepo=remi,epel install php-xml (модуль dom.so)
yum -y --enablerepo=remi,epel install php-mbstring php-mcrypt


Проверяем версии ПО:
mysql —version
php —version


Возможные проблемы.

1. проблема
При возникновении следующих ошибок обновления mysql (для x86_64):
Transaction Check Error:
file /etc/my.cnf from install of mysql-libs-5.1.34-1.el5.remi.i386 conflicts with file from package mysql-5.0.45-7.el5.i386
file /usr/share/mysql/charsets/Index.xml from install of mysql-libs-5.1.34-1.el5.remi.i386 conflicts with file from package mysql-5.0.45-7.el5.i386


сделать:
yum remove mysql.i386

и затем снова запустить обновление php.
Если проблема осталась, запустите обновление mysql сначала:
yum -y --enablerepo=remi,epel update mysql

2. проблема:
ldd /usr/sbin/exim

выведет список разделяемых библиотек, необходимых для exim. Если там не окажется записи для какой-то библиотеки, необходимо проверить наличие ссылки на /usr/local/lib в файлах /etc/ld.so.conf.d/. Например, в выводе ldd /usr/sbin/exim libspf2 ссылается на пустое место.
ldd /usr/sbin/exim
 **********
        libcrypto.so.6 => /lib/libcrypto.so.6 (0x00203000)
        libpcre.so.0 => /lib/libpcre.so.0 (0x006b7000)
        libspf2.so.2 =>
***********


Ищем в файлах в каталоге /etc/ld.so.conf.d/ запись /usr/local/lib, если такой нет — добавляем ее в конец любого файла или создаем новый с данной записью. Выполняем следующую команду для обновления списка разделяемых библиотек.
/sbin/ldconfig -v | grep spf

Подготовка каталогов и распаковка исходников
cd /var/www
tar xzf roundcubemail-0.4.2.tar.gz
mv  roundcubemail-0.4.2 rcube
cd rcube
chmod 777 temp logs
cd config
cp db.inc.php.dist db.inc.php
cp main.inc.php.dist main.inc.php


Подготовка базы данных
mysql -u root -p
> create database rcubemail;
> grant all on rcubemail.* to rcube@'localhost' identified by 'Rcube_pasS';
> flush privileges;
> exit


Проблема 1:
Если получаете ошибку после flush privileges;
ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist
То можно запустить
mysql_fix_privilege_tables --password=SUPER_PASS_WHICH_I_WILL_NEVER_SAY

Для создания таблиц в только что созданной БД можно воспользоваться 2-мя методами — инициализировать в процессе автоматической настройки БД или выполнить все необходимые действия самим. Инициализация базы осуществляется при помощи sql-скрипта mysql.initial.sql, который распространяется в дистрибутиве RoundCube.

Установка таблиц Mysql
mysql -u rcube -pRcube_pasS rcubemail < mysql.initial.sql

Настройка сервера Mysql5


cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-networking
old_passwords=1


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Настройка web-сервера Apache2
vi /etc/httpd/conf.d/rcube.conf
Alias /rcube    /var/www/rcube
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REMOTE_HOST} !10
RewriteCond %{REMOTE_HOST} !172
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=302,L]

<Directory /var/www/rcube/>
Order Deny,Allow 

DirectoryIndex index.php
Deny from All
Allow from 127.0.0.1 10.1 172.16.0.0/12
</Directory>

cat /etc/httpd/conf.d/ssl.conf
Внутри секции <VirtualHost _default_:443> вставляем следующее:

<Directory "/var/www/rcube">
    Order deny,allow
    Allow from 127.0.0.1
</Directory>

SSLCertificateFile /etc/pki/tls/certs/www.YOUR_DOMAIN.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.YOUR_DOMAIN.key


Возможные ошибки:
Если у Вас используются подкаталоги в директории /var/www, например, /var/www/price, для которых Вы хотели бы отменить принудительное использование https — обратите внимание на директивы RewriteCond в файле /etc/httpd/conf.d/rcube.conf. Например, запрет на принудительное использование https для URL http://www.YOUR_DOMAIN.UA/price/price.zip, будет внесение в файл rcube.conf строчки:
RewriteCond %{REQUEST_URI} !/price/

ДО строчки RewriteRule.

Настройка полномочий/разрешений на файлы с сертификатом и ключом.
cd /etc/pki/tls/private/
chown apache.0 www.YOUR_DOMAIN.key
chmod 400 www.YOUR_DOMAIN.key

cd /etc/pki/tls/certs/
chown 0.0 www.YOUR_DOMAIN.crt
chmod 444 www.YOUR_DOMAIN.crt


Установка RoundCube

Перейти по ссылке http://gw.nikolaev.office.com/rcube/installer/ и следовать инструкциям мастера установки. На первой странице отобразятся некоторые требования, в случае если видите красные сообщения «NOT OK», то нужно доустановить или разрешить соответствующие модули.

Доустановить/включить обходимые модули для php
php -m | grep НАЗВАНИЕ_МОДУЛЯ, например, php -m | grep dom

Если в выводе не отображается ничего, либо ошибка поиска, то необходимо доустановить модуль с помощью yum, либо активировать модуль создав файл в каталоге /etc/php.d/НАЗВАНИЕ_МОДУЛЯ.ini с именем модуля и соответствующим содержанием, например:
cat /etc/php.d/dom.ini
extension=dom.so


Возможные ошибки

Ошибка в лог-файле /var/log/httpd/error_log
[error] [client 10.1.XX.XX] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead in /var/www/rcube/config/main.inc.php on line 486

Для устранения в php.ini добавить/изменить строку:
[Date]
date.timezone = Europe/Kiev


Перезапустить httpd командой и возобновить установку:
sudo /sbin/service httpd restart

После установки удалить каталог installer.
rm -fr /var/www/rcube/installer

Настройка RoundCube

Конфигурация БД rcubemail хранится в файле db.inc.php. Изменяем строчку под свои параметры БД, например:
$rcmail_config['db_dsnw'] = 'mysql://rcube:Rcube_pasS@localhost/rcubemail';

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

// $rcmail_config['enable_installer'] = true;
// Принудительно использовать https для небезопасного соединения
$rcmail_config['force_https'] = true;

// массив imap-серверов
$rcmail_config['default_host'] = "gw.nikolaev.office.com";

// предпочитаемый тип imap-аутентификации
$rcmail_config['imap_auth_type'] = PLAIN;

// имя smtp-сервера
$rcmail_config['smtp_server'] = 'gw.nikolaev.office.com';

// подставлять при аутентификации имя текущего пользователя
$rcmail_config['smtp_user'] = '%u';

// подставлять при аутентификации пароль текущего пользователя
$rcmail_config['smtp_pass'] = '%p';

// предпочитаемый тип smtp-аутентификации
$rcmail_config['smtp_auth_type'] = 'PLAIN';

// Отключение встроенного spell checker, проверяющего данные посредством Google
$rcmail_config['enable_spellcheck'] = false;

// Тип персональной адресной книги (ldap или sql)
$rcmail_config['address_book_type'] = 'sql';

// описание LDAP-каталога (AD, доступен только для чтения)
$rcmail_config['ldap_public']['FIRMA'] = array(
  'name'          => 'FIRMA address book',
  'hosts'         => array('vnk-dc02.nikolaev.office.com','vdp-dc04.office.com'),
  'port'          => 3268,
  'use_tls'         => false,
  'user_specific' => false,
  'base_dn'       => 'dc=office,dc=com',
  'bind_dn'       => 'nikolaev\user',
  'bind_pass'     => 'USER_PASS',
  'writable'      => false,   
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
  'required_fields'     => array("cn", "sn", "mail"), 
  'LDAP_rdn'      => 'mail',
  'ldap_version'  => 3,       // использовать LDAPv3
  'search_fields' => array('mail', 'cn'),  // поля поиска
  'name_field'    => 'cn',    // поле, представляющее контакт
  'email_field'   => 'mail',  // поле, представляющее e-mail контакта
  'surname_field' => 'sn',    //  поле, представляющее фамилию контакта
  'firstname_field' => 'gn',  //  поле, представляющее имя контакта
  'sort'          => 'cn',    // Поле, по которому сортируются результаты поиска.
  'scope'         => 'sub',   // режим поиска: sub|base|list
  'filter'        => '(&(|(objectclass=user)(objectclass=contact))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(mail=*))',
  'fuzzy_search'  => true,     // Разрешение wildcard поиска
  'sizelimit'     => '0',     //Ограничение количества записей результата, 0 — без лимита.
  'timelimit'     => '0',     // Число секунд для поиска, 0 — без ограничений.
);


// Упорядоченный массив адресных книг, в которых осуществляется поиск
$rcmail_config['autocomplete_addressbooks'] = array('sql','FIRMA'); 

// Кодировка по умолчанию для принимаемых сообщений
$rcmail_config['default_charset'] = 'Windows-1251'; 

// Строка заголовка, было Roundcube, я убрал.
$rcmail_config['product_name'] = '';

Украшательства

Заменить файл /var/www/rcube/skins/default/images/roundcube_logo.png на свой логотип с тем же именем.

/var/www/rcube/program/localization/ru_RU/labels.inc
Изменить по своему усмотрению строку:
$labels['welcome'] = 'Добро пожаловать в Firma-BRANCH Webmail';

Обновление до новой версии
1.Скачать новую версию
2.Сделать backup каталога /var/www/rcube и используемой БД
3.Переименовать каталог /var/www/rcube в /var/www/rcube-old
4.Создать новый каталог и распаковать туда новую версию
5.Скопировать старые config/main.inc.php и config/db.inc.php файлы в каталог config новой версии
6.Проверить файлы на наличие новых и изменения старых опций
7.Проверить в каталоге SQL наличие файлов "*.update.sql" и следовать инструкциям в них.

Дополнительные настройки:

http://trac.roundcube.net/wiki/Howto_Performance

Плагины
DKIMSTATUS


DKIMSTATUS — плагин для отображения статуса сигнатуры DKIM в каждом сообщении. Домашняя страница проекта в списке литературы.
Установка.
Распаковать архив в директорию с плагинами и добавить 'dkimstatus' в список активных плагинов в конфигурационном файле main.inc.php. Например,
// List of active plugins (in plugins/ directory)
$rcmail_config'plugins' = array('managesieve', 'vcard_attachments', 'dkimstatus');

Известные проблемы:

http://trac.roundcube.net/wiki/Howto_KnownIssues

Литература:

http://trac.roundcube.net/wiki/Howto_Install
http://blogs.ungrund.org/xio/2008/08/13/roundcube-on-debian-testing/
http://trac.roundcube.net/wiki/User_Guide_RU
http://jve.linuxwall.info/blog/index.php?pages/DKIMSTATUS-plugin-for-roundcube

Заметка о настройке IPSec на Cisco871.


IPsec (сокращение от IP Security) — набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP, позволяет осуществлять подтверждение подлинности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами в сети Интернет. 
Протоколы IPsec работают на сетевом уровне (уровень 3 модели OSI). IPsec-протоколы можно разделить на два класса: протоколы отвечающие за защиту потока передаваемых пакетов и протоколы обмена криптографическими ключами. На настоящий момент определён только один протокол обмена криптографическими ключами — IKE (Internet Key Exchange) — и два протокола, обеспечивающих защиту передаваемого потока: ESP (Encapsulating Security Payload — инкапсуляция зашифрованных данных) обеспечивает целостность и конфиденциальность передаваемых данных, в то время как AH (Authentication Header — аутентифицирующий заголовок) гарантирует только целостность потока (передаваемые данные не шифруются). 
Существует два режима работы IPsec: транспортный режим и туннельный режим. 
В транспортном режиме шифруется (или подписывается) только информативная часть IP-пакета. Маршрутизация не затрагивается, так как заголовок IP пакета не изменяется (не шифруется). Транспортный режим как правило используется для установления соединения между хостами. Он может также использоваться между шлюзами, для защиты туннелей, организованных каким-нибудь другим способом (IP tunnel, GRE и др.). 
В туннельном режиме IP-пакет шифруется целиком. Для того, чтобы его можно было передать по сети, он помещается в другой IP-пакет. По существу, это защищённый IP-туннель. Туннельный режим может использоваться для подключения удалённых компьютеров к виртуальной частной сети или для организации безопасной передачи данных через открытые каналы связи (например, Интернет) между шлюзами для объединения разных частей виртуальной частной сети. 
Режимы IPsec не являются взаимоисключающими. На одном и том же узле некоторые SA могут использовать транспортный режим, а другие — туннельный. 
Схема подключения (рисовал в GNS, сильно не пинайте):



где LAN_192.168.100.144 - это пример подсети представительства. 
Требования: компьютеры из подсети представительства должны получать доступ к ресурсам ЦО (подсеть 10.0.0.0/8) и филиала (подсети 172.ХХ.0.0/16).


Итак, приступим.

1. Подключаем синий кабель в консольный порт Cisco871, настраиваем параметры подключения Hyperterm или Putty, включаем питание Cisco871 и ждем пока появится приглашение для входа 
2. Логин/пароль для первого входа — cisco/cisco, как написано в приглашении. 
3. Удаляем существующий конфигурационный файл startup-config (нам он при настройке не понадобится, потому как придётся удалять 5-7 лишних настроек) 
yourname#wr erase 
Erasing the nvram filesystem will remove all configuration files! Continue? [confirm] 
[OK] 
Erase of nvram: complete 
yourname# 
*Mar  1 00:11:16.363: %SYS-7-NV_BLOCK_INIT: Initialized the geometry of nvram 

4. Проверяем, что конфигурационный файл удалился (можно сокращать, если команда уникальна). 
yourname#sh start 
startup-config is not present

5. Перезагрузка маршрутизатора в новый (пустой) конфигурационный файл. 
yourname#reload 
System configuration has been modified. Save? [yes/no]: no 
Proceed with reload? [confirm]

6. Когда маршрутизатор загрузился — отказываемся от диалога начальной конфигурации, так как будем все конфигурировать вручную. 
         --- System Configuration Dialog --- 
Would you like to enter the initial configuration dialog? [yes/no]: 
% Please answer 'yes' or 'no'. 
Would you like to enter the initial configuration dialog? [yes/no]: n 
Press RETURN to get started!

7. Переходим в привилегированный режим 
Router>en

8. Переходим в режим конфигурации (приглашение командной строки C871-Apt24Nk(config)#
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.

9. Задать имя маршрутизатора
C871-Apt24Nk(config)#hostname C871-Apt24Pl

10. Определить пул адресов, раздаваемых по DHCP, с именем, например, Apt24Pl_POOL и такие параметры как подсеть, домен, маршрутизатор по умолчанию и список серверов днс.
ip dhcp pool Apt24Pl_POOL
   network 192.168.100.144 255.255.255.240
   domain-name Poltava.Office.com
   default-router 192.168.100.145
   dns-server 10.1.11.2 10.1.11.3
Если надо сделать постоянную привязку IP-MAC, то нужно сделать отдельный пул с необходимыми параметрами. client-identifier формируется как 01+MAC, т.е. начинается на 01 далее идет MAC-адрес.
ip dhcp pool Apt24KhKassaSRV_POOL
   host 192.168.100.147 255.255.255.240
   client-identifier 0100.2618.d976.08
   domain-name Poltava.Office.com
   default-router 192.168.100.145
   dns-server 10.1.11.2 10.1.11.3
11.Исключаем IP-адрес маршрутизатора из пула адресов, выдаваемых DHCP
ip dhcp excluded-address 192.168.100.145

12. Задаём имя домена, в котором находится маршрутизатор (необходимо для ssh)
ip domain name Poltava.Office.com

13. Задаем IP-адреса серверов имен, полученные от провайдера
ip name-server 212.XXX.YY.5 
ip name-server 212.XXX.YY.9
ip name-server 10.1.11.2

14. Создаем своего пользователя с правами администратора
username admin privilege 15 secret ***********

15. Настройка IKE, ISAKMP Policy
# создаем полиси с номером 20, первыми отрабатываются полиси с наименьшими номерами, номера полиси на удаленных устройствах могут не совпадать.
crypto isakmp policy 20 
# шифрование. Бывает aes 128,192,156; des; 3des
 encr aes 
# аутентификация удаленной стороны по заданному ключу
 authentication pre-share 
# для обмена ключами использовать Diffie-Helman group 2 (1024 бит)
 group 2 
# время жизни ключа 28800 секунд (8 часов)
 lifetime 28800

16.Добавляем Pre-shared key для удаленного хоста
crypto isakmp key *********-Ku-Ku address 195.24.XX.10 no-xauth

17.Создаем access-list для трафика, который будет направляться в туннель. Все пакеты из локальной подсети аптеки на внутренние адреса компании.
ip access-list extended IPSEC_TRAFFIC 
 permit ip 192.168.100.144 0.0.0.15 10.0.0.0 0.255.255.255 
 permit ip 192.168.100.144 0.0.0.15 172.16.0.0 0.15.255.255 
 permit ip 192.168.100.144 0.0.0.15 192.168.0.0 0.0.255.255

18.Создание transform-set
crypto ipsec transform-set VPNSET_AES_SHA esp-aes esp-sha-hmac

19.Создание crypto map, которая объединяет transform-set, isakmp-policy, access-list и удаленный хост.
# Создать можно ТОЛЬКО одну crypto map для одного исходящего интерфейса. В одной crypto map можно указать несколько ipsec-туннелей, используя порядковый номер, который обрабатывается в порядке возрастания.
crypto map APT24MAP 20 ipsec-isakmp 
# описание 
 description tunnel_to_cisco 
# указать удаленный хост 
 set peer 195.24.156.130 
# указать transform-set 
 set transform-set VPNSET_AES_SHA 
# указать access-list 
 match address IPSEC_TRAFFIC

20.Настройка внутреннего интерфейса vlan 1
 interface Vlan1 
 ip address 192.168.100.145 255.255.255.240 
# указываем, что данный интерфейс участвует в nat изнутри 
 ip nat inside

21.Настройка внешнего интерфейса FastEthernet4
interface FastEthernet4 
 ip address 89.**.***.** 255.255.255.252 
# указываем, что данный интерфейс участвует в nat снаружи 
 ip nat outside 
# повесить crypto map на интерфейс 
crypto map APT24MAP

Если вы счастливый обладатель pppoe-соединения с провайдером: изменить следует настройки исходящего интерфейса и указания маршрута по умолчанию, а также изменить правило ip nat inside ....

Описываем ФИЗИЧЕСКИЙ ИНТЕРФЕЙС
interface FastEthernet4 
 no ip address 
 ip virtual-reassembly 
 no ip route-cache cef 
 no ip route-cache 
 duplex auto 
 speed auto 
 pppoe enable group global 
 pppoe-client dial-pool-number 1

Описываем ЛОГИЧЕСКИЙ ИНТЕРФЕЙС.
interface Dialer0 
 ip address negotiated 
 ip mtu 1492 
 ip nat outside 
 ip virtual-reassembly 
 encapsulation ppp 
 dialer pool 1 
 dialer-group 1 
 no cdp enable 
 ppp authentication chap pap callin 
 ppp chap hostname ЛОГИН 
 ppp chap password 0 ПАРОЛЬ 
 ppp pap sent-username ЛОГИН password 0 ПАРОЛЬ 
 crypto map APT24MAP

Тогда ip route и ip nat inside станет таким:
ip route 0.0.0.0 0.0.0.0 Dialer0 
ip nat inside source list NONAT interface Dialer0 overload

22.Создание access-list для указания правил nat
ВАЖНО: первые 3 строчки запрещают nat для внутренних адресов компании, потому, как nat применяется к интерфейсу ДО ipsec. Без данной настройки nat заберет пакет, отправит его на роутер по умолчанию, который, увидя «серый» внутренний IP, удалит пакет.
ip access-list extended NONAT. 
 deny   ip any 10.0.0.0 0.255.255.255 
 deny   ip any 172.16.0.0 0.15.255.255 
 deny   ip any 192.168.0.0 0.0.255.255 
 permit ip 192.168.100.144 0.0.0.15 any

23.Собственно, правило, описывающее nat.
ip nat inside source list NONAT interface FastEthernet4 overload

24.Добавим ключ rsa для корректной работы ssh
C871-Apt24Nk(config)#crypto key generate rsa modulus 1024

25. Параметры для логгирования сообщений
C871-Apt24Nk(config)#service timestamps log datetime msec localtime show-timezone

26. Настройка автосохранения конфига на tftp-сервере.
C871-Apt24Nk(config)#ip tftp source-interface Vlan1 
C871-Apt24Nk(config)#archive 
C871-Apt24Nk(config-archive)#path tftp://IP_OR_NAME_OF_TFTP-SERVER/cisco/BRANCH/XX-branch-config 
C871-Apt24Nk(config-archive)#write-memory

Теперь каждый раз после сохранения конфигурации командой write, копия конфигурационного файла будет отправляться на tftp сервер, с именем XX-branch-config-[+1] и мы будем иметь на сервере все версии конфигов (XX-branch-config-1, XX-branch-config-2, XX-branch-config-3 и.т.д.). Для тех кто не понял, BRANCH - название филиала, например, nikolaev, XX - двубуквенный код филиала, например, nk, pl kiev (исключение) и т.п.

27. Настройка синхронизации времени и часового пояса. Параметр source указывает на интерфейс, с которого будут отправляться запросы на синхронизацию времени.
C871-Apt24Nk(config)#ntp server 10.1.11.2 source Vlan1 
C871-Apt24Nk(config)#ntp server 10.1.11.3 source Vlan1 


C871-Apt24Nk(config)#clock timezone KIEV 2 
C871-Apt24Nk(config)#clock summer-time KIEV recurring last Sun Mar 2:00 last Sun Oct 3:00

28. Магическая строчка. Без нее интернета НЕ будет.
ip route 0.0.0.0 0.0.0.0 ИСХОДЯЩИЙ_ИНТЕРФЕЙС (например, Dialer0 или Fa4)

или
ip route 0.0.0.0 0.0.0.0 GATEWAY_OF_YOUR_PROVIDER

29.Выходим из режима конфигурации
C871-Apt24Nk(config)#^Z

30.Записываем (сохраняем) конфигурационный файл startup-config
C871-Apt24Nk#wr me 
Building configuration... 
[OK]


Литература:
http://ru.wikipedia.org/wiki/IPsec
http://www.xgu.ru/wiki/IPsec_в_Cisco

Первое сообщение в блоге.

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