Азы конфигурирования маршрутизаторов Cisco для чайников и ленивых

вступление №1(editorial)
Что такое маршрутизатор, надеюсь, все знают? "Все!" — хором ответили читатели. Хорошо... Что характерно, еще совсем недавно наблюдалась такая тенденция, что слово маршрутизатор (или по свойски, не по русски — рутер) в обиходе вытеснялся названием наиболее популярной торговой марки производителя этого поистине необходимого сетевого устройства. По аналогии с парами "копировальный аппарат" = "ксерокс", "захватчик и анализатор пакетов" = "сниффер", у маршрутизатора были все шансы получить гордое название "цыска". Лингвистические ожидания не оправдали себя, но, тем не менее, шутка ли — по оценке Cisco Systems, порядка 90% интернет-сетей по всему миру построены на их маршрутизаторах. Уж не знаю, как они это подсчитали, но исходя из того, что до сих пор большинство сетевых инженеров свято уверены, что в таком тривиальном деле, как подключение к Интернет по выделенной линии к синхронному порту маршрутизатора без "цыски" не обойдешься... все может быть :)
...В те времена, когда ваша покорная слуга была еще совсем юным сетевиком, лучшим признанием "крутости" специалиста по IP-сетям могла служить характеристика, что он "без мануала с закрытыми глазами цыски настраивает". Видели тот мануал? Им, кстати, человека можно убить без особого напряга ;). 
Это я все к чему... Раз уж мы берем за аксиому, что 90% Всемирного Интернету работает на "цысках", каждый уважающий себя сетевик должен иметь хотя бы общее представление, на какой кобыле к этому мудрому девайсу подъезжать. Вот представьте себе: приходите вы на новое место работы, а там как раз реорганизация в сетевом отделе, и вы ну буквально с первого дня "попадаете под раздачу". Начальник плюх вам Cisco router на стол: сообрази, мол, по-быстрому, чтоб пакеты уже через пол-часика зашуршали. И что делать, если читать мануал, сопоставимый по объему с томиком "Война и Мир", нет времени? Правильно, надо воспользоваться шпаргалкой ;) Вот как раз такую шпаргалку я вам и отыскала на просторах паутины всемирной. Некто с весьма оригинальным ником Neo в совершенно сжатом и доходчивом (a-la "нажми на кнопку — получишь результат") стиле делится опытом, как по-быстренькому, не вдаваясь в подробности, заставить злополучный агрегат более-менее удовлетворительно функционировать. Поэтому если вы еще не сталкивались в своей профессиональной деятельности с "цысками", но чувствуете, что может случиться такая оказия — сохраните этот номер "СР", авось пригодится ;)

вступление №2 (авторское)
Роутеры фирмы Cisco являются весьма надежным оборудованием и по удобству конфигруирования, по мнению автора, превосходят своих конкурентов, правда, и стоимость их на 20% превышает аналоги других производителей в классе коммутаторов и роутеров для компаний среднего звена. В статье мы рассмотрим логическое деление блока адресов выделенного ISP на подсети, повторяющие структуру компании по отделам, конфигурирование роутера серии Cisco 2500 для организации доступа небольшой компании в Интернет с подключением по сихронному каналу 256K к ISP и фильтрацией IP пакетов. Наш роутер будет иметь один задействованный серийный порт для подключения к ISP (Serial 0) и один Ethernet порт (е0), смотрящий в локальную сеть компании, под которую ISP выделил сеть на 254 хоста. 

