PXE Boot на Juniper SRX

Технология PXE boot используется для загрузки по сети установочного образа операционной системы с последующей его установкой. Она является альтернативой использованию установочного диска.

Для работы PXE используются такие протоколы как DHCP и TFTP.

Протокол DHCP предназначен для автоматического присвоения IP адресов клиентам в сети, а также дополнительных сетевых параметров (опций): адреса роутера, адреса DNS серверов и т.д.

Технология PXE использует в своей работе специальные DHCP опции, которые позволяют сетевым клиентам найти загрузочный сервер в сети и загрузить с него загрузочный файл.

Работа DHCP протокола состоит из обмена сообщениями между клиентом и сервером, по завершении которого, клиент присваивает себе определенный IP-адрес, выданный сервером. Эти сообщения: DHCP Discover, DHCP Offer, DHCP Request, DHCP Response.

Поскольку клиент на начальном этапе не имеет своего IP-адреса все сообщения передаются через широковещательную рассылку на адрес 255.255.255.255. Поскольку широковещательные пакеты не передается за пределы подсети, это означает, что DHCP сервер должен быть либо в одной подсети с клиентом, либо должна быть задействована технология Relay Agent, позволяющая передавать DHCP запросы за пределы подсети.

Читать далее

Реклама

Почему Япония такая… другая?

Краткая история отделения от Китая, становления иной и превращения в современную Японию.

В марте 1885 года в японской газете Джиджи Шимпо вышла статья с заголовком «Покидая Азию». Автором статьи считается Юкичи Фукузава, гений 19-го века, стоявший за движением по модернизации страны, достигнувшим апогея в Реставрации Мэйдзи. В ней высказывалась мысль о том, что Японии больше нельзя ограничиваться «феодальными» Китаем и Кореей и необходимо «покинуть ряды азиатских народов и начать сближение с цивилизационными странами запада».

История разрыва отношений с Китаем, страной впоследствии оккупированной и униженной, остается актуальной до сих пор. Отношения между двумя странами остаются натянутыми и по сей день. Военные корабли и самолеты обеих государств постоянно маневрируют вокруг спорных островов в Восточно-Китайском море, эскалируя обстановку. Лидеры стран сравнивают текущее положение с 1914 или 1939 годами, когда мир стоял на грани войны.

Причиной вражды является вторжение Японии на территорию Китая в 1930-х и 1940-х годах, в результате данной неудачной попытки колонизировать Китай погибли миллионы. Корни вражды могут также крыться и в 1895 году, когда Япония, в результате войны с Китаем, присоединила к себе китайские территории, включая Тайвань и острова Сенкаку (которые на территории Китая называют Дяоюйдао), те самые, которые сегодня вызывают территориальные споры. На более бытовом уровне чувство обиды между двумя народами возникло с момента разрыва культурного обмена между Японией и Китаем, когда Япония приложила колоссальные усилия к модернизации и европеизации.

Китай когда-то считался вершиной мысли и прогресса для Японии, изолированной на архипелаге к востоку от Евразийского материка. Основанный в 8-ом веке Киото, являвшийся столицей Японии на протяжении тысячи лет, был создан по образу столицы Китая времен правления династии Тан — Сиань. Самые значимые японских поэты того времени писали на китайском. Только женщины использовали японскую слоговую азбуку кана, на которой в 11 веке была написана «Повесть о Гэндзи», считающаяся первым романом в мире. Для образования мужчин в Японии использовался исключительно китайский язык.

Читать далее

Установка Redmine на CentOS 6.5 с PostgreSQL 9.3

В данном посте рассказывается как поставить систему управления проектами Redmine на CentOS с сохранением БД в PostgreSQL. В качестве фронденда будет использоваться nginx в связке с Phusion Passenger. Поскольку установка тестовая, все будет располагаться на одной машине. Версии ПО по возможности используются последние на момент написания, поэтому применяется сборка из исходных кодов.

Последовательность установки:

  1. Ruby — интерпретируемый язык
  2. Node.js — JavaScript сервер
  3. Ruby on Rails — веб-фрэймворк на базе Ruby
  4. ImageMagick — библиотека для экспорта диаграмм Ганта в PNG
  5. Phusion Passenger — сервер приложений для Ruby on Rails
  6. nginx — веб-сервер
  7. PostgreSQL — сервер баз данных
  8. Redmine — система управления проектами

