<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>ITZone</title>
<link>https://www.blog.ttgame.ru/</link>
<description>Notes about IT |   Блог   Фотография   Стартовая страница</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Notes about IT |   Блог   Фотография   Стартовая страница</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Обозначение мест на картах CS:GO</title>
<guid isPermaLink="false">89</guid>
<link>https://www.blog.ttgame.ru/all/oboznachenie-mest-na-kartah-v-cs-go/</link>
<pubDate>Fri, 20 Jan 2023 10:15:50 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/oboznachenie-mest-na-kartah-v-cs-go/</comments>
<description>
&lt;p&gt;Cache&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/cache-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/cache-eng.jpg" width="1920" height="1080" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Cobblestone&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/cobblestone-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/cobblestone-eng.jpg" width="1920" height="1080" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Dust II&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/dust-2-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/dust-2-eng.jpg" width="1920" height="1080" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Inferno&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/inferno-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/inferno-eng.png" width="1024" height="1024" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Mirage&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/mirage-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/mirage-eng.jpg" width="1920" height="1080" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Nuke&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1280" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/nuke-ru.jpg" width="1280" height="720" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/nuke-eng.png" width="1024" height="1024" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Overpass&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1920" data-ratio="1.7777777777778"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/overpass-ru.jpg" width="1920" height="1080" alt="" /&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/overpass-eng.jpg" width="1920" height="1080" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Винты и подшипники на Traxxas Slash 4wd lcg</title>
<guid isPermaLink="false">88</guid>
<link>https://www.blog.ttgame.ru/all/vinty-i-podshipniki-na-traxxas-slash-4wd-lcg/</link>
<pubDate>Mon, 06 Sep 2021 13:43:02 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/vinty-i-podshipniki-na-traxxas-slash-4wd-lcg/</comments>
<description>
&lt;p&gt;Увел у &lt;a href="https://alt.laurvas.ru/traxxas-slash-screws-and-bearings/"&gt;https://alt.laurvas.ru/traxxas-slash-screws-and-bearings/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сделал аккуратную шпаргалку со списком винтов и подшипников на Traxxas Slash 4x4 Platinum edition. По факту обнаружено расхождение со взрыв-схемой в четырёх или пяти местах.&lt;/p&gt;
&lt;p&gt;Эта шпаргалка будет отличным дополнением к взрыв-схеме. Смотреть взрыв-схему только ради винтов неудобно, к тому же она на 5 листах. А здесь всё на одном листе и ничего лишнего.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/traxxas-slash-screws-and-bearings.jpg" width="595" height="841" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;&lt;a href="https://disk.yandex.ru/i/j_PKqEHBQxDcYw"&gt;https://disk.yandex.ru/i/j_PKqEHBQxDcYw&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Не вписаны очевидные винты: ступенчатые, фиксирующие сервопривод, винт установки зазора пиньон-спур, винт крышечки для провода телеметрии. Они уникальные и их легко запомнить без шпаргалки, а крышечку я вообще ни разу не снимал. Как бы то ни было, на листе осталось немного свободного места для любых ваших пометок.&lt;/p&gt;
</description>
</item>

<item>
<title>Развертывание и использование WSUS сервера</title>
<guid isPermaLink="false">3</guid>
<link>https://www.blog.ttgame.ru/all/razvertyivanie-i-ispolzovanie-wsus-servera/</link>
<pubDate>Wed, 04 Oct 2017 23:31:42 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/razvertyivanie-i-ispolzovanie-wsus-servera/</comments>
<description>
&lt;p&gt;Установка обновлений и патчей является очень важной составной частью обеспечения безопасности. Для всех специалистов по информационной безопасности основной необходимостью является мониторинг, анализ и устранение уязвимостей программного обеспечения. Компания Microsoft предоставляет бесплатную возможность использования сервиса обновлений своих программных продуктов в течение всего времени поддержки программного продукта. Необходимые обновления доступны через сеть интернет всем пользователям программных продуктов.&lt;/p&gt;
&lt;p&gt;Применение обновлений к корпоративной среде требует дополнительных механизмов управления. Microsoft предлагает использовать в корпоративной среде мощный бесплатный продукт Windows Server Update Services (WSUS), который позволяет экономить трафик в сети Интернет, централизованно управлять обновлениями для серверов и рабочих станций.&lt;/p&gt;
&lt;p&gt;В данной статье будет рассмотрен опыт установки и обслуживания WSUS в корпоративной среде, который позволит новичкам избежать ряда «подводных камней».&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Установка WSUS&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;В рамках ОС Windows Server 2008 существует роль сервера Windows Server Update Services.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-01.png" width="600" height="444" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Для Windows Server 2003 следующие системные требования к установке WSUS 3.0 SP1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Операционная система: Windows Server 2003 SP1 и выше.&lt;/li&gt;
&lt;li&gt;Дополнительные роли сервера: IIS 6.0 и выше&lt;/li&gt;
&lt;li&gt;Дополнительные обновления ОС: Microsoft .NET Framework 2.0, Microsoft Management Console 3.0.&lt;/li&gt;
&lt;li&gt;Дополнительные программы: Microsoft Report Viewer, SQL Server 2005 SP1 (Служба WSUS способна установить внутреннюю службу Windows Internal Database).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Несмотря на то, что служба практически не требовательна к процессору и оперативной памяти, ей необходима изрядная доля дискового пространства. Желательно 40 Гб и более. В конечном итоге, размер занимаемого дискового пространства будет зависит от количества продуктов, которые необходимо обновлять, и количества требуемых обновлений в инфраструктуре.&lt;/p&gt;
&lt;p&gt;Если при установке сервер не удовлетворяет системным требования, то появится окно предупреждения, в котором будет описано что необходимо установить.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-02.jpg" width="600" height="176" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;b&gt;Настройка сервера WSUS&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Для нормальной работы сервера необходимо указать ряд параметров, которые делаются с помощью «Мастер настройки Windows Server Update Services»&lt;/p&gt;
&lt;p&gt;В окне «Выбор вышестоящего сервера» необходимо указать пункт «Синхронизировать с Центром обновлений Майкрософт».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-03.jpg" width="600" height="531" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;При применении к корпоративной среде прокси-сервера в окне «Настройка прокси-сервера» необходимо указать IP адрес, номер порта и параметры аутентификации на прокси-сервере.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-04.jpg" width="600" height="529" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Выбор языков» необходимо выбрать пункт «Загружать обновления только на следующих языках» обязательно выбрать «Английский». Выбор остальных языков необходимо делать исходя из систем, установленных в компании, обычно ещё добавляют «Русский». Нет необходимости выбирать «Загружать обновления на всех языках, включая новые», так как это увеличит количество обновлений, хранящихся на дисковом пространстве.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-05.jpg" width="600" height="529" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Выбор продуктов» необходимо указать продукты, установленные в рамках корпоративной среды. ВНИМАНИЕ! Никогда не устанавливаете все продукты, так как это может привести к увеличению размера хранимых обновлений, при этом обновления не будут использоваться. Необходимо методично и последовательно выбрать только те продукты которые используются в рамках корпоративной среды.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-06.jpg" width="600" height="525" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Выбор классов» необходимо указать только те классы которые требуют обновлений. Так как указание лишних классов в значительной степени увеличивает размер хранимых обновлений.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-07.jpg" width="600" height="530" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Настройка расписания синхронизации» необходимо выбрать время синхронизации. В рамках WSUS синхронизации не предполагает загрузку обновлений. В данном случае синхронизация будет производить только обновление информации с сервера Центра обновлений Майкрософт».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-08.jpg" width="600" height="526" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;После первой синхронизации необходимо открыть консоль WSUS и выбрать «Параметры». В «Параметры» открыть пункт «Файлы и языки обновлений».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-09.jpg" width="600" height="515" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Во вкладке «Файлы обновлений» окна «Файлы и языки обновлений» необходимо указать каким образом будет осуществляться хранение файлов обновлений. Так как мы хотим уменьшить размер Интернет трафика, то необходимо выбрать «Хранить файлы обновлений локально на этом сервере» и ОБЯЗАТЕЛЬНО! выбираем пункты «загружать файлы обновлений на сервер только после одобрения обновления» и «Загружать файлы экспресс — установки». Пункт «Загружать файлы обновлений на сервер только после одобрения обновления» необходим, так как по умолчанию сервер загрузить ВСЕ обновления, которые он посчитает необходимым для выбранных продуктов. Однако так как с течением времени очень многие обновления аккумулируются в Service Pack, то вероятнее всего они не будут нужны и займут дисковое пространство.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-10.jpg" width="438" height="489" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;После всех настроек необходимо добавить компьютеры в службу WSUS.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Добавление компьютеров в службу WSUS&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Если у Вас есть домен, то достаточно в его групповой политике прописать службу WSUS и выбрать правила обновления компьютеров.&lt;/p&gt;
&lt;p&gt;Это делается следующим образом «Пуск — Администрирование — Управление групповой политикой». Выбираем ту политику, которая действует в домене (по умолчанию Default Group Policy). Кликаем правой кнопкой и выбираем «Изменить».&lt;/p&gt;
&lt;p&gt;В окне «Редактор управления групповыми политиками» заходим «Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Центр обновления Windows». Выбираем пункт «Указать размещение службы обновлений в Интрасети ».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-11.jpg" width="600" height="488" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Свойства: Указать размещение службы обновлений в Интрасети» указываем параметр «Включен» и в строке «Укажите службу обновление в интрасети для поиска обновлений» прописываете строку вида: http:// [ip адрес или DNS имя сервера обновления в сети]. Копируете адрес в окно «Укажите сервер статистики в интрасети» (рис. 12). В рамках редактора групповой политики есть подсказки в окне объяснений.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-12.jpg" width="442" height="510" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Также необходимо определить политику обновлений. Это делается через пункт «Настройка автоматических обновлений».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-13.jpg" width="600" height="470" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;В окне «Свойства: Настройка автоматических обновлений» указываем параметр «Включен» и параметры «Настройка автоматического обновления», «Установка по расписанию — день», «Установка по расписанию — время». В окне «Объяснение» есть описание всех параметров для серверов и желательно устанавливать параметр «2 —уведомления о загрузке и установке», что позволит администраторам выбирать время установки обновлений на сервера.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-14.jpg" width="439" height="508" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Если в рамках инфраструктуры присутствуют рабочие места которые не входят в состав домена (например мобильные рабочие места), но служба обновлений для этих рабочих мест необходима, то существует возможность указания этой службы в «Локальной политике безопасности».&lt;/p&gt;
&lt;p&gt;В командной строке набираем gpedit.msc и проделываем те же операции, которые были описаны выше для групповой политики в домене.&lt;/p&gt;
&lt;p&gt;Через некоторое время компьютер появится в окне «Компьютеры — Все компьютеры — Не назначенные компьютеры» при «Состояние: Любой».&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-15.jpg" width="600" height="367" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;&lt;b&gt;Управление обновлениями&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Для того чтобы увидеть и одобрить необходимые обновления нужно в «Обновления — Все обновления» выбрать следующие пункты фильтра: «Одобрение: Неодобренные» и Состояние: Требуется» и нажать «Обновить». ВНИМАНИЕ! для проверки необходимых обновлений всегда обращайте внимание, чтобы настройки фильтра стояли в положениях «Одобрение: Неодобренные» и Состояние: Требуется», иначе вы рискуете загрузить ненужные вам обновления, или не загрузить их вообще. В случае, если фильтр в настройках «Одобрение: Неодобренные» и Состояние: Требуется» показал пустое поле, то все необходимые обновления для компьютеров уже одобрены и находятся на сервере.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/wsus-16.jpg" width="600" height="176" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;После одобрения на компьютере через какое-то время появятся обновления согласно правилам, настроенным в политике безопасности.&lt;/p&gt;
&lt;p&gt;Достаточно часто существует необходимость принудительной проверки обновлений на сервере обновлений со стороны компьютера. Для этого существует программа wuauclt.exe, которая запускается через командную строку. Для проверки обновлений её необходимо запускать с ключом /detectnow (wuauclt.exe /detectnow). Для посылки отчета о состоянии (очень часто необходимо при первом подключении к серверу обновлений) необходимо запускать с ключом /reportnow (wuauclt.exe /reportnow).&lt;/p&gt;
</description>
</item>