начальное конфигурирование роутера 
На маршрутизаторах Cisco работает высокопроизводительная и созданная с нуля операционная система IOS, находящаяся в энергонезависимой памяти (flash). Типичная модель серии 2500 имеет 1 Ethernet порт подключаемый к хабу или коммутатору в локальной сети через трансивер AUI->UTP и два серийных порта для подключения к глобальным каналам (Seriаl 0, Serial 1). Имена интерфейсов можно указывать как Ethernet0 или e 0. Если это модульный коммутатор Catalyst, то указывается сначала тип интерфейса, затем слот, а затем порт. 
Например 3-я ethernet плата и 2 порт на плате указывается как "e 3/2". Помимо этого имеется консольный порт для конфигурирования роутера (включаемый в серийный порт компьютера) и дополнительно AUX- порт для подключения модема. Конфигурирование роутера можно производить через консольный порт, AUX порт и через сессию telnet.
Более новые версии IOS позволяют работать с роутером по SSH-сеансу. Но при первой загрузке роутер требуется сконфигурировать через консольный порт. Для этого, установив скорость порта Serial в 9600 на UNIX-хосте, начинаем конфигурирование в терминальной программе. Например это может быть tip, cu, minicom. Для tip последние две строчки конфига /etc/remote должны выглядеть так:
# Hardwired line
cuaa0:dv=/dev/cuaa0:br#9600:
cuaa1:dv=/dev/cuaa1:br#9600:

Подсоединив консольный кабель (идет в поставке) к роутеру (порт CON) и другой конец через преходник к ПК заходим на консоль Cisco роутера:
bash-2.04#tip cuaa0

Затем включаем роутер и видим, что сначала загружается начальный загрузчик bootstrap:

System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
Copyright (c) 1986-1995 by cisco Systems
2500 processor with 16384 Kbytes of main memory

F3: 3268680+81304+204996 at 0x3000060

Restricted Rights Legend

Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph
(c) of the Commercial Computer Software — Restricted
Rights clause at FAR sec. 52.227-19 and subparagraph
(c) (1) (ii) of the Rights in Technical Data and Computer Software clause at DFARS sec. 252.227-7013.
cisco Systems, Inc.
170 West Tasman Drive
San Jose, California 95134-1706

Дальше начальный загрузчик загружает саму операционную систему IOS из флэша (flash):

Cisco Internetwork Operating System Software 
IOS (tm) 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Image text-base: 0x0301C8DC, data-base: 0x00001000

cisco 2500 (68030) processor (revision D) with 16380K/2048K bytes of memory.
Processor board ID 02413443, with hardware revision 00000000
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface.
2 Serial network interfaces.
32K bytes of non-volatile configuration memory.
4096K bytes of processor board System flash (Read ONLY)

Press RETURN to get started!

Cisco Internetwork Operating System Software 
IOS (tm) 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu 

Надо сказать, что IOS можно загрузить не только из флэша, но и из ОЗУ роутера, а также с TFTP сервера. Поскольку это первая загрузка роутера, нам предлагают пройти этапы конфигурирования роутера (эта программа запускается как setup). Как видно ниже, процесс конфигурирования достаточно прозрачен и прост. После того, как вы ответите на вопросы, программа построит конфиг и запишет его в NVRAM и начнет перезагружаться. Итак, начинаем конфигурирование интерфейсов в программе setup:

--- System Configuration Dialog ---
At any point you may enter a question mark '?' for help.
Refer to the 'Getting Started' Guide for additional help.
Use ctrl-c to abort configuration dialog at any prompt.
Default settings are in square brackets '[]'.
Would you like to enter the initial configuration dialog? [yes]: yes

Просматриваем список интерфейсов на нашем роутере : 
First, would you like to see the current interface summary? [yes]: 

Any interface listed with OK? value "NO" does not have a valid configuration

InterfaceIP-AddressOK?MethodStatusProtocol
Ethernet0unassignedNOnot setupup
Serial0unassignedNOnot setdowndown
Serial1unassignedNOnot setdowndown

Configuring global parameters:

Имя роутера :

Enter host name [Router]: 
Вводим так enable-secret для доступа к конфигурированию роутера :

The enable secret is a one-way cryptographic secret used instead of the enable password when it exists.

Enter enable secret: s1

Затем вводим enable-password (оставленно для совместимости со старыми версиями IOS) :

The enable password is used when there is no enable secret and when using older software and some boot images.

Enter enable password: s2

Вводим пароль на виртульный терминал :

Enter virtual terminal password: s2

Разрешаем SNMP (для того, чтобы мы могли получить статистику):

Configure SNMP Network Management? [yes]: yes
Community string [public]: public1

Наш роутер имеет только поддежку IP (без IPX), его мы и конфигурируем :

Configure IP? [yes]: yes

