2009-01-29

этот загадочный running-config

все наверно знают что на цисках по-умолчанию в конфиге есть кое-какие команды...
а знаете как их просмотреть?

оказывается, sh run мало, есть еще sh run all ! :)

далее, есть в єтом конфиге куча alias, в т.ч. часто используемые s, p, u, w, и т.д.:

#sh run all | include alias
alias exec h help
alias exec lo logout
alias exec p ping
alias exec r resume
alias exec s show
alias exec u undebug
alias exec un undebug
alias exec w where

802.1x accounting

теперь добавим к автентификации еще и учет трафика.

1) настройки сервера радиуса:
включить бекенда акаунтинга (я использую sql/mysql): раскоментирова в конфиге:
accounting {
...
sql
...
}

добавить базу в мускуле, и закинуть начальный sql-скрипт (вся инфа - см. док по rlm_sql)


2) настройка циски:
включаем учет:

aaa accounting update periodic 1
aaa accounting dot1x default start-stop group radius
aaa accounting network default start-stop group radius

здесь включается учет трафика на портах прошедших 802.1x.
по-умолчанию, данные сбрасываются на сервер радиуса только при начале/заверщении сесии, это неудобно, потому командой aaa accounting update periodic 1 задаем сброс статистики каждую минуту (в жизни стоит ставить чуток по-больше :))
кроме того, циска позумолчанию использует странные порты для радиус-сервера, стоит убедиться что для acct указан порт 1813:
radius-server host 192.168.0.1 auth-port 1812 acct-port 1813 key cisco

2009-01-28

802.1x

дано:

  • catalist c3560 - 802.1x authenticator
  • linux-2.6 and freeradius-2.0.5 - aaa server
  • winxp-sp2 - 802.1x supplicant


что можно сделать

  • автентификация на порту
  • гостевой влан
  • влан для тех кто не умеет 802.1x
  • раздачу вланов per-user, per-group


реализация:
1. RADIUS server
с сервером практически ничего делать не надо :)
надо добавить клиента(по айпи свича, с секретом например cisco), включить eap, настроить бекенд, и создать базу пользователей.
пример записи для пользователя:

1) просто пользователь login="user",password="password":
user Auth-Type := EAP, Cleartext-Password := "password"
Service-Type := Framed-User

2) пользователь login=user2,password="password2", которого мы желаем поместить в отдельный влан 21:
user2 Auth-Type := EAP, Cleartext-Password := "password2"
Service-Type := Framed-User, Tunnel-Type = vlan, Tunnel-Medium-Type = 6, Tunnel-Private-Group-ID = 21


замечания:
* крайне желательно указывать service-type - иначе циска просто будет говорить auth failed
* аттрибуты Tunnel* - см. RFC2868

2. Настройка свича

глобальная:

(config)# aaa new-model
(config)# aaa authentication dot1x default local group radius
(config)# aaa authorization network default group radius
(config)# dot1x system-auth-control
(config)# radius-server host 192.168.0.1 auth-port 1812 key cisco



замечание:
* не стоит забывать, что переключение в new-model может вас лишить доступа к устройству, если вы забудете создать пользователя, и настроить aaa authentication login

для портов необходимо указать режим 802.1x, а именно:
* force-authorized - порт становиться доверенным без автентификации
* force-unauthorized - порт становиться недоверенным независимо от автентификации
* auto - порт проводит автентификацию, и по результатам становиться доверенным либо нет

настройка портов:

(config-if)# switchport mode access
(config-if)# dot1x port-control auto
(config-if)# dot1x reauthentication
(config-if)# dot1x guest-vlan 11
(config-if)# dot1x auth-fail vlan 10


замечания
* в транковом или динамическом режиме команда dot1x недоступна
* guest-vlan - доступен если клиент не начинает переговоры eapol
* auth-fail vlan - доступен после максимального количества попыток автентификации


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

2009-01-22

виртуальный CS-MARS

ну вот, сессия практически закончилась, опять появилось время заниматься тем что интересно :)

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

с виртуалкой проблем быть не должно, марс - x86 тазик с установленным на него модифицированным центосом.
мой алгоритм получения виртуалки с марсом таков:
1. скачать с просторов чайнанета образ диска марса
2. установить виртуальную машину, я использовал kvm
3. подготовить образ, распаковать, сконвертировать для kvm
kvm-img convert -f vmdk CSMARS-6.0.1.vmdk -O qcow2 CSMARS-6.0.1.img

4. запустить kvm :)
kvm -net nic,model=e1000,vlan=1 -net nic,model=e1000,vlan=2 -net tap,ifname=mars1,script=no,vlan=1 -m 512 -boot c -serial tcp::4444,server -vnc :1 -vga std -hda CSMARS-6.0.1.img


замечания:
надо ДВЕ сетевухи, иначе у марса случаються проблемы с стартовыми скриптами
для удобного удаленного доступа я использовал консоль через telnet и VNC
консоль начинает работать только ПОСЛЕ того как марс полностью загрузится

вуаля! :) марс готов.

первое что я сделал - полез на консольку:

+----------------------------------------------------+
+ +
+ CS-MARS - Monitoring, Analysis and Response System +
+ version : 6.0.1 (3066) +
+----------------------------------------------------+
pnmars login: pnadmin
pnadmin
Password: pnadmin


