<?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>IT science: заметки с тегом ubuntu</title>
<link>https://itscience.pro/tags/ubuntu/</link>
<description>IT science — статьи и инструкции из мира IT</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>IT science — статьи и инструкции из мира IT</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Статистика использования лицензий Autodesk (сервер лицензий)</title>
<guid isPermaLink="false">46</guid>
<link>https://itscience.pro/all/statistika-ispolzovaniya-licenziy-autodesk-server-licenziy/</link>
<pubDate>Mon, 12 Sep 2022 17:37:46 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/statistika-ispolzovaniya-licenziy-autodesk-server-licenziy/</comments>
<description>
&lt;p&gt;Делюсь опытом, может кому-то пригодится.&lt;/p&gt;
&lt;p&gt;Внимание! Это материал про официальный сервер лицензий!&lt;/p&gt;
&lt;p&gt;Когда-то  у нас были сетевые лицензии, сначала бессрочные, потом годовые и был свой сетевой сервер лицензий.&lt;br /&gt;
Сам сервер был развёрнут на машине с windows, файл лицензий получали через кабинет Autodesk после продления.&lt;/p&gt;
&lt;p&gt;Но, сейчас о другом. Нам захотелось получать статистику выдачи лицензий, т. к. куплено их было «впритык» и нужно было отслеживать целесообразность использования.&lt;/p&gt;
&lt;p&gt;В инсталляторе идёт утилита &lt;b&gt;lmutil.exe&lt;/b&gt;, запуск которой в командной строке выдаст статистику по ключам.&lt;/p&gt;
&lt;p&gt;Это конечно круто, но недостаточно смотреть статистику, хочется её накапливать, в базе например. Через командную строку Windows делать такое непрактично. На выручку приходит наш любимый linux.&lt;/p&gt;
&lt;p&gt;Для начала идём на сайт Autodesk и скачиваем Autodesk Network License Manager для Linux.&lt;br /&gt;
&lt;a href="https://knowledge.autodesk.com/ru/search-result/caas/downloads/downloads/RUS/content/autodesk-network-license-manager-for-linux.html"&gt;https://knowledge.autodesk.com/ru/search-result/caas/downloads/downloads/RUS/content/autodesk-network-license-manager-for-linux.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Обратите внимание, поддерживаемые версии:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Red Hat Enterprise Linux 8&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Linux 7&lt;/li&gt;
&lt;li&gt;SUSE Linux Enterprise 15 с пакетом обновления 2 (SP2)&lt;/li&gt;
&lt;li&gt;SUSE Linux Enterprise 15 с пакетом обновления 1 (SP1)&lt;/li&gt;
&lt;li&gt;SUSE Linux Enterprise 15&lt;/li&gt;
&lt;li&gt;SUSE Linux Enterprise 12 с пакетом обновления 4 (SP4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Не смущайтесь, ниже я расскажу как это всё запустить на Ubuntu.&lt;/p&gt;
&lt;p&gt;Если заглянуть в RPM пакет, то там распаковываются 4 файла в папку &lt;b&gt;/opt/flexnetserver/&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LicenseAdministration.pdf&lt;/li&gt;
&lt;li&gt;adskflex&lt;/li&gt;
&lt;li&gt;lmgrd&lt;/li&gt;
&lt;li&gt;lmutil&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Собственно, для наших целей потребуется только файл &lt;b&gt;lmutil&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Закидываем распакованный файл куда хотим на наш сервер, хоть в папку scripts&lt;/p&gt;
&lt;p&gt;Ну, а дальше, небольшой фикс&lt;/p&gt;
&lt;p&gt;Если при запуске утилиты она выдаёт ошибку&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ ./lmutil
bash: ./lmutil: Нет такого файла или каталога&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ldd выдаёт результат&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ ldd lmutil
        linux-vdso.so.1 (0x00007fff5b1de000)
        libpthread.so.0 =&amp;gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbe36c6f000)
        libm.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbe36b20000)
        libgcc_s.so.1 =&amp;gt; /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbe36b05000)
        libc.so.6 =&amp;gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbe36913000)
        libdl.so.2 =&amp;gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbe3690d000)
        librt.so.1 =&amp;gt; /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbe36903000)
        /lib64/ld-lsb-x86-64.so.3 =&amp;gt; /lib64/ld-linux-x86-64.so.2 (0x00007fbe36c98000)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Попробуйте сделать линк на so&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo ln -s ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;и вам повезёт&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ ./lmutil
lmutil - Copyright (c) 1989-2021 Flexera. All Rights Reserved.
usage:  lmutil lmborrow | lmborrowl -status
        lmutil lmborrow | lmborrowl -purge
        lmutil lmborrow | lmborrowl -purge -status
        lmutil lmborrow | lmborrowl -clear
        lmutil lmborrow | lmborrowl {all|vendor} dd-mmm-yyyy:[time]
        lmutil lmborrow -return [-c licfile] [-d display_name]  [-u username] [-h hostname] [-fqdn] [-vendor name] feature [-bv version]