Читать далее

Понятия IP фрагментация, MTU, MSS, PMTUD и их связь

Данный пост написан по мотивам статьи «Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC» c сайта Cisco, рассказывающей про работу механизма Path Maximum Unit Discovery (PMTUD) в связке с разными механизмами туннелирования IP.

IP фрагментация и обратная сборка

Длина IP пакета может достигать 64 Кбайтов, что может превышать размер фрейма (MTU) протокола нижнего уровня, в который инкапсулируется IP. Поскольку IP может передаваться по средам с разными значениями MTU, в него был встроен механизм фрагментации. Задача принимающей стороны обратно собрать фрагменты в оригинальный IP пакет.
При IP фрагментации IP пакет делится на несколько кусочков (фрагментов), оформленных таким образом, чтобы у принимающей машины была возможность их собрать в оригинальный IP пакет. Для ее работы в заголовке IP пакета используются сл. поля: адрес источника и получателя, идентификационный номер, размер пакета, смещение фрагмента и флаги: «не фрагментировать» (DF) и «у пакета еще есть фрагменты»(MF).

Проблемы с IP фрагментацией

При работе с IP фрагментацией следует помнить о нескольких особенностях.

  • Обратная сборка на маршрутизаторе — очень затратная задача. Задача маршрутизатора — передавать пакеты с максимальной скоростью в нужном направлении. В то время как обратная сборка подразумевает, что устройству необходимо выделить некий буфер, в который будут складываться фрагменты IP пакета, для того чтобы IP пакет собрать и передать дальше.
  • Другая особенность возникает из-за ненадежности сети передачи данных. Если один из фрагментов IP пакета потеряется, то тогда весь IP пакет должен быть отправлен заново; это означает еще один полный цикл фрагментации — сборки. Для примера возьмем протокол NFS. NFS по умолчанию работает с блоками размером 8192 байта, что вместе со всеми заголовками увеличивается до примерно 8500 байтов. Для передачи такого пакета по сети Ethernet, у которой размер MTU равен 1500 байтам, потребуется фрагментация пакета на шесть частей: пять по 1500 байт и один на 1100 байт. Если хотя бы один из этих фрагментов потеряется, потребуется повторная передача всего пакета, что в свою очередь означает запуск повторной фрагментации.

Обход IP фрагментации путем использования TCP MSS.

TCP Maximum Segment Size (MSS) определяет максимальный размер данных, который машина готова получить через один TCP сегмент. Сам TCP сегмент инкапсулируется в IP пакет. Значение MSS передается в заголовке TCP SYN при установлении соединения между двумя узлами (через механизм трехэтапного установления соединения). Обе стороны соединения передают значение своего MSS. В отличие от популярного заблуждения, принимаемое значение MSS не несет характер переговоров. Отправляющий хост обязан ограничить размер своих исходящих TCP сегментов значением равным или меньшим значению, сообщенному ему принимающим хостом.
Значение MSS выбирается таким образом, чтобы предотвратить IP фрагментацию. Механизм работы MSS следующий: при создании TCP соединения, машина определяет размер буфера исходящего интерфейса и MTU этого интерфейса. Дальше эти два числа сравниваются и выбирается наименьшее. Тут следует оговориться, что за MTU выбирается число по формуле MTU минус 40 байт, для учета TCP и IP заголовков. Затем выбранное число сравнивается с размером MSS, переданным принимающей стороной, и снова выберется наименьшее значение.
Пример работы MSS:

  1. Машина А сравнивает размер своего буфера интерфейса (16 Кбайт) со значение MTU этого интерфейса (1500-40 = 1460 байт) и использует наименьшее число как MSS при отправке к машине B.
  2. Машина B принимает значение MSS машины A (1460) и сравнивает его со значением MTU своего исходящего интерфейса (4462 — 40 = 4422 байт).
  3. Машина B выбирает наименьшее из получившихся значений (1460) как значение MSS при отправке TCP сегментов к машине A.
  4. Машина B сравнивает размер своего буфера интерфейса (8 Кбайт) со значение MTU этого интерфейса (4462-40 = 4422 байт) и использует наименьшее число как MSS при отправке к машине A.
  5. Машина A принимает значение MSS машины B (4422) и сравнивает его со значение MTU своего исходящего интерфейса (1500 — 40 = 1460 байт).
  6. Машина A выбирает наименьшее из получившихся значений (1460) как значение MSS при отправке TCP сегментов к машине B.

