пятница, 25 сентября 2015 г.

Private VLAN trunk

В рамках подготовки к экзамену CCIE written.

conf t
!
vtp transparent mode
!
vlan 200
private-vlan primary
private-vlan association 205,210
!
vlan 205
private-vlan community
!
vlan 210
private-vlan isolated
!
!
!
interface Fastethernet 4/24
switchport mode private-vlan host
switchport private-vlan host-accociation 200 205
!
interface Fastethernet 4/25
switchport mode private-vlan host
switchport private-vlan host-accociation 200 205
!
interface Fastethernet 4/26
switchport mode private-vlan host
switchport private-vlan host-accociation 200 210
!
interface Fastethernet 4/27
switchport mode private-vlan promiscuous
switchport private-vlan mapping 200 205,210
!
!
! В сторону маршрутизатора без поддержки PVLAN.
! Для исходящих пакетов ставит метку 200 вместо 205 или 210
! Для входящих - оставляет как есть
!
interface Fastethernet 4/28
switchport mode trunk private-vlan trunk promiscuous
switchport private-vlan mapping trunk 200 205,210
!
! На сколько я понял, для добавления обычных VLAN:
! где 10,200,290 - обычные VLAN (primary)
! 205,210 - secondary
!
interface fastethernet 5/2
switchport mode private-vlan trunk promiscuous
switchport private-vlan trunk native vlan 10
switchport private-vlan trunk allowed vlan 10,200,290
switchport private-vlan mapping trunk 200 205,210
!
! Все, что связано с Private VLAN Trunk работает только на 4500, 6500
!
! В сторону коммутатора с поддержкой protected-port (isolated)
! Для исходящих пакетов ставит метку 210 вместо 200
! Для входящих - оставляет как есть
!
interface Fastethernet 4/29
switchport mode private-vlan trunk secondary
switchport private-vlan association 200 210
!
!
! В случае, если нужен SVI в VLAN 200 - Primary, нужно сконфигурить его как
! promiscuous
!
!
interface vlan200
private-vlan mapping 205,210
ip address 192.168.0.1 255.255.255.0

!

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

My CCIE start

Я стал на путь CCIE. Специализация - Routing and Switching. Уже есть куча видосов и книг. Начал просмотр и изучение. Нет только лабораторного стенда. Первая серьезная задача - собрать стенд. Нужен нормальный эмулятор.

Начало положено.

http://www.gns3.com/
https://community.gns3.com/thread/4557

Сейчас старт взял ещё один эмулятор - UNetLab http://www.ciscolab.ru/labs/42-unetlab-stroim-stend-dlya-podgotovki-k-ccie-rs-sp-dc-sec.html



пятница, 21 августа 2015 г.

Squid transparent HTTPS Proxy

Сейчас на рынке много платных продуктов, которые предлагают раскрывать SSL трафик и фильтровать запросы пользователей. Когда-то я занимался freeware решениями на linux. Тогда в squid не было возможности на лету раскрыть SSL, сейчас есть. В интернетах много статей на эту тему, но не нашел такой, после которой все заработало бы без шаманств.

1. Соберем squid

Посмотрите последнюю версию сквида.
wget http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.7.tar.gz
tar -zxf squid-3.2.7.tar.gz
cd squid-3.2.7
./configure --prefix=/opt/squid --enable-ssl --enable-ssl-crtd --with-openssl

make all
make install

2. Создадим сертификат

openssl genrsa -out privkey.pem 1024
openssl req -new -key privkey.pem -out certreq.csr
openssl x509 -req -days 3650 -in certreq.csr -signkey privkey.pem -out squid.pem

3. Подготовим кэширование сертификатов

mkdir /opt/squid/var/lib
/opt/squid/libexec/ssl_crtd -c -s /opt/squid/var/lib/ssl_db
chown -R nobody /opt/squid/var/lib/ssl_db

Если меняется сертификат сервера, нужно грохнуть /opt/squid/var/lib/ssl_db, после чего запустить по новой процедуру подготовки кэширования.

4. Добавим в конфиг сквида

http_port 3130
http_port 3128 intercept
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/opt/squid/etc/squid.pem key=/opt/squid/etc/privkey.pem cipher=TLSv1:!AES128:!CAMELLIA

sslproxy_flags DONT_VERIFY_PEER
sslproxy_cert_error allow all
always_direct allow all

#ssl_bump client-first all
ssl_bump server-first all
ssl_bump none all

