Jump to content
iT4iT.CLUB

Search the Community

Showing results for tags 'nat'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Operating systems
    • UNIX
    • Mac OS
    • Windows
  • Monitoring System
    • Zabbix
  • Network hardware
    • Cisco Systems
    • MikroTik
    • Ubiquiti Networks
  • Microcontrollers
    • Arduino

Blogs

There are no results to display.

There are no results to display.

Categories

  • Zabbix
    • Templates
  • Arduino
    • Espressif Systems
    • Libraries
  • UNIX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 2 results

  1. Представьте ситуацию, что Вам необходимо получить доступ к закрытому ресурсу. Это может быть, как компьютер находящийся в частной локальной сети (например, на работе), так и сервер находящийся в интернете и доступ к нему закрыт в связи с разного рода санкциями и прочей чепухой не имеющей ничего общего со здравым смыслом. Некоторые пользователи скатываются настолько низко, что могут закрыть видео на YouTube для граждан той или иной страны. Ну да Бог с ними, сама реализация описанная ниже намного более интереснее чем закрытый видеоролик и, тем более имеет намного более широкие перспективы! Все эти проблемы решает VPN, заодно он является самым распространенным способом для организации удаленных рабочих мест разными работодателями. В подавляющем большинстве случаев при использовании VPN Ваш компьютер становится частью чужой локальной сети, следовательно, маршрутизация всего трафика уже идет по чужим правилам. В рабочей обстановке это может выражаться в виде отсутствия доступа в интернет через сеть работодателя или между Вами и остальным интернетом вдруг появляется чужой Firewall и блокирует доступ к: ICQ, IRC, Skype или другим законным ресурсам. А вот если Вы используете в интернете бесплатные VPN сервера (да и платные тоже) для Ваших личных нужд, то стоит помнить о том, что весь трафик проходит где-то там и все, что Вы делаете становится известно всем заграничным друзьям. В список раскрытой информации также входят cookie используемые Вашим браузером, платежные реквизиты от электронной коммерции до банковских карт, различные ключи и много всего интересного. Кстати, отечественные сервера тоже не брезгуют воспользоваться этими данными. Самое логичное решение на мой взгляд - составить список ресурсов, с которыми необходимо работать через VPN и заворачивать их трафик в тоннель, а все остальное пускать классическим способом через местного провайдера. Сам VPN тоннель поднимать только в том случае, если появляется трафик для него. Это позволит не держать постоянно поднятый канал и сэкономит ресурсы. Приступим к реализации Первым делом нам необходимо создать список сетей, в которые мы хотим ходить через VPN. Условно назовем этот список "blackHole". Список подсетей работодателя можно узнать у самого работодателя или его IT специалистов. Но вот, что делать если необходимо получить доступ к закрытому иностранному ресурсу? Для наглядности эксперимента пусть его роль сыграет https://2ip.ru/ т.к это покажет наглядную работу системы. Давно не новость, что за DNS именем ресурса может находится несколько IP адресов, иногда даже десятки или сотни. Все их необходимо добавить. В этом случае очень хорошо, если у Вас под рукой имеется машина с UNIX подобной операционной системой с установленными утилитами Host и Whois. Если таковой нету, то утилиты нам заменят: Host: http://www.digwebinterface.com/ Whois: https://www.reg.ru/whois/ https://www.nic.ru/whois/ Узнаем список используемых IP адресов с помощью утилиты Host root@linuxPC:/# host 2ip.ru 2ip.ru has address 178.63.151.224 2ip.ru mail is handled by 10 aspmx3.googlemail.com. 2ip.ru mail is handled by 5 alt1.aspmx.l.google.com. 2ip.ru mail is handled by 5 alt2.aspmx.l.google.com. 2ip.ru mail is handled by 1 aspmx.l.google.com. 2ip.ru mail is handled by 10 aspmx2.googlemail.com. Узнаем список всех подсетей с помощью утилиты Whois. Если предыдущая операция показала наличие более одного IP адреса, то данную процедуру нужно провести для всего списка. root@linuxPC:/# whois 178.63.151.224 % This is the RIPE Database query service. % The objects are in RPSL format. % % The RIPE Database is subject to Terms and Conditions. ... route: 178.63.0.0/16 Будет очень много информации, но нас интересует только строка с параметром route. Именно эту подсеть с указанием маски мы и добавляем в список "blackHole" маршрутизатора. /ip firewall address-list add address=178.63.0.0/16 comment=2ip.ru disabled=no list=blackHole Или через WinBox в разделе IP -> Firewall -> Address List Теперь необходимо промаркировать пакеты, это позволит повлиять в дальнейшем на их маршрутизацию. Каждому пакету, который предназначается для подсети из списка "blackHole" мы дадим маркер с именем "bh". /ip firewall mangle add action=mark-routing chain=prerouting dst-address-list=blackHole log=no \ new-routing-mark=bh Или через WinBox в разделе IP -> Firewall -> Mangle Теперь нам необходимо создать подключение к VPN серверу. В сети большой выбор как бесплатных серверов с периодически меняющимися учетными данными для подключения, так и платных к которым тоже нет особого доверия. В идеале конечно лучше держать свой собственный сервер, но это требует некоторых затрат средств и выгодно только в том случае, если такой доступ необходим целой компании или организации. Настройка будет зависеть от Вашего выбора. Я нашел первый попавшийся PPTP сервер и подключился к нему. /interface pptp-client add comment="VPN blackHole" connect-to=serverName\ disabled=yes name=pptp-out1 password=password\ user=login dial-on-demand=yes keepalive-timeout=60 comment - комментарий к подключению connect-to - адрес VPN сервера disabled - устанавливаем yes пока не закончим настройку (сюрпризы не нужны) name - имя интерфейса password - пароль user - логин dial-on-demand - связь с сервером устанавливается только при необходимости keepalive-timeout - время удержания соединения в секунда до разрыва связи в случае не использования соединения Или через WinBox в разделе Interface Учитывайте, что для разных серверов одного типа настройки могут сильно отличаться. Добавляем запись Masquerade в NAT для нашего нового интерфейса. /ip firewall nat add action=masquerade chain=srcnat dst-address-list=blackHole out-interface=\ pptp-out1 Или через WinBox в разделе IP -> Firewall -> NAT Осталось дело за малым, добавить новую запись в лист маршрутизации и заворачивать пакеты с маркером "bh" на интерфейс pptp-out1 /ip route add distance=1 gateway=pptp-out1 routing-mark=bh Или через WinBox в разделе IP -> Routes Поднимаем интерфейс (естественно, что у Вас его порядковый номер может отличаться) /interface pptp-client set numbers=0 disabled=no После всех манипуляций идем на любой адрес из списка "blackHole", в нашем случае это http://2ip.ru и сравниваем адрес с данными например на http://myip.ru Теперь трафик перераспределяется нужным нам образом и можно приступить к поднятию необходимых тоннелей с серверами и маршрутизаторами на работе, в удаленных офисах и вообще с чем душе угодно.
  2. Точное время - всегда актуальный вопрос. В большинстве случаев высокая точность не нужна и настроить время на вашем оборудовании можно по наручным, кухонным или напольным с кукушкой часами, да хоть по положению солнца, и этого будет более чем достаточно для большинства людей. Но вот, что делать, если хочется высокой точности? Верно, начинаем синхронизироваться с любым попавшимся NTP сервером в интернете, он в свою очередь синхронизируется с другим (возможно даже более точным, а может быть и нет) сервером. Цепочка может быть достаточно длинной, но в один прекрасный день может появится желание убрать посредников и найти самые точные часы на планете и спрашивать время у них. А какие часы самые точные? Атомные! Кстати на wikipedia имеется отличная статья про время! И вот тут пораскинув мозгами, начинаем судорожно вспоминать, в каком это супермаркете мы последний раз видели их в продаже и желательно с USB интерфейсом, можно даже розового цвета... Вы тоже не видели? Печаль. А ведь у нас над головой, на высоте порядка 19400 км висят куча спутников систем позиционирования (GPS / ГЛОННАС), а чтобы они работали им нужно знать точное время. Именно для этой цели у каждого из этих трудяг на борту имеются атомные часы! Отлично, давайте узнавать время у этих ребят. И так, немного задержавшись на сайте MikroTik можно найти пакет gps-xx.xx.npk который позволяет расширить возможности маршрутизатора и позволит ему определять свои точные координаты на поверхности нашей планеты. Чтобы установить пакет, достаточно просто скопировать его на маршрутизатор (сделать это можно перетащив .npk файл в файловый менеджер WinBox) и перезагрузиться. Теперь нам нужен GPS приемник. Общение будет идти по протоколу NMEA 0183, PDF. Мой маршрутизатор собран на базе стационарного компьютера, а следовательно можно смело брать приемник с USB интерфейсом. В наличии имеется отличный экземпляр от GlobalSat - BU-353U4. После подключения приемника переходим к настройки маршрутизатора. [admin@Kitsum] > port print Flags: I - inactive # DEVICE NAME CHANNELS USED-BY BAUD-RATE 0 serial0 1 Serial Console 9600 1 3:2 usb2 1 4800 Отлично, маршрутизатор видит что-то на порту usb2, запоминаем его Flag (1) и выставляем настройки согласно техническим характеристикам от производителя. Естественно, что для Вашего "свистка" настройки могут отличаться. [admin@Kitsum] > /port [admin@Kitsum] /port> set numbers=1 baud-rate=4800 data-bits=8 parity=none flow-control=none stop-bitsrs=1 Все настройки с портами Вы можете провести через Web интерфейс или WinBox в разделе System -> Ports Теперь осталось дело за малым. Сообщим маршрутизатору, что на порту usb2 висит GPS приемник, и он может им овладеть, то есть воспользоваться, ... блин использовать! И естественно, мы желаем, чтобы время, полученное в телеграмме от спутников считалось эталонным и использовалось как системное. [admin@Kitsum] > /system gps [admin@Kitsum] /system gps> set enabled=yes port=usb2 set-system-time=yes Теперь мы может посмотреть, какими именно данными мы начали располагать в следствии, этих сверх сложных манипуляций! Внимание: естественно, что при холодном старте, данные начнут поступать не сразу. [admin@Kitsum] > /system gps [admin@Kitsum] /system gps> monitor date-and-time: feb/08/2016 14:44:42 latitude: N 00 18' 13.236'' longitude: E 00 54' 5.236'' altitude: 325.299988m speed: 0.000000 km/h destination-bearing: none true-bearing: 133.419998 deg. True magnetic-bearing: none valid: yes satellites: 9 -- [Q quit|D dump|C-z pause] В данном случае получилось поймать сигнал с 9 спутников. Каждый из них передает нам свои координаты, а самое главное - время со встроенных атомных часов. Большая часть информации вычисляется уже по месту (скорость, высота ...). Мы практически добились нужного результата. Естественно мы получаем время по Гринвичу (UTC+0), меня это не устраивает, видимо и Вас тоже. Необходимо подправить часовой пояс. Это можно сделать в System -> Clock [admin@Kitsum] > /system clock [admin@Kitsum] /system clock> set time-zone-autodetect=no time-zone-name=Europe/Moscow И так, теперь Ваш маршрутизатор знает самое точное время на планете и им стоит поделиться хотя бы со всеми желающими в локальной сети. А таких поверьте, будет не мало. В современном мире все устройства жаждут обладать этой информации. Как же без этого Вам кофеварка сварит благородный напиток, или телевизор выключится и оградит молодое поколение от всего того, что оно и так потом узнает, а пока должно делать уроки, ммм? Необходимо поднять собственный NTP сервер и делается это сверх сложной и длинной командой. [admin@Kitsum] > /system ntp server [admin@Kitsum] /system ntp server> set enabled=yes manycast=yes Ну, или просто выставлением соответствующей галочки в System -> NTP Server И все было бы просто великолепно, если бы устройства в сети знали, что мы владеем более точным временем, чем time.windows.com, time.nist.gov да и сотни других серверов. Первая мысль, которая посетила меня - просто подменю ip адреса в записях DNS и "вуаля", но я даже понятия не имею с чем синхронизируется мой телефон, телевизор и у кого, после очередного обновления, захочет узнать время мой компьютер. Мы знаем, что NTP протокол использует 123 UDP порт для общения. Предлагаю перехватывать все запросы, из нашей локальной сети, адресованные на этот порт во внешний мир и заворачивать их на внутренний IP маршрутизатора! У меня все сетевые интерфейсы локальной сети объедены в Bridge и весь трафик ходит во внешний мир через через NAT и masquerade, внутренний адрес маршрутизатора 10.10.10.1 Добавим новое правило в NAT [admin@Kitsum] > /ip firewall nat [admin@Kitsum] /ip firewall nat> add action=dst-nat chain=dstnat dst-port=123 in-interface=bridge1 protocol=udp to-addresses=10.10.10.1 to-ports=123 На этом все. PS: зачем? потому что хочется и есть возможность!
×
×
  • Create New...