<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>My Linux Blog</title>
	<atom:link href="https://mylinuxblog.ru/feed/" rel="self" type="application/rss+xml" />
	<link>https://mylinuxblog.ru</link>
	<description>Практический опыт использования Debian GNU/Linux на серверах и десктопах</description>
	<lastBuildDate>Sat, 25 Oct 2025 03:10:29 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>OrangePI: храним логи на диске, а не в zram</title>
		<link>https://mylinuxblog.ru/ubuntu-v-orangepi-khranim-logi-na-diske-a-ne-v-zram/</link>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Fri, 24 Oct 2025 02:11:02 +0000</pubDate>
				<category><![CDATA[умный дом]]></category>
		<category><![CDATA[orange pi]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://mylinuxblog.ru/?p=1506</guid>

					<description><![CDATA[<p>В Ubuntu, которую я установил на OrangePi, логи по-умолчанию пишутся в память. При штатном завершении работы они сбрасываются на диск, но если что-то пошло не так, логов потом не найдёшь. При первоначальной установке это выглядит так: root@orangepi5pro:~ # df -h Filesystem Size Used Avail Use% Mounted on tmpfs 1.6G 9.9M 1.6G 1% /run /dev/nvme0n1p2 226G&#8230; <a href="https://mylinuxblog.ru/ubuntu-v-orangepi-khranim-logi-na-diske-a-ne-v-zram/" class="more-link">Continue reading<span class="screen-reader-text"> "OrangePI: храним логи на диске, а не в zram"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/ubuntu-v-orangepi-khranim-logi-na-diske-a-ne-v-zram/">OrangePI: храним логи на диске, а не в zram</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>В Ubuntu, которую я установил на OrangePi, логи по-умолчанию пишутся в память. При штатном завершении работы они сбрасываются на диск, но если что-то пошло не так, логов потом не найдёшь. При первоначальной установке это выглядит так:</p>
<pre>root@orangepi5pro:~ # df -h        
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.6G  9.9M  1.6G   1% /run
/dev/nvme0n1p2  226G   32G  192G  15% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           5.0M   16K  5.0M   1% /run/lock
tmpfs           7.8G  4.0K  7.8G   1% /tmp
/dev/nvme0n1p1 1022M  123M  900M  13% /boot
/dev/zram1      188M  4.6M  169M   3% /var/log  <-- вот!</pre>
<p>Это выглядит оправданым, если операционная система установлена на SD карту, например. В случае же, когда ОС установлена на NVME диск, острой необходимости хранить логи в памяти нет. Особенно если логи нужны. Поэтому я отключил эту опцию и теперь логи пишутся сразу на диск. Делается это очень просто. Находим файл <em>/etc/default/orangepi-ramlog</em>, в нём строчки</p>
<pre># configuration values for the orangepi-ram-logging service
#
# enable the orangepi-ram-logging service?
ENABLED=true</pre>
<p>и меняем true на false:</p>
<pre>ENABLED=false</pre>
<p>Перезагружаем систему и видим, что <em>/var/log</em> больше не примонтирован на <em>/dev/zram1</em>.</p>The post <a href="https://mylinuxblog.ru/ubuntu-v-orangepi-khranim-logi-na-diske-a-ne-v-zram/">OrangePI: храним логи на диске, а не в zram</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Установка прошивки на Orange Pi 5 Pro</title>
		<link>https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/</link>
					<comments>https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Fri, 18 Oct 2024 16:07:33 +0000</pubDate>
				<category><![CDATA[умный дом]]></category>
		<category><![CDATA[orange pi]]></category>
		<guid isPermaLink="false">https://mylinuxblog.ru/?p=1477</guid>

					<description><![CDATA[<p>Купил некоторое время назад прекрасный девайс &#8212; Orange Pi 5 Pro. Работа с SD карты в мои планы не входила, так что сразу взял к нему NVME SSD. Получил посылку с заказом, быстро всё собрал и на радостях не обратил внимание на маленький, но важный нюанс: этот мини-пк идёт по умолчанию без SPI Flash и&#8230; <a href="https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/" class="more-link">Continue reading<span class="screen-reader-text"> "Установка прошивки на Orange Pi 5 Pro"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/">Установка прошивки на Orange Pi 5 Pro</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Купил некоторое время назад прекрасный девайс &mdash; <a href="https://aliexpress.ru/item/1005006832687928.html?sku_id=12000040019464632" rel="nofollow">Orange Pi 5 Pro</a>. Работа с SD карты в мои планы не входила, так что сразу взял к нему NVME SSD. Получил посылку с заказом, быстро всё собрал и на радостях не обратил внимание на маленький, но важный нюанс: этот мини-пк идёт по умолчанию без SPI Flash и eMMC модуля. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>В инструкции достаточно подробно всё расписано, как прошивать образ операционной системы на SD карту, на SPI Flash, на eMMC и на SD карту с дальнейшей записью операционки на NVME диск. Но, как водится, есть подводные камни.</p>
<p><strong>1. Balena Etcher.</strong></p>
<p>Заставить работать свежую версию (1.19.25) у меня сходу не удалось. При записи открывается сообщение с ошибкой &#171;Error spawning child process&#187;. Но вот версия 1.18.4 работает без проблем.</p>
<p><strong>2. Образы операционных систем</strong></p>
<p>Я пробовал заливать на SD карту образы Debian, OpenWRT, OpenHarmony. Все они не загружаются. А посмотреть ошибку по UART я не мог, не было модуля под рукой. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>В итоге заработал образ <em>Orangepi5pro_1.0.4_ubuntu_jammy_server_linux6.1.43.img</em>, <a href="https://drive.google.com/drive/folders/11tj_ivEBwvJx4vdNtK91YQeGOKDC4JNy" rel="nofollow">ссылка</a> на который была в официальной документации. После заливки его на SD карту, &laquo;апельсинка&raquo; наконец-то загрузилась. Тогда уже, в соответствии с документацией, мне удалось закинуть образ Ubuntu на NVME диск, а на флэшку записать загрузчик <a href="https://drive.google.com/drive/folders/1z2grXJJtrjYpa0_lAnlZhnjxI68B_WJE" rel="nofollow">rkspi_loader.img</a>. К слову, обновление Ubuntu с версии 22.04 (&#171;Jammy Jellyfish&#187;) до актуальной 24.04 (&#171;Noble Numbat&#187;) прошло без проблем.</p>
<p>В остальном железяка показала себя очень хорошо. В данный момент использую её в качестве видеорегистратора для записи видео с IP камер и &#171;сердца&#187; &#171;умного дома&#187; с HomeAssistant, и её ресурсов для этих целей более чем хватает.</p>The post <a href="https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/">Установка прошивки на Orange Pi 5 Pro</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/ustanovka-proshivki-na-orange-pi-5-pro/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Перенос информации с диска одного ноутбука на другой по сети</title>
		<link>https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/</link>
					<comments>https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Thu, 04 Apr 2024 12:06:27 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[gparted]]></category>
		<category><![CDATA[pv]]></category>
		<guid isPermaLink="false">https://mylinuxblog.ru/?p=1461</guid>

					<description><![CDATA[<p>Купил тут новый ноутбук, встал вопрос переноса данных на него со старого ноутбука. Просто поменять диск смысла не было, диск хоть и SSD, но уже немного устаревший. Сначала хотел было вытащить диск из нового ноутбука, воткнуть его во внешний контейнер и скопировать данные со старого диска с помощью dd. Но, как это часто бывает, контейнер&#8230; <a href="https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/" class="more-link">Continue reading<span class="screen-reader-text"> "Перенос информации с диска одного ноутбука на другой по сети"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/">Перенос информации с диска одного ноутбука на другой по сети</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Купил тут новый ноутбук, встал вопрос переноса данных на него со старого ноутбука. Просто поменять диск смысла не было, диск хоть и SSD, но уже немного устаревший. Сначала хотел было вытащить диск из нового ноутбука, воткнуть его во внешний контейнер и скопировать данные со старого диска с помощью <em>dd</em>. Но, как это часто бывает, контейнер забыл в другом месте, а пользоваться новым ноутбуком уже хотелось. Поэтому сделал так. </p>
<p>1) Подключил оба ноутбука кабелем к коммутатору.</p>
<p>2) Загрузил на обоих ноутбуках с флэшек Debian Live дистрибутив.</p>
<p>3) Установил на обоих ноутбуках <em>netcat</em>:</p>
<pre>apt install nc</pre>
<p>4) На старом ноутбуке установил <em>pv</em>:</p>
<pre>apt install pv</pre>
<p>5) Посмотрел, какой IP адрес у нового ноутбука и запустил следующую команду:</p>
<pre>nc -l -p 7777 | dd of=/dev/nvme0n1 obs=1M</pre>
<p>Как можно догадаться, диск на новом ноутбуке проходит под названием <em>/dev/nvme0n1</em>.</p>
<p>6) На старом ноутбуке запустил процесс копирования содержимого диска /dev/sda на IP адрес нового ноутбука:</p>
<pre>pv /dev/sda | nc 192.168.0.10 7777</pre>
<p>Так как содержимое диска на старом ноутбуке было зашифровано, я не использовал сжатие при копировании.</p>
<p>После чуть более часового ожидания процесс копирования завершился.<br />
Также на новом ноутбуке запустил <em>gparted</em>, чтобы проверить, весь ли раздел используется. <em>Gparted</em> выдал уведомление, что используется не весь раздел и предложил это исправить. Согласился и исправил эту ошибку. После перезагрузился, вытащив флэшку &#8212; вуаля, система определилась, всё заработало.</p>The post <a href="https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/">Перенос информации с диска одного ноутбука на другой по сети</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/perenos-informacii-s-diska-odnogo-noutbuka-na-drugoy-po-seti/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Установка и прошивка контроллера ESP32 S2 mini ESPHome</title>
		<link>https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/</link>
					<comments>https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Mon, 01 Apr 2024 02:48:27 +0000</pubDate>
				<category><![CDATA[умный дом]]></category>
		<category><![CDATA[ESP32]]></category>
		<guid isPermaLink="false">https://mylinuxblog.ru/?p=1440</guid>

					<description><![CDATA[<p>Небольшая инструкция-памятка по загрузке прошивки в контроллеры типа ESP32. Я для своих задач по созданию &#171;умного дома&#187;, использую в частности ESP32 S2 mini и прошивку ESPHome. Прежде всего установим необходимые пакеты: apt install python3 python3-venv Для того, чтобы вашему пользователю была доступна работа с последовательными портами, добавим его в группу dialout: usermod -a -G dialout&#8230; <a href="https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/" class="more-link">Continue reading<span class="screen-reader-text"> "Установка и прошивка контроллера ESP32 S2 mini ESPHome"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/">Установка и прошивка контроллера ESP32 S2 mini ESPHome</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Небольшая инструкция-памятка по загрузке прошивки в контроллеры типа ESP32. Я для своих задач по созданию &laquo;<a href="/category/smart-house/">умного дома</a>&raquo;, использую в частности <a rel="noindex,nofollow noopener" href="https://www.wemos.cc/en/latest/s2/s2_mini.html" target="_blank">ESP32 S2 mini</a> и прошивку <a rel="noindex,nofollow noopener" href="https://esphome.io/" target="_blank">ESPHome</a>.</p>
<p>Прежде всего установим необходимые пакеты:</p>
<pre>apt install python3 python3-venv</pre>
<p>Для того, чтобы вашему пользователю была доступна работа с последовательными портами, добавим его в группу <em>dialout</em>:</p>
<pre>usermod -a -G dialout alexey</pre>
<p>Здесь <em>alexey</em> &mdash; логин пользователя, как можно догадаться.</p>
<p>Создадим виртуальное окружение:</p>
<pre>python -m venv venv</pre>
<p>Для некоторых дистрибутивов это может не сработать. Например, в Kali Linux. В них нужно использовать другую команду:</p>
<pre>virtualenv venv</pre>
<p>И последний штрих:</p>
<pre>source venv/bin/activate</pre>
<p>На этом виртуальное окружение готово, переходим к самому главному. Установим в виртуальном окружении необходимые пакеты, а именно <em>esptool</em> и <em>esphome</em>:</p>
<pre>cd venv</pre>
<pre>pip3 install esptool</pre>
<pre>pip3 install esphome</pre>
<p>После установки подключим контроллер к компьютеру, переведём его в режим записи и проверим, что всё работает нормально с помощью очистки прошивки:</p>
<pre>esptool.py --port /dev/ttyACM0 erase_flash</pre>
<p>Более подробную информацию о Esphome можно получить на официальном сайте. Я лишь оставлю основные команды.</p>
<p>Подготовка конфигурации прошивки:</p>
<pre>esphome wizard livingroom.yml</pre>
<p>Проверка созданного конфига:</p>
<pre>esphome config livingroom.yml</pre>
<p>Компиляция и запись прошивки в контроллер:</p>
<pre>esphome run livingroom.yml</pre>
<p>Если эта тема интересна, могу поделиться более детальной инструкцией и конфигами, которые использую для чтения данных с датчиков, управления реле и другими устройствами. Пишите в комментарии, если да. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/">Установка и прошивка контроллера ESP32 S2 mini ESPHome</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/usanovka-i-proshivka-controllera-esp32-s2-mini-proshivkoy-esphome/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Соединяем две локальные сети через VPS с помощью VPN Wireguard</title>
		<link>https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/</link>
					<comments>https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Wed, 01 Nov 2023 18:50:09 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vpn]]></category>
		<category><![CDATA[wireguard]]></category>
		<category><![CDATA[zyxel]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1409</guid>

					<description><![CDATA[<p>Задача была следующей: соединить между собой две сети, не имеющие &#171;белого&#187; IP-адреса. Одна сеть выходит в интернет через роутер Mikrotik, вторая сеть выходит через Zyxel Speedster. В качестве связующего звена было решено использовать VPS с установленным Wireguard VPN. Получилась такая схема: LAN0 (192.168.0.0/24) -&#62; Mikrotik -&#62; Internet -&#62; VPS &#60;- Internet &#60;- Zyxel &#60;- LAN1&#8230; <a href="https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/" class="more-link">Continue reading<span class="screen-reader-text"> "Соединяем две локальные сети через VPS с помощью VPN Wireguard"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/">Соединяем две локальные сети через VPS с помощью VPN Wireguard</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Задача была следующей: соединить между собой две сети, не имеющие &#171;белого&#187; IP-адреса. Одна сеть выходит в интернет через роутер Mikrotik, вторая сеть выходит через Zyxel Speedster. В качестве связующего звена было решено использовать VPS с установленным Wireguard VPN.</p>
<p>Получилась такая схема:</p>
<p>LAN0 (192.168.0.0/24) -&gt; Mikrotik -&gt; Internet -&gt; VPS &lt;- Internet &lt;- Zyxel &lt;- LAN1 (192.168.2.0/24)</p>
<h3>1. Настраиваем Wireguard на VPS</h3>
<p>Подробно останавливаться на <a href="https://www.wireguard.com/install/#debian-module-tools" target="_blank" rel="nofollow noopener">установке Wireguard</a>, наверное, большого смысла нет, инструкций по установке более чем достаточно. Покажу лишь конфиг:</p>
<pre>root@vpn-vps:~# cat /etc/wireguard/wg0.conf
[Interface]
Address = 10.36.36.1/24,fd42:24:24::1/64
ListenPort = 54073
PrivateKey = (hidden)
PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;

### Client router-mikrotik
[Peer]
PublicKey = &lt;...skipped...&gt;
PresharedKey = &lt;...skipped...&gt;
AllowedIPs = 10.36.36.2,192.168.0.0/24,fd42:24:24::2/128

### Client router-zyxel
[Peer]
PublicKey = &lt;...skipped...&gt;
PresharedKey = &lt;...skipped...&gt;
AllowedIPs = 10.36.36.3,192.168.2.0/24,fd42:24:24::3/128
</pre>
<p>И интерфейс:</p>
<pre>root@vpn-vps:~# wg show wg0
interface: wg0
  public key: &lt;...skipped...&gt;
  private key: (hidden)
  listening port: 54073

peer: &lt;...skipped...&gt;
  preshared key: (hidden)
  endpoint: xx.xx.xx.xx:21371
  allowed ips: 10.36.36.2/32, 192.168.0.0/24, fd42:24:24::2/128
  latest handshake: 1 minute, 6 seconds ago
  transfer: 231.14 MiB received, 11.05 GiB sent

peer: &lt;...skipped...&gt;
  preshared key: (hidden)
  endpoint: yy.yy.yy.yy:56043
  allowed ips: 10.36.36.3/32, 192.168.2.0/24, fd42:24:24::3/128
  latest handshake: 1 minute, 5 seconds ago
  transfer: 11.02 GiB received, 230.29 MiB sent
</pre>
<p>На что здесь нужно обратить внимание? На разрешённые подсети в параметрах allowed-ips.</p>
<p>Также не лишним будет проверить, что в <em>/etc/sysctl.conf</em> раскомментирован форвардинг пакетов:</p>
<pre>net.ipv4.ip_forward=1</pre>
<h3>2. Настраиваем Mikrotik</h3>
<p>В Mikrotik RouterOS Wireguard поддерживается &#171;из коробки&#187;. Для настройки нужно зайти в раздел Wireguard, добавить новое соединение:</p>
<p><a href="/wp-content/uploads/2023/11/vpn-mikro1.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-mikro1-300x126.png" alt=""  width="300" height="126" class="aligncenter size-medium wp-image-1480"/></a></p>
<p>Далее добавляем peer:</p>
<p><a href="/wp-content/uploads/2023/11/vpn-mikro2.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-mikro2-300x126.png" alt=""  width="300" height="126" class="aligncenter size-medium wp-image-1480"/></a></p>
<p>И правило в маршруты для доступа в подсеть LAN1:</p>
<p><a href="/wp-content/uploads/2023/11/vpn-mikro3.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-mikro3-300x126.png" alt=""  width="300" height="126" class="aligncenter size-medium wp-image-1480"/></a></p>
<p>После этого роутер Microtik будет соединяться с VPN сервером, если мы захотим из сети 192.168.0.0/24 пойти на адреса сети 192.168.2.0/24</p>
<h3>3. Настраиваем Zyxel Speedster</h3>
<p>Добавим соединение с Wireguard </p>
<p><a href="/wp-content/uploads/2023/11/vpn-zyxel1.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-zyxel1-300x154.png" alt="" width="300" height="154" class="aligncenter size-medium wp-image-1424" srcset="https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1-300x154.png 300w, https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1-1024x525.png 1024w, https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1-768x394.png 768w, https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1-1536x788.png 1536w, https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1-840x431.png 840w, https://mylinuxblog.ru/wp-content/uploads/2023/11/vpn-zyxel1.png 1540w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>и настроим peer. В отличие от Mikrotik&#8217;а в Zyxel это делается в одном месте:</p>
<p><a href="/wp-content/uploads/2023/11/vpn-zyxel2.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-zyxel2-300x154.png" alt="" width="300" height="154" class="aligncenter size-medium wp-image-1424"/></a></p>
<p>После этого настраиваем маршрутизацию:</p>
<p><a href="/wp-content/uploads/2023/11/vpn-zyxel4.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-zyxel4-300x154.png" alt="" width="300" height="154" class="aligncenter size-medium wp-image-1424"/></a></p>
<p>И в настройках файрвола разрешаем доступ из сети LAN0 и VPN: </p>
<p><a href="/wp-content/uploads/2023/11/vpn-zyxel3.png" rel="lightbox[gal]"><br />
<img decoding="async" fetchpriority="high" src="/wp-content/uploads/2023/11/vpn-zyxel3-300x154.png" alt="" width="300" height="154" class="aligncenter size-medium wp-image-1424"/></a></p>
<p>На этом настройка закончена.</p>
<p>Теперь из сети 192.168.0.0/24 можно заходить на устройства в сети 192.168.2.0/24, также как и наоборот. При этом в интернет из этих сетей клиенты идут через основной выход, а не через VPN.</p>
<p>Итого &mdash; мы имеем доступ из двух этих сетей друг к другу. С момента настройки и до написания записи прошло около месяца, надеюсь, я ничего не забыл по пути. Но, как обычно, если есть вопрос, можно его написать в комментариях. Всем спасибо. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/">Соединяем две локальные сети через VPS с помощью VPN Wireguard</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/soedinyaem-dve-localnie-seti-cherez-vps-s-pomoschu-vpn-wireguard/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Обновление прошивок с помощью fwupdmgr</title>
		<link>https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/</link>
					<comments>https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Wed, 05 Apr 2023 11:19:48 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[fwupdmgr]]></category>
		<category><![CDATA[update]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1365</guid>

					<description><![CDATA[<p>Как и всё остальное, обновить прошивки железа в Debian Linux довольно просто. В этом нам поможет утилита fwupdmgr. Рассмотрим процесс пошагово. Для начала, добавим в источник репозиториев новый компонент non-free-firmware. Именно в него переехали все «несвободные» прошивки: deb http://ftp.ru.debian.org/debian/ testing main contrib non-free non-free-firmware Затем подтянем обновления: root@laptop:~# fwupdmgr get-updates Devices with no available firmware&#8230; <a href="https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/" class="more-link">Continue reading<span class="screen-reader-text"> "Обновление прошивок с помощью fwupdmgr"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/">Обновление прошивок с помощью fwupdmgr</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Как и всё остальное, обновить прошивки железа в Debian Linux довольно просто. В этом нам поможет утилита fwupdmgr. Рассмотрим процесс пошагово.</p>
<p>Для начала, добавим в источник репозиториев новый компонент <em>non-free-firmware</em>. Именно в него переехали все «несвободные» прошивки:</p>
<pre>deb http://ftp.ru.debian.org/debian/ testing main contrib non-free non-free-firmware</pre>
<p>Затем подтянем обновления:</p>
<pre>root@laptop:~# fwupdmgr get-updates
Devices with no available firmware updates: 
 • SSD 860 EVO M.2 500GB
 • UEFI dbx
────────────────────────────────────────────────
Devices that have been updated successfully:
 • System Firmware (1.29.4 → 1.33.3)
 • UEFI dbx (13 → 217)
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection) [Y|n]: N</pre>
<p>А теперь накатим полученные обновления:</p>
<pre>root@laptop:~# fwupdmgr update
Devices with no available firmware updates: 
 • SSD 860 EVO M.2 500GB
 • UEFI dbx
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade System Firmware from 1.33.3 to 1.34.3?                               ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Some new functionality has also been added:                                  ║
║                                                                              ║
║ Firmware updates to address security vulnerabilities including.              ║
║                                                                              ║
║ Latitude E5470 must remain plugged into a power source for the duration of   ║
║ the update to avoid damage.                                                  ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: Y
Waiting…                 [***************************************]
Successfully installed firmware
Do not turn off your computer or remove the AC adapter while the update is in progress.
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade TPM 1.2 from 5.81.0.0 to 5.81.2.1?                                   ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Initial release                                                              ║
║                                                                              ║
║ TPM 1.2 and all connected devices may not be usable while updating.          ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: Y
Updating TPM 1.2…        [ -                                     ]
Waiting…                 [***************************************]
Successfully installed firmware
Do not turn off your computer or remove the AC adapter while the update is in progress.
An update requires a reboot to complete. Restart now? [y|N]: N</pre>
<p>Автоматически рестартовать ноутбук я не стал, сделал это вручную, закрыв все работающие программы.</p>
<p>После перезагрузки процесс обновления продолжится:</p>
<p><img decoding="async" class="text-center" src="https://mylinuxblog.ru/wp-content/uploads/2023/04/fwupmgr-300x169.jpg" alt="Обновление прошивки с помощью fwupmgr" width="300" height="169" /></p>
<p>И на этом всё. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/">Обновление прошивок с помощью fwupdmgr</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/obnovlenie-proshivok-s-pomoschyu-fwupdmgr/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Установка и настройка knockd</title>
		<link>https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/</link>
					<comments>https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Sat, 04 Feb 2023 06:18:51 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1343</guid>

					<description><![CDATA[<p>Для чего нужен knockd? Для реализации метода port knocking &#8212; &#171;стука&#187; в фаервол для открытия определённых портов. Это обычное применение данной программы, но этим оно не ограничивается и можно придумать более экзотическое её использование. Для начала установовим пакеты knockd и iptables-persistent. Последний нужен для постоянного хранения правил фаервола в случае перезагрузки сервера. apt-get install knockd&#8230; <a href="https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/" class="more-link">Continue reading<span class="screen-reader-text"> "Установка и настройка knockd"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/">Установка и настройка knockd</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Для чего нужен knockd? Для реализации метода port knocking &mdash; &laquo;стука&raquo; в фаервол для открытия определённых портов. Это обычное применение данной программы, но этим оно не ограничивается и можно придумать более экзотическое её использование.</p>
<p>Для начала установовим пакеты knockd и iptables-persistent. Последний нужен для постоянного хранения правил фаервола в случае перезагрузки сервера.</p>
<pre>apt-get install knockd iptables-persistent</pre>
<p>Минимальный набор правил для iptables при это будет выглядеть так:</p>
<pre>iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -j DROP</pre>
<p>В данном случае eth0 &#8212; это название сетевого интерфейса. На свежих системах название будет другое. Например enp3s0 или подобное. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>После того, как правила изменены, нужно их сохранить. Делается это командой</p>
<pre>iptables-save > /etc/iptables/rules.v4</pre>
<p>Теперь можно перейти непосредственно к настройке knockd. Для примера рассмотрим использование port knocking для открытия порта ssh сервиса.</p>
<p>Разрешим запуск knockd в режиме демон. Для этого отредактируем файл <em>/etc/default/knockd</em> и поменяем в нём строку на следующую:</p>
<pre>START_KNOCKD=1</pre>
<p>Если у вас, как и у меня, используется systemd, приведём файл <em>/lib/systemd/system/knockd.service</em>, который выглядит вот так:</p>
<pre>[Unit]
Description=Port-Knock Daemon
After=network.target
Documentation=man:knockd(1)

[Service]
EnvironmentFile=-/etc/default/knockd
ExecStart=/usr/sbin/knockd $KNOCKD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
SuccessExitStatus=0 2 15
ProtectSystem=full
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN</pre>
<p>к следующему виду:</p>
<pre>[Unit]
Description=Port-Knock Daemon
After=network.target
Requires=network.target
Documentation=man:knockd(1)

[Service]
EnvironmentFile=-/etc/default/knockd
ExecStartPre=/bin/sleep 1
ExecStart=/usr/sbin/knockd $KNOCKD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
SuccessExitStatus=0 2 15
ProtectSystem=full
CapabilityBoundingSet=CAP_NET_RAW CAP_NET_ADMIN

[Install]
WantedBy=multi-user.target</pre>
<p>После редактирования нужно, чтобы systemd узнал об изменении в конфигурационных файлах. Для этого выполним:</p>
<pre>systemctl daemon-reload</pre>
<p>Теперь можно разрешить запускать knockd как сервис:</p>
<pre>systemctl enable knockd.service</pre>
<p>И осталось последнее &mdash; отредактировать конфигурационный файл knockd <em>/etc/knockd.conf</em>. Так он выглядит при установке:</p>
<pre>[options]
        UseSyslog

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 5
        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 5
        command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn
</pre>
<p>Но я предпочитаю не убиать доступ к открытым портам вручную, а использую встроенную возможность &laquo;закрытия&raquo;. Конфигурационный файл при этом выглядит так:</p>
<pre>
[options]
    UseSyslog
    Interface = eth0

[opencloseSSH]
    sequence      = 7000,8000,9000
    seq_timeout   = 10
    cmd_timeout   = 60
    tcpflags      = syn
    start_command = /sbin/iptables -I INPUT 3 -s %IP% -p tcp --dport 22 -j ACCEPT
    stop_command  = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
</pre>
<p>В sequence можно указать любые свободные порты, которые вам нравятся. Через 60 секунд после выполнения команды, указанной в start_command, выполнится команда stop_command, которая уберёт правило, открывающее доступ к 22 порту.</p>
<p>Запустим knockd сервис:</p>
<pre>systemctl start knockd.service</pre>
<p>И проверим, что он работает корректно:</p>
<pre>root@tests:~# systemctl status knockd.service 
● knockd.service - Port-Knock Daemon
     Loaded: loaded (/lib/systemd/system/knockd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-02-04 08:41:19 MSK; 53s ago
       Docs: man:knockd(1)
    Process: 1762844 ExecStartPre=/bin/sleep 1 (code=exited, status=0/SUCCESS)
   Main PID: 1762845 (knockd)
      Tasks: 1 (limit: 9507)
     Memory: 768.0K
        CPU: 25ms
     CGroup: /system.slice/knockd.service
             └─1762845 /usr/sbin/knockd

Feb 04 08:41:18 tests systemd[1]: Starting Port-Knock Daemon...
Feb 04 08:41:19 tests systemd[1]: Started Port-Knock Daemon.
Feb 04 08:41:19 tests knockd[1762845]: starting up, listening on eth0</pre>
<p>Теперь проверим, что сервис действительно работает. Для этого &laquo;постучим&raquo; на сервер снаружи:</p>
<pre>knock <hostname> 7000:tcp 8000:tcp 9008:tcp</pre>
<p>На сервере в <em>/var/log/syslog</em> мы увидим следующее:</p>
<pre>Feb  4 08:43:43 tests knockd: xx.xx.xx.xx: opencloseSSH: Stage 1
Feb  4 08:43:43 tests knockd: xx.xx.xx.xx: opencloseSSH: Stage 2
Feb  4 08:43:43 tests knockd: xx.xx.xx.xx: opencloseSSH: Stage 3
Feb  4 08:43:43 tests knockd: xx.xx.xx.xx: opencloseSSH: OPEN SESAME
Feb  4 08:43:43 tests knockd: opencloseSSH: running command: /sbin/iptables -I INPUT 3 -s xx.xx.xx.xx -p tcp --dport 22 -j ACCEPT</pre>
<p>Это означает, что 22 порт открылся. Убедимся в этом, посмотрев список правил iptables:</p>
<pre>iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  xx.xx.xx.xx          0.0.0.0/0            tcp dpt:22
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination</pre>
<p>Продолжая наблюдать логи в <em>/var/log/syslog</em>, через 60 секунд мы увидим отработку команды stop_command, указанной в конфиге:</p>
<pre>Feb  4 08:44:43 tests knockd: xx.xx.xx.xx: opencloseSSH: command timeout
Feb  4 08:44:43 tests knockd: opencloseSSH: running command: /sbin/iptables -D INPUT -s xx.xx.xx.xx -p tcp --dport 22 -j ACCEPT</pre>
<p>Правило для открытия 22 порта удалилось. Проверям в iptables:</p>
<pre>iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination</pre>
<p>Так и есть. Всё работает отлично. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Теперь пару слов о том, как ещё можно использовать knockd. В start_command в <em>/etc/knockd.conf</em> можно необязательно указывать добавление/удаление правил iptables. Можно сделать, например, выключение сервера в экстренной ситуации, указав:</p>
<pre>
start_command = /sbin/shutdown -h now
</pre>
<p>Выключением можно не ограничиваться. В случае получения уведомления о взломе сервера, можно блокировать все соединения с внешним миром, удалить данные с диска, если её раскрытие критично. В общем, возможны любые действия, которые только можно придумать. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/">Установка и настройка knockd</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/ustanovka-i-nastroyka-knockd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как настроить DKIM и SPF в Postfix</title>
		<link>https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/</link>
					<comments>https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Sun, 18 Dec 2022 15:13:30 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<category><![CDATA[dkim]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[spf]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1314</guid>

					<description><![CDATA[<p>Краткая инструкция по настройке DKIM/SPF для домена example.com. Нужно это для того, чтобы снизить вероятность попадания в спам писем, отправляемых с вашего сервера. Установим opendkim и mailutils apt-get update apt-get install opendkim opendkim-tools mailutils Теперь перейдём непосредственно к настройке. Для настройки SPF необходимо создать TXT-запись следующего вида: Хост Указатель TTL @ v=spf1 ip4:server_ip ~all 3600&#8230; <a href="https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/" class="more-link">Continue reading<span class="screen-reader-text"> "Как настроить DKIM и SPF в Postfix"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/">Как настроить DKIM и SPF в Postfix</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Краткая инструкция по настройке DKIM/SPF для домена example.com. Нужно это для того, чтобы снизить вероятность попадания в спам писем, отправляемых с вашего сервера.</p>
<p>Установим opendkim и mailutils</p>
<pre>apt-get update
apt-get install opendkim opendkim-tools mailutils</pre>
<p>Теперь перейдём непосредственно к настройке. Для настройки SPF необходимо создать TXT-запись следующего вида:</p>
<pre>
Хост        Указатель                    TTL
@           v=spf1 ip4:server_ip ~all    3600</pre>
<p><em>server_ip</em> &#8212; IP-адрес вашего почтового сервера, который отправляет письма.<br />
<em>~all</em> означает, что письмо, которое не прошло проверку, будет отклонено.</p>
<p>Теперь настроим DKIM</p>
<pre>mkdir /etc/postfix/dkim/</pre>
<p>Создаём ключи ключи для домена example.com:</p>
<pre>opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail</pre>
<p>После выполнения последней команды в каталоге <em>/etc/postfix/dkim/</em> появится пара ключей &mdash; публичный и приватный для домена example.com:</p>
<p>Установим права на приватный ключ:</p>
<pre>chmod 600 /etc/postfix/dkim/example.com.private</pre>
<p>Поменяем владельца каталога:</p>
<pre>chown -R opendkim /etc/postfix/dkim/</pre>
<p>В опции в файле <em>/etc/opendkim.conf</em> необходимо внести следующие правки:</p>
<pre>Syslog yes
Mode sv
KeyTable file:/etc/postfix/dkim/keytable
SigningTable file:/etc/postfix/dkim/signingtable</pre>
<p><em>Mode sv</em> &mdash; режим подписи и проверка подписей<br />
<em>KeyTable</em> &mdash; список ключей<br />
<em>SigningTable</em> &mdash; соответствие доменов и подписывающих их ключей</em></p>
<p>В файле <em>/etc/postfix/dkim/keytable</em> указываем данные о приватных ключах для доменов в формате <em>имя_ключа домен:селектор:/путь/до/ключа</em></p>
<pre>mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/example.com.private</pre>
<p>В файле <em>/etc/postfix/dkim/signingtable</em> указываются домены, которые необходимо подписывать в формате <em>домен имя_ключа</em>:</p>
<pre>example.com mail._domainkey.example.com</pre>
<p>В <em>/etc/default/opendkim</em> необходимо указать сокет, на котором будет opendkim. Другие настройки можно закомментировать:</p>
<pre>SOCKET="inet:8891@localhost"</pre>
<p>Добавляем в <em>/etc/postfix/main.cf</em>:</p>
<pre>milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891</pre>
<p>Перезапускаем postfix и opendkim:</p>
<pre>systemctl restart postfix
systemctl restart opendkim</pre>
<p>Теперь осталось настроить DNS.</p>
<p>В панели управления доменом создаём TXT-запись следующего вида:</p>
<pre>
Запись                      Содержимое                               TTL
mail._domainkey             v=DKIM1; h=sha256; k=rsa; p=MII...QAB    3600</pre>
<p>Содержимое строки <em>p=MII&#8230;QAB</em> берём из файла <em>/etc/postfix/dkim/example.com.txt</em>.</p>
<p>После обновления DNS, всё должно заработать.</p>
<p>Как проверить, что всё сделано правильно? Для проверки можно отправить тестовое сообщение на свой почтовый ящик с помощью утилиты mail:</p>
<pre>"test message" | mail -aFrom:mail@example.com my_email@google.com</pre>
<p>В заголовках полученного сообщения проверки SPF и DKIM должны выполниться успешно:</p>
<pre>spf=pass
dkim=pass</pre>
<p>Также проверить DKIM можно с помощью утилиты opendkim-testkey:</p>
<pre>opendkim-testkey -d example.com -s mail -vvv -k /etc/opendkim/keys/mail.private

opendkim-testkey: using default configfile /etc/opendkim.conf
opendkim-testkey: checking key 'mail._domainkey.example.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK</pre>
<p>Таким образом мы получаем настроенный DKIM, что позволяет письмам доходить до получателя, а не сразу улетать в спам. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/">Как настроить DKIM и SPF в Postfix</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/kak_nastroit_dkim_i_spf_v_postfix/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Исправляем ошибку с сертификатами для сайта Сбербанка</title>
		<link>https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/</link>
					<comments>https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Wed, 28 Sep 2022 04:33:56 +0000</pubDate>
				<category><![CDATA[desktop]]></category>
		<category><![CDATA[brave]]></category>
		<category><![CDATA[сбер]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1305</guid>

					<description><![CDATA[<p>Краткая инструкция, как вернуть безопасный доступ к сайту Сбербанка. Несколько дней назад заходя на сайт Сбербанка (нынче Сбер) пользователи сторонних браузеров столкнулись с проблемой небезопасного соединения в браузерах Chrome, Firefox и прочих. Произошло это по причине того, что теперь сертификат Сбербанка подписан российским удостоверяющим центром, а в перечисленных браузерах его корневого сертификата нет. Для решения&#8230; <a href="https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/" class="more-link">Continue reading<span class="screen-reader-text"> "Исправляем ошибку с сертификатами для сайта Сбербанка"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/">Исправляем ошибку с сертификатами для сайта Сбербанка</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Краткая инструкция, как вернуть безопасный доступ к сайту Сбербанка.</p>
<p>Несколько дней назад заходя на сайт Сбербанка (нынче Сбер) пользователи сторонних браузеров столкнулись с проблемой небезопасного соединения в браузерах Chrome, Firefox и прочих. Произошло это по причине того, что теперь сертификат Сбербанка подписан российским удостоверяющим центром, а в перечисленных браузерах его корневого сертификата нет. Для решения проблемы можно использовать Яндекс.Браузер, а можно добавить сертификаты в свой браузер.</p>
<p>Например, я пользуюсь браузером <a href="https://brave.com" rel="nofollow">Brave</a>. Его и будем &#171;приводить в чувства&#187;. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>1. Заходим на сайт Госуслуг &mdash; <a href="https://www.gosuslugi.ru/crt" rel="nofollow">https://www.gosuslugi.ru/crt</a>. Прокручиваем страницу чуть ниже, находим кнопки &#171;<em>Скачать корневой сертификат</em>&#187; и &#171;<em>Скачать выпускающий сертификат</em>&#171;. Жмём их и получаем два файла:</p>
<pre>russian_trusted_root_ca.cer
russian_trusted_sub_ca.cer</pre>
<p>2. Заходим в настройки Brave: Setting -> Privacy and security. Выбираем Manage certificates, вкладку Authorities и импортируем скачанные сертификаты.</p>
<p>3. Вы великолепны! У вас снова работает безопасное соединение с сайтом Сбера.</p>
<p>По аналогии решается проблема в других браузерах. Всем удачи и безопасного серфинга в интернете. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/">Исправляем ошибку с сертификатами для сайта Сбербанка</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/isprablaem-oshibku-s-sertifikatami-dlya-sayta-sberbanka/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Автозапуск упавшего сервиса в systemd</title>
		<link>https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/</link>
					<comments>https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/#respond</comments>
		
		<dc:creator><![CDATA[Alex]]></dc:creator>
		<pubDate>Wed, 30 Jun 2021 19:45:37 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<category><![CDATA[php5-fpm]]></category>
		<category><![CDATA[systemd]]></category>
		<guid isPermaLink="false">http://mylinuxblog.ru/?p=1280</guid>

					<description><![CDATA[<p>Достаточно часто бывает необходимость не позволять сервисам падать &#171;наглухо&#187;, а рестартовать их в случае аварийного завершения. Systemd позволяет это сделать достаточно просто. Рассмотрим в качестве примера древний сервис php5-fpm: systemctl status php5-fpm.service ● php5-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php5-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-06-30 10:14:55 MSK;&#8230; <a href="https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/" class="more-link">Continue reading<span class="screen-reader-text"> "Автозапуск упавшего сервиса в systemd"</span><span class="meta-nav"> &#8594;</span></a></p>
The post <a href="https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/">Автозапуск упавшего сервиса в systemd</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>Достаточно часто бывает необходимость не позволять сервисам падать &#171;наглухо&#187;, а рестартовать их в случае аварийного завершения. Systemd позволяет это сделать достаточно просто.</p>
<p>Рассмотрим в качестве примера древний сервис php5-fpm:</p>
<pre>systemctl status php5-fpm.service
● php5-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php5-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2021-06-30 10:14:55 MSK; 12h ago
  Process: 9349 ExecStartPre=/usr/lib/php5/php5-fpm-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 9354 (php5-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 499, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 4700)
   Memory: 857.9M
   CGroup: /system.slice/php5-fpm.service
           ├─ 9354 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
           ├─ 9357 php-fpm: pool web19
           ├─ 9358 php-fpm: pool web19
           ├─ 9359 php-fpm: pool www
           ├─ 9360 php-fpm: pool www
           └─20671 php-fpm: pool www
</pre>
<p>Открываем на редактирование файл <em>/lib/systemd/system/php5-fpm.service</em> и видим обычное содержимое:</p>
<pre>
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target

[Service] 
Type=notify
PIDFile=/var/run/php5-fpm.pid
ExecStartPre=/usr/lib/php5/php5-fpm-checkconf
ExecStart=/usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target
</pre>
<p>В случае некорректного завершения его работы, он не перезапустится автоматически и сайты, которые он ещё обслуживает, будут недоступны. Чтобы сервис перезапустился автоматически, нужно в секцию Unit добавить следующий строки:</p>
<pre>
StartLimitIntervalSec=500
StartLimitBurst=5
</pre>
<p>А в секцию Service добавить:</p>
<pre>
Restart=on-failure
RestartSec=5s
</pre>
<p>После добавления нужно заставить systemd перечитать конфиги:</p>
<pre>systemctl daemon-reload</pre>
<p>И теперь, если сервис вдруг остановится по незапланированным причинам, в течение 5 секунд он будет перезапущен. Попыток рестарта сервиса будет 5 в течение 500 секунд и если все эти попытки закончатся неудачей, дальнейших попыток перезапуска не будет. Этого времени должно хватить сисадмину, чтобы среагировать на проблему вручную. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>The post <a href="https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/">Автозапуск упавшего сервиса в systemd</a> first appeared on <a href="https://mylinuxblog.ru">My Linux Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://mylinuxblog.ru/avtozapusk-upavshego-servisa-v-systemd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