...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;А дальше дело техники&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;$ ./lmutil lmstat -f 85536ACD_2011_0F -c 40000@server_license&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;запрашиваем статистику по использованию лицензий для продукта &lt;b&gt;AutoCAD 2011&lt;/b&gt; у сервера &lt;b&gt;server_license&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Коды продуктов можно посмотреть тут: &lt;a href="https://jtbworld.com/flexnet-flexlm-feature-codes-for-autodesk-applications-and-other-applications"&gt;https://jtbworld.com/flexnet-flexlm-feature-codes-for-autodesk-applications-and-other-applications&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Из Linux можно опрашивать несколько серверов LMTOOL, если нужно, а дальше нужно только распарсить вывод и сохранить его в базу.&lt;/p&gt;
</description>
</item>

<item>
<title>Создаём synology iscsi и подключаем в Ubuntu</title>
<guid isPermaLink="false">43</guid>
<link>https://itscience.pro/all/sozdayom-synology-iscsi-i-podklyuchaem-v-ubuntu/</link>
<pubDate>Fri, 17 Dec 2021 14:43:39 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/sozdayom-synology-iscsi-i-podklyuchaem-v-ubuntu/</comments>
<description>
&lt;p&gt;сервер Synology DSM 7.0.1-42218&lt;br /&gt;
Ubuntu 20.04&lt;/p&gt;
&lt;h2&gt;В Synology&lt;/h2&gt;
&lt;p&gt;переходим в SAN менеджер и создаем target&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_134256.png" width="800" height="351.91637630662" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;и сразу создаём, связанный с target LUN&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="671" data-ratio="1.0583596214511"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_134406.png" width="671" height="634" alt="" /&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_134433.png" width="670" height="636" alt="" /&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_134704.png" width="674" height="635" alt="" /&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_134720.png" width="669" height="636" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;нам нужно 30Тб, не заморачиваемся с гибкостью, нужна максимальная надёжность&lt;/p&gt;
&lt;p&gt;дальше настраиваем в ubuntu&lt;/p&gt;
&lt;h2&gt;в Ubuntu&lt;/h2&gt;
&lt;p&gt;устанавливаем софт&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo su
apt update
apt install open-iscsi&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;редактируем конфиг&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mcedit /etc/iscsi/iscsid.conf&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;меняем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#*****************
# Startup settings
#*****************