Last login: Thu Jan 22 15:13:59 on ttyS0

CS MARS - Mitigation and Response System

? for list of commands

[pnadmin]$
[pnadmin]$ ?
?
Commands are:
? - Print list of available commands
arp - Display/manipulate/store the arp table
date - Set/show date
diskusage - Report filesystem disk space usage
dns - Add/remove/show domain name resolving servers
dnssuffix - Add/remove/show domain name suffixes search path
domainname - Set/show domain name
exit - Switch to standard mode/Logout
gateway - Show/set default gateway
help - Print list of available commands
hostname - Set/show host name
hotswap - hot add or remove disk
ifconfig - Configure/store network interface
model - Display the model info of CS-MARS
netstat - Show network statistics
nslookup - Look up the IP address or domain name
ntp - Synchronize system clock with ntp servers
passwd - Change password
ping - Ping a host
pnimp - Import Gen-1 box's configuration and events into this MARS
pnexp - Export database content including configuration, events
pnlog - Show system log/ set log level
pndbusage - Show database usage info
pnreset - reset the whole box to factory defaults
pnrestore - restore system configuration and data
pnstart - Start CS-MARS applications
pnstatus - Show running status of CS-MARS applications
pnstop - Stop CS-MARS applications
pnupgrade - System upgrade
predictfsck - Predict the fsck at next reboot
raidstatus - Display the status of disks
reboot - Reboot System
route - Configure/store routing tables
show - Show inventory and health monitoring information
shutdown - Shutdown system
snmpwalk - communicates with a network entity using SNMP GETNEXT requests
ssh - User interface to the SSH protocol
sslcert - Generate a new self-signed ssl certificate
ssllist - List existing ssl certificates
syslogrelay - Show/Modify Syslog relay configuration
sysstatus - User interface to the Unix top command
tcpdump - Dump traffic on a network
telnet - User interface to the TELNET protocol
time - Set/show time
timezone - Set/show timezone
traceroute - Trace the route to a host
unlock - Unlock GUI accounts
version - Print the version
[pnadmin]$ ifconfig
ifconfig
eth0 Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe12:3456/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Base address:0xc040 Memory:f0000000-f0020000

eth1 Link encap:Ethernet HWaddr 52:54:00:12:34:57
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe12:3457/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Base address:0xc080 Memory:f0020000-f0040000



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

зато узнал дефолтные айпи, и смог просканить nmap'ом:


# nmap 192.168.0.100

Starting Nmap 4.76 ( http://nmap.org ) at 2009-01-22 17:17 EET
Interesting ports on 192.168.0.100:
Not shown: 974 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp filtered rpcbind
443/tcp open https
444/tcp filtered snpp
1080/tcp filtered socks
1098/tcp filtered unknown
1099/tcp filtered unknown
1500/tcp filtered vlsi-lm
1501/tcp filtered sas-3
1503/tcp filtered imtc-mcs
1521/tcp filtered oracle
4444/tcp filtered krb524
4445/tcp filtered unknown
4446/tcp open unknown
8009/tcp filtered ajp13
8080/tcp filtered http-proxy
8083/tcp filtered unknown
8090/tcp filtered unknown
8093/tcp filtered unknown
8443/tcp filtered https-alt
9000/tcp filtered unknown
32768/tcp filtered unknown
32775/tcp filtered sometimes-rpc13
32776/tcp filtered sometimes-rpc15
32777/tcp filtered sometimes-rpc17
MAC Address: 52:54:00:12:34:56 (QEMU Virtual NIC)


видно, что файрвол преднастроен, есть куча открытых портов, на которых еще не запущены приложения. НО. есть порты ssh, http, https. а знает есть веб-интерфейс! :)
80й порт меня перенаправил неизвестно-куда, но https привел на веб-морду.
на этом первое знакомство и закончилось - для любых дальнейших действий необходима лицензия, о чем мне сразу сообщил веб-интерфейс.

2009-01-11

виртуализация juniper

1) что такое оливка?
оливка - это junos-jseries установленный на x86 компьютер или виртуальную машину

2) как сделать оливку?
а) скачать образ
б) установить freebsd-4.3, затем установить как пакет (pkg_add) junos-jseries, затем перезагрузиться (конечно есть пара нюансов - см. http://brokenpipes.blogspot.com/2008/01/olive-is-alive.html)

3) как лучше всего сделать виртуальную оливку?
я решил использовать для виртуализации kvm.
небольшой скрипт клонирует образ диска установленной оливки, и запускает для него kvm.
дальше - brctl и бриджуем внешние интерфейсы оливки.
можно еще изучить vde (virtual distributed ethernet), и соединять виртуалки через него, но до этого я еще не добрался.

далее будет

e-learning

в учебных целях был собран следующий агрегат:
core quad 2.5ghz, 8Gb RAM PC6300, 3Tb HDD

зачем? очень просто
1) dynamips (роутеры cisco)
2) olive (juniper j-series)
3) mars, ips, asa, pix (все это x86, и в сети можно найти образы виртуальных машин)
намного проще и дешевле делать лабы на виртуальном железе, чем покупать реальное, не правда ли? :)

за исключением l2/l3 свичинга, на этом можно делать нормальные ccie лабы. ну или почти ccie :)

далее будет: собраные и протестированые лабы...