Забегая вперед скажу, что заработало все, когда я закоментил строку "ssl_bump client-first all" и добавил "cipher=TLSv1:!AES128:!CAMELLIA". После этого в динамических сертификатах появилась строка с доменным именем хоста. До этого при динамическом перехвате трафика и отправки его в проксю, гмаил ругался на mitm атаку (NET::ERR_CERT_COMMON_NAME_INVALID).

5. Запустить squid
/opt/squid/sbin/squid -z 
/opt/squid/sbin/squid

Клиенту я добавил сертификат squid.pem в доверенные корневые центры сертификации.
Во многих статьях (всех, которые мне попались) для клиента генерят сертификат так:

openssl x509 -in squid.pem -outform DER -out squid.der

У меня и Firefox и IE и, соответственно, Chrome отказались есть .der

На squid я отправляю трафик микротиком, указывая его в качестве шлюза для пакетов с определенными метками (их микротик ставит в таблице mangle). На линуксовой машине в нужные порты распихивает iptables:

-A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128
-A PREROUTING -i tun0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 127.0.0.1:3129

---
Использовал выдержки и инфу их статей:
http://habrahabr.ru/post/168515/
https://toster.ru/q/43184

Очень помог этот тред - http://www.linux.org.ru/forum/admin/11419750

Пока что не получается импортировать сертификать в смартфон Nexus 5 с ОС Android 5.1.1. Процедура проходит без ошибок ()http://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn, но в результате во вкладке "пользовательские сертификаты" нет импортируемого сертификата. Рута нет. Если кто победит, прошу поделиться. Тут точное описание проблемы с импортом сертификата - http://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn

Вот описан способ с рутом - http://wiki.cacert.org/FAQ/ImportRootCert, но интересует без рута.

четверг, 30 июля 2015 г.

Save WSA config via ftp using perl script

Простой способ автоматизировать резервирование файлов конфигурации - написать скрипт. В случае с Cisco IronPort S170 это хороший вариант т.к. встроенных возможностей по автоматической записи конфигов на сторонний хост я не нашел. Нужна линуксовая машина, где есть perl. На нее будем писать конфиги с WSA. На WSA поднят FTP сервер.

#! /usr/bin/perl -w

use Net::FTP;

chdir ("/home/cisco/wsa/configuration" or die "cannot change: $!\n");

$ftp = Net::FTP->new("10.5.32.2", Debug => 1, Passive => 1)
or die "Cannot connect to wsa: $@";

$ftp->login("admin", "password")
or die "Cannot login", $ftp->message;

$ftp->cwd("/configuration")
or die "Cannot change working directory ", $ftp->message;

$ftp->binary or die "Cannot set binary mode: $!";

@ls = $ftp->ls() or die "ls failed", $ftp->message;

foreach $i (@ls) {
        ($i1 = $i) =~ s/(\.\/)//;
        print "",$i1,"\n";
        $ftp->get($i1) or die "get failed ", $ftp->message;
}

$ftp->quit;

Не забываем добавить в cron

11 * * * * /home/cisco/wsa/ftp.pl


среда, 10 июня 2015 г.

How to save config using SNMPv3 via SCP

Создаём пользователя на linux хосте.
useradd -d /home/scp -m -s /bin/bash -c "only for scp" scp
pass 27iK4bUy32hLm87Eew4i

Ставим утилиту, чтобы пользователь мог использовать только scp.
apt-get install scponly
usermod -s /usr/bin/scponly scp

Настраиваем маршрутизатор.
access-list 77 permit 1.1.1.1
access-list 77 permit 2.2.2.2
access-list 77 permit 3.3.3.3

snmp-server group SNMP3GRP v3 priv write SNMP3_R access 77
snmp-server user snmpadm SNMP3GRP v3 auth md5 9LADO68h245s709qP18T priv aes 128 bOJwIi5UZi449fUyrJxZa access 77
snmp-server view SNMP3_R ccCopyTable.1 included
snmp-server view SNMP3_R 1.3.6.1.4.1.9.2.9.9.0 included

Добавим возможность удаленно бутить цыску.
snmp-server system-shutdown

Возвращаемся на линуксовую машину. Проверяем отвечает ли по SNMPv3 цыска.
snmpwalk -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122

К примеру, адрес линуксовой машины - 1.1.1.1

