- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Настройка web proxy на MikroTik
- Введение
- Настройка стандартного web-proxy
- Настройка прозрачного проксирования
- Списки доступа или использование Firewall’а на основе proxy
- Настройка проброса портов для создания интернет-сервисов
- Шаг 1. Выяснение IP адреса роутера
- Шаг 2. Доступ к конфигурационной панели роутера
- Шаг 3. Настройка правил проброса портов
- Шаг 4. Защита от сканирования портов и атак
- Проброс портов в Линуксе на системном уровне
- Другие сферы, где используется проброс портов
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Настройка web proxy на MikroTik
Проксирование HTTP и FTP запросов от клиента осуществляется proxy-сервером по средствам сохранения копии (кэширования) запрашиваемых клиентом данных из Интернета на системе, которая расположена ближе к получателю и последующей передачи кэшированных данных получателю с более низкой задержкой. Это может быть страничка сайта, которая расположена на определённом URL’e, например — http://shareit.merionet.ru или же какой-нибудь файл, который лежит на FTP сервере.
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Введение
Роутеры MikroTik способны выполнять следующие функции в качестве web-proxy сервера:
- Стандартное проксирование HTTP. Когда пользователь сам указывает кто является для него proxy-сервером и настраивает браузер соответствующим образом;
- Прозрачное проксирование. Когда пользователь не знает, что его запросы перенаправляются через proxy-сервер;
- Настройка списка доступа по адресу источника, назначения, URL и методу передачи запросов (GET, POST др.);
- Список кэшируемых объектов. Определяет какие копии каких ресурсов сохранять, а какие нет;
- Прямой список доступа. Определяет какие ресурсы доступны без проксирования и для каких нужен proxy-сервер;
- Логирование событий и операций proxy-сервера
- Поддержка родительских proxy-серверов. В этом случае указывается дополнительный сервер и запрос направляется к нему, если первый сервер не имеет доступа к запрашиваемому объекту.
Proxy-сервер располагается между клиентом и конечным сервером с ресурсом, к которому клиент хочет получить доступ.
Web-proxy сервер случает запросы от клиентов и сохраняет ответы у себя в памяти. Если он получит запрос, содержащий тот же URL, то он может просто отправить имеющуюся копию. Если же копии нет, то он запрашивает её у конечного сервера. То же самое с файлами, если есть сохранённая копия файла, он отправит её клиенту, если нет — скачает с FTP сервера.
Есть несколько целей применения proxy-сервера:
- Ускорение получения доступа к ресурсам, которые физически находятся дальше от получателя (большая задержка при передаче пакетов);
- Использование в качестве HTTP Firewall’а. Блокирование доступа к нежелательным ресурсам;
- Фильтрование web-контента по заданным параметрам, например IP-адрес источника, IP-адрес назначения и порт, URL ресурса, метод HTTP запросов;
- Сканирование передаваемого из внутренней сети контента, например, для предотвращения утечек. При этом совсем не обязательно использовать функции кэширования на web-proxy.
Настройка стандартного web-proxy
В роутерах MikroTik, настрока web-proxy через терминал происходит через команду:
Ниже приведен список параметров доступных для настройки:
- enabled — активирует функционал web-proxy. (yes — включен, no — выключен);
- src-address — устанавливает IP-адрес proxy-сервера;
- port — задаёт порт, на котором будет работать proxy-сервер;
- parent-proxy — задаёт адрес родительского proxy-сервера;
- cache-drive — указывает куда складывать кэшируеемых данные.
- cache-administrator — email администратора, который будет показан на странице с ошибкой;
- max-cache-size — указывает максимальный объём для хранения кэшируемых данных на диске в килобайтах (в случае использования внешнего диска);
- max-ram-cache-size — указывает максимальный объём для хранения кэшируемых данных в RAM роутера в килобайтах;
- cache-only-on-disk — указывает создавать ли внутреннюю базу данных, описывающую кэшируемый на диске контент. Может сократить потребление памяти, но повлиять на скорость;
- maximal-client-connections — максимальное число подключений к proxy-серверу от клиентов. Подключения сверх указанного здесь количества будут отклоняться;
- maximal-server-connections — максимальное число подключений к серверам. Подключения от клиентов к другим серверам сверх указанного здесь количества будут находиться в режиме ожидания, пока некоторые текущие подключения не завершатся ;
- max-fresh-time — максимальный срок хранения кэшируемого контента;
Настроим стандартный proxy-сервер на адресе 192.168.11.1, для этого через терминал вводим команду:
Для настройки через Winbox открываем IP → Web Proxy ставим галочку напротив Enabled, указываем IP адрес и порт, на котором будет работать наш proxy-сервер, кстати, тут же настраивается родительский прокси в разделе Parent proxy.
При настройке обычного функционала web-proxy, должна быть также выполнена настройка на стороне клиента (браузера) и указан сервер, который выступает в качестве proxy. Для настройки в Google Chrome нужно открыть Settings → Advanced → Confidentiality and Security, крутим в самый низ до пункта System и выбираем Proxy settings. В появившемся окне выбираем LAN settings → ставим галку напротив Use a proxy server for your LAN и заходим в Advanced. В появившемся окне вбиваем параметры нашего proxy-сервера в строку HTTP (в нашем случае 192.168.11.1 и порт 8080) и применяем настройки:
Настройка прозрачного проксирования
Прозрачное проксирование не требует дополнительных настроек на стороне клиентов. Более того, пользователи даже не будут подозревать, что их запросы направляются через proxy-сервер.
Чтобы настроить прозрачное проксирование, необходимо добавить NAT’ирующее правило в Firewall, которое будет определять какие HTTP запросы будут проходить через локальный proxy. Ниже показан пример того, как можно проксировать все запросы пользователей из сети 192.168.11.0/24
Списки доступа или использование Firewall’а на основе proxy
Пожалуй, этот функционал понравится вам больше всего 🙂
Список доступа работает здесь также, как и в правилах Firewall – сначала читаются самые приоритетные правила, затем, вниз по списку — менее приоритетные. Критерием для применения правил может быть совпадение таких параметров как: адрес источника, порт источника, адрес назначения, порт назначения, запрашиваемый URL или HTTP метод (POST, GET и др.)
В случае совпадения критериев, заданных в правиле и параметров подключения, такое подключение может быть разрешено (allow) или запрещено (deny). Если параметры подключения не подпадают ни под один из критериев правил, то оно по умолчанию разрешается.
Понятно, что использование правил должно применяться вместе с настройками прозрачного проксирования, которые мы рассматривали выше. Итак, допустим мы настроили прозрачное проксирование для сети 192.168.11.0/24 и пустили все HTTP запросы из этой подсети через наш прокси сервер.
Что если мы теперь хотим запретить пользователям в данной подсети сидеть во всеми любимом вконтактике? Очень просто – настроим список доступа. Для этого:
Мы также можем заблокировать web-сайты, которые содержат какое-либо ключевое слово или часть слова в названии, например:
И гуд-бай — Tinder.com, Twitter.com, Viber.com, ну вы поняли 🙂
Мы даже можем запретить скачивание определённых файлов:
Стоит отдельно рассказать про маски (wildcard), которые позволяют настроить более тонкое соответствие проверяемых URL’лов и других названий.
В dst-host и dst-path можно указывать следующие маски — * — любое количество символов. Например — *ings.docx будет искать .docx файлы, названия которых оканчиваются на ins или же просто файл ings.docx, то есть сюда подходят такие названия файлов – paintings.docx, wings.docx – перед ings может стоять любое количество символов.
Если поставить маску ?, то поиск будет осуществляться по количеству символов. Например маска ??ings.docx найдёт файл wnings.docx, но не найдёт paintings.docx, потому что маска задана на 2 символа.
Также поддерживаются регулярные выражения, но если вы собираетесь их использовать, то перед этим обязательно нужно поставить двоеточие :.
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Источник
Настройка проброса портов для создания интернет-сервисов
Порты позволяют сетевым и подключенным к интернету устройствам взаимодействовать через указанные каналы. Хотя серверы с назначенными IP адресами могут подключаться к интернету напрямую и делать порты публично доступными, система, находящаяся за роутером в локальной сети, может оказаться недоступной из интернета. Технология проброса портов (port forwarding) позволяет преодолеть это ограничение и сделать устройства доступными публично.
Сетевые сервисы и приложения, запущенные на различных устройствах, используют порты с определенными номерами с целью инициации соединений и организации коммуникаций. Разные порты могут использоваться одновременно для разделения типов трафика и запросов. Обычно порты ассоциируются с определенными службами, чтобы клиент мог подключиться к серверу по определенному порту, а сервер принять соединение и ответить соответствующим образом.
Ниже представлены наиболее распространенные порты:
- 21: FTP (File Transfer Protocol; Протокол передачи файлов)
- 22: SSH (Secure Shell; Безопасный шелл)
- 23: Telnet (Teletype Network; Телетайпная сеть)
- 25:SMTP (Simple Mail Transfer Protocol; Простой протокол передачи электронной почты)
- 80 : HTTP (Hypertext Transfer Protocol; Протокол передачи гипертекста)
- 194: IRC (Internet Relay Chat; Ретранслируемый интернет-чат)
- 443: HTTPS (HTTP с поддержкой шифрования)
Если вы читаете это руководство в интернете при помощи веб-браузера, то вероятно используете протокол HTTPS, работающий на порту 443.
Хотя порты упрощают задачу идентификации и обработки определенных запросов, соглашение о нумерации портов является стандартом, но не правилом. Порты могут использовать для любых задач при условии, что соединение между клиентом и сервером на указанном порту использует соответствующий протокол.
В веб-браузерах нестандартные HTTP порты могут быть указаны после двоеточия в конце IP адреса или URL с целью загрузки содержимого через этот порт. Если веб-сервер запущен на локальной машине на порту 8080, а не более общепринятом 80 порту, возможно получить доступ к этому серверу, если ввести в браузере адрес localhost:8080 или 127.0.0.1:8080. Если же ввести один из вышеуказанных адресов без суффикса «:8080» та же самая страница загружена не будет.
Хотя любой открытый порт должен позволять попытки соединения, чтобы эти попытки совершились, у клиента должен быть сетевой доступ к целевому устройству. В случае с сервером, подключенным к интернету напрямую, или при соединении через локальную сеть, сложностей обычно не возникает. Проблема появляется в тот момент, когда мы пытаемся подключиться к порту у устройства, находящегося за роутером или фаерволом.
Большинство домашних или офисных сетей подключено к интернету через роутер, который регулирует доступ и аккумулирует трафик на одном IP адресе. Все запросы и пакеты отсылаются через роутер перед обратным возвращением ответов на соответствующие устройства, сделавшие изначальные запросы. По умолчанию роутеры не обрабатывают входящие запросы на определенных портах. Если кто-то пытается подключиться к роутеру через SSH, роутер не сможет ни обработать этот запрос, ни отправить этот запрос дальше по цепочке, поскольку не знает целевого адресата. Эту проблему как раз и решает настройка проброса портов внутри роутера.
Шаг 1. Выяснение IP адреса роутера
Обычно у роутеров доступна административная панель по протоколу HTTP (порт 80). В большинстве случаев для доступа используется локальный IP адрес роутера (192.168.0.1 или 192.168.1.1). В Microsoft Windows подключенный роутер (или шлюз, используемый по умолчанию) легко обнаружить при помощи команды ipconfig/all.
В Линуксе та же самая задача решается при помощи утилиты netstat. Откройте терминал и введите следующую команду для выяснения IP адреса подключенного роутера.
В macOS используется та же самая команда:
Шаг 2. Доступ к конфигурационной панели роутера
После выяснения локального IP адреса роутера вы можете получить доступ к конфигурационной панели, если введете адрес в браузере, как и в случае с обычным URL (у некоторых роутеров, например, предусмотрено мобильное приложение, и задача упрощается).
Рисунок 2: Форма авторизации конфигурационной панели роутера
После загрузки панели управления необходимо выполнить авторизацию. Имя пользователя и пароль могут быть установлены производителем или интернет-провайдером или вами. Эту информацию можно найти в документации на роутер или на корпусе.
Хотя у разных роутеров панель управления может отличаться, в целом процедура настройки примерно одинаковая. После авторизации зайдите в раздел «Advanced» или найдите, где находится раздел «Port Forwarding». В нашем случае соответствующий раздел называется «Advanced Port Forwarding Rules».
Рисунок 3: Раздел с настройкой проброса портов
Шаг 3. Настройка правил проброса портов
Для демонстрации правил проброса портов рассмотрим простейший случай, когда у пользователя есть устройство Raspberry Pi, подключенное домашнему сетевому роутеру. На Pi запущена служба SSH, позволяющая залогиниться на устройстве при наличии корректного имени пользователя и пароля. Текущий IP адрес устройства Raspberry Pi — 192.168.0.105.
Правило было названо как «RBPi SSH» с целью упрощения идентификации в будущем. В целом имя правила полностью зависит от ваших личных предпочтений и не влияет на используемые порты.
Диапазон параметра Public Port (иногда именуемого как Source Port) установлен от 22 до 22 (стандартный порт протокола SSH). Этот порт роутер сделает доступным через интернет. Через этот же порт пользователь будет подключаться к Raspberry Pi.
Параметр Private Port (иногда именуемый как Destination Port) установлен как 22, поскольку демон SSH на устройстве Pi работает на 22 порту.
Параметр Traffic Type установлен как TCP, поскольку по протоколу SSH передается TCP трафик.
Параметр IP Address соответствует IP адресу устройства Pi в локальной сети (192.168.0.105).
Наконец, слева от правила отмечен флажок, чтобы правило стало активным.
У вашего роутера интерфейс может отличаться, но в целом суть настроек остается неизменной.
Рисунок 4: Настройки правила проброса портов для авторизации через протокол SSH
Вышеуказанное правило означает, что пользователь может подключаться по IP адресу роутера по протоколу SSH через интернет и впоследствии будет перенаправлен на сервер устройства Raspberry Pi. Эту схему можно использовать для создания веб-сервера, работающего на 80 порту, или, например, для прикрепления сервера видеоигр к указанному порту. Учитывайте, что у некоторых провайдеров есть правила, касательно хостинга и другого контента, которые нужно учитывать перед тем, как сделать доступным сервер из локальной сети.
Шаг 4. Защита от сканирования портов и атак
Одна из проблем, возникающая во время открытия портов в интернете при помощи проброса – порты становятся доступными для сканирования. Злоумышленники в интернете могут использовать автоматизированные средства для сканирования диапазонов IP адресов или утилиты навроде Shodan для поиска потенциально уязвимых устройств с определенными активными портами. Порты протокола SSH являются основной целью, поскольку дают доступ к шеллу, при помощи которого можно украсть данные или установить вредоносное приложение.
В случае проброса портов для защиты от сканирования может оказаться полезным поменять публичный или исходный порт в настройках роутера. Вместо распространенного порта 22, на который настроены все сканеры, можно указать нестандартный порт (например, 9022).
Рисунок 5: Настройка SSH на нестандартный порт
После смены порта клиент при подключении к устройствам через SSH из интернета должен будет указать порт 9022. Попытка подключиться к порту 22 извне окажется неудачной, поскольку проброс будет идти от порта 9022, а не от порта 22.
Вы также можете использовать сервис типа Fail2ban (фреймворк для защиты от внешний вторжений), предназначенного для защиты сети от атак с использованием брутфорса, после того как злоумышленник найдет активный порт. Утилиты навроде Fail2ban ограничивают количество попыток авторизации, выполняемых из внешней сети.
Проброс портов в Линуксе на системном уровне
Проброс портов на уровне роутера может быть полезным для настройки сетей, доступных через интернет. В Линуксе ту же самую задачу можно решить на системном уровне.
Схожим образом, что и порт роутера связывается с указанным портом устройства внутри локальной сети, один порт можно связать с другим для упрощения использования. Например, при установке ханипота Cowrie демон SSH перемещается от порта 22 на порт 9022. Затем порт 2222, где работает ханипот, перенаправляется на порт 22, который будет доступен в интернете и, как следствие, с высокой степенью вероятности просканирован и атакован.
Для конфигурирования локального проброса портов в Линуксе вначале нужно выполнить следующую команду с целью установки в параметр ip_forward значения 1 (в этом случае проброс портов активируется на уровне операционной системы):
Как только IP форвардинг включен, убедитесь, что вы знаете текущий порт сервиса, который нужно пробросить. Во время конфигурирования ханипота Cowrie эта задача решается посредством настройки демона SSH на порт 9022.
Наконец, для включения локального проброса портов, можно воспользоваться iptables. Команда ниже перенаправляет запросы с порта 22 на порт 2222, где эти запросы обрабатывает ханипот.
Другие сферы, где используется проброс портов
Перенаправление портов может использоваться и в других задачах. Например, порт 8080 может быть перенаправлен на порт 80 с целью облегчения доступа к тестовому серверу, или могут быть добавлены новые порты для использования определенной службой. Проброс портов полезен для удаленного доступа, администрирования сервера, конфигурирования сети и даже во время пост-эксплуатации и пивотинга. Понимание этой технологии может быть ключом к бесчисленному множеству других проектов по безопасности.
Источник