Contents
- Configuring Port Blocking
- Information About Port Blocking
- Port Blocking
- How to Configure Port Blocking
- Blocking Flooded Traffic on an Interface
- Monitoring Port Blocking
This module contains the following topics:
- Information About Port Blocking
- How to Configure Port Blocking
- Monitoring Port Blocking
Information About Port Blocking
Port Blocking
By default, the switch floods packets with unknown destination MAC addresses out of all ports. If unknown unicast and multicast traffic is forwarded to a protected port, there could be security issues. To prevent unknown unicast or multicast traffic from being forwarded from one port to another, you can block a port (protected or nonprotected) from flooding unknown unicast or multicast packets to other ports.
Note
With multicast traffic, the port blocking feature blocks only pure Layer 2 packets. Multicast packets that contain IPv4 or IPv6 information in the header are not blocked.
How to Configure Port Blocking
Blocking Flooded Traffic on an Interface
Before You Begin
The interface can be a physical interface or an EtherChannel group. When you block multicast or unicast traffic for a port channel, it is blocked on all ports in the port-channel group.
SUMMARY STEPS
1.
configure terminal2.
interface interface-id3.
switchport block multicast4.
switchport block unicast5.
end6.
show interfaces interface-id switchport7.
copy running-config startup-configDETAILED STEPS
Command or Action Purpose Step 1 configure terminal Example:
Switch# configure terminal
Enters global configuration mode.
Step 2 interface interface-id Example:
Switch(config)# interface gigabitethernet1/0/1
Specifies the interface to be configured, and enter interface configuration mode.
Step 3 switchport block multicast Example:
Switch(config-if)# switchport block multicast
Blocks unknown multicast forwarding out of the port.
Note
Only pure Layer 2 multicast traffic is blocked. Multicast packets that contain IPv4 or IPv6 information in the header are not blocked.
Step 4 switchport block unicast Example:
Switch(config-if)# switchport block unicast
Blocks unknown unicast forwarding out of the port.
Step 5 end Example:
Switch(config-if)# end
Returns to privileged EXEC mode.
Step 6 show interfaces interface-id switchport Example:
Switch# show interfaces gigabitethernet1/0/1 switchport
Verifies your entries.
Step 7 copy running-config startup-config Example:
Switch# copy running-config startup-config
(Optional) Saves your entries in the configuration file.
Monitoring Port Blocking
Table 1 Commands for Displaying Port Blocking Settings
Command
Purpose
show interfaces [interface-id] switchport
Displays the administrative and operational status of all switching (nonrouting) ports or the specified port, including port blocking and port protection settings.
Hi i have Cisco switch model 2960 48 ports i plane to disable three ports on it for Internet service. I want to know how can apply the command on port number 20,21and 23 to close port number 80&443 .
asked Sep 16, 2017 at 15:10
9
As I understand, you want to block http/https traffic on switch ports 20,21 and 23 so that users cannot access any web pages (http/https), is it correct?
If yes, you can try to use Port ACLs. You would need an ACL and apply it to switch ports 20,21 and 23.
Let me assume the format of your switch port 20 is f0/20, the following configuration is an example of Port ACLs on switch port 20:
ip access-list extended block-http-https
deny tcp any any eq www
deny tcp any any eq 443
permit ip any any
interface FastEthernet0/20
switchport mode access
ip access-group block-http-https in
end
I hope it is helpful and answers your question.
answered Sep 17, 2017 at 8:18
Hung TranHung Tran
3,7541 gold badge9 silver badges13 bronze badges
A quite usual security practice is to have different VLAN’s for different purposes.
And to place the switch management on the same VLAN as users, internet services is a bad practice if there isn’t any special reasons for it.
answered Sep 17, 2017 at 8:49
MatsKMatsK
2041 silver badge12 bronze badges
Modification of Layer3 and above services is typically done at the gateway/router as switches do not read into frames. So, you would apply an access control list, ACL, at the gateway.
You would isolate out ‘no-web’ ports into a distinct VLAN then restrict for that VLAN’s subnet.
answered Dec 17, 2017 at 20:49
Ronnie RoystonRonnie Royston
4,3791 gold badge12 silver badges28 bronze badges
0
Cisco Port Security is a features that can help secure access to the physical network. Any Network admins nightmare is an unauthorised device or a PC connecting to the network. This could be as simple as an innocent guest plugging his PC into a floor port hoping to get an internet connection or a malicious intruder connecting to the network trying to gain access to confidential information.
Consequences could as bad as
- Virus, Spyware or malware infection from a PC unprotected PC
- A malicious hacker or an intruder gaining access to the network
- A malicous attacker launching a Denial of Service attack using MAC Address flooding
Cisco IOS has the port-security feature which can be used to restrict the MAC-Address of the devices that connects to each of the physical switchports.
Cisco Port-Security can help to
- restrict the MAC-address or addresses that can connect through a switchport [default: first connected device MAC Address]
- restrict the number of MAC-Addresses that can connect through a switchport [default is 1 and maximum is 128]
- set aging in minutes of the MAC Addresses registed
- Action to take when there is a violation detected (default is to disable the port and send an SNMP Trap message to the SNMP management server (if any))
For a switch port to be security enabled,
- the switchport cannot be a Trunk Port
- the switchport cannot be a destination port for a Switchport Analyzer (SPAN)
- the switchport cannot belong to an EtherChannel port-channel interface
- the switchport cannot be an 802.1X port
If you try to enable 802.1X on a secure port, an error message appears, and 802.1X is not enabled. If you try to change an 802.1X-enabled port to a secure port, an error message appears, and the security settings are not changed.
To enable Port Security on a Cisco Switch or router interface
Enter the interface config mode (say fa0/1)
Switch# conf t
Switch(config)# interface fastethernet 0/1
Switch(config-if)# switchport mode access
This sets the switchport to access mode. Default mode of «Dynamic desirable» cannot be configured as a secure port
Switch(config-if)# switchport port-security
This enables the port security on the switchport with the defaults [1 MAC Address allowed, 1st connected MAC Address, disable port if there is a violation]
If you know the MAC Address of the device and that thats the only device that connects to the swicthport (for example, A server on a Serverfarm switch) then you can set the MAC-Address manually.
Switchport(config-if)# switchport port-security mac-address 1111.2222.3333
Where 1111.2222.3333 is the MAC Address of the server. This will disable the secure port, if any other device other than the one with the above MAC-Address connects to the switch port.
If there is a switch or a hub (say 12 port or a 24 port) that connects to the switchport which you want to secure then you can set the maximum number of MAC-Addresses that connects to the port and/or set the MAC-Address optionally.
Switchport(config-if)# switchport port-security max 12
This sets the maximum number of mac-address allowed on the secure port (default is 128).
One step further, if you want to manually add some or all of these MAC-Addresses then you can specify using the following command one for each MAC-Address
Switchport(config-if)# switchport port-security mac-address 0000.0000.0000
Switchport(config-if)# switchport port-security mac-address 0000.0000.1111
If now, you need to set the maximum number of MAC Addresses on the switchport but are aware that some or most of them are temporary ones (guest users or temporary workers) then you can set the aging time on the port-security which allows MAC-Addresses on the Secure switchport will be deleted after the set aging time. This helps to avoid a situation where obsolete MAC-Address occupy the table and saturates causing a violation (when the max number exceeds).
Switchport(config-if)# switchport port-security aging time 10
Where time is specified in minutes (10 mins in the above)
Now, you can set the action to be taken when there is a violation. The default is to shutdown the port and mark the port err-disabled.
For example,
Switchport(config-if)# switchport port-security violation protect
Where protect is the action taken when a violation event is triggered.
The actions are
protect — Drops packets with unknown source addresses until you remove a sufficient number of secure MAC addresses to drop below the maximum value.
restrict — Drops packets with unknown source addresses until you remove a sufficient number of secure MAC addresses to drop below the maximum value and causes the Security Violation counter to increment.
shutdown (default) — Puts the interface into the error-disabled state immediately and sends an SNMP trap notification.
To show the port-security,
Switch# show port-security interface fastethernet 0/1
Security Enabled:Yes, Port Status:SecureUp
Violation Mode:Shutdown
Max. Addrs:5, Current Addrs:0, Configure Addrs:0
To display port-security info without any interface provided
Switch# show port-security
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security
Action
(Count) (Count) (Count)
—————————————————————————-
Fa0/1 11 11 0 Shutdown
Fa0/2 15 5 0 Restrict
Fa0/3 5 4 0 Protect
—————————————————————————-
Total Addresses in System: 21
Max Addresses limit in System: 128
To display the security MAC-Address table
Switch# show port-security address
Secure Mac Address Table
——————————————————————-
Vlan Mac Address Type Ports Remaining Age
(mins)
—- ———– —- —– ————-
1 0001.0001.0001 SecureDynamic Fa0/1 15 (I)
1 0001.0001.0002 SecureDynamic Fa0/1 15 (I)
1 0001.0001.0003 SecureConfigured Fa0/1 16 (I)
1 0001.0001.0004 SecureConfigured Fa0/1 –
1 0001.0001.0005 SecureConfigured Fa0/1 –
1 0005.0005.0006 SecureConfigured Fa0/5 23
1 0005.0005.0007 SecureConfigured Fa0/5 23
1 0005.0005.0008 SecureConfigured Fa0/5 23
1 0011.0011.0009 SecureConfigured Fa0/11 25 (I)
1 0011.0011.0010 SecureConfigured Fa0/11 25 (I)
——————————————————————-
Total Addresses in System: 10
Max Addresses limit in System: 128
For more information, check this Cisco documentation
If you’re new here, you may want to subscribe to my RSS feed. Thanks for visiting!
10 / 10 / 2 Регистрация: 11.01.2014 Сообщений: 46 |
|
1 |
|
Настройка доступа к портам17.08.2014, 23:31. Показов 11853. Ответов 12
Доброго времени суток! Уважаемые, дайте подсказку, как грамотно настроить ACL? Имею: Код ip nat inside source list NAT interface Dialer1 overload ip route 0.0.0.0 0.0.0.0 Dialer1 ! ip access-list extended NAT permit ip 192.168.0.0 0.0.0.255 any deny ip any any Хочу: Как грамотно сделать?
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
17.08.2014, 23:31 |
Ответы с готовыми решениями: настройка доступа к Wi-fi Настройка списков доступа настройка списка доступа Настройка WiFi точки доступа. 12 |
5890 / 3348 / 1034 Регистрация: 03.11.2009 Сообщений: 9,977 |
|
17.08.2014, 23:44 |
2 |
0 |
10 / 10 / 2 Регистрация: 11.01.2014 Сообщений: 46 |
|
18.08.2014, 15:28 [ТС] |
3 |
Jabbson, спасибо за ссылку. Я читал это, но не могу уяснить как это совместить с NAT. Код ip access-list extended NAT permit ip 192.168.0.0 0.0.0.255 any deny ip any any deny tcp any any eq 22 Не могу расставить приоритет исполнения. Добавлено через 8 минут Код access-list 101 deny udp gt 1024 established Так?
0 |
5890 / 3348 / 1034 Регистрация: 03.11.2009 Сообщений: 9,977 |
|
18.08.2014, 15:44 |
4 |
Зачем Вы привязываете свои правила к нат? если извне закрываете 22 порт — написали асл, прикрутили к line vty, все.
0 |
59 / 59 / 9 Регистрация: 24.10.2012 Сообщений: 1,200 |
|
22.08.2014, 07:24 |
5 |
Закрыть порты выше 1024: так, если для понимания то очень удобно расписано тут, вкратце и доступно http://habrahabr.ru/post/121806/
0 |
224 / 112 / 18 Регистрация: 27.09.2012 Сообщений: 575 |
|
22.08.2014, 07:44 |
6 |
Ты настроил нат и все кто ломится снаружи не смогут попасть внутрь если внутренне устройство этого не попросит. Добавлено через 4 минуты
0 |
59 / 59 / 9 Регистрация: 24.10.2012 Сообщений: 1,200 |
|
22.08.2014, 07:59 |
7 |
kroniel, ну если он pat настраивал то наверное додумался внешний и внутренний интерфейсы соответственно настроить)
0 |
224 / 112 / 18 Регистрация: 27.09.2012 Сообщений: 575 |
|
22.08.2014, 09:29 |
8 |
kroniel, ну если он pat настраивал то наверное додумался внешний и внутренний интерфейсы соответственно настроить) Как я вижу от только хочет это сделать.
0 |
10 / 10 / 2 Регистрация: 11.01.2014 Сообщений: 46 |
|
22.08.2014, 12:14 [ТС] |
9 |
Сеть уже настроена. NAT настроен. Dialer1 внешний. Код ip ssh port 2020 rotary 1 Порт доступен. Пытался закрыть 22 так: Код line vty 0 4 rotary 1 transport input ssh access-class 101 in А в классе прописал закрыть трафик на 22 порту. У меня отвалился и 2020 тоже. Добавлено через 3 минуты Код Current configuration : 3271 bytes ! ! Last configuration change at 10:53:39 Russia Fri Aug 22 2014 by admin ! version 15.0 no service pad service timestamps debug datetime msec service timestamps log datetime msec service password-encryption ! hostname CiscoRouter ! boot-start-marker boot-end-marker ! no logging console enable secret 5 pass. ! aaa new-model ! ! ! ! ! ! ! aaa session-id common ! ! ! clock timezone Russia 3 ! ! no ip source-route ! ! ip dhcp excluded-address 192.168.0.1 192.168.0.59 ip dhcp excluded-address 192.168.0.251 192.168.0.254 ! ip dhcp pool localnet network 192.168.0.0 255.255.255.0 default-router 192.168.0.1 dns-server 192.168.0.1 ! ! ip cef no ip bootp server ip domain name local.net ip name-server 77.88.8.7 ip name-server 77.88.8.3 ip inspect name INSPECT_OUT http ip inspect name INSPECT_OUT https ip inspect name INSPECT_OUT ftp ip ddns update method no-ip.org HTTP add remove interval maximum 0 0 20 0 interval minimum 0 0 20 0 ! no ipv6 cef ! ! multilink bundle-name authenticated vpdn enable ! vpdn-group pppoe ! license udi pid CISCO891-K9 sn ! ! archive log config logging enable hidekeys username admin password 7 pass ! ! ip ssh port 2020 rotary 1 ip ssh logging events ip ssh version 2 ! ! ! ! ! ! ! interface FastEthernet0 switchport access vlan 10 ! ! interface FastEthernet1 switchport access vlan 10 ! ! interface FastEthernet2 switchport access vlan 10 ! ! interface FastEthernet3 switchport access vlan 10 ! ! interface FastEthernet4 ! ! interface FastEthernet5 ! ! interface FastEthernet6 ! ! interface FastEthernet7 ! ! interface FastEthernet8 no ip address duplex auto speed auto pppoe enable group global pppoe-client dial-pool-number 1 ! ! interface GigabitEthernet0 no ip address duplex auto speed auto pppoe enable group global pppoe-client dial-pool-number 1 ! ! interface Vlan1 no ip address ! ! interface Vlan10 description LOCALNET ip address 192.168.0.1 255.255.255.0 ip broadcast-address 192.168.0.1 ip accounting output-packets ip nat inside ip virtual-reassembly ip tcp adjust-mss 1412 ! ! interface Async1 no ip address encapsulation slip ! ! interface Dialer1 ip ddns update hostname ip ddns update ip address negotiated ip mtu 1442 ip nat outside ip virtual-reassembly encapsulation ppp ip tcp adjust-mss 1412 dialer pool 1 no keepalive ppp authentication chap callin ppp chap hostname login ppp chap password 7 pass ! ! ip forward-protocol nd no ip http server no ip http secure-server ! ! ip dns server ip nat inside source list NAT interface Dialer1 overload ip route 0.0.0.0 0.0.0.0 Dialer1 ! ip access-list extended NAT permit ip 192.168.0.0 0.0.0.255 any deny ip any any ! ! ! ! ! ! ! control-plane ! ! ! line con 0 logging synchronous line 1 modem InOut stopbits 1 speed 115200 flowcontrol hardware line aux 0 line vty 0 4 rotary 1 transport input ssh ! scheduler max-task-time 5000 ntp update-calendar ntp server 194.190.168.1 end
0 |
224 / 112 / 18 Регистрация: 27.09.2012 Сообщений: 575 |
|
25.08.2014, 07:49 |
10 |
Укажи в access liste что разрешить 2020 и запретить 22 и должно заработать Добавлено через 2 минуты Как то так. Под рукой нету cisco проверить не могу.
0 |
14 / 14 / 5 Регистрация: 10.08.2014 Сообщений: 95 |
|
26.08.2014, 08:55 |
11 |
А в чём проблема привязать к диалеру ip access-group ACL in и в нём перекрыть извне на вход что угодно?
0 |
10 / 10 / 2 Регистрация: 11.01.2014 Сообщений: 46 |
|
26.08.2014, 11:00 [ТС] |
12 |
outl4w, с портом ssh я вопрос решил. Код access-list 102 deny icmp any any timestamp-request log access-list 102 deny icmp any any information-request log access-list 102 deny icmp any any mask-request log И получил ssh:Timeout
0 |
14 / 14 / 5 Регистрация: 10.08.2014 Сообщений: 95 |
|
26.08.2014, 11:30 |
13 |
А вот привязавание к диалеру приводт к блокировке всего А было ли правило, под которое пакет попал бы для прохождения? Был хоть один пермит в листе?
0 |
Время на прочтение
9 мин
Количество просмотров 526K
Сегодня я расскажу вам о том, как отфильтровать трафик в сети с помощью списков контроля доступа. Рассмотрим как они работают соответственно, что собой представляют, для чего предназначены. Позже я покажу как они настраиваются в Cisco IOS и выложу архив с лабораторными работами для закрепления ваших знаний.
Введение
ACL (Access Control List) — это набор текстовых выражений, которые что-то разрешают, либо что-то запрещают. Обычно ACL разрешает или запрещает IP-пакеты, но помимо всего прочего он может заглядывать внутрь IP-пакета, просматривать тип пакета, TCP и UDP порты. Также ACL существует для различных сетевых протоколов (IP, IPX, AppleTalk и так далее). В основном применение списков доступа рассматривают с точки зрения пакетной фильтрации, то есть пакетная фильтрация необходима в тех ситуациях, когда у вас стоит оборудование на границе Интернет и вашей частной сети и нужно отфильтровать ненужный трафик.
Вы размещаете ACL на входящем направлении и блокируете избыточные виды трафика.
Теория
Функционал ACL состоит в классификации трафика, нужно его проверить сначала, а потом что-то с ним сделать в зависимости от того, куда ACL применяется. ACL применяется везде, например:
- На интерфейсе: пакетная фильтрация
- На линии Telnet: ограничения доступа к маршрутизатору
- VPN: какой трафик нужно шифровать
- QoS: какой трафик обрабатывать приоритетнее
- NAT: какие адреса транслировать
Для применения ACL для всех этих компонентов нужно понять как они работают. И мы в первую очередь будем касаться пакетной фильтрации. Применительно к пакетной фильтрации, ACL размещаются на интерфейсах, сами они создаются независимо, а уже потом они прикручиваются к интерфейсу. Как только вы его прикрутили к интерфейсу маршрутизатор начинает просматривать трафик. Маршрутизатор рассматривает трафик как входящий и исходящий. Тот трафик, который входит в маршрутизатор называется входящим, тот который из него выходит — исходящий. Соответственно ACL размещаются на входящем или на исходящем направлении.
Из вашей частной сети приходит пакет на интерфейс маршрутизатора fa0/1, маршрутизатор проверяет есть ли ACL на интерфейсе или нет, если он есть, то дальше обработка ведется по правилам списка доступа строго в том порядке, в котором записаны выражения, если список доступа разрешает проходить пакету, то в данном случае маршрутизатор отправляет пакет провайдеру через интерфейс fa0/0, если список доступа не разрешает проходить пакету, пакет уничтожается. Если списка доступа нет — пакет пролетает без всяких ограничений. Перед тем как отправить пакет провайдеру, маршрутизатор ещё проверяет интерфейс fa0/0 на наличие исходящего ACL. Дело в том, что ACL может быть прикреплен на интерфейсе как входящий или исходящий. К примеру у нас есть ACL с правилом запретить всем узлам в Интернете посылать в нашу сеть пакеты.
Так на какой интерфейс прикрепить данную ACL? Если мы прикрепим ACL на интерфейс fa0/1 как исходящий, это будет не совсем верно, хотя и ACL работать будет. На маршрутизатор приходит эхо-запрос для какого-то узла в частной сети, он проверяет на интерфейсе fa0/0 есть ли ACL, его нет, дальше проверяет интерфейс fa0/1, на данном интерфейсе есть ACL, он настроен как исходящий, всё верно пакет не проникает в сеть, а уничтожается маршрутизатором. Но если мы прикрепим ACL за интерфейсом fa0/0 как входящий, то пакет будет уничтожатся сразу как пришел на маршрутизатор. Последнее решение является правильным, так как маршрутизатор меньше нагружает свои вычислительные ресурсы. Расширенные ACL нужно размещать как можно ближе к источнику, стандартные же как можно ближе к получателю. Это нужно для того, чтобы не гонять пакеты по всей сети зря.
Сам же ACL представляет собой набор текстовых выражений, в которых написано permit (разрешить) либо deny (запретить), и обработка ведется строго в том порядке в котором заданы выражения. Соответственно когда пакет попадает на интерфейс он проверяется на первое условие, если первое условие совпадает с пакетом, дальнейшая его обработка прекращается. Пакет либо перейдет дальше, либо уничтожится.
Ещё раз, если пакет совпал с условием, дальше он не обрабатывается. Если первое условие не совпало, идет обработка второго условия, если оно совпало, обработка прекращается, если нет, идет обработка третьего условия и так дальше пока не проверятся все условия, если никакое из условий не совпадает, пакет просто уничтожается. Помните, в каждом конце списка стоит неявный deny any (запретить весь трафик). Будьте очень внимательны с этими правилами, которые я выделил, потому что очень часто происходят ошибки при конфигурации.
ACL разделяются на два типа:
- Стандартные (Standard): могут проверять только адреса источников
- Расширенные (Extended): могут проверять адреса источников, а также адреса получателей, в случае IP ещё тип протокола и TCP/UDP порты
Обозначаются списки доступа либо номерами, либо символьными именами. ACL также используются для разных сетевых протоколов. Мы в свою очередь будем работать с IP. Обозначаются они следующим образом, нумерованные списки доступа:
- Стандартные: от 1 до 99
- Расширенные: от 100 до 199
Символьные ACL разделяются тоже на стандартные и расширенные. Расширенные напомню могут проверять гораздо больше, нежели стандартные, но и работают они медленнее, так как придется заглядывать внутрь пакета, в отличии от стандартных где мы смотрим только поле Source Address (Адрес отправителя). При создании ACL каждая запись списка доступа обозначается порядковым номером, по умолчанию в рамках десяти (10, 20, 30 и т.д). Благодаря чему, можно удалить конкретную запись и на её место вставить другую, но эта возможность появилась в Cisco IOS 12.3, до 12.3 приходилось ACL удалять, а потом создать заново полностью. Нельзя разместить более 1 списка доступа на интерфейс, на протокол, на направление. Объясняю: если у нас есть маршрутизатор и у него есть интерфейс, мы можем на входящее направление для IP-протокола разместить только один список доступа, например под номером 10. Ещё одно правило, касающееся самих маршрутизаторов, ACL не действует на трафик, сгенерированный самим маршрутизатором.
Для фильтрации адресов в ACL используется WildCard-маска. Это обратная маска. Берем шаблонное выражение: 255.255.255.255 и отнимаем от шаблона обычную маску.
255.255.255.255-255.255.255.0, у нас получается маска 0.0.0.255, что является обычной маски 255.255.255.0, только 0.0.0.255 является WildCard маской.
Виды ACL
Динамический (Dynamic ACL)
Позволяет сделать следующее, например у вас есть маршрутизатор, который подключен к какому-то серверу и нам нужно закрыть доступ к нему из внешнего мира, но в тоже время есть несколько человек, которые могут подключаться к серверу.
Мы настраиваем динамический список доступа, прикрепляем его на входящем направлении, а дальше людям, которым нужно подключиться, подключаться через Telnet к данному устройству, в результате динамический ACL открывает проход к серверу, и уже человек может зайти скажем через HTTP попасть на сервер. По умолчанию через 10 минут этот проход закрывается и пользователь вынужден ещё раз выполнить Telnet чтобы подключиться к устройству.
Рефлексивный (Reflexive ACL)
Здесь ситуация немножко отличается, когда узел в локальной сети отправляет TCP запрос в Интернет, у нас должен быть открытый проход, чтобы пришел TCP ответ для установки соединения. Если прохода не будет — мы не сможем установить соединение, и вот этим проходом могут воспользоваться злоумышленники, например проникнуть в сеть. Рефлексивные ACL работают таким образом, блокируется полностью доступ (deny any) но формируется ещё один специальный ACL, который может читать параметры пользовательских сессий, которые сгенерированны из локальной сети и для них открывать проход в deny any, в результате получается что из Интернета не смогут установить соединение. А на сессии сгенерированны из локальной сети будут приходить ответы.
Ограничение по времени (Time-based ACL)
Обычный ACL, но с ограничением по времени, вы можете ввести специальное расписание, которое активирует ту или иную запись списка доступа. И сделать такой фокус, например пишем список доступа, в котором запрещаем HTTP-доступ в течении рабочего дня и вешаем его на интерфейс маршрутизатора, то есть, сотрудники предприятия пришли на работу, им закрывается HTTP-доступ, рабочий день закончился, HTTP-доступ открывается,
пожалуйста, если хотите — сидите в Интернете.
Настройка
Сами ACL создаются отдельно, то есть это просто некий список, который создается в глобальном конфиге, потом он присваивается к интерфейсу и только тогда он и начинает работать. Необходимо помнить некоторые моменты, для того, чтобы правильно настроить списки доступа:
- Обработка ведется строго в том порядке, в котором записаны условия
- Если пакет совпал с условием, дальше он не обрабатывается
- В конце каждого списка доступа стоит неявный deny any (запретить всё)
- Расширенные ACL нужно размещать как можно ближе к источнику, стандартные же как можно ближе к получателю
- Нельзя разместить более 1 списка доступа на интерфейс, на протокол, на направление
- ACL не действует на трафик, сгенерированный самим маршрутизатором
- Для фильтрации адресов используется WildCard маска
Стандартный список доступа
Router(config)#access-list <номер списка от 1 до 99> {permit | deny | remark} {address | any | host} [source-wildcard] [log]
- permit: разрешить
- deny: запретить
- remark: комментарий о списке доступа
- address: запрещаем или разрешаем сеть
- any: разрешаем или запрещаем всё
- host: разрешаем или запрещаем хосту
- source-wildcard: WildCard маска сети
- log: включаем логгирование пакеты проходящие через данную запись ACL
Расширенный список доступа
Router(config)#access-list <номер списка от 100 до 199> {permit | deny | remark} protocol source [source-wildcard] [operator operand] [port <порт или название протокола> [established]
- protocol source: какой протокол будем разрешать или закрывать (ICMP, TCP, UDP, IP, OSPF и т.д)
- deny: запретить
- operator:
A.B.C.D — адрес получателя
any — любой конечный хост
eq — только пакеты на этом порте
gt — только пакеты с большим номером порта
host — единственный конечный хост
lt — только пакеты с более низким номером порта
neq — только пакеты не на данном номере порта
range — диапазон портов - port: номер порта (TCP или UDP), можно указать имя
- established: разрешаем прохождение TCP-сегментов, которые являются частью уже созданной TCP-сессии
Прикрепляем к интерфейсу
Router(config-if)#ip access-group <номер списка или имя ACL> {in | out}
- in: входящее направление
- out: исходящее направление
Именованные списки доступа
Router(config)#ip access-list {standard | extended} {<номер ACL> | <имя ACL>}
Router(config-ext-nacl)# {default | deny | exit | no | permit | remark}
- standard: стандартный ACL
- extended: расширенный ACL
- default: установить команду в значение по умолчанию
Ограничение доступа к маршрутизатору
R(config)#line vty 0 4
— переходим в режим настройки виртуальных линий.
R(config-line)#password <пароль>
— настраиваем логин и пароль, а также закрепляем список доступа с разрешенными IP-адресами.
R(config-line)#login
R(config-line)#access-class 21 in
Динамические списки доступа
R3(config)#username Student password 0 cisco
— создаем пользователей для подключения через Telnet.
R3(config)#access-list 101 permit tcp any host 10.2.2.2 eq telnet
R3(config)#access-list 101 dynamic testlist timeout 15 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
— разрешаем подключаться к серверу по Telnet всем узлам.
R3(config)#interface serial 0/0/1
— закрепляем 101 ACL за интерфейсом в входящем направлении.
R3(config-if)#ip access-group 101 in
R3(config)#line vty 0 4
— как только пользователь аутентифицируеться, сеть 192.168.30.0 будет доступна, через 5 минут бездействия сеанс закроется.
R3(config-line)#login local
R3(config-line)#autocommand access-enable host timeout 5
Рефлексивные списки доступа
R2(config)#ip access-list extended OUTBOUNDFILTERS
— заставляем маршрутизатор отслеживать трафик, который инициировался изнутри.
R2(config-ext-nacl)#permit tcp 192.168.0.0 0.0.255.255 any reflect TCPTRAFFIC
R2(config-ext-nacl)#permit icmp 192.168.0.0 0.0.255.255 any reflect ICMPTRAFFIC
R2(config)#ip access-list extended INBOUNDFILTERS
— создаем входящую политику, которая требует, чтобы маршрутизатор проверял входящий трафик, чтобы видеть инициировался ли изнутри и связываем TCPTRAFFIC к INBOUNDFILTERS.
R2(config-ext-nacl)#evaluate TCPTRAFFIC
R2(config-ext-nacl)#evaluate ICMPTRAFFIC
R2(config)#interface serial 0/1/0
— применяем входящий и исходящий ACL на интерфейс.
R2(config-if)#ip access-group INBOUNDFILTERS in
R2(config-if)#ip access-group OUTBOUNDFILTERS out
Ограничение по времени
R1(config)#time-range EVERYOTHERDAY
— создаем список времени, в котором добавляем дни недели и время.
R1(config-time-range)#periodic Monday Wednesday Friday 8:00 to 17:00
R1(config)#access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq telnet time-range EVERYOTHERDAY
— применяем time-range к ACL.
R1(config)#interface s0/0/0
— закрепляем ACL за интерфейсом.
R1(config-if)#ip access-group 101 out
Поиск проблем
R#show access-lists {ACL номер | имя} — смотрим информацию о списке доступа.
R#show access-lists — смотрим все списки доступа на маршрутизаторе.
Пример
Router#show access-lists
Extended IP access list nick
permit ip host 172.168.1.1 host 10.0.0.5
deny ip any any (16 match(es))
Standard IP access list nick5
permit 172.16.0.0 0.0.255.255
Мы видим что у нас есть два ACL (стандартный и расширенный) под названиями nick и nick5. Первый список разрешает хосту 172.16.1.1 обращаться по IP (это значит что разрешены все протоколы работающие поверх IP) к хосту 10.0.0.5. Весь остальной трафик запрещен показывает команда deny ip any any. Рядом с этим условием в нашем примере пишет (16 match(es)). Это показывает что 16 пакетов попали под это условие.
Второй ACL разрешает проходить трафик от любого источника в сети 172.16.0.0/16.
Практика
Я собрал лабораторные работы для Packet Tracer с 5 главы курса CCNA 4 по теме ACL. Если у вас есть желание закрепить знания на практике, пожалуйста — ссылка, зеркало — FTP. Размер — 865.14 KB.
Литература
CCNA Exploration: Accessing the WAN (5 chapter)