NAT Cisco router с един или два провайдера на Интернет – част 2
производител: cisco
Ограничение на скороста с rate-limit
В първа част конфигурирах в основни линии един cisco маршрутизатор зад NAT (nat cisco router). Тази конфигурация, обаче е недостатъчна за рутер в рамките на един офис или фирма очаквайки да има “ен” на брой потребители зад него. Едно от нещата, които ни липсват е ограничение на трафикa на потребителите. В днешно време p2p трафика е основния виновник за препълване на канала осигурен ни от доставчика. Преди известно време бях голям привърженик на приоритизацията на трафика, (QOS) но с течение на времето моят скромен опит показа, че в много малко ситуации това е нужно, защото повечето потребители въобще не разбират смисъла на приоритизацията, а по скоро я усещат като рестрикция. Имено поради тази причина ще използвам най простото ограничение на трафика в cisco с дисциплината rate-limit. Мисля, че трябва да спомена, че има още причини да използвам rate-limit. От една страна cisco IOS прави разлика между физически интерфейс и vlan, а аз искам да осъществя ограничението на трафика само на vlan 10, защото имаме два доставчика тоест два WAN-a и не искам да описвам правила на другите интерфейси. Cisco IOS предлага ограничение на трафика на vlan с traffic-shape или с rate-limit. traffic-shape обаче отпада, защото работи само в едната посока, output което от своя страна автоматично ни оставя само един избор rate-limit
Тъй като човек никога не знае колко правила ще създаде в своя shaper ще използвам разширената (extended) access-list-а, в един номер ще използвам и двете посоки на пакетите създадени от определен ип адрес. Така нареченото “закачване” става в самия интерфеис, vlan 10 като също се оказват посоките на пакетите. Нарочно съм увеличил малко буфера (burst) от една страна да не товари самият рутер, а от друга на speedtest-а стрелката скача много над ограничението и после плавно пада до оказаното в рутера идеята на което е, че нашата цел е не да създадем рестрикция на скороста, а да я балансираме да не може един потребител да запълни канала . Примера, който ще дам по долу е за следните ип адреси и ограничения:
192.168.10.99 – 10Mbits down 5Mbits up
192.168.10.98 – 20Mbits down 10Mbits up
192.168.10.97 – 40Mbits down 20Mbits up
access-list 2000 permit ip host 192.168.10.99 any access-list 2000 permit ip any host 192.168.10.99 interface vlan10 rate-limit output access-group 2000 10485760 1966080 3932160 conform-action transmit exceed-action drop rate-limit input access-group 2000 5242880 983040 1966080 conform-action transmit exceed-action drop access-list 2001 permit ip host 192.168.10.98 any access-list 2001 permit ip any host 192.168.10.98 interface vlan10 rate-limit output access-group 2001 20971520 3932160 7864320 conform-action transmit exceed-action drop rate-limit input access-group 2001 10485760 1966080 3932160 conform-action transmit exceed-action drop access-list 2002 permit ip host 192.168.10.97 any access-list 2002 permit ip any host 192.168.10.97 interface vlan10 rate-limit output access-group 2002 41943040 7864320 15728640 conform-action transmit exceed-action drop rate-limit input access-group 2002 20971520 3932160 7864320 conform-action transmit exceed-action drop |
Нека все пак хвърлим един поглед как изглежда конфигурацията в running-config на рутера
! interface Vlan10 description LAN ip address 192.168.10.1 255.255.255.0 ip nat inside ip virtual-reassembly rate-limit input access-group 2000 5240000 983040 1966080 conform-action transmit exceed-action drop rate-limit input access-group 2001 10480000 1966080 3932160 conform-action transmit exceed-action drop rate-limit input access-group 2002 20968000 3932160 7864320 conform-action transmit exceed-action drop rate-limit output access-group 2000 10480000 1966080 3932160 conform-action transmit exceed-action drop rate-limit output access-group 2001 20968000 3932160 7864320 conform-action transmit exceed-action drop rate-limit output access-group 2002 41936000 7864320 15728640 conform-action transmit exceed-action drop ip tcp adjust-mss 1452 ! access-list 2000 permit ip host 192.168.10.99 any access-list 2000 permit ip any host 192.168.10.99 access-list 2001 permit ip host 192.168.10.98 any access-list 2001 permit ip any host 192.168.10.98 access-list 2002 permit ip host 192.168.10.97 any access-list 2002 permit ip any host 192.168.10.97 ! |
Вдигаики ип адреса на първия потребител 192.168.10.99 пускам един speedtest за да проверя конфигурацията
Firewall – филтриране на портове
Моят достъп до рутера е, чрез протокола SSH и не ми е особено приятно разни оптимисти да се опитват да ми налучкват паролата, която не е името на кучето ми или рождената дата на майка ми. Затова ще филтрирам 22 порт на самия рутер само от мрежите от които вероятно ще го достъпвам за в бъдеще. Също имам и Cacti, намиращо се от към WAN порта, което чрез протокола snmp ми чертае ресурсите на рутера и ако сте стигнали до тук с четенето сигурен съм знаете колко ненадежден е snmp
access-list 100 permit udp host 85.118.95.126 host 85.118.95.35 eq snmp access-list 100 permit tcp host 93.155.169.2 host 85.118.95.35 eq 22 access-list 100 permit tcp 85.118.95.0 0.0.0.255 host 85.118.95.35 eq 22 access-list 100 permit tcp 93.155.130.0 0.0.1.255 host 85.118.95.35 eq 22 access-list 100 permit tcp 212.233.128.0 0.0.127.255 host 85.118.95.35 eq 22 access-list 100 permit tcp 10.0.0.0 0.255.255.255 host 85.118.95.35 eq 22 access-list 100 deny tcp any any eq 22 access-list 100 deny udp any any eq snmp access-list 100 permit ip any any interface FastEthernet1 ip access-group 100 in |
Правилата от access-lista-та също се закачват на интерфейса който в случая е WAN порта.
Не мога да пропусна факта, че последното правило “access-list 100 permit ip any any” винаги трябва да е последно, защото изтривайки го ако съм зад рутера ще спре достъпа до Интернет, а ако съм влязъл през този интерфейс ще си отрежа терминала въобще. Тоест последователноста тук е много важна и правилния метод, ако искам да добавя нова мрежа или хост е да изтрия всички правила в този номер на access-lista-та по този начин:
cisco#configure Configuring from terminal, memory, or network [terminal]? Enter configuration commands, one per line. End with CNTL/Z. cisco(config)#interface fastEthernet 1 cisco(config-if)#no ip access-group 100 in cisco(config-if)#exit cisco(config)#no access-list 100 cisco(config)# |
и да я създам отново цялата.
Тест с nmap
Сканираме рутера за отворени портове от отдалечена машина, която е с адрес в аксес листата
Сканираме рутера за отворени портове от отдалечена машина, която не е с адрес в аксес листата
arp
За да повишим малко сигурноста ще направим така, че друг ип адрес не може да използва мак адрес описвайки го в arp таблицата на рутера.
cisco#configure Configuring from terminal, memory, or network [terminal]? Enter configuration commands, one per line. End with CNTL/Z. cisco(config)#arp 192.168.10.98 dc85.dedc.8f33 ARPA cisco(config)#arp 192.168.10.99 f82f.a8d7.4a49 ARPA cisco(config)#end cisco#wr Building configuration... [OK] |
И да проверим конфигурацията с командата show arp. Ясно се виждат статичните записи в първите два реда.
cisco#show arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.10.98 - dc85.dedc.8f33 ARPA Internet 192.168.10.99 - f82f.a8d7.4a49 ARPA Internet 85.118.95.126 1 0022.4da0.22ba ARPA FastEthernet1 Internet 192.168.10.67 64 40f3.08fb.6a0c ARPA Vlan10 Internet 192.168.10.69 100 9435.0ad9.7690 ARPA Vlan10 Internet 192.168.10.54 102 dc85.dedc.8f33 ARPA Vlan10 Internet 192.168.10.52 2 000e.0823.1966 ARPA Vlan10 Internet 85.118.95.36 3 f8d1.1162.3339 ARPA FastEthernet1 Internet 192.168.10.59 141 9435.0ad9.7690 ARPA Vlan10 Internet 192.168.10.62 0 9c04.eb81.7915 ARPA Vlan10 Internet 85.118.95.33 0 d4ca.6d08.6a01 ARPA FastEthernet1 Internet 85.118.95.35 - dc9f.db29.78d2 ARPA FastEthernet1 Internet 192.168.10.1 - 0019.309b.e26e ARPA Vlan10 Internet 10.125.3.1 6 0050.c252.d2db ARPA FastEthernet0 Internet 10.125.3.2 - dc9f.db29.78d3 ARPA FastEthernet0 Internet 192.168.10.254 20 90f6.522c.fb7a ARPA Vlan10 cisco# |
Блокирване на локален адрес
Вероятно ще се стигне и до там, че определен ип адрес от локалната мрежа трябва да се блокира по някаква причина и да няма достъп до Интернет и до рутера въобще. За целта трябва да “закача” access-list и на вътрешния интерфейс vlan 10 по следния начин.
! access-list 101 deny ip host 192.168.10.2 any access-list 101 deny ip host 192.168.10.22 any access-list 101 deny ip host 192.168.10.49 any access-list 101 permit ip any any ! interface Vlan10 ip access-group 101 in ! |