воскресенье, 11 мая 2014 г.

PPTP. network behind client.

Две площадки объединены туннелем. На одной стоит PPTP сервер на линуксе, на другой микротик, который цепляется к первому клиентским туннелем. За микротиком сетка 192.168.3.0/24. В линуксе нужно прописать маршрут. Делаем это динамически при подключении определенного пира. IP-адрес для пира постоянный. Итак, в файл /etc/ppp/ip-up дописываем:

#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
#    Arg  Name                          Example
#    $1   Interface name                ppp0
#    $2   The tty                       ttyS1
#    $3   The link speed                38400
#    $4   Local IP number               12.34.56.78
#    $5   Peer  IP number               12.34.56.99
#    $6   Optional ``ipparam'' value    foo

# The  environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME

case "$5" in
        172.26.100.42)
                /sbin/route add 192.168.3.161/32 gw 172.26.100.42
                ;;
        *)
esac

# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
  exec > /var/log/ppp-ipupdown.log 2>&1
  echo $0 $*
  echo
fi

# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; then
  exec /etc/ppp/ip-up.local "$*"
fi

run-parts /etc/ppp/ip-up.d \
  --arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6"

# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
  rm /var/run/ppp-quick
  wait
  kill $PPPD_PID
fi

Тут есть описание переменных, можно сделать это в отдельном файле ip-up.local. Да, чтобы одинаковые маршруты не плодились не забудьте прописать аналогичное в ip-down (route del).

четверг, 20 марта 2014 г.

Wing Motorola dhcp server on rfs 6000

Некоторое время не мог понять, почему же dhcp сервер в контроллере rfs6000 пишет в логах "Jan 02 15:54:39 2012: %DAEMON-3-ERR: dhcpd: DHCPDISCOVER from b4:c7:99:df:a8:e0 via vlan1: network vlan1: no free leases" при отсутствии вообще назначений. И тут до меня дошло :)

Смотрим на конфиг:

!
dhcp-server-policy dhcp-policy-global
 dhcp-pool WLAN1
  network 192.168.18.0/24
  excluded-address range 192.168.18.1 192.168.18.10
  default-router 192.168.18.1
  dns-server 8.8.8.8
 dhcp-pool AP-POOL
  network 192.168.19.0/24
  excluded-address range 192.168.19.1 192.168.19.10
  default-router 192.168.19.1
  dns-server 8.8.8.8
!

среда, 12 марта 2014 г.

Cisco IOS destination NAT from inside/outside

Это привычная всем трансляция "снаружи" или как её ещё называют "проброс портов" с внешнего адреса на внутренний хост. Указываем внешний адрес маршрутизатора 10.255.253.2 в браузере, попадаем на 80 порт хоста 10.10.1.213.
!
ip nat inside source static tcp 10.10.1.213 80 interface GigabitEthernet0/0.130 80 vrf WIFI-HEAD
!
А ниже трансляция с другой стороны. Допустим, у вас в сети есть какая-то DMZ, начинающаяся на периметре на ASA. На ней с внешнего интерфейса с адресом 86.115.124.10 транслируется порт 80 на хост 10.10.1.213. Для локальных юзеров сайт не доступен по внешнему этому адресу, а они хотят именно по нему ходить. Ниже строчка, транслирующая dst address с 86.115.124.10 на 10.10.1.213 и обратно т.е. юзеры видят пакеты, которые приходят им в ответ с адреса .10, хотя, на самом деле, они идут с адреса .213.
!
ip nat outside source static tcp 10.10.1.213 80 86.115.124.10 80 vrf WIFI-HEAD extendable
!
interface Integrated-Service-Engine1/0.11
 encapsulation dot1Q 11
 ip vrf forwarding WIFI-HEAD
 ip address 192.168.11.1 255.255.255.0
 ip helper-address 192.168.244.5
 ip nat inside
 ip virtual-reassembly in
!
interface GigabitEthernet0/0.130
 encapsulation dot1Q 130
 ip vrf forwarding WIFI-HEAD
 ip address 10.255.253.2 255.255.255.0
 ip nat outside
 ip virtual-reassembly in
!

среда, 5 марта 2014 г.

Motorola WING 5.X packet capture

rfs6000-19D086#service pktcap on interface me1 filter host 172.16.0.1
Capturing up to 50 packets. Use Ctrl-C to abort.
1 11:57:47.831655 ICMP: 172.16.240.18 > 172.16.0.1 echo request, id 19442, seq 1, length 108, DF, DSCP 0
2 11:57:47.831935 ICMP: 172.16.0.1 > 172.16.240.18 echo reply, id 19442, seq 1, length 108, DSCP 0
3 11:57:48.832765 ICMP: 172.16.240.18 > 172.16.0.1 echo request, id 19442, seq 2, length 108, DF, DSCP 0
4 11:57:48.832977 ICMP: 172.16.0.1 > 172.16.240.18 echo reply, id 19442, seq 2, length 108, DSCP 0
5 11:57:49.832768 ICMP: 172.16.240.18 > 172.16.0.1 echo request, id 19442, seq 3, length 108, DF, DSCP 0
6 11:57:49.833003 ICMP: 172.16.0.1 > 172.16.240.18 echo reply, id 19442, seq 3, length 108, DSCP 0
7 11:57:50.835786 ICMP: 172.16.240.18 > 172.16.0.1 echo request, id 19442, seq 4, length 108, DF, DSCP 0
8 11:57:50.836046 ICMP: 172.16.0.1 > 172.16.240.18 echo reply, id 19442, seq 4, length 108, D