Таким образом MSS на обеих сторонах установлено равным 1460 байтам, это наиболее частая ситуация.
В данном примере IP фрагментация не будет происходить, поскольку в процессе установления TCP соединения, размер TCP сегментов был взят с расчетом на вмещение в MTU низлежащей сети. Однако, если IP пакет пойдет через сети с меньшим MTU, то может потребоваться фрагментация.
Читать далее

Active Directory Constrained Delegation и SPN

Протоколом аутентификации в среде Active Directory является Kerberos. Помимо стандартных операций создания учетных записей, под которыми пользователи заходят на свои компьютеры в домене AD, для улучшения защиты рекомендуется для запуска сервисов создавать специальные учетные записи, иногда называемые сервисными учетными записями.
Однако для нормального функционирования некоторых приложений в среде Kerberos, чьи сервисы запускаются под доменной учетной записью, требуется произвести некоторые дополнительные действия. О том, что такое Constrained Delegation и связанное с ним понятие SPN, а также пример их использования, и будет рассказано в данном посте.

Service Principal Names (SPN) — это идентификатор сервиса, запущенного на доменной машине. Например, для учетной записи из-под которой запущен сервис SQL Server, должен быть указан свой SPN.
SPN должен быть уникальным в пределах леса.
У двух типов доменных учетных записей: пользователя и компьютера, только у компьютера существуют автоматически указанные SPN. При вводе комьютера в домен, у его учетной записи автоматически указывается host SPN, которое позволяет сервисам на этой машине запускаться из-под локальных учетных записей Local System и Network Service. Таким образом если для запуска сервисов на машине используется доменная пользовательская учетная запись, для нее необходимо указать SPN.
Примеры SPN для пользовательских учетных записей:

  • MSSQLSvc/sqlsrvr.contoso.com:1433 — данный SPN указывает, что под этой учетной записью может быть запущен сервис SQL Server на машине с FQDN sqlsrvr.contoso.com, дополнительно также указан порт (1433) этого сервиса.
  • HTTP/websrvr.contoso.com — данный SPN указывает, что под этой учетной записью может быть запущен HTTP Server сервис на машине с FQDN websrvr.contoso.com. Стоит отметить, что FQDN в данной случае, это не Host header. Также данный SPN не воспринимает указание порта, таким образом, если на машине запущены несколько HTTP Server сервиса на разных портах, то нужно вместо FQDN машины указывать для SPN Host header конкретного IIS Web Application Pool.

Делегация Kerberos определяет способность одной учетной записи (сервиса) обращаться к другой учетной записи (сервису) используя данные третьей учетной записи (механизм, названный имперсонализацией). Пример, пользователь подключается к IIS серверу, который запрашивает от имени пользователя данные у SQL сервера.
Делегация может быть: неограниченная и ограниченная (constrained).
Ограниченная делегация используется только в пределах одного домена. Однако начиная с Windows Server 2012 это ограничение отменили.
Ограниченная делегация позволяет указать к каким сервисам и на каких машинах дозволено данной учетной записи (сервису) имперсонализировать пользователя.
Для того, чтобы появилась возможность использовать делегацию, у учетной записи должен быть указан хотя бы один SPN.
Пример ограниченной делегации Kerberos:

  • На доменной машине websrvr.contoso.com запущен веб сервер IIS под аккаунтом contoso\service_iis. У аккаунта contoso\service_iis указаны SPN: HTTP/websrvr.contoso.com и HTTP/websrvr. Также у этого аккаунта включена ограниченная делегация для MSSQLSvc/sqlsrvr.contoso.com.
    На доменной машине sqlsrvr.contoso.com запущен SQL сервер под аккаунтом contoso\service_sql. У аккаунта contoso\service_sql указаны SPN: MSSQLSvc/sqlsrvr.contoso.com и MSSQLSvc/sqlsrvr.
    В этом примере, клиент подключается к веб-серверу websrvr.contoso.com с целью получить данные, хранящиеся на SQL сервере sqlsrvr.contoso.com. На веб-странице используется код, обращающийся к SQL серверу за этими данными. Пользователь аутентифицируется на веб-сервере. Веб-сервер, используя ограниченную делегацию, использует имперсонализацию при обращении к SQL серверу.

