/ 5.-acl-i-nat / 01-nat / 03-praktika-nat.md
03-praktika-nat.md
  1  # Практика
  2  
  3  Чего от нас требует реальность?  
  4  1\) Сеть управления не имеет доступа в интернет вообще  
  5  2\) Хосты из сети ПТО имеют доступ только к профильным сайтам, например, Linkmeup.ru  
  6  3\) Милым дамам из бухгалтерии нужно вырубить окно в мир клиент-банков.  
  7  4\) ФЭО не выпускать никуда, за исключением финансового директора  
  8  5\) В сети Other наш компьютер и компьютер админа — им дадим полный доступ в интернет. Всем остальным можно открывать по письменному запросу.  
  9  6\) Не забудем про филиалы в Питере и в Кемерово. Для простоты настроим полный доступ для эникиев из этих подсетей.  
 10  7\) С серверами отдельная песня. Для них мы настроим перенаправление портов. Всё, что нам нужно:  
 11  а\) WEB-сервер должен быть доступен по 80-му порту  
 12  б\) Почтовый сервер по 25-му и 110-му  
 13  в\) Файловый сервер доступен из мира по FTP.  
 14  8\) Компьютеры админа и наш должны быть доступны из Интернета по RDP. Вообще-то это неправильный путь — для удалённого подключения нужно использовать VPN-подключение и уже будучи в локальной сети использовать RDP, но это тема отдельной совсем другой статьи.
 15  
 16  Сначала подготовим тестовую площадку:
 17  
 18  Подключение к Интернету будет организовано через существующий линк, который предоставляет провайдер.  
 19  Он уходит в сеть провайдера. Напоминаем, что всё в этом облаке — это абстрактная сеть, которая на деле может состоять из десятков маршрутизаторов и сотен коммутаторов. Но нам нужно нечто управляемое и предсказуемое, поэтому водружаем сюда ещё маршрутизатор. С одной стороны в него линк из коммутатора, с другой сервера в Интернете.
 20  
 21  Сервера нам понадобятся следующие:  
 22  1. Два клиент-банка для бухгалтеров \(sperbank.ru, mmm-bank.ru\)  
 23  2. Linkmeup.ru для ПТОшников  
 24  3. яндекс \(yandex.ru\)
 25  
 26  ![](http://img-fotki.yandex.ru/get/5301/83739833.1b/0_903a7_8e37d3ea_XL.jpg)
 27  
 28  Для такого подключения мы поднимем ещё один влан на msk-arbat-gw1. Его номер, разумеется, согласуется с провайдером. Пусть это будет VLAN 6  
 29  Предположим, провайдер предоставляет нам **подсеть 198.51.100.0/28**. Первые два адреса используются для организации линка \(198.51.100.1 и 198.51.100.2\), а оставшиеся мы используем, как пул для NAT’a. Впрочем, никто совершенно нам не мешает использовать и адрес 198.51.100.2 для пула. Так и сделаем: **пул: 198.51.100.2-198.51.100.14**  
 30  Для простоты предположим, что публичные сервера у нас находятся в одной подсети:  
 31  **192.0.2.0/24**.  
 32  Как настроить линк и адреса вы вполне уже в курсе.  
 33  Поскольку у нас только один маршрутизатор в сети провайдера, и все сети подключены непосредственно к нему, то необходимости настраивать маршрутизацию нету.  
 34  А вот наш msk-arbat-gw1 должен знать куда отправлять пакеты в Интернет, поэтому нам нужен маршрут по умолчанию:
 35  
 36  ```text
 37  msk-arbat-gw1(config)# ip route 0.0.0.0 0.0.0.0 198.51.100.1
 38  ```
 39  
 40  Теперь по порядку
 41  
 42  Во первых настроим пул адресов
 43  
 44  ```text
 45  msk-arbat-gw1(config)# ip nat pool main_pool 198.51.100.2 198.51.100.14 netmask 255.255.255.240
 46  ```
 47  
 48  Теперь собираем ACL:
 49  
 50  ```text
 51  msk-arbat-gw1(config)# ip access-list extended nat-inet
 52  ```
 53  
 54  ## 1\) Сеть управления
 55  
 56  не имеет доступа в интернет вообще  
 57  Готово
 58  
 59  ## 2\) Хосты из сети ПТО
 60  
 61  Имеют доступ только к профильным сайтам, например, Linkmeup.ru
 62  
 63  ```text
 64  msk-arbat-gw1(config-ext-nacl)# permit tcp 172.16.3.0 0.0.0.255 host 192.0.2.2 eq 80
 65  ```
 66  
 67  ## 3\) Бухгалтерия
 68  
 69  Даём доступ всем хостам на оба сервера
 70  
 71  ```text
 72  msk-arbat-gw1(config-ext-nacl)# permit ip 172.16.5.0 0.0.0.255 host 192.0.2.3
 73  msk-arbat-gw1(config-ext-nacl)# permit ip 172.16.5.0 0.0.0.255 host 192.0.2.4
 74  ```
 75  
 76  ## 4\) ФЭО
 77  
 78  Даём разрешение только финансовому директору — это только один хост.
 79  
 80  ```text
 81  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.4.123 any
 82  ```
 83  
 84  ## 5\) Other
 85  
 86  Наши компьютеры с полным доступом
 87  
 88  ```text
 89  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.61 any
 90  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.6.66 any
 91  ```
 92  
 93  ## 6\) Филиалы в Санкт-Петербурге и Кемерово
 94  
 95  Пусть адреса эникиев будут одинаковыми: 172.16.х.222
 96  
 97  ```text
 98  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.16.222 any
 99  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.17.222 any
100  msk-arbat-gw1(config-ext-nacl)# permit ip host 172.16.24.222 any
101  ```
102  
103  Вот так выглядит сейчас ACL полностью:
104  
105  ```text
106  ip access-list extended nat-inet
107  remark PTO
108  permit tcp 172.16.3.0 0.0.0.255 host 192.0.2.2 eq www
109  remark ACCOUNTING
110  permit ip 172.16.5.0 0.0.0.255 host 192.0.2.3
111  permit ip 172.16.5.0 0.0.0.255 host 192.0.2.4
112  remark FEO
113  permit ip host 172.16.4.123 any
114  remark IAM
115  permit ip host 172.16.6.61 any
116  remark ADMIN
117  permit ip host 172.16.6.66 any
118  remark SPB_VSL_ISLAND
119  permit ip host 172.16.16.222 any
120  remark SPB_OZERKI
121  permit ip host 172.16.17.222 any
122  remark KMR
123  permit ip host 172.16.24.222 any
124  ```
125  
126  Запускаем:
127  
128  ```text
129  msk-arbat-gw1(config)# ip nat inside source list nat-inet pool main_pool overload
130  ```
131  
132  Но счастье не будет полным без настройки интерфейсов:  
133  На внешнем интерфейсе нужно дать команду **ip nat outside**  
134  На внутреннем: **ip nat inside**
135  
136  ```text
137  msk-arbat-gw1(config)# int fa0/0.101
138  msk-arbat-gw1(config-subif)# ip nat inside 
139  msk-arbat-gw1(config)# int fa0/0.102
140  msk-arbat-gw1(config-subif)# ip nat inside 
141  msk-arbat-gw1(config)# int fa0/0.103
142  msk-arbat-gw1(config-subif)# ip nat inside 
143  msk-arbat-gw1(config)# int fa0/0.104
144  msk-arbat-gw1(config-subif)# ip nat inside 
145  msk-arbat-gw1(config)# int fa0/1.6
146  msk-arbat-gw1(config-subif)# ip nat outside
147  ```
148  
149  Это позволит маршрутизатору понять откуда ждать пакеты, которые нужно будет обработать и куда их потом слать.
150  
151  Чтобы сервера в интернете были доступны по доменному имени, нам бы неплохо было обзавестись DNS-сервером в нашей сети:  
152  ![](http://img-fotki.yandex.ru/get/5302/83739833.1b/0_903ae_478226c1_XL.jpg)  
153  ![](http://img-fotki.yandex.ru/get/5700/83739833.1b/0_90390_1f47a02a_XL.jpg)
154  
155  Естественно его, нужно прописать на тех устройствах, с которых будем проверять доступ:  
156  ![](http://img-fotki.yandex.ru/get/6314/83739833.1b/0_90391_e3335c6_XL.jpg)
157  
158  Show must go on!
159  
160  С компьютера админа доступно всё:  
161  ![](http://img-fotki.yandex.ru/get/5800/83739833.1b/0_9039a_559bac1b_XL.jpg)
162  
163  Из сети ПТО есть доступ только на сайт linkmeup.ru по 80-му порту \(HTTP\):  
164  ![](http://img-fotki.yandex.ru/get/6114/83739833.1b/0_9039b_ab3c6e8a_XL.jpg)  
165  ![](http://img-fotki.yandex.ru/get/5300/83739833.1b/0_9039c_279b90db_XL.jpg)  
166  ![](http://img-fotki.yandex.ru/get/5301/83739833.1b/0_9039d_60a2f35c_XL.jpg)
167  
168  В сети ФЭО в мир выходит только 4.123 \(финдиректор\)  
169  ![](http://img-fotki.yandex.ru/get/5700/83739833.1b/0_9039e_15604104_XL.jpg)  
170  ![](http://img-fotki.yandex.ru/get/5301/83739833.1b/0_9039f_c03fd0d9_XL.jpg)  
171  ![](http://img-fotki.yandex.ru/get/5406/83739833.1b/0_903a0_7c1db041_XL.jpg)
172  
173  В бухгалтерии работают только сайты клиент-банков. Но, поскольку разрешение дано полностью на протокол IP, то их можно и пинговать:  
174  ![](http://img-fotki.yandex.ru/get/5700/83739833.1b/0_903a1_4f3df8c_XL.jpg)  
175  ![](http://img-fotki.yandex.ru/get/5800/83739833.1b/0_903a2_aa08b4ed_XL.jpg)
176  
177  ## 7\) Cервера
178  
179  Тут нам нужно настроить проброс портов, чтобы к ним можно было обращаться из Интернета:  
180  ![](http://img-fotki.yandex.ru/get/6404/83739833.1c/0_92a25_e9eb12f9_XL.jpg)
181  
182  ## a\) Веб-сервер
183  
184  ```text
185  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.2 80 198.51.100.2 80
186  ```
187  
188  Сразу проверяем, например, мы можем это делать с тестового ПК c аресом 192.0.2.7.  
189  Сейчас ничего не заработает, потому что для сети серверов у нас не настроен интерфейс на msk-arbat-gw1:
190  
191  ```text
192  msk-arbat-gw1(config)# int fa0/0.3
193  msk-arbat-gw1(config-subif)# ip nat inside
194  ```
195  
196  А теперь:  
197  ![](http://img-fotki.yandex.ru/get/5800/83739833.1b/0_903a3_e496e973_XL.jpg)
198  
199  ## б\) Файловый сервер
200  
201  ```text
202  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.3 20 198.51.100.3 20
203  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.3 21 198.51.100.3 21
204  ```
205  
206  Вот для этого в ACL Servers-out мы открывали также и 20-21-й порты для всех  
207  ![](http://img-fotki.yandex.ru/get/5107/83739833.1b/0_903a4_58024cf3_XL.jpg)
208  
209  ## в\) Почтовый сервер
210  
211  ```text
212  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.4 25 198.51.100.4 25
213  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.0.4 110 198.51.100.4 110
214  ```
215  
216  Проверить также не сложно. Следуйте инструкциям:  
217  Сначала настраиваем почтовый сервер. Указываем домен и создаём двух пользователей.  
218  ![](http://img-fotki.yandex.ru/get/6114/83739833.1b/0_90394_533d8271_XL.jpg)
219  
220  Далее вносим домен в DNS. Этот шаг необязательный — можно к серверу обращаться и по IP, но почему бы и нет?  
221  ![](http://img-fotki.yandex.ru/get/6114/83739833.1b/0_90395_5ef2108b_XL.jpg)
222  
223  Настраиваем компьютер из нашей сети:  
224  ![](http://img-fotki.yandex.ru/get/6314/83739833.1b/0_90396_893fd384_XL.jpg)
225  
226  Из внешней:  
227  ![](http://img-fotki.yandex.ru/get/6214/83739833.1b/0_90397_cd1326d0_XL.jpg)
228  
229  Готовим письмо:  
230  ![](http://img-fotki.yandex.ru/get/5107/83739833.1b/0_903af_2834243a_XL.jpg)
231  
232  На локальном хосте нажимаем Receive:  
233  ![](http://img-fotki.yandex.ru/get/6313/83739833.1b/0_90399_8b7287b6_XL.jpg)
234  
235  ## 8\) Доступ по RDP к компьютерам админа и нашему
236  
237  ```text
238  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.6.61 3389 198.51.100.10 3389
239  msk-arbat-gw1(config)# ip nat inside source static tcp 172.16.6.66 3389 198.51.100.10 3398
240  ```
241  
242  
243  На этом первое знакомство с технологией NAT можно считать законченным.  
244  В качестве ещё одного ДЗ ответьте на вопрос, почему нет доступа в Интернет с компьютеров эникиев в Питере и в Кемерово. Ведь мы их добавили уже в список доступа.