rfs6000-19D086#service pktcap on interface me1 write ?
  FILE  Files: flash:/path/file
               usb1:/path/file
               nvram:startup-config
  URL   URLs:  tftp://[:port]/path/file
               ftp://:@[:port]/path/file
               sftp://:@[:port]>/path/file

rfs6000-19D086#service pktcap on interface me1 write flash:/moto1.pcap filter host 172.16.0.1
Capturing up to 50 packets. Use Ctrl-C to abort.
50

rfs6000-19D086#copy flash:/moto1.pcap ?
  FILE  File to which to copy
        Files: flash:/path/file
               usb1:/path/file
               nvram:startup-config
               running-config (merges with current configuration)
  URL   URL to which to copy
        URLs:  tftp://[:port]/path/file
               ftp://:@[:port]/path/file
               sftp://:@[:port]>/path/file
       

rfs6000-19D086#copy flash:/moto2.pcap ftp://ftpuser:ftpuser@172.16.42.80/



четверг, 23 января 2014 г.

ASA troubleshooting

Для диагностики конфигурации в АСА можно использовать следующие команды:
 - show conn [detail]
 - show xlate

EDGE-5512X/sec/act# show local-host ?

  Hostname or A.B.C.D     Show local host information corresponding to this ip
                          address
  Hostname or X:X:X:X::X  Show local host information corresponding to an IPV6
                          address
  all                     To show connections including to-the-box and
                          from-the-box
  brief                   Enter this keyword for brief information
  connection              Show local host information  based on the number of
                          connections
  detail                  Enter this keyword for detailed information
  |                       Output modifiers
Продолжение следует.

четверг, 26 декабря 2013 г.

EEM, IP SLA, TRACK, VERIFY-REACHABILITY in Catalyst 4500

Нужно часть трафика перекинуть на прокси-сервер. Если сервер падает, нужно пускать трафик мимо него. В ядре стоит коммутатор Catalyst 4900M  с лицензией IP Services. Несмотря на лицензию, функционал EEM и PBR на коммутаторах урезан. В EEM нельзя привязать событие к track, в route-map при установке next-hop нельзя проверять доступность, используя IP SLA. Для себя решил это, находя соответствие определенному шаблону в syslog.

!
interface Vlan31
 ip address 10.6.100.50 255.255.255.252
!
interface Port-channel11
 ip address 10.6.100.1 255.255.255.252
 ip policy route-map PBR
!
ip access-list extended USERS-SUBNETS
 permit ip host 10.6.112.101 any
 permit ip host 10.6.112.85 any
 permit ip host 10.6.13.12 any
!
ip sla 12
 icmp-echo 10.6.100.49 source-interface Vlan31
 threshold 3000
 frequency 10
ip sla schedule 12 life forever start-time now
!
track 12 ip sla 12
 delay down 30
!
route-map PBR permit 10
 match ip address USERS-SUBNETS
 set ip next-hop 10.6.100.49
route-map PBR deny 100
!
event manager applet KERIO-UP
 event syslog pattern "%TRACKING-5-STATE: 12 ip sla 12 state Down->Up"
 action 1.0 syslog msg "KERIO-UP"
 action 2.0 cli command "enable"
 action 3.0 cli command "config t"
 action 3.2 cli command "interface Port-channel11"
 action 3.3 cli command "ip policy route-map PBR"
 action 3.4 cli command "exit"
event manager applet KERIODOWN
 event syslog pattern "%TRACKING-5-STATE: 12 ip sla 12 state Up->Down"
 action 1.0 syslog msg "KERIO-DOWN"
 action 2.0 cli command "enable"
 action 3.0 cli command "config t"
 action 3.2 cli command "interface Port-channel11"
 action 3.3 cli command "no ip policy route-map PBR"
 action 3.4 cli command "exit"
!

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

Easy VPN Server and Remote hardware client

Готовлюсь к экзамену 642-637 SECURE. Все лабораторные работы проходили спокойно и по расписанию. Все понятно. Но тут дошло дело до Easy VPN. Название не предвещает ничего плохого, наоборот, говорит о том, что это «легко». Не тут то было. Настроить сервер через CLI в IOS для подключения программного клиента из Windows не составило большого труда, хотя конфигурация в количестве строчек выглядит внушительно. Проблемы начались, когда я подошел к конфигурации «сервер – аппаратный клиент». В рамках экзамена SECURE я рассматриваю соединение двух IOS устройств. Несмотря на то, что в офисе имеется два 2911, я решил реализовать схемы лабораторных работ в GNS.
Итак, изучив теорию, поняв, какие параметры IKE устраивают программные клиенты, какие подходят для аппаратных, я решил запустить простую схему сервер клиент. Уточню, что клиент находится в режиме «network-extension». Схема указана на рисунке ниже. В данном случае я столкнулся с проблемой, что клиент не помещает маршрут на приватную сеть сервера VPN в таблицу маршрутизации, хотя в split-tunnel она приезжает. Для того чтобы частная сеть клиента видела частную сеть сервера на маршрутизаторе клиента необходимо прописать статический маршрут на сеть сервера через внешний интерфейс. На этом интерфейсе уже есть карта шифрования, которая подхватит пакеты с нужным адресом назначения и завернет их в туннель.

Не буду приводить тут выводы дебагов, пингов и трасс. Это всё вам придется исследовать самостоятельно. Тут я положу схему сети и конфиги маршрутизаторов из GNS. Для этих экспериментов я использовал образ «c3745-adventerprisek9-mz.124-15.T14».