Итог — список шагов для включения ограниченной делегации Kerberos:

  1. Убедится, что домен уровня 2003 и выше. Можно использовать оснастку Active Directory Domains and Trust.
  2. Настроить SPN для всех участвующих учетных записей сервисов. Можно использовать утилиту ADSI Edit и указать у выбранной учетной записи на вкладке Properties атрибут servicePrincipalName.
  3. Настроить ограниченную делегацию для всех учетных записей сервисов, которые будут обращаться от имени пользователя к другим сервисам. Можно использовать оснастку Active Directory Users and Computers и указать у выбранной учетной записи на вкладке Delegation пункт «Trust this computer for delegation to specified services only».
  4. Убедиться, что выбранные учетные записи не ограничены в делегации. Можно использовать оснастку Active Directory Users and Computers и у выбранной учетной записи на вкладке Account убедиться, что не выбран «Account is sensitive and cannot be delegated».
  5. Настроить локальную политику безопасности. Можно использовать оснастку Local Security Policy на машине с работающим сервисом и в разделе Local Policies, User Rights Assignment указать учетную запись сервиса в политиках «Log on as a service» и «Impersonate a client after authentication».

Источник 1
Источник 2
Источник 3

IPsec VPN. Основы.

IPsec представляет из себя не один протокол, а систему протоколов предназначенную для защиты данных на сетевом уровне IP-сетей. В данной статье будет описан теория применения IPsec для создания VPN туннеля.

Введение

VPN основанный на технологии IPsec можно разделить на две части:

  • Протокол Internet Key Exchange (IKE)
  • Протоколы IPsec (AH/ESP/both)

Первая часть (IKE) является фазой согласования, во время которой две VPN-точки выбирают какие методы будут использоваться для защиты IP трафика посылаемого между ними. Помимо этого IKE также используется для управления соединениями, для этого вводится понятие Security Associations (SA) для каждого соединения. SA направлены только в одну сторону, поэтому типичное IPsec соединение использует два SA.

Вторая часть – это те IP данные, которые необходимо зашифровать и аутентифицировать перед передачей методами, согласованными в первой части (IKE). Существуют разные протоколы IPsec, которые могут быть использованы: AH, ESP или оба.

Последовательность установления VPN через IPsec можно кратко описать как:

  • IKE согласовывает защиту уровня IKE
  • IKE согласовывает защиту уровня IPsec
  • защищаемые данные передаются через VPN IPsec

Читать далее

Почему стоит рассмотреть XenDesktop 7 для VDI

Если ваша фирма предоставляет услуги удаленного рабочего стола (DaaS) или удаленного приложения (SaaS), то существуют два повода задуматься об использовании Citrix XenDesktop 7:

  1. Начиная с седьмой версии в XenDesktop интегрирована функциональность XenApp. Т.е., если раньше для предоставления услуги удаленных приложений Citrix продвигал отдельный продукт, то теперь его функционал встроен в XenDesktop.
  2. Для тех, кто долго боролся с Microsoft Services Provider License Agreement (SPLA) по которому нельзя было нормально предоставлять Desktop OS в качестве VDI, а агент на Server OS не представлял нужной функциональности, Citrix включила возможность в поддерживаемых серверных операционных системах Windows установить агент с функциональностью агента рабочей станции (server VDI). Для этого нужно удалить роль Remote Desktop Services (если она установлена) и установить агент с ключом /servervdi . В этом режиме действуют следующие ограничения: одному пользователю предоставляет один экземпляр OS (поскольку не установлены RDS), а также нельзя публиковать приложения.