Поскольку с ISP у нас роутинг будет статический, мы не включаем протоколы маршрутизации : 
Configure IGRP routing? [yes]: no
Configure RIP routing? [no]: 

Задаем IP адресс на Ethernet интерфейсе, оставляя интерфейс Serial 0 as unnumbered (что это такое разберем позже) : 
Configuring interface parameters:

Configuring interface Ethernet0:
Is this interface in use? [yes]: 
Configure IP on this interface? [yes]: 
IP address for this interface: 1 200.1 200.200.1
Number of bits in subnet field [0]: 
Class C network is 200.200.200.0, 0 subnet bits; mask is 255.255.255.0

Configuring interface Serial0:
Is this interface in use? [yes]: 
Configure IP on this interface? [yes]: no

Отключаем Serial1 :

Configuring interface Serial1:
Is this interface in use? [yes]: no

The following configuration command script was created:

И вот в итоге мы получаем такой файл конфигурации :

hostname Router
enable secret 5 $1$FE5i$sIvZuXxqJWjFllqA5heFn1
enable password s2
line vty 0 4
password s2
snmp-server community public1
!
ip routing
!
interface Ethernet0
ip address 200.200.200.1 255.255.255.0
!
interface Serial0
no ip address
!
interface Serial1
shutdown
no ip address
!
end

Затем отвечаем положительно на вопрос о записи этой конфигурации в NVRAM и запуске ее: 
Use this configuration? [yes/no]: yes
Building configuration...
[OK]Use the enabled mode 'configure' command to modify this configuration.

Press RETURN to get started!

%SYS-5-RESTART: System restarted --

Cisco Internetwork Operating System Software 
IOS (tm) 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Router>

Привыкайте к тому, что вам придется 90% времени работать с тектовым конфигом, хотя в природе есть такой програмный продукт, как CiscoWorks, но он хорош только при наличии огромного числа роутеров (peers). Итак, мы находимся в консоли роутера. Все наши действия выполняются интерпретатором команд EXEC. Выполнение команд ведется в одном из двух режимов — пользовательском или привилегированном. Пользовательский режим позволяет собирать общую информацию о роутере при вводе команд на консоли, например наш роутер имеет приглашение : 
Router>

введя команду show version мы увидим с чем мы работаем :

Router>show version

Cisco Internetwork Operating System Software 
IOS (tm) 3000 Software (IGS-I-L), Version 11.0(4), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1995 by cisco Systems, Inc.
Compiled Mon 18-Dec-95 17:49 by alanyu
Image text-base: 0x0301C8DC, data-base: 0x00001000

ROM: System Bootstrap, Version 5.2(8a), RELEASE SOFTWARE
ROM: 3000 Bootstrap Software (IGS-RXBOOT), Version 10.2(8a), RELEASE SOFTWARE (fc1)

Router uptime is 3 days, 1 hour, 20 minutes
System restarted by error — Software forced crash, PC 0x311B808
System image file is "flash:igs-in-l.110-4", booted via flash

cisco 2500 (68030) processor (revision D) with 16380K/2048K bytes of memory.
Processor board ID 02413443, with hardware revision 00000000
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface.
2 Serial network interfaces.
32K bytes of non-volatile configuration memory.
4096K bytes of processor board System flash (Read ONLY)

Configuration register is 0x2102

Состояние всех интерфейсов можно просмотреть командой :