<item>
<title>Классы IP-адресов</title>
<guid isPermaLink="false">2</guid>
<link>https://www.blog.ttgame.ru/all/klassy-ip-adresov/</link>
<pubDate>Wed, 04 Oct 2017 22:57:00 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/klassy-ip-adresov/</comments>
<description>
&lt;h2&gt;&lt;b&gt;Таблица публичных IP-адресов&lt;/b&gt;&lt;/h2&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Класс&lt;/td&gt;
&lt;td style="text-align: center"&gt;Первые биты&lt;/td&gt;
&lt;td style="text-align: center"&gt;Наименьший адрес&lt;/td&gt;
&lt;td style="text-align: center"&gt;Наибольший адрес&lt;/td&gt;
&lt;td style="text-align: center"&gt;Маска подсети&lt;/td&gt;
&lt;td style="text-align: center"&gt;Число подсетей&lt;/td&gt;
&lt;td style="text-align: center"&gt;Кол-во узлов&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;A&lt;/td&gt;
&lt;td style="text-align: center"&gt;0&lt;/td&gt;
&lt;td style="text-align: center"&gt;1.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;126.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;127&lt;/td&gt;
&lt;td style="text-align: center"&gt;16,777,214&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;B&lt;/td&gt;
&lt;td style="text-align: center"&gt;10&lt;/td&gt;
&lt;td style="text-align: center"&gt;128.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;191.255.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.255.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;16,384&lt;/td&gt;
&lt;td style="text-align: center"&gt;65,534&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;C&lt;/td&gt;
&lt;td style="text-align: center"&gt;110&lt;/td&gt;
&lt;td style="text-align: center"&gt;192.0.1.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;223.255.255.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.255.255.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;2,079,151&lt;/td&gt;
&lt;td style="text-align: center"&gt;254&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;D&lt;/td&gt;
&lt;td style="text-align: center"&gt;1110&lt;/td&gt;
&lt;td style="text-align: center"&gt;224.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;239.255.255.255&lt;/td&gt;
&lt;td style="text-align: center"&gt;Multicast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;E&lt;/td&gt;
&lt;td style="text-align: center"&gt;11110&lt;/td&gt;
&lt;td style="text-align: center"&gt;240.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;247.255.255.255&lt;/td&gt;
&lt;td style="text-align: center"&gt;зарезервирован&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h2&gt;&lt;b&gt;Таблица зарезервированных IP-адресов для частных сетей&lt;/b&gt;&lt;/h2&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Класс&lt;/td&gt;
&lt;td style="text-align: center"&gt;Наименьший адрес&lt;/td&gt;
&lt;td style="text-align: center"&gt;Наибольший адрес&lt;/td&gt;
&lt;td style="text-align: center"&gt;Маска подсети&lt;/td&gt;
&lt;td style="text-align: center"&gt;Кол-во узлов&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;A&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.255.255.255&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.0.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;16,777,216&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;B&lt;/td&gt;
&lt;td style="text-align: center"&gt;172.16.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;172.31.255.255&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.255.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;65,536&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;C&lt;/td&gt;
&lt;td style="text-align: center"&gt;192.168.0.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;192.168.255.255&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.255.255.0&lt;/td&gt;
&lt;td style="text-align: center"&gt;65,536&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h2&gt;&lt;b&gt;Таблица IP-адресов специального назначения&lt;/b&gt;&lt;/h2&gt;
&lt;table cellpadding="0" cellspacing="0" border="0" class="e2-text-table"&gt;
&lt;tr&gt;
&lt;td style="text-align: center"&gt;Адрес&lt;/td&gt;
&lt;td style="text-align: center"&gt;Пример&lt;/td&gt;
&lt;td style="text-align: center"&gt;Назначение&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Все биты нули&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.0.0.0&lt;/td&gt;
&lt;td style="text-align: left"&gt;Адрес текущего узла сети, например, в процессе работы DHCP до присвоения IP-адреса&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Все биты единицы&lt;/td&gt;
&lt;td style="text-align: center"&gt;255.255.255.255&lt;/td&gt;
&lt;td style="text-align: left"&gt;Ограниченное широковещательное сообщение, адресованное всем узлам локальной сети&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Все хост-биты нули&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.0.0.0&lt;/td&gt;
&lt;td style="text-align: left"&gt;Идентификатор сети&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Все хост-биты единицы&lt;/td&gt;
&lt;td style="text-align: center"&gt;10.255.255.255&lt;/td&gt;
&lt;td style="text-align: left"&gt;Направленное широковещательное сообщение, адресованное всем узлам другой сети&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Все сетевые биты нули&lt;/td&gt;
&lt;td style="text-align: center"&gt;0.0.0.10&lt;/td&gt;
&lt;td style="text-align: left"&gt;Адрес конкретного узла в текущей сети&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;Первый квадрант 127&lt;/td&gt;
&lt;td style="text-align: center"&gt;127.0.0.1&lt;/td&gt;
&lt;td style="text-align: left"&gt;Адрес внутренней обратной связи узла&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h2&gt;&lt;b&gt;Расчёт количества подсетей и числа узлов в подсети&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Количество подсетей = 2s (s — количество битов для подсети в маске)&lt;br /&gt;
Количество узлов в подсети = 2h-2 (h — количество битов в узловой части)&lt;/p&gt;
&lt;p&gt;К примеру 2^3=8:&lt;br /&gt;
000&lt;br /&gt;
001&lt;br /&gt;
010&lt;br /&gt;
011&lt;br /&gt;
100&lt;br /&gt;
101&lt;br /&gt;
110&lt;br /&gt;
111&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Использование разных формул расчёта количества подсетей&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Формулу 2s-2 следует использовать в следующийх случаях:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используется классовый протокол маршрутизации&lt;/li&gt;
&lt;li&gt;Используется RIPv1 или IGRP в качестве протокола маршрутизации&lt;/li&gt;
&lt;li&gt;На роутере (Cisco) введена команда no ip subnet zero&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Формулу 2s следует использовать в следующих случаях:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используется бесклассовый протокол маршрутизации&lt;/li&gt;
&lt;li&gt;Используется RIPv2, EIGRP или OSPF в качестве протокола маршрутизации&lt;/li&gt;
&lt;li&gt;Введена команда ip subnet zero (может не показываться в конфиге)&lt;/li&gt;
&lt;li&gt;Используются маски переменной длины (VLSM)&lt;/li&gt;
&lt;li&gt;Никаких дополнительных требований и ограничений нет&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>Делаем из nginx непробиваемый Web-сервер</title>
<guid isPermaLink="false">1</guid>
<link>https://www.blog.ttgame.ru/all/delaem-iz-nginx-neprobivaemy-web-server/</link>
<pubDate>Wed, 04 Oct 2017 22:42:25 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/delaem-iz-nginx-neprobivaemy-web-server/</comments>
<description>
&lt;h2&gt;&lt;b&gt;Измени строку приветствия Web-сервера&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Скачай исходники nginx, открой файл src/http/ngx_http_header_filter_module.c и найди следующие две строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;static char ngx_http_server_string[] = Server: nginx CRLF;
static char ngx_http_server_full_string[] = Server:  NGINX_VER CRLF;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Замени их на что-то вроде этого:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;static char ngx_http_server_string[] = Server: ][ Web Server CRLF;
static char ngx_http_server_full_string[] = Server: ][ Web Server CRLF;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Удали все неиспользуемые тобой nginx-модули&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Некоторая часть модулей nginx подключается к Web-серверу прямо во время компиляции, и любой из них таит в себе потенциальную опасность. Возможно, в будущем в одном из них будет найдена уязвимость, и твой сервер окажется под угрозой. Отключив ненужные модули, ты сможешь значительно снизить риск возникновения такой ситуации.&lt;/p&gt;
&lt;p&gt;Выполни сборку с помощью следующих команд:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# ./configure --without-http_autoindex_module --without-http_ssi_module
# make
# make install&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Так ты получишь nginx с заранее отключенными (и в большинстве случаев бесполезными) модулями SSI (Server Side Includes) и Autoindex. Чтобы узнать, какие модули можно безболезненно выбросить из Web-сервера, запусти скрипт configure с флагом ’—help’.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Отключи показ версии сервера на всех ошибочных страницах&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Добавь в файл nginx.conf строку server_tokens off. Это заставит nginx скрывать информацию о типе и версии Web-сервера на страницах, генерируемых в ответ на ошибочный запрос клиента.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Настрой защиту от срыва стека&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Добавь в секцию server следующие строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
# Максимальный размер буфера для хранения тела запроса клиента
client_body_buffer_size 1K;
# Максимальный размер буфера для хранения заголовков запроса клиента
client_header_buffer_size 1k;
# Максимальный размер тела запроса клиента, прописанный в поле Content-Length заголовка. Если сервер должен поддерживать загрузку файлов, это значение необходимо увеличить
client_max_body_size 1k;
# Количество и размер буферов для чтения большого заголовка запроса клиента
large_client_header_buffers 2 1k;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Обрати внимание на директиву large_client_header_buffers. По умолчанию, для хранения строки URI nginx выделяет четыре буфера, размер каждого из которых равен размеру страницы памяти (для x86 это 4 Кб). Буферы освобождаются каждый раз, когда по окончанию обработки запроса соединение переходит в состояние keep-alive. Два буфера по 1 Кб могут хранить URI длиной только 2 Кб, что позволяет бороться с ботами и DoS-атаками.&lt;/p&gt;
&lt;p&gt;Для повышения производительности добавь следующие строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
# Таймаут при чтении тела запроса клиента
client_body_timeout 10;
# Таймаут при чтении заголовка запроса клиента
client_header_timeout 10;
# Таймаут, по истечению которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
keepalive_timeout 5 5;
# Таймаут при передаче ответа клиенту
send_timeout 10;&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Контролируй количество одновременных соединений&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Для защиты Web-сервера от перегрузки и попыток осуществить DoS-атаку добавь в конфиг следующие строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
# Описываем зону (slimits), в которой будут храниться состояния сессий. Зона размером 1 Мб может хранить около 32000 состояний, мы устанавливаем ее размер равным 5 Мб
limit_zone slimits $binary_remote_addr 5m;
# Задаем максимальное количество одновременных соединений для одной сессии. По сути, это число задает максимальное количество соединений с одного IP
limit_conn slimits 5;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Первая директива должна находиться в секции HTTP, вторая — в секции location. Когда количество соединений выйдет за пределы лимитов, клиент получит сообщение «Service unavailable» с кодом 503.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Разреши коннекты только к своему домену&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Взломщики могут использовать ботов для сканирования подсетей и поиска уязвимых Web-серверов. Обычно боты просто перебирают диапазоны IP-адресов в поисках открытых 80 портов и посылают запрос HEAD для получения информации о веб-сервере (или главной странице). Ты можешь легко предотвратить такой скан, запретив обращение к серверу по IP-адресу (добавить в подсекцию location):&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
if ($host !~ ^(host.com|www.host.com)$ ) {return 444;}&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Ограничь количество доступных методов обращения к Web-серверу&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Некоторые боты используют различные методы обращения к серверу для попытки определения его типа и/или проникновения, однако в документе RFC 2616 четко сказано, что Web-сервер не обязан реализовывать их все, и неподдерживаемые методы могут просто не обрабатываться. Сегодня используемыми остаются только методы GET (запрос документа), HEAD (запрос заголовков сервера) и POST (запрос на публикацию документа), поэтому все остальные можно безболезненно отключить с помощью помещения следующих строк в секцию server конфигурационного файла:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
if ($request_method !~ ^(GET|HEAD|POST)$ ) {return 444;}&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Отшивай ботов&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Другой способ блокирования ботов, сканеров и прочей нечисти основан на определении типа клиента (user-agent). Он не слишком эффективен, потому как большинство ботов косят под вполне легитимные браузеры, но в ряде случаев остается полезным:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
# Блокируем менеджеры загрузки
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {return 403;}
# Блокируем некоторые типы ботов
if ($http_user_agent ~* msnbot|scrapbot) {return 403;}&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Блокируй Referrer-спам&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Если твой сайт публикует Web-логи в общедоступном виде, ты легко можешь стать жертвой Referrer-спама (когда спам-боты обращаются к твоему серверу, указывая в заголовке referrer — адрес рекламируемого сайта). Такой вид спама может легко испортить SEO-рейтинги интернет-страницы, поэтому его необходимо блокировать в обязательном порядке. Один из способов сделать это — занести наиболее частые слова, встречающиеся в адресах рекламируемых сайтов, в черный список.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
# Секция serverif ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) )
{return 403;}&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Блокируй хотлинк&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Хотлинк — это включение в страницу изображения (или иного контента) с другого сайта. По сути, это воровство, потому как изображение, на которое ты потратил не один час своего свободного времени, не только свободно используется другими, но и создает нагрузку на твой Web-сервер, не приводя на него посетителей. Для борьбы с хотлинками достаточно сделать так, чтобы изображения отдавались клиенту только в том случае, если он запросил их, уже находясь на сайте (другими словами, заголовок referrer-запроса должен содержать имя твоего сайта). Добавь в секцию server конфигурационного файла nginx.conf следующие строки (host.com — это адрес твоего сайта):&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
location /images/ {
valid_referers none blocked www.host.comhost.com;
if ($invalid_referer) {return 403;}
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В качестве альтернативы ты можешь настроить сервер на отдачу специального баннера с сообщением о воровстве вместо запрашиваемого изображения. Для этого замени строку «return 403» на строку:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;rewrite ^/images/uploads.*\.(gif|jpg|jpeg|png)$ http://www.host.com/banned.jpg last&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Защищай важные каталоги от посторонних&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Как и любой другой Web-сервер, nginx позволяет регулировать доступ к каталогам на основе IP-адресов и паролей. Эту возможность можно использовать для закрытия некоторых частей сайта от посторонних глаз. Например, для отрезания URI от внешнего мира:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
location /uploads/ {
# Разрешаем доступ только машинам локальной сети
allow 192.168.1.0/24;
# Отшиваем всех остальных
deny all;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь к документам каталога uploads будут иметь доступ только пользователи локальной сети. Для установки пароля придется проделать более сложные действия. Сначала необходимо создать приватный для nginx-файл паролей и добавить в него необходимых пользователей (в качестве примера добавим пользователя admin):&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# mkdir /etc/nginx/.htpasswd# htpasswd -c /etc/nginx/.htpasswd/passwd admin&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Далее открой файл nginx.conf и впиши в него следующие строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
location /admin/ {auth_basic Restricted;auth_basic_user_file /etc/nginx/.htpasswd/passwd;}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Новых пользователей можно добавить с помощью следующей команды:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# htpasswd -s /etc/nginx/.htpasswd/passwd пользователь&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Используй SSL&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Если твой сайт работает с приватными данными пользователей, такими как номера кредитных карт, пароли от других сервисов, или же предоставляет доступ к другой важной информации, которая может стать лакомым кусочком для третьих лиц, позаботься о шифровании. Nginx хорошо работает с SSL, и этой возможностью нельзя пренебрегать.&lt;/p&gt;
&lt;p&gt;Для настройки SSL-шифрования средствами nginx достаточно выполнить несколько простых шагов. Сначала ты должен создать сертификат с помощью следующей последовательности команд:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# cd /etc/nginx
# openssl genrsa -des3 -out server.key 1024
# openssl req -new -key server.key -out server.csr
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Затем описать сертификат в конфигурационном файле nginx:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/nginx/nginx.conf
 
server {server_name host.com;listen 443;ssl on;ssl_certificate /etc/nginx/server.crt;ssl_certificate_key /etc/nginx/server.key;access_log /etc/nginx/logs/ssl.access.log;error_log /etc/nginx/logs/ssl.error.log;
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После этого можно перезагрузить Web-сервер:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# /etc/init.d/nginx reload&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Естественно, без поддержки со стороны самого Web-сайта это делать бессмысленно.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Установи правильные значения системных переменных&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Открой файл /etc/sysctl.conf и помести в него следующие строки:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/sysctl.conf
 
# Защита от smurf-атак
net.ipv4.icmp_echo_ignore_broadcasts = 1# Защита от неправильных ICMP-сообщений
net.ipv4.icmp_ignore_bogus_error_responses = 1# Защита от SYN-флуда
net.ipv4.tcp_syncookies = 1# Запрещаем маршрутизацию от источника
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0# Защита от спуфинга
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1# Мы не маршрутизатор
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0# Включаем ExecShield
kernel.exec-shield = 1
kernel.randomize_va_space = 1# Расширяем диапазон доступных портов
net.ipv4.ip_local_port_range = 2000 65000# Увеличиваем максимальный размер TCP-буферов
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Размести корневой каталог Web-сервера на выделенном разделе&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Поместив корневой каталог Web-сервера в выделенный раздел и запретив на нем размещение любых исполняемых файлов и файлов-устройств, ты обезопасишь остальную часть системы от тех, кто сможет получить доступ к корню Web-сервера. При этом запись в файле /etc/fstab должна иметь примерно такой вид:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/dev/sda5 /nginx ext4 defaults,nosuid,noexec,nodev 1 2&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Помести nginx в chroot/jail-окружение&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Любая современная *nix-система позволяет запереть приложение в изолированной среде исполнения. В Linux для этого можно использовать технологии KVM, Xen, OpenVZ и VServer, во FreeBSD — Jail, в Solaris — Zones. Если ни одна из этих технологий не доступна, ты можешь поместить nginx в классический chroot, который хоть и намного более хрупок, но большинство взломщиков остановить сможет.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Установи правила SELinux для защиты nginx&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Хорошей альтернативой изолированным средам исполнения являются локальные системы обнаружения и предотвращения вторжений, такие как SELinux или AppArmor. Будучи правильно настроенными, они смогут предотвратить попытки взлома Web-сервера. По дефолту ни одна из них не настроена для работы в связке с nginx, однако в рамках проекта SELinuxNginx (&lt;a href="http://sf.net/projects/selinuxnginx/)"&gt;http://sf.net/projects/selinuxnginx/)&lt;/a&gt; были созданы правила для SELinux, которые может использовать любой желающий. Остается только скачать и установить:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# tar -zxvf se-ngix_1_0_10.tar.gz
# cd se-ngix_1_0_10/nginx
# make
# /usr/sbin/semodule -i nginx.pp&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;&lt;b&gt;Настрой брандмауэр&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Обычно nginx устанавливают на выделенных машинах, готовых к высокой нагрузке, поэтому зачастую он остается единственным сетевым сервисом, работающим на сервере. Чтобы обезопасить сервер, достаточно создать совсем небольшой набор правил, которые будут открывать 80, 110 и 143-й порты (если, конечно, nginx должен работать еще и как IMAP/POP3-прокси) и закрывать от внешнего мира все остальное.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Ограничь количество соединений с помощью брандмауэра&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Для не слишком нагруженного Web-сайта хорошей идеей будет ограничить количество попыток соединений с одного IP-адреса в минуту. Это сможет уберечь тебя от некоторых типов DoS-атак и брутфорса. В Linux это можно сделать с помощью стандартного iptables/netfilter-модуля state:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# iptables -A INPUT -p tcp --dport 80 -i eth0 \
-m state --state NEW -m recent --set# iptables -A INPUT -p tcp --dport 80 -i eth0 \
-m state --state NEW -m recent --update \
--seconds 60 --hitcount 15 -j DROP&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Правила урезают лимит на количество подключений с одного IP в минуту до 15. То же можно сделать и с помощью pf:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/pf.conf
 
webserver_ip=1.1.1.1
table &amp;lt;abuse&amp;gt; persist
block in quick from &amp;lt;abuse&amp;gt;
pass in on $ext_if proto tcp to $webserver_ip \
port www flags S/SA keep state \
(max-src-conn 100, max-src-conn-rate 15/60, \
overload &amp;lt;abusive_ips&amp;gt; flush)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Кроме лимита на количество последовательных подключений (15 в минуту), данное правило устанавливает дополнительный лимит на количество одновременных подключений равный 100.&lt;/p&gt;
&lt;h2&gt;&lt;b&gt;Настрой PHP&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;Если ты используешь nginx в связке с PHP, не забудь настроить и его. Вот как должен выглядеть конфигурационный файл /etc/php/php.ini защищенного сервера:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;# vi /etc/php/php.ini
 
# Отключаем опасные функции
disable_functions = phpinfo, system, mail, exec
# Максимальное время исполнения скрипта
max_execution_time = 30
# Максимальное время, которое может потратить скрипт на обработку данных запроса
max_input_time = 60
# Максимальное количество памяти, выделяемое каждому скрипту
memory_limit = 8M
# Максимальный размер данных, отсылаемых скрипту с помощью метода POST
post_max_size = 8M
# Максимальный размер загружаемых файлов
upload_max_filesize = 2M
# Не показывать ошибки PHP-скриптов пользователям
display_errors = Off
# Включаем Safe Mode
safe_mode = On
# Включаем SQL Safe Mode
sql.safe_mode = On
# Позволяем выполнять внешние команды только в этом каталоге
safe_mode_exec_dir = /путь/к/защищенному/каталогу
# Защищаемся от утечки информации о PHP
expose_php = Off
# Ведем логи
log_errors = On
# Запрещаем открытие удаленных файлов
allow_url_fopen = Off&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Настройка VLAN на коммутаторах D-Link</title>
<guid isPermaLink="false">4</guid>
<link>https://www.blog.ttgame.ru/all/nastroyka-vlan-na-kommutatorah-d-link/</link>
<pubDate>Wed, 04 Oct 2017 21:48:44 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/nastroyka-vlan-na-kommutatorah-d-link/</comments>
<description>
&lt;p&gt;Данные принципы создания и настройки vlan, подходят почти ко всем моделям коммутаторов D-link.&lt;br /&gt;
Схема сети:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/d-link_vlan.png" width="599" height="291" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Оборудование:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Управляемый коммутатор 3 уровня DGS-3612G, выступающий в роли шлюзов для подсетей:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;172.20.0.0/24 с интерфейсом 172.20.0.1/24 в vlan 2001 — подсеть для управления коммутаторами;&lt;/li&gt;
&lt;li&gt;10.0.0.0/24 с интерфейсом 10.0.0.1/24 в vlan 1001— подсеть абонентов;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Коммутатор L2 DES-3526 c IP 172.20.0.2/24 вынесенный в управляющий vlan valn2001 ( management vlan vlan2001)&lt;/li&gt;
&lt;li&gt;Коммутатор L2 DES-3028 c IP 172.20.0.3/24 вынесенный в управляющий vlan valn2001 ( management vlan vlan2001)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;b&gt;Приступим к настройке DGS-3612G&lt;/b&gt;&lt;br /&gt;
По умолчанию на коммутаторе default vlan (1 vlan), он нам не нужен, убираем его&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# config vlan default delete 1-12&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь создадим абонентский vlan (vlan1001) и управляющий vlan для коммутаторов (vlan2001)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# create vlan vlan1001 tag 1001
DGS-3612G:5# create vlan vlan2001 tag 2001&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь присвоим 1 и 2 порту созданные нами vlan&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# config vlan vlan1001 add tagged 1-2
DGS-3612G:5# config vlan vlan2001 add tagged 1-2&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Перейдем к настройке интерфейсов, по умолчанию на коммутаторах создан IP 10.90.90.90/8, он нам не нужен, создадим свои, но для начала отключим этот&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# config ipif System ipaddress 10.90.90.90/30 vlan default state disable&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем интерфейс с ip — 10.0.0.1/24, служащий шлюзом для абонентов.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# create ipif if1001 10.0.0.1/24 vlan1001 state enable&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В данном случае if1001 — имя интерфейса, оно может быть любым, правда с ограничением в 12 символов; 10.0.0.1/24 vlan1001 — ip адрес, принадлежащий vlan vlan1001.&lt;br /&gt;
Создадим интерфейс с ip — 172.20.0.1/24, служащий шлюзом для коммутаторов.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DGS-3612G:5# create ipif if2001 172.20.0.1/24 vlan2001 state enable&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;На этом настройка DGS-3612 закончена, переходим к настройки DES-3526.&lt;br /&gt;
Удаляем default vlan с портов&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3526:admin# config vlan default delete 1-26&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cоздаем абонентский vlan vlan1001&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3526:admin# create vlan vlan1001 tag 1001
DES-3526:admin# config vlan vlan1001 add untagged 1-24
DES-3526:admin# config vlan vlan1001 add tagged 25-26&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создание vlan можно описать чуть иначе, но в этом случае вы не задаете имя vlan, оно будет назначаться с соответствии с vlanid и будет выглядеть следующим образом VLAN1001 (VLAN в верхнем регистре)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3526:admin# create vlan vlanid 1001
DES-3526:admin# config vlan vlanid 1001 add untagged 1-24
DES-3526:admin# config vlan vlanid 1001 add tagged 25-26&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь создаем management vlan (управляющий vlan)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3526:admin# create vlan management tag 2001
DES-3526:admin# config vlan management add tagged 25-26&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем интерфейс и прописываем маршрут по умолчанию&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3526:admin# config ipif System vlan vlan2001 ipaddress 172.2.0.2/24 state enable
DES-3526:admin# create iproute default 172.20.0.1&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь по аналогии настраиваем DES-3028&lt;br /&gt;
Удаляем default vlan с портов&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3028:admin# config vlan default delete 1-28&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Cоздаем абонентский vlan vlan1001&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3028:admin# create vlan vlan1001 tag 1001
DES-3028:admin# config vlan vlan1001 add untagged 1-24
DES-3028:admin# config vlan vlan1001 add tagged 25-28&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создание vlan можно описать чуть иначе, но в этом случае вы не задаете имя vlan, оно будет назначаться с соответствии с vlanid и будет выглядеть следующим образом VLAN1001 (VLAN в верхнем регистре)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3028:admin# create vlan vlanid 1001
DES-3028:admin# config vlan vlanid 1001 add untagged 1-24
DES-3028:admin# config vlan vlanid 1001 add tagged 25-28&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь создаем management vlan (управляющий vlan)&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3028:admin#create vlan management tag 2001
DES-3028:admin#config vlan management add tagged 25-28&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Создаем интерфейс и прописываем маршрут по умолчанию&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;DES-3028:admin#config ipif System vlan vlan2001 ipaddress 172.2.0.3/24 state enable
DES-3028:create iproute default 172.20.0.1&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Вот и все, осталось прописать на абонентских станциях ip адреса из подсети 10.0.0.0/24 и шлюз 10.0.0.1. Настройка закончена.&lt;/p&gt;
</description>
</item>

<item>
<title>Установка обновления на ESXi</title>
<guid isPermaLink="false">5</guid>
<link>https://www.blog.ttgame.ru/all/ustanovka-obnovleniya-na-esxi/</link>
<pubDate>Mon, 27 Mar 2017 12:18:00 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/ustanovka-obnovleniya-na-esxi/</comments>
<description>
&lt;p&gt;Между мажорными версиями проходит много времени, а заплатки выпускаются регулярно. Отслеживать свежие патчи можно на &lt;a href="https://esxi-patches.v-front.de/ESXi-6.5.0.html"&gt;VMware ESXi Patch Tracker&lt;/a&gt;. Например, для текущей версии ESXi 6.5a есть патчи ESXi-6.5.0-20170304001-standard (Build 5146846). Установка происходит из консоли:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;esxcli network firewall ruleset set -e true -r httpClient
esxcli software profile update -p ESXi-6.5.0-20170304001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
esxcli network firewall ruleset set -e false -r httpClient&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;После успешной установке необходимо перезагрузить хост. Подробнее можно прочитать в &lt;a href="https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.upgrade.doc%2FGUID-E51C5DB6-F28E-42E8-ACA4-0EBDD11DF55D.html"&gt;документации&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>Перепрошивка Zalman ZM-VE200SE в iodd-2511 и обратно</title>
<guid isPermaLink="false">6</guid>
<link>https://www.blog.ttgame.ru/all/pereproshivka-zalman-zm-ve200se-v-iodd-2511-i-obratno/</link>
<pubDate>Sun, 19 Feb 2017 10:56:00 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/pereproshivka-zalman-zm-ve200se-v-iodd-2511-i-obratno/</comments>
<description>
&lt;p&gt;Если вы хотите прошить свой Zalman прошивкой от iodd:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Качаем последнюю &lt;a href="https://sourceforge.net/projects/iodd/files/"&gt;прошивку от iodd&lt;/a&gt;. В зависимости от формата файловой системы вашего диска, она будет называться &lt;i&gt;_iso_firm_iodd2501_exFAT-newer.zip&lt;/i&gt; или &lt;i&gt;_iso_firm_iodd2501_NTFS-newer.zip&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Распаковываем архив.&lt;/li&gt;
&lt;li&gt;Перетаскиваем полученный ISO-файл в окно HEX-редактора, находим третий по счету байт (выделен на изображении), меняем его с 01 на 02.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://www.blog.ttgame.ru/pictures/zalman-to-iodd.png" width="284" height="269" alt="" /&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Сохраняем файл и прошиваем обычным способом.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Возврат на «родную» прошивку (чтобы не придрались в гарантийном отделе):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;В прошивке от Zalman меняем третий байт с 02 на 01 и прошиваем.&lt;/li&gt;
&lt;li&gt;После этого снова прошиваем теперь уже оригинальной нетронутой залмановской прошивкой.&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>Коды ошибок Zalman ZM-VE200SE</title>
<guid isPermaLink="false">7</guid>
<link>https://www.blog.ttgame.ru/all/kody-oshibok-zalman-zm-ve200se/</link>
<pubDate>Sun, 19 Feb 2017 10:45:00 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/kody-oshibok-zalman-zm-ve200se/</comments>
<description>
&lt;p&gt;&lt;i&gt;Error 15&lt;/i&gt; — на диске обнаружены повреждённые сектора.&lt;br /&gt;
&lt;i&gt;Error 23&lt;/i&gt; — повреждена файловая система, необходимо запустить проверку диска.&lt;br /&gt;
&lt;i&gt;1st Partition : 0 &gt; Partition is not set&lt;/i&gt; — диск не разбит на разделы или же файловая система первого раздела не совпадает с типом прошивки.&lt;br /&gt;
&lt;i&gt;1st Partition : 5 &gt; ZM-VE200 Hard Disk have extended partition&lt;/i&gt; — жёсткий диск содержит расширенный раздел. Отформатируйте его согласно типу прошивки.&lt;br /&gt;
&lt;i&gt;1st Partition : 6 &gt; ZM-VE200 Hard Disk is formatted as FAT&lt;/i&gt; — раздел отформатирован в FAT (не в FAT32). Отформатируйте его согласно типу прошивки.&lt;br /&gt;
&lt;i&gt;1st Partition : 7 &gt; ZM-VE200 Hard disk is formatted as NTFS&lt;/i&gt; — прошивка FAT не поддерживает NTFS. Отформатируйте раздел в FAT32 или exFAT.&lt;br /&gt;
&lt;i&gt;1st Partition : C &gt; ZM-VE200 Hard Disk is formatted as FAT32&lt;/i&gt; — прошивка NTFS не поддерживает FAT32. Отформатируйте раздел в NTFS.&lt;br /&gt;
&lt;i&gt;1st Partition : F &gt; Extended partition&lt;/i&gt; — логические и расширенные разделы не поддерживаются, создайте раздел, как основной.&lt;br /&gt;
&lt;i&gt;1st Partition : FF &amp;gt; ZM-VE200 Hard Disk is formatted as exFAT&lt;/i&gt; — эта прошивка не поддерживает exFAT. Отформатируйте раздел в NTFS.&lt;br /&gt;
&lt;i&gt;1st Partition: EE : MBR area is existed after EFI header&lt;/i&gt; — создайте новый и удалите старый раздел в «Управлении дисками». Если не помогло, попробуйте выполнить инициализацию. Это займёт какое-то время, наберитесь терпения.&lt;br /&gt;
&lt;i&gt;NO _ISO&lt;/i&gt; — не найдена папка _ISO или _iso на первом разделе.&lt;br /&gt;
&lt;i&gt;NO — DISC&lt;/i&gt; — в папке _ISO не найдены файлы с допустимыми расширениями (ISO, IMA, DSK, RMD).&lt;br /&gt;
&lt;i&gt;TOO Many FILES&lt;/i&gt; — в корне папки _ISO (и в любой другой папке, которая находится внутри _ISO) может содержаться не более 32 объектов (файлов + папок).&lt;br /&gt;
&lt;i&gt;ALREADY HIT&lt;/i&gt; — данный файл уже был выбран для эмуляции, загружен и эмулируется.&lt;br /&gt;
&lt;i&gt;vDISK LIMIT&lt;/i&gt; — бокс может одновременно эмулировать не более 4 виртуальных дискет.&lt;br /&gt;
&lt;i&gt;DEFRAG!!&lt;/i&gt; — скорее всего, раздел отформатирован в NTFS и файл образа, который вы пытаетесь эмулировать, фрагментирован. Необходимо дефрагментировать раздел или, как минимум, этот файл образа. Если дефрагментация не помогает, то скорее всего это так называемый sparse-файл. Такой файл может получиться, например, в результате загрузки торрента. Копирование и удаление оригинала (не перемещение!) этого файла должно решить проблему.&lt;br /&gt;
Если сообщение вида 1st Partition : XX не соответствует указанным выше, то оно может указывать на тип неподдерживаемого раздела:&lt;br /&gt;
&lt;code&lt;&lt;br /&gt;
00 Empty&lt;br /&gt;
01 DOS 12-bit FAT&lt;br /&gt;
02 XENIX root&lt;br /&gt;
03 XENIX /usr&lt;br /&gt;
04 DOS 3.0+ 16-bit FAT (up to 32M)&lt;br /&gt;
05 DOS 3.3+ Extended Partition&lt;br /&gt;
06 DOS 3.31+ 16-bit FAT (over 32M)&lt;br /&gt;
07 OS/2 IFS (e. g., HPFS)&lt;br /&gt;
07 Windows NT NTFS&lt;br /&gt;
07 exFAT&lt;br /&gt;
07 Advanced Unix&lt;br /&gt;
07 QNX2.x pre-1988 (see below under IDs 4d-4f)&lt;br /&gt;
08 OS/2 (v1.0-1.3 only)&lt;br /&gt;
08 AIX boot partition&lt;br /&gt;
08 SplitDrive&lt;br /&gt;
08 Commodore DOS&lt;br /&gt;
08 DELL partition spanning multiple drives&lt;br /&gt;
08 QNX 1.x and 2.x («qny»)&lt;br /&gt;
09 AIX data partition&lt;br /&gt;
09 Coherent filesystem&lt;br /&gt;
09 QNX 1.x and 2.x («qnz»)&lt;br /&gt;
0a Coherent swap partition&lt;br /&gt;
0a OPUS&lt;br /&gt;
0b WIN95 OSR2 FAT32&lt;br /&gt;
0c WIN95 OSR2 FAT32, LBA-mapped&lt;br /&gt;
0e WIN95: DOS 16-bit FAT, LBA-mapped&lt;br /&gt;
0f WIN95: Extended partition, LBA-mapped&lt;br /&gt;
10 OPUS (?)&lt;br /&gt;
11 Hidden DOS 12-bit FAT&lt;br /&gt;
11 Leading Edge DOS 3.x logically sectored FAT&lt;br /&gt;
12 Configuration/diagnostics partition&lt;br /&gt;
14 Hidden DOS 16-bit FAT =32M&lt;br /&gt;
17 Hidden IFS (e. g., HPFS)&lt;br /&gt;
18 AST SmartSleep Partition&lt;br /&gt;
19 Unused&lt;br /&gt;
1b Hidden WIN95 OSR2 FAT32&lt;br /&gt;
1c Hidden WIN95 OSR2 FAT32, LBA-mapped&lt;br /&gt;
1e Hidden WIN95 16-bit FAT, LBA-mapped&lt;br /&gt;
20 Unused&lt;br /&gt;
21 Reserved&lt;br /&gt;
21 Unused&lt;br /&gt;
22 Unused&lt;br /&gt;
23 Reserved&lt;br /&gt;
24 NEC DOS 3.x&lt;br /&gt;
26 Reserved&lt;br /&gt;
27 PQservice&lt;br /&gt;
27 Windows RE hidden partition&lt;br /&gt;
27 MirOS partition&lt;br /&gt;
27 RouterBOOT kernel partition&lt;br /&gt;
2a AtheOS File System (AFS)&lt;br /&gt;
2b SyllableSecure (SylStor)&lt;br /&gt;
31 Reserved&lt;br /&gt;
32 NOS&lt;br /&gt;
33 Reserved&lt;br /&gt;
34 Reserved&lt;br /&gt;
35 JFS on OS/2 or eCS&lt;br /&gt;
36 Reserved&lt;br /&gt;
38 THEOS ver 3.2 2gb partition&lt;br /&gt;
39 Plan 9 partition&lt;br /&gt;
39 THEOS ver 4 spanned partition&lt;br /&gt;
3a THEOS ver 4 4gb partition&lt;br /&gt;
3b THEOS ver 4 extended partition&lt;br /&gt;
3c PartitionMagic recovery partition&lt;br /&gt;
3d Hidden NetWare&lt;br /&gt;
40 Venix 80286&lt;br /&gt;
40 PICK&lt;br /&gt;
41 Linux/MINIX (sharing disk with DRDOS)&lt;br /&gt;
41 Personal RISC Boot&lt;br /&gt;
41 PPC PReP (Power PC Reference Platform) Boot&lt;br /&gt;
42 Linux swap (sharing disk with DRDOS)&lt;br /&gt;
42 SFS (Secure Filesystem)&lt;br /&gt;
42 Windows 2000 dynamic extended partition marker&lt;br /&gt;
43 Linux native (sharing disk with DRDOS)&lt;br /&gt;
44 GoBack partition&lt;br /&gt;
45 Boot-US boot manager&lt;br /&gt;
45 Priam&lt;br /&gt;
45 EUMEL/Elan&lt;br /&gt;
46 EUMEL/Elan&lt;br /&gt;
47 EUMEL/Elan&lt;br /&gt;
48 EUMEL/Elan&lt;br /&gt;
4a Mark Aitchison’s ALFS/THIN lightweight filesystem for DOS&lt;br /&gt;
4a AdaOS Aquila (Withdrawn)&lt;br /&gt;
4c Oberon partition&lt;br /&gt;
4d QNX4.x&lt;br /&gt;
4e QNX4.x 2nd part&lt;br /&gt;
4f QNX4.x 3rd part&lt;br /&gt;
4f Oberon partition&lt;br /&gt;
50 OnTrack Disk Manager (older versions) RO&lt;br /&gt;
50 Lynx RTOS&lt;br /&gt;
50 Native Oberon (alt)&lt;br /&gt;
51 OnTrack Disk Manager RW (DM6 Aux1)&lt;br /&gt;
51 Novell&lt;br /&gt;
52 CP/M&lt;br /&gt;
52 Microport SysV/AT&lt;br /&gt;
53 Disk Manager 6.0 Aux3&lt;br /&gt;
54 Disk Manager 6.0 Dynamic Drive Overlay (DDO)&lt;br /&gt;
55 EZ-Drive&lt;br /&gt;
56 Golden Bow VFeature Partitioned Volume.&lt;br /&gt;
56 DM converted to EZ-BIOS&lt;br /&gt;
56 AT&amp;amp;T MS-DOS 3.x logically sectored FAT.&lt;br /&gt;
57 DrivePro&lt;br /&gt;
57 VNDI Partition&lt;br /&gt;
5c Priam EDisk&lt;br /&gt;
61 SpeedStor&lt;br /&gt;
63 Unix System V (SCO, ISC Unix, UnixWare, ...), Mach, GNU Hurd&lt;br /&gt;
64 PC-ARMOUR protected partition&lt;br /&gt;
64 Novell Netware 286, 2.xx&lt;br /&gt;
65 Novell Netware 386, 3.xx or 4.xx&lt;br /&gt;
66 Novell Netware SMS Partition&lt;br /&gt;
67 Novell&lt;br /&gt;
68 Novell&lt;br /&gt;
69 Novell Netware 5+, Novell Netware NSS Partition&lt;br /&gt;
6e ??&lt;br /&gt;
70 DiskSecure Multi-Boot&lt;br /&gt;
71 Reserved&lt;br /&gt;
72 V7/x86&lt;br /&gt;
73 Reserved&lt;br /&gt;
74 Reserved&lt;br /&gt;
74 Scramdisk partition&lt;br /&gt;
75 IBM PC/IX&lt;br /&gt;
76 Reserved&lt;br /&gt;
77 M2FS/M2CS partition&lt;br /&gt;
77 VNDI Partition&lt;br /&gt;
78 XOSL FS&lt;br /&gt;
7e Unused&lt;br /&gt;
7f Unused&lt;br /&gt;
80 MINIX until 1.4a&lt;br /&gt;
81 MINIX since 1.4b, early Linux&lt;br /&gt;
81 Mitac disk manager&lt;br /&gt;
82 Prime&lt;br /&gt;
82 Solaris x86&lt;br /&gt;
82 Linux swap&lt;br /&gt;
83 Linux native partition&lt;br /&gt;
84 OS/2 hidden C: drive&lt;br /&gt;
84 Hibernation partition&lt;br /&gt;
85 Linux extended partition&lt;br /&gt;
86 Old Linux RAID partition superblock&lt;br /&gt;
86 FAT16 volume set&lt;br /&gt;
87 NTFS volume set&lt;br /&gt;
88 Linux plaintext partition table&lt;br /&gt;
8a Linux Kernel Partition (used by AiR-BOOT)&lt;br /&gt;
8b Legacy Fault Tolerant FAT32 volume&lt;br /&gt;
8c Legacy Fault Tolerant FAT32 volume using BIOS extd INT 13h&lt;br /&gt;
8d Free FDISK 0.96+ hidden Primary DOS FAT12 partition&lt;br /&gt;
8e Linux Logical Volume Manager partition&lt;br /&gt;
90 Free FDISK 0.96+ hidden Primary DOS FAT16 partition&lt;br /&gt;
91 Free FDISK 0.96+ hidden DOS extended partition&lt;br /&gt;
92 Free FDISK 0.96+ hidden Primary DOS large FAT16 partition&lt;br /&gt;
93 Hidden Linux native partition&lt;br /&gt;
93 Amoeba&lt;br /&gt;
94 Amoeba bad block table&lt;br /&gt;
95 MIT EXOPC native partitions&lt;br /&gt;
96 CHRP ISO-9660 filesystem&lt;br /&gt;
97 Free FDISK 0.96+ hidden Primary DOS FAT32 partition&lt;br /&gt;
98 Free FDISK 0.96+ hidden Primary DOS FAT32 partition (LBA)&lt;br /&gt;
98 Datalight ROM-DOS Super-Boot Partition&lt;br /&gt;
99 DCE376 logical drive&lt;br /&gt;
9a Free FDISK 0.96+ hidden Primary DOS FAT16 partition (LBA)&lt;br /&gt;
9b Free FDISK 0.96+ hidden DOS extended partition (LBA)&lt;br /&gt;
9e ForthOS partition&lt;br /&gt;
9f BSD/OS&lt;br /&gt;
a0 Laptop hibernation partition&lt;br /&gt;
a1 Laptop hibernation partition&lt;br /&gt;
a1 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
a3 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
a4 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
a5 BSD/386, 386BSD, NetBSD, FreeBSD&lt;br /&gt;
a6 OpenBSD&lt;br /&gt;
a6 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
a7 NeXTStep&lt;br /&gt;
a8 Mac OS-X&lt;br /&gt;
a9 NetBSD&lt;br /&gt;
ab Mac OS-X Boot partition&lt;br /&gt;
ab GO! partition&lt;br /&gt;
ae ShagOS filesystem&lt;br /&gt;
af ShagOS swap partition&lt;br /&gt;
af MacOS X HFS&lt;br /&gt;
b0 BootStar Dummy&lt;br /&gt;
b1 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
b1 QNX Neutrino Power-Safe filesystem&lt;br /&gt;
b2 QNX Neutrino Power-Safe filesystem&lt;br /&gt;
b3 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
b3 QNX Neutrino Power-Safe filesystem&lt;br /&gt;
b4 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
b6 HP Volume Expansion (SpeedStor variant)&lt;br /&gt;
b6 Corrupted Windows NT mirror set (master), FAT16 file system&lt;br /&gt;
b7 Corrupted Windows NT mirror set (master), NTFS file system&lt;br /&gt;
b7 BSDI BSD/386 filesystem&lt;br /&gt;
b8 BSDI BSD/386 swap partition&lt;br /&gt;
bb Boot Wizard hidden&lt;br /&gt;
bc Acronis backup partition&lt;br /&gt;
be Solaris 8 boot partition&lt;br /&gt;
bf New Solaris x86 partition&lt;br /&gt;
c0 CTOS&lt;br /&gt;
c0 REAL/32 secure small partition&lt;br /&gt;
c0 NTFT Partition&lt;br /&gt;
c0 DR-DOS/Novell DOS secured partition&lt;br /&gt;
c1 DRDOS/secured (FAT-12)&lt;br /&gt;
c2 Unused&lt;br /&gt;
c2 Hidden Linux&lt;br /&gt;
c3 Hidden Linux swap&lt;br /&gt;
c4 DRDOS/secured (FAT-16, &amp;lt; 32M) c5 DRDOS/secured (extended) c6 DRDOS/secured (FAT-16, &amp;gt;= 32M)&lt;br /&gt;
c6 Windows NT corrupted FAT16 volume/stripe set&lt;br /&gt;
c7 Windows NT corrupted NTFS volume/stripe set&lt;br /&gt;
c7 Syrinx boot&lt;br /&gt;
c8 Reserved for DR-DOS 8.0+&lt;br /&gt;
c9 Reserved for DR-DOS 8.0+&lt;br /&gt;
ca Reserved for DR-DOS 8.0+&lt;br /&gt;
cb DR-DOS 7.04+ secured FAT32 (CHS)&lt;br /&gt;
cc DR-DOS 7.04+ secured FAT32 (LBA)&lt;br /&gt;
cd CTOS Memdump&lt;br /&gt;
ce DR-DOS 7.04+ FAT16X (LBA)&lt;br /&gt;
cf DR-DOS 7.04+ secured EXT DOS (LBA)&lt;br /&gt;
d0 REAL/32 secure big partition&lt;br /&gt;
d0 Multiuser DOS secured partition&lt;br /&gt;
d1 Old Multiuser DOS secured FAT12&lt;br /&gt;
d4 Old Multiuser DOS secured FAT16 =32M&lt;br /&gt;
d8 CP/M-86&lt;br /&gt;
da Non-FS Data&lt;br /&gt;
da Powercopy Backup&lt;br /&gt;
db Digital Research CP/M, Concurrent CP/M, Concurrent DOS&lt;br /&gt;
db CTOS (Convergent Technologies OS -Unisys)&lt;br /&gt;
db KDG Telemetry SCPU boot&lt;br /&gt;
dd Hidden CTOS Memdump&lt;br /&gt;
de Dell PowerEdge Server utilities (FAT fs)&lt;br /&gt;
df DG/UX virtual disk manager partition&lt;br /&gt;
df BootIt EMBRM&lt;br /&gt;
e0 Reserved by STMicroelectronics for a filesystem called ST AVFS.&lt;br /&gt;
e1 DOS access or SpeedStor 12-bit FAT extended partition&lt;br /&gt;
e3 DOS R/O or SpeedStor&lt;br /&gt;
e4 SpeedStor 16-bit FAT extended partition &amp;lt; 1024 cyl. e5 Tandy MSDOS with logically sectored FAT e6 Storage Dimensions SpeedStor e8 LUKS eb BeOS BFS ec SkyOS SkyFS ee Indication that this legacy MBR is followed by an EFI header ef Partition that contains an EFI file system f0 Linux/PA-RISC boot loader f1 Storage Dimensions SpeedStor f2 DOS 3.3+ secondary partition f3 Reserved f4 SpeedStor large partition f4 Prologue single-volume partition f5 Prologue multi-volume partition f6 Storage Dimensions SpeedStor f7 DDRdrive Solid State File System f9 pCache fa Bochs fb VMware File System partition fc VMware Swap partition fe SpeedStor &amp;gt; 1024 cyl.&lt;br /&gt;
fe LANstep&lt;br /&gt;
fe IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk&lt;br /&gt;
fe Windows NT Disk Administrator hidden partition&lt;br /&gt;
ff Xenix Bad Block Table&lt;/p&gt;
&lt;/code&gt;</description>
</item>

<item>
<title>DataTables и русские символы</title>
<guid isPermaLink="false">8</guid>
<link>https://www.blog.ttgame.ru/all/datatables-i-russkie-simvolyi/</link>
<pubDate>Tue, 24 Jan 2017 11:05:00 +0300</pubDate>
<author></author>
<comments>https://www.blog.ttgame.ru/all/datatables-i-russkie-simvolyi/</comments>
<description>
&lt;p&gt;в &lt;b&gt;ssp.class.php&lt;/b&gt; после catch (PDOException $e) { ... } добавить&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$db-&amp;gt;exec(set names utf8);
    return $db;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Должно получиться так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;static function sql_connect ( $sql_details )
  {
    try {
      $db = @new PDO(
        mysql:host={$sql_details['host']};dbname={$sql_details['db']},
        $sql_details['user'],
        $sql_details['pass'],
        array( PDO::ATTR_ERRMODE =&amp;gt; PDO::ERRMODE_EXCEPTION )
      );
    }
    catch (PDOException $e) {
      self::fatal(
        An error occurred while connecting to the database. .
        The error reported by the server was: .$e-&amp;gt;getMessage()
      );
    }
  $db-&amp;gt;exec(set names utf8);
    return $db;
  }&lt;/code&gt;&lt;/pre&gt;</description>
</item>


</channel>
</rss>