NAT Cisco router с един или два провайдера на Интернет – част 2
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
!