Router>show int
Ethernet0 is up, line protocol is up 
Hardware is Lance, address is 0000.0c5d.8231 (bia 0000.0c5d.8231)
Internet address is 200.200.200.1 255.255.255.0
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec, rely 255/255, load 1/255
Encapsulation ARPA, loopback not set, keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 4:00:00
Last input 0:00:10, output 0:00:09, output hang never
Last clearing of "show interface" counters never
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
16094 packets input, 1867191 bytes, 0 no buffer
Received 16094 broadcasts, 0 runts, 0 giants
16 input errors, 16 CRC, 16 frame, 0 overrun, 0 ignored, 0 abort
0 input packets with dribble condition detected
30833 packets output, 2896155 bytes, 0 underruns
3 output errors, 416 collisions, 1 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out Serial0 is down, line protocol is down
Hardware is HD64570
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255
Encapsulation HDLC, loopback not set, keepalive set (10 sec)
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 collisions, 8805 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
DCD=up DSR=up DTR=down RTS=down CTS=up
Serial1 is administratively down, line protocol is down 
Hardware is HD64570
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255
Encapsulation HDLC, loopback not set, keepalive set (10 sec)
Last input never, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0 (size/max/drops); Total output drops: 0
Output queue: 0/64/0 (size/threshold/drops) 
Conversations 0/0 (active/max active)
Reserved Conversations 0/0 (allocated/max allocated)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 packets output, 0 bytes, 0 underruns
0 output errors, 0 collisions, 4 interface resets, 0 restarts
0 output buffer failures, 0 output buffers swapped out
0 carrier transitions
DCD=down DSR=down DTR=down RTS=down CTS=down

Если ввести сокращенно команду sh int e0, то вы увидите информацию только по Ethernet-интерфейсу. Как вы видите, этой информации часто хватает, чтобы определить причину неисправности какого либо интерфейса или кабельного соединения. По команде show prot вы увидите, какие протоколы активизированы на интерфейсах. Напрмер сейчас у нас нет соединения с ISP и на серийных интерфейсах у нас сплошные down. Заметьте, что Serial1 у нас administratively down как неиспользуемый. Подробный список команд в пользовательском режиме можно получить введя команду "?".
Большая часть работ, такие, как конфигурирование маршрутизации, программное выключение интерфейсов и создание ACL (списков доступа), измение глобального конфига осуществляются в привелигерованном режиме. Для этого требуется знать привелигерованный пароль. Перейдя в этот режим командой enable и введя пароль который мы ввели на этапе кофигурирования роутера программой setup мы увидим, что список команд здесь шире.
В этом режиме можно просмотреть файл конфигурации и редактировать его : 
Router#sh conf
Using 465 out of 32762 bytes
!
version 11.0
service config
service udp-small-servers
service tcp-small-servers
!
hostname Router
!
enable secret 5 $1$FE5i$sIvZuXxqJWjFllqA5heFn1
enable password s2
!
!
interface Ethernet0
ip address 200.200.200.1 255.255.255.0
!
interface Serial0
no ip address
no fair-queue
snmp-server community public1 RO
!
interface Serial1
no ip address
shutdown
!
line con 0
exec-timeout 0 0
line aux 0
transport input all
line vty 0 4
password s2
login
!
end

Войдем в режим редактирования глобального файла командой configure terminal и запретим, напрмер, использование small serivices, поскольку наш роутер должен будет выполнять роль шлюза в интернет и одновременно firewall-a. Сначала посмотрим включены ли эти сервисы командой sh conf и увидим строчки:

service udp-small-servers
service tcp-small-servers

Заходим в режим редактирования :

Router#config terminal

Отключаем эти сервисы вводом префикса "no" и полного написания команды: 
Router(config)#no service udp-small-servers 
Router(config)#no service tcp-small-servers 
Затем выходим из режима редактирования :

Router(config)#exit

Таким же образом можно быстро отключить какой либо интерфейс, зайдя в режим конфигурирования интерфейса: 
Router#configure terminal
Router(config)#interface ethernet 0
Router(config-if)#shutdown
Router(config-if)#exit
Router(config)#exit
Router#write memory
Building configuration ...

Если вы введете no shutdown, то интерфейс будет активизирован. В более новых версиях IOS команда write memory заменена на copy-runing config startup-config, т.е текущий файл конфигурации записывается в энергонезависимую память (NVRAM). Другая команда — write terminal — показыват действующую конфигурацию (в новых версия IOS — show running config). 
На этом этапе нам надо убедиться, что сетевой интерфейс Ethernet 0 у нас активирован и его IP-адрес — 200.200.200.1 — пингуется из локальной сети. 
Теперь перейдем к рассмотрению Serail-интерфейсов. В большинстве случаев подключение синхронных интерфесов клиента и провайдера производится по V.35-интерфейсу и серийные порты конфигурируются как unnunbered. Это дает возможность вести политику доступа в пределах одного адресного пространства, манипулируя трафиком на одном Ethernet-интерфейсе. Для этого нам необходимо сконфигурировать интерфейс Serial 0 следующим образом, без присвоения ему IP адреса: 