Так можно засейвить конфиг по scp:
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.2.15 i 4
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.3.15 i 4
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.4.15 i 1
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.5.15 a 1.1.1.1
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.6.15 s router_running-config
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.7.15 s "scpQr41ei4f09otuhh"
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.8.15 s "27iK4bUy32hLm87Eew4i"
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.14.15 i 1

понедельник, 8 июня 2015 г.

PBR in Extreme summit switch

* Int.X460-Core.4 # edit policy police_vlan8_pbr
entry permit_local_00 {
if {
   source-address 192.168.0.0/16;
   destination-address 192.168.0.0/16;
   } then {
     permit;
}
}

entry permit_local_01 {
if {
   source-address 192.168.0.0/16;
   destination-address 10.0.0.0/8;
   } then {
     permit;
}
}

entry permit_local_02 {
if {
   source-address 192.168.0.0/16;
   destination-address 172.168.0.0/12;
   } then {
     permit;
}
}

entry redirect_local_00 {
if {
   source-address 192.168.253.0/24;
   } then {
   redirect 10.255.255.41;
}
}


configure access-list police_vlan8_pbr vlan "VLAN8_USERS-NEW" ingress 
unconfigure access-list police_vlan8_pbr ingress

===

Policy-Based Redirection Redundancy
Multiple Next-hop Support
As discussed above, Layer 3 and Layer 2 policy-based redirect support only one next-hop for one
policy-based entry. Multiple next-hops with different priorities can be configured. A higher priority is
denoted with a higher number; for example, “priority 5” has a higher precedence than “priority 1.” When
a high priority next-hop becomes unreachable, another preconfigured next-hop, based on priority,
replaces the first. This is done by first creating a flow-redirect name that is used to hold next-hop
information. User-created flow-redirect names are not case-sensitive.
Use the following command:
create flow-redirect flow_redirect_name
To delete the flow-redirect name, use:
delete flow-redirect flow_redirect_name
Then information for each next-hop, including a defined priority, is added one by one to the new flowredirect
name. Use the following command:
configure flow-redirect flow_redirect_name add nexthop ipaddress priority number

===

An example.
We want to redirect all traffic from 10.91.0.48/28 to address 10.91.0.234

create flow-redirect redir1
configure flow-redirect redir1 add nexthop 10.91.0.234 priority 100
configure flow-redirect redir1 nexthop 10.91.0.234 ping health-check interval 60 miss 3

Create an ACL:
entry subnet1 {
if match all {
source-address 10.91.0.48/28 ;
} then {
permit;
redirect-name redir1;
}
}

configure access-list redir1 vlan "vlan_name" ingress


That will redirect traffic in this vlan only from subnet 10.91.0.48/28 to 10.91.0.234.

https://community.extremenetworks.com/extreme/topics/help_required_for_l3_policy_based_redirect_summit_x460_24t_exos_12_5-mb5hr

воскресенье, 31 мая 2015 г.

Windows 7 as wireless router

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

netsh wlan set hostednetwork mode=allow ssid=My_virtual_WiFi key=12345678 keyUsage=persistent
netsh wlan start hostednetwork
netsh wlan stop hostednetwork
netsh wlan show hostednetwork

Работает, но с глюками.

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

Match user by group from AD in ASA VPN

Группа в каталоге называется ASA_VPN. Все пользователи, находящиеся в этой группе должны проходить авторизацию на ASA при подключении AnyConnect VPN. 

На tunnel-group нужно повесть политику запрещающую доступ т.к. пользователи, не входящие в группу ASA_VPN попадут на политику tunnel-group или, в случае если для tuneel-group не установлена политика явно, попадут в политику "по умолчанию". Тем пользователям, которые находятся в ASA_VPN будет динамически присвоена политика CorpUsers (настроено в ldap attribute-map).

ldap attribute-map DOMAINNAME_DC
  map-name  memberOf Group-Policy
  map-value memberOf CN=ASA_VPN,OU=INET,OU=Service,OU=Users,OU=DOMAINNAME,DC=DOMAINNAME,DC=local CorpUsers

aaa-server LDAP_SRV_GRP (CORE) host 192.168.244.5
 ldap-base-dn OU=Users,OU=DOMAINNAME,DC=DOMAINNAME,DC=local
 ldap-attribute-map DOMAINNAME_DC

group-policy NOACCESS internal
group-policy NOACCESS attributes
 vpn-simultaneous-logins 0

group-policy CorpUsers attributes
 vpn-simultaneous-logins 3

tunnel-group Corp general-attributes
 default-group-policy NOACCESS