# To request that the iscsi initd scripts startup a session set to &amp;quot;automatic&amp;quot;.
# node.startup = automatic
#
# To manually startup the session set to &amp;quot;manual&amp;quot;. The default is manual.
#node.startup = manual
node.startup = automatic&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;запрашиваем доступные таргеты с сервера&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;iscsiadm -m discovery -t st -p &amp;lt;адрес сервера&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_160129.png" width="602" height="52" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;когда у нас подключен LUN мы можем заняться созданием раздела и форматированием в btrfs&lt;br /&gt;
для начала посмотрим, куда подключился LUN&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;fdisk -l&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_170905.png" width="685" height="321" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;в нашем примере это /dev/sdb&lt;/p&gt;
&lt;p&gt;создаем раздел на все свободное пространство (это будет радел GPT, иначе не сможем сделать больше 2 TiB).&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;fdisk /dev/sdb&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_171013.png" width="800" height="602.10930009588" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;как нам подсказывает помощь, сначала меняем тип раздела, жмём &lt;b&gt;g&lt;/b&gt;, потом создаем новый раздел &lt;b&gt;n&lt;/b&gt;, номер раздела 1, он у нас первый и единственный, размеры начала раздела и его конца по-умолчанию. Когда мы все проверили и нас все устроило, жмём &lt;b&gt;w&lt;/b&gt; и записываем изменения.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_171042.png" width="736" height="230" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;ещё раз запускаем fdisk и смотрим результат&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;fdisk -l&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_171120.png" width="680" height="400" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;мы получили раздел /dev/sdb1&lt;/p&gt;
&lt;p&gt;теперь форматируем&lt;br /&gt;
для начала установим btrfs-progs&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt install btrfs-progs&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;форматируем наш раздел&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mkfs.btrfs -L data /dev/sdb1&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_172420.png" width="455" height="321" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;подключаем раздел как папку /var&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mount /dev/sdb1 /mail&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;смотрим uuid нашего раздела&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;btrfs filesystem show /mail&lt;/code&gt;&lt;/pre&gt;&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-12-16_173113.png" width="488" height="65" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;редактируем /etc/fstab для автоматического подключения&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mcedit /etc/fstab&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;прописываем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;UUID=5d84eadf-6272-4b3f-8ac9-90a72108df11       /mail   btrfs   defaults    0 0&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;перегружаем и проверяем&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;reboot&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>отслеживаем подключения по vpn на pfsense</title>
<guid isPermaLink="false">33</guid>
<link>https://itscience.pro/all/otslezhivaem-podklyucheniya-po-vpn-na-pfsense/</link>
<pubDate>Wed, 21 Apr 2021 12:01:04 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/otslezhivaem-podklyucheniya-po-vpn-na-pfsense/</comments>
<description>
&lt;p&gt;Пандемия 2020 дала свои плоды: удаленная работа, массовое использование VPN. Конечно, любое руководство захочет контролировать удаленное подключение/отключение сотрудников. У себя в компании мы интегрировали VPN в пропускную систему создав виртуальный контроллер. Теперь отдел кадров видит кто посещал рабочее место зайдя в офис или подключался удаленно. Полностью расписывать весь механизм я не стану, лишь опубликую как можно организовать получение событий со шлюза на pfsense.&lt;/p&gt;
&lt;p&gt;Для начала создаём сервер на ubuntu, например, виртуальный. Требования минимальны: 1 CPU, 256Мб памяти, 10Гб диск. Я щедро выделил 1Гб памяти и 100 Гб диска, вот что реально потребляет система:&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_112612.png" width="644" height="90" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_120015.png" width="569" height="164" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Качаем минимальный дистрибутив в 74Мб &lt;a href="http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso"&gt;http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;устанавливаем syslog-ng&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sudo apt update
sudo apt install syslog-ng&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;создаем конфиг /etc/syslog-ng/conf.d/external_log.conf&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;source s_udp {
    udp(port(514));
};
destination d_PFSENSE_VPN {
     program(&amp;quot;/usr/bin/php /home/user/pfsense_vpn.php&amp;quot; );
};
filter f_PFSENSE_VPN {
    host(&amp;quot;192.168.#.#&amp;quot;);
    match(&amp;quot;,l2tp,&amp;quot; value (&amp;quot;MESSAGE&amp;quot;));
};
log {
    source(s_udp);
    filter(f_PFSENSE_VPN);
    destination(d_PFSENSE_VPN);
};
destination d_PFSENSE_OPENVPN {
     program(&amp;quot;/usr/bin/php /home/user/pfsense_vpn.php&amp;quot; );
};
filter f_PFSENSE_OPENVPN {
    host(&amp;quot;192.168.#.#&amp;quot;);
    program(&amp;quot;openvpn&amp;quot;);
};
log {
    source(s_udp);
    filter(f_PFSENSE_OPENVPN);
    destination(d_PFSENSE_OPENVPN);
};&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где 192.168.#.# — ip-адрес pfsense&lt;/p&gt;
&lt;p&gt;перенаправим логи с pfsense на наш маленький сервер, здесь мы их будем парсить и обрабатывать как нам нужно&lt;/p&gt;
&lt;p&gt;в моём примере, мы создаем два фильтра &lt;b&gt;f_PFSENSE_VPN&lt;/b&gt; и &lt;b&gt;f_PFSENSE_OPENVPN&lt;/b&gt; для того чтобы скриптом обрабатывать только события связанные с подключением и отключением по протоколам l2tp и OpenVPN (актуально для формата логов pfsense версии 2.5.1&lt;/p&gt;
&lt;p&gt;есть два destination, но по сути они ссылаются на один и тот же скрипт &lt;b&gt;d_PFSENSE_VPN&lt;/b&gt; и &lt;b&gt;d_PFSENSE_OPENVPN&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;со стороны pfsense настраиваем пересылку логов на наш сервер&lt;/p&gt;
&lt;p&gt;Status -&gt; System Logs -&gt; Settings&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/izobrazhenie_2021-04-21_114737.png" width="800" height="504.92957746479" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;указываем ip-адрес и порт нашего сервера и ставим галочку «VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)», т. к. нам нужны только события удаленных подключений&lt;/p&gt;
&lt;p&gt;с парсером, я думаю, вы справитесь, приведу пример логов для OpenVPN:&lt;br /&gt;
подключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:29:57 192.168.#.# openvpn: user ’user_name’ authenticated&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;отключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:57:34 192.168.#.# openvpn[16766]: user_name/132.252.198.166:6182 Connection reset, restarting [-1]&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;С l2tp еще проще:&lt;br /&gt;
подключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:29:57 192.168.#.# root: login,l2tp,192.168.111.#,user_name&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;отключение&lt;/p&gt;
&lt;/code&gt;&lt;p&gt;Jun 25 18:57:34 192.168.#.# root: logout,l2tp,192.168.111.#,user_name&lt;/p&gt;
&lt;/code&gt;</description>
</item>


</channel>
</rss>