Router#conf t
Router(config)#int s0
Router(config-if)#ip unnumbered Ethernet 0
Router(config-if)#exit
Router(config)#exit
Router#wr mem

IP-адрес Ethernet-интерфеса нашего ISP — 200.200.199.1 (а мы договорились, что у ISP Serial скофигрурен как непронумерованный). Для того, чтобы мы могли работать с ресурсами Интернета, мы пропишем статический роутинг на этот IP через интерфес Serial 0: 

Router(config)#ip route 0.0.0.0 0.0.0.0 200.200.200.199.1 Serial0
Router#wr mem

Провайдер со своей стороны прописывает роутинг на своем маршрутизаторе на всю нашу сеть через IP-адрес нашего роутера (200.200.200.1). Соответственно, на всех хостах локальной сети мы должны поставить IP-адрес нашего роутера как адрес шлюза в Интернет. Маска же должна соответствовать той подсети, в которой находится данных хост, согласно логической структуре сети компании. 
При поступлении пакета из внутреней сети наш роутер будет проверяет, не адресован ли он в локальную сеть, по заголовку IP пакета. Если это не так, он адресует это пакет во внешнюю сеть через IP-адрес роутера ISP.

создание списков доступа (ACL) 
Списки доступа на роутере Сisco работают и строятся так же, как правила фильтрации в популярном IPFW или IPF на базе FreeBSD. Правила читаются в пордке следования, и как только находится соответствие шаблону, маршрут пакета определяется этим правилом. Вы можете создавать списки доступа в глобальном конфиге (командой access list), а затем закрепить какой либо список за любым интерфейсом. Можно создать следующие списки доступа:

Router#configure terminal 
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#access-list ?
<1-99>IP standard access list
<100-199>IP extended access list
<1100-1199>Extended 48-bit MAC address access list
<200-299>Protocol type-code access list
<700-799>48-bit MAC address access list

Вот полный синтактис команды : access-list номер_списка permit/deny протокол исходный_адрес порт целевой_адрес порт 

Синтактис расширеного списка мы рассмотрим на примере строчки списка, разрешающей работать по протоколу SMTP всем сотрудникам компании. Номер расширенного списка берем произвольный, 110:

Router(config)#access-list 110 ?
deny Specify packets to reject
permit Specify packets to forward

Разрешаем прохождение пакетов :

Router(config)#access-list 110 permit ?
<0-255>An IP protocol number
eigrp Cisco's EIGRP routing protocol
gre Cisco's GRE tunneling
icmp Internet Control Message Protocol
igmp Internet Gateway Message Protocol
igrp Cisco's IGRP routing protocol
ip Any Internet Protocol
ipinip IP in IP tunneling
nos KA9Q NOS compatible IP over IP tunneling
ospf OSPF routing protocol
tcp Transmission Control Protocol
udp User Datagram Protocol

Вводим протокол :

Router(config)#access-list 110 permit tcp ?
A.B.C.D Source address
any Any source host
host A single source host

Вводим исходный адрес (в нашем примере "any" означает любой хост или сеть):

Router(config)#access-list 110 permit tcp any ?
A.B.C.D Destination address
any Any destination host
eq Match only packets on a given port number
gt Match only packets with a greater port number
host A single destination host
lt Match only packets with a lower port number
neq Match only packets not on a given port number
range Match only packets in the range of port numbers

Вводим целевой адрес :

Router(config)#access-list 110 permit tcp any any ?
eqMatch only packets on a given port number
establishedMatch established connections
gtMatch only packets with a greater port number
logLog matches against this entry
ltMatch only packets with a lower port number
neqMatch only packets not on a given port number
precedenceMatch packets with given precedence value
rangeMatch only packets in the range of port numbers
tosMatch packets with given TOS value
<cr>

Указываем, что мы хотим только один критерий — номер порта равный smtp (eq):

Router(config)#access-list 110 permit tcp any any eq ?
<0-65535>Port number
bgpBorder Gateway Protocol (179)
chargenCharacter generator (19)
cmdRemote commands (rcmd, 514)
daytimeDaytime (13)
discardDiscard (9)
domainDomain Name Service (53)
echoEcho (7)
execExec (rsh, 512)
fingerFinger (79)
ftpFile Transfer Protocol (21)
ftp-dataFTP data connections (used infrequently, 20)
gopherGopher (70)
hostnameNIC hostname server (101)
ircInternet Relay Chat (194)
kloginKerberos login (543)
kshellKerberos shell (544)
loginLogin (rlogin, 513)
lpdPrinter service (515)
nntpNetwork News Transport Protocol (119)
pop2Post Office Protocol v2 (109)
pop3Post Office Protocol v3 (110)
smtpSimple Mail Transport Protocol (25)
sunrpcSun Remote Procedure Call (111)
syslogSyslog (514)
tacacsTAC Access Control System (49)
talkTalk (517)
telnetTelnet (23)
timeTime (37)
uucpUnix-to-Unix Copy Program (540)
whoisNicname (43)
wwwWorld Wide Web (HTTP, 80)

И вводим порт smtp (можно было ввести и "25):

Router(config)#access-list 110 permit tcp any any eq smtp

Теперь вводим остальные строчки списка доступа под наши задачи. Разрешаем работу с POP3-серверами сотрудникам компании:

access-list 110 permit tcp any any eq pop3

Включаем доступ на наш прокси-сервер (200.200.200.2) на 8080 порту:

access-list 120 permit tcp 200.200.200.0 0.0.0.255 host 200.200.200.2 eq 8080
access-list 110 permit tcp host 200.200.200.2 any

На нашем прокси-сервере мы настраиваем Squid на кеширование запросов от сотрудников по FTP- и HTТP-протоколам, но не даем сотрудникам доступ напрямую к WWW-cерверам. Разрешаем весь трафик в локальной сети (по стандартному списку доступа): 

access-list 10 permit ip 200.200.200.0 0.0.0.255 200.200.200.0 0.0.0.255 
Если вам необходимо разделить доступ по отделам компании, то вы можете, применяя маску подсети, оперировать трафиком в локальной сети.
Напрмер: доступ к серверу бухгалтерии 200.200.200.50 должны иметь только отдел бухгалтерии (200.200.200.48 255.255.255.240) и руководство компании (200.200.200.224 255.255.255.240):

access-list 110 permit ip 200.200.200.48 0.0.0.240 200.200.200.224 0.0.0.240

Если вы планируете ограничение трафика средствами серверов, то вы должны разрешить весь IP-трафик в локальной сети (применяя стандартный список доступа):

access-list 10 permit 200.200.200.0 0.0.0.255 200.200.200.0 0.0.0.255

После того, как вы разберетесь с доступом и составите полный список access-list'ов, вы должны сделать их привязку к интерфесу, в нашем случае к Ethernet 0:

Router#configure terminal
Router(config)#int e0
! Разрешаем входящий трафик на прокси сервер 
Router(config)#access-group 120 in
! Разрешаем исходящий трайик от прокси сервера и
Router(config)#access-group 110 in
! Разрешаем весь локальный трафик
Router(config)#access-group 10 in
Router(config)#exit
Router#wr mem

Как вы заметили, мы указываем правилам фильтрации выполняться на e0-интерфейсе для всех входящих пакетов. 

защита доступа к роутеру 
Сейчас мы займемся защитой паролем доступа к трем внешним источникам конфигрирования роутера:
— консоли роутера;
— дополнительного порта для подлкючения модема (AUX);
— доступа по telnet сеансу.

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

Router#config terminal

и введите команду задания пароля :

Router(config)#line console 0
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem

Задание пароля на AUX порту происходит так же:

Router(config)#line aux 0
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem

И наконец пароль для telnet сессий :

Router(config)#line vty 0 4
Router(config)#password your_password
Router(config)#login
Router(config)#exit
Router#wr mem

Обратите внимение, что при задании пароля для telnet-сеанса вы указываете число разрешенных сессий равное 4-м. При попытке получить доступ к роутеру по любому из перечисленных способов вы получите приглашение такого рода: "Enter password:" При большом количестве роутеров используйте AAA-acounting для задания механизма единой авторизации на всех устройствах, cоздав пользователя командой:

Router(config)#username vasya password pipkin_password
Router(config)#exit
Router#wr term

По комапнде snow config мы увидим, что наш пароль зашифрован и разгадать его достаточно сложно:

username vasya password 7 737192826282927612

Затем включаем в глобальном конфиге AAA-accounting : 

aaa new-model
aaa authentication login default local
aaa authentication login CONSOLE none
aaa authorization exec local if-authenticated

Далее сконфигурируем AUX, Console, telnet сессию, чтобы получить в итоге в конфиге:
line con 0
login authentication CONSOLE
line aux 0
transport input none
line vty 0 4
!

Теперь при попытке залогиниться получим следующее приглашение (пароль не отображается): 

User Access Verification

Username:vasya
Password: 
Router>

сбор статистики с роутера 
Для этого вам понадобится любой UNIX-хост с установленным на нем пакетом MRTG и создать файл конфигурации с помошью программы cfgmaker:

cfgmaker community_name@name_your_router,

где SNMP community_name (в режиме тольо чтение) вы задаете на роутере командой:

Router(config)#snmp-server community community_name RO

а на UNI-хосте вы задаете на обработку перловым скриптом файл конфигурации:

Workdir: /usr/local/www/docs
Interval: 5
Refresh: 60
WriteExpires: Yes
Background[router.victim.com.1]:#CFCFCF
Options[router.victim.com.1]: bits, growright
Target[router.victim.com.1]: 1:community_name@victim.com
MaxBytes[router.victim.com.1]: 1250000
Title[router.victim.com.1]: router.victim.com : Ethernet0
PageTop[router.victim.com.1]: <H1>Traffic Analysis for Ethernet0
</H1>
<TABLE>
<TR><TD>System:</TD><TD>router.victim.com in </TD></TR>
<TR><TD>Maintainer:</TD><TD></TD></TR>
<TR><TD>Interface:</TD><TD>Ethernet0 (1)</TD></TR>
<TR><TD>IP:</TD><TD>router.victim.com (200.200.200.1)</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>1250.0 kBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
### Serial 0 ###
Background[router.victim.com.2]:#CFCFCF
Options[community_name@victim.com.2]: bits, growright
Target[community_name@victim.com.2]: 2:community_name@victim.com
MaxBytes[community_name@victim.com.2]: 8000
Title[community_name@victim.com.2]: MTO 64K : Serial0
PageTop[community_name@victim.com.2]: <H1>Traffic Analysis for Serial0
</H1>
<TABLE>
<TR><TD>System:</TD><TD>router.victim.com </TD></TR>
<TR><TD>Maintainer:</TD><TD></TD></TR>
<TR><TD>Interface:</TD><TD>Serial0 (2)</TD></TR>
<TR><TD>IP:</TD><TD>()</TD></TR>
<TR><TD>Max Speed:</TD>
<TD>8000.0 Bytes/s (propPointToPointSerial)</TD></TR>
</TABLE>

каждые пять минут (с помошью crond), который будет генерить отчеты по трафику в катаге /usr/local/www/ data в виде HTML-страничек с графиками. Вам необходимо запустить на этом хосте WWW-сервер для публикации статистики по внутреннему трафику (router.victim.com.html) на Ethernet-интерфейсе и трафику на Serail 0 (router.victim.com.2.html) интерфейсу. 

заключение 
Несмотря на кажущуюся простоту команд в EXEC-режиме, роутеры Cisco являются мощным средстом для диагностики неисправностей в глобальных и локальных сетях. 
Используя режим отладки (помощь доступна по команде "debug ?"), вы можете прослушивать трафик в локальной сети по любому поддерживаемому вашей версией IOS протоколу (IPX, IP, Appletalk) или с помошью cdp получать информацию о соседних роутерах Cisco.
обсуждение статьи



Сетевые решения. Статья была опубликована в номере 03 за 2001 год в рубрике sysadmin

©1999-2024 Сетевые решения