Столкнулся с ошибкой DNS: named: validating @0x7fc170001550: dlv.isc.org SOA: got insecure response; parent indicates it should be secure

Столкнулся с тем что BIND нормально не определял некоторые домены, и в логи сыпал ошибками вида:

named: validating @0x7fc170001550: dlv.isc.org SOA: got insecure response; parent indicates it should be secure
named: error (insecurity proof failed) resolving ‘dlv.isc.org/DLV/IN’: 0.0.0.0#53

…….

named[21941]:  validating @0x7ff1a46515f0: monplatin-vrn.ru SOA: got insecure response; parent indicates it should be secure
named[21941]: error (no valid RRSIG) resolving ‘testcrm.monplatin-vrn.ru/DS/IN’: 192.168.1.1#53

Решение нашел здесь.

Кратко решением является следующее:

  1. Это связанно с включенным по умолчанию DNSSEC.
  2. Решить проблему можно отключив эту опцию.
  3. отключение DNSSEC в named.conf в разделе опций.

    dnssec
    enable no;
    dnssecvalidation no;

 

Как я ставил pgadmin4 v1.3 на openSUSE Leap 42.2

Статья не претендует на уникальность или точность и не дает гарантий что у Вас эта инструкция 100% сработает. Существуют другие варианты и способы решения данной задачи. Автор статьи не дает никаких гарантий.

Решил написать эту статью т.к. не обнаружил статей которые бы описывали установку pgadmin4 любым способом на openSUSE Leap 42.2. Раньше было просто — установил пакет и все работает. Теперь так не получается…. а что нужно сделать что бы установить нигде толком пошагово не написано. Вот я решил описать свой путь. Может он кому-то поможет.

Как то решил поставить себе pgadmin4 на openSUSE Leap 42.2 и обнаружил что для установки через yast у меня не хватает зависимостей и ставится это отказалось.

Тогда я пошел на оф сайт (на момент написание статьи это v 1.3) и нашел там вариант установки через pip.

pip — это система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.

У меня установлен python3-pip-7.1.2-5.3.noarch. В принципе после первой попытки что то поставить через pip он сообщит что есть более свежея версия и предложит обновиться если есть версия новее. Так что поставить изначально можно любую.

Далее я создал временную папку и скачал туда файл pgadmin4-1.3-py2.py3-none-any.whl командой:

# wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.3/pip/pgadmin4-1.3-py2.py3-none-any.whl

Для установки этого пакета требуется масса зависимостей которые будут удовлетворены автоматически при установке. Запускаем установку (мы должны находится в каталоге куда скачали файл):

# pip install ./pgadmin4-1.3-py2.py3-none-any.whl

И счастье? Это же линукс 🙂  Конечно с первого раза тут редко что получается. Так и случилось у меня. После первого запуска я получаю ошибку:

 

Collecting psycopg2==2.6.2 (from pgadmin4==1.3)
Using cached psycopg2-2.6.2.tar.gz
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info/psycopg2.egg-info
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing manifest file ‘pip-egg-info/psycopg2.egg-info/SOURCES.txt’
Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:

python setup.py build_ext —pg-config /path/to/pg_config build …

or with the pg_config option in ‘setup.cfg’.

—————————————-
Command «python setup.py egg_info» failed with error code 1 in /tmp/pip-build-ts8kxg53/psycopg2/

Проверим действительно ли у нас нет этого файла?:

# which pg_config
which: no pg_config in (/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games)

да действительно нет.

Но я же ставлю клиента, а не БД! Поискав в интернете выяснил что ему нужно. А нужно поставить пакет postgresql-devel.

Проверим что изменилось после установки пакета:

# which pg_config
/usr/bin/pg_config

а теперь такой файл есть!

После чего снова запустил установку и получил — счастье? Нет. Получил новую ошибку:

   building ‘psycopg2._psycopg’ extension
creating build/temp.linux-x86_64-3.4
creating build/temp.linux-x86_64-3.4/psycopg
gcc -pthread -Wno-unused-result -DNDEBUG -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
-fasynchronous-unwind-tables -g -DOPENSSL_LOAD_CONF -fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION=»2.6.2 (dt dec pq3 ext lo64)» -DPG_VERSION_
HEX=0x090409 -DHAVE_LO64=1 -I/usr/include/python3.4m -I. -I/usr/include/pgsql -I/usr/include/pgsql/server -c psycopg/psycopgmodule.c -o build/temp.lin
ux-x86_64-3.4/psycopg/psycopgmodule.o -Wdeclaration-after-statement
In file included from psycopg/psycopgmodule.c:27:0:
./psycopg/psycopg.h:30:20: fatal error: Python.h: Нет такого файла или каталога
#include <Python.h>
^
compilation terminated.
error: command ‘gcc’ failed with exit status 1

—————————————-
Rolling back uninstall of psycopg2
Command «/usr/bin/python3 -u -c «import setuptools, tokenize;__file__=’/tmp/pip-build-yt2p5xde/psycopg2/setup.py’;f=getattr(tokenize, ‘open’, open)(__
file__);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, __file__, ‘exec’))» install —record /tmp/pip-rzz9izwm-record/install-record.
txt —single-version-externally-managed —compile» failed with error code 1 in /tmp/pip-build-yt2p5xde/psycopg2/     

И снова пошел читать…  Оказалось что нужно установить пакет python-dev НО поскольку у меня для сборки используется python3 - это можно увидеть в последней строке с текстом "Command "/usr/bin/python3 -u -c "import ....." то логично что мне нужен пакет python3-dev.

Установив этот пакет я снова запустил установку. И получил счастье? ДА! Все собралось и встало:

Requirement already satisfied: traceback2 in /usr/lib/python3.4/site-packages (from testtools>=0.9.22->fixtures==2.0.0->pgadmin4==1.3)
Requirement already satisfied: argparse in /usr/lib/python3.4/site-packages (from unittest2>=1.0.0->testtools>=0.9.22->fixtures==2.0.0->pgadmin4==1.3)
Installing collected packages: pycrypto, Flask-WTF, simplejson, psycopg2, beautifulsoup4, pgadmin4
Running setup.py install for pycrypto … done
Found existing installation: Flask-WTF 0.14.2
Uninstalling Flask-WTF-0.14.2:
Successfully uninstalled Flask-WTF-0.14.2
Running setup.py install for Flask-WTF … done
Found existing installation: simplejson 3.8.0
Uninstalling simplejson-3.8.0:
Successfully uninstalled simplejson-3.8.0
Running setup.py install for simplejson … done
Found existing installation: psycopg2 2.7.1
Uninstalling psycopg2-2.7.1:
Successfully uninstalled psycopg2-2.7.1
Running setup.py install for psycopg2 … done
Found existing installation: beautifulsoup4 4.5.3
Uninstalling beautifulsoup4-4.5.3:
Successfully uninstalled beautifulsoup4-4.5.3
Successfully installed Flask-WTF-0.12 beautifulsoup4-4.4.1 pgadmin4-1.3 psycopg2-2.6.2 pycrypto-2.6.1 simplejson-3.6.5

Но вот задачка? Как это добро теперь запустить? Ярлычка то не появилось (так и должно было быть).

Поискав в интернете выяснилось что нужно поискать файл pgAdmin4.py (у меня все встало по умолчанию в /usr/lib/ — если у вас нет нужного файла в этом каталоге то поищите по всей системе)

# find /usr/lib/ -wholename «*pgAdmin4.py»
/usr/lib/python3.4/site-packages/pgadmin4/pgAdmin4.py

Нашелся файл! Теперь можно запустить. Сразу после запуска он в текущем профиле создаст профиль для входа пользователя в web интерфейсе. Запросы на создание пользователя и пароля появятся автоматически при первом старте.

# python3 /usr/lib/python3.4/site-packages/pgadmin4/pgAdmin4.py
pgAdmin 4 — Application Initialisation
======================================

The configuration database — ‘/root/.pgadmin/pgadmin4.db’ does not exist.
Entering initial setup mode…
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: ВАШ@ЛОГИН
Password:
Retype password:

The configuration database has been created at /root/.pgadmin/pgadmin4.db
Starting pgAdmin 4. Please navigate to http://localhost:5050 in your browser.


Теперь можно открыть браузер и перейти на http://localhost:5050. Далее войти под своим профилем/пользователем и получить доступ к pgAdmin4, а дальше как обычно.

На этом все. Удачи!

 

Мониторинг zabbix (3.0)

Перечень страниц с которых я брал шаблоны для своего zabbix:

все материалы в данном посте используют zabbix-agent для сбора метрик.

Для мониторинга OpenVPN была использована следующая статья: https://share.zabbix.com/cat-app/app-other/openvpn

В целях сохранения материала по указанной выше ссылке основные тезисы опишу здесь:

(о главном: получите в виде графика загрузку канала связи и время подключения/отключения каждого клиента по сертефикату в автоматическом режиме)

  1. Для запуска шаблона необходимо скачать файлы скриптов отсюда:  https://github.com/Grifagor/zabbix-openvpn файлы discover_vpn.sh, discover_vpn_ipp.sh
  2. Положить эти файлы в каталог для скриптов zabbix-agent. (место размещения данного каталога произвольно но обычно это /etc/zabbix/scripts/)
  3. Делаем эти файлы исполняемыми для пользователя zabbix.
  4. Далее необходимо указать эти настройки в конфигурации zabbix-agentа (/etc/zabbix/zabbix_agentd.conf):UserParameter=discovery.openvpn,/etc/zabbix/scripts/discover_vpn.shUserParameter=user_status.openvpn[*], cat /var/log/openvpn-status.log | grep $1, >/dev/null && echo 1 || echo 0UserParameter=num_user.openvpn, cat /var/log/openvpn-status.log | sed -n ‘/Connected Since/,/ROUTING/p’ | sed -e ‘1d’ -e ‘$d’ | wc -lUserParameter=user_byte_received.openvpn[*], if [ «`grep -c $1, /var/log/openvpn-status.log`» != «0» ]; then cat /var/log/openvpn-status.log | grep $1, | tr «,» «\n» | sed -n ‘3p’ ; else echo «0» ; fiUserParameter=user_byte_sent.openvpn[*], if [ «`grep -c $1, /var/log/openvpn-status.log`» != «0» ]; then cat /var/log/openvpn-status.log | grep $1, | tr «,» «\n» | sed -n ‘4p’ ; else echo «0» ; fiUserParameter=discovery.openvpn.ipp,/etc/zabbix/scripts/discover_vpn_ipp.sh # for discovery with ifconfig-pool-persistесли конфигурация вашего vpn сервера не использует ipp — как у меня, то вам достаточно создать симлинк на файл discover_vpn.sh с названием discover_vpn_ipp.sh
  5. Обратите внимание на выделенным красным пути. У Вас они могу отличаться от указанных здесь. Так же пользователь zabbix должен иметь доступ на чтение указанных файлов.
  6. Затем перезапустить zabbix-agent что бы применить новые настройки
  7. Загрузить шаблон openvpn.xml в ваш Zabbix. Затем указать необходимому хосту использовать данный шаблон.
  8. Для удобства я сохранил у себя архив с шаблоном и скриптами у себя. (20.12.2016)

 

Для мониторинга SQID была использована следующая статья: http://foraqis.ru/?p=378

О главном: получите ряд показателей вашего squid. Графиков в шаблоне нет. Простой триггер на доступность приложения. Хотите больше? Все данные уже у вас будут — создайте нужный вид отображения для себя сами.

  1. Необходимо установить squidclient.
    Например у меня SQUID собран руками из исходников. И этот файл был установлен вместе с squid (каталог bin). Каталог размещения у всех может отличаться. 
  2. Далее необходимо что бы в вашем squid можно было подключаться в качестве manager.
    Пример настройки доступа manager:
    # mcedit /etc/squid/squid.conf

    acl manager proto cache_object
    http_access allow manager localhost
    http_access deny manager
    #Данная строка задает пароль secret и разрешает делать все
    cachemgr_passwd secret all
    В случае если все настроено следующая команда
    # squidclient mgr:info
    должна выдать нечто подобное:
    ………
    Connection information for squid:
    Number of clients accessing cache:      72
    Number of HTTP requests received:       5684714
    Number of ICP messages received:        0
    Number of ICP messages sent:    0
    Number of queued ICP replies:   0
    ………
    Cache information for squid:
    Hits as % of all requests:      5min: 0.0%, 60min: 0.0%
    ………
    ну и так далее…
    ВАЖНО: лично моя конфигурация на такой запрос выдала ошибку доступа т.к. не был указан пароль. Указывается он в конфиге параметром cachemgr_passwd.
    С паролем команд выглядит так:
    # squidclient -w secret mgr:info
  3. Далее когда у вас заработает получение данных статистики необходимо добавить следующие строки в конфигурацию zabbix-agent добавив туда следующие строки:
    # Squid
    UserParameter=squid.http_requests,squidclient mgr:info|grep ‘Number of HTTP requests received:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.clients,squidclient mgr:info|grep ‘Number of clients accessing cache:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.icp_received,squidclient mgr:info|grep ‘Number of ICP messages received:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.icp_sent,squidclient mgr:info|grep ‘Number of ICP messages sent:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.icp_queued,squidclient mgr:info|grep ‘Number of queued ICP replies:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.htcp_received,squidclient mgr:info|grep ‘Number of HTCP messages received:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.htcp_sent,squidclient mgr:info|grep ‘Number of HTCP messages sent:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.req_fail_ratio,squidclient mgr:info|grep ‘Request failure ratio:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.avg_http_req_per_min,squidclient mgr:info|grep ‘Average HTTP requests per minute since start:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.avg_icp_msg_per_min,squidclient mgr:info|grep ‘Average ICP messages per minute since start:’|cut d‘:’ f2| tr d ‘ \t’
    UserParameter=squid.request_hit_ratio,squidclient mgr:info|grep ‘Request Hit Ratios:’|cut d‘:’ f3|cut d‘,’ f1|tr d ‘ %’
    UserParameter=squid.byte_hit_ratio,squidclient mgr:info|grep ‘Byte Hit Ratios:’|cut d‘:’ f3|cut d‘,’ f1|tr d ‘ %’
    UserParameter=squid.request_mem_hit_ratio,squidclient mgr:info|grep ‘Request Memory Hit Ratios:’|cut d‘:’ f3|cut d‘,’ f1|tr d ‘ %’
    UserParameter=squid.request_disk_hit_ratio,squidclient mgr:info|grep ‘Request Disk Hit Ratios:’|cut d‘:’ f3|cut d‘,’ f1|tr d ‘ %’
    UserParameter=squid.servicetime_httpreq,squidclient mgr:info|grep ‘HTTP Requests (All):’|cut d‘:’ f2|tr s ‘ ‘|awk ‘{print $1}’
    UserParameter=squid.process_mem,squidclient mgr:info|grep ‘Process Data Segment Size via sbrk’|cut d‘:’ f2|awk ‘{print $1}’
    UserParameter=squid.cpu_usage,squidclient mgr:info|grep ‘CPU Usage:’|cut d‘:’ f2|tr d ‘%’|tr d ‘ \t’
    UserParameter=squid.cache_size_disk,squidclient mgr:info|grep ‘Storage Swap size:’|cut d‘:’ f2|awk ‘{print $1}’
    UserParameter=squid.cache_size_mem,squidclient mgr:info|grep ‘Storage Mem size:’|cut d‘:’ f2|awk ‘{print $1}’
    UserParameter=squid.mean_obj_size,squidclient mgr:info|grep ‘Mean Object Size:’|cut d‘:’ f2|awk ‘{print $1}’
    UserParameter=squid.filedescr_max,squidclient mgr:info|grep ‘Maximum number of file descriptors:’|cut d‘:’ f2|awk ‘{print $1}’
    UserParameter=squid.filedescr_avail,squidclient mgr:info|grep ‘Available number of file descriptors:’|cut d‘:’ f2|awk ‘{print $1}’

     

  4. Перезапускаем агента
    # /etc/init.d/zabbixagent restart
    или
    # systemctl restart zabbix-agent.service
  5. Далее можно проверить доступность получаемых данных (выполняется на стороне zabbix-agenta) командой:
    # zabbix_agentd t squid.cpu_usage
    в ответ должно прилететь что-то вида:
    squid.cpu_usage                               [t|0.13]
  6. Далее импортируем шаблон template_squid.xml в свой zabbix.
    ВНИМАНИЕ: Вот тут у меня возникли сложности. Одна из двух ссылок оказалась живая и шаблон удалось скачать но он оказался под версию zabbix 2.x и в мой zabbix 3.0 этот шаблон не загружался выдавая ошибки формата xml. Шаблон адаптированный для zabbix 3.0 доступен здесь.

 

Для мониторинга BIND были использованы следующие статьи: http://djvn.sk/bind/ и https://www.netmess.org/monitoring-bind9-dns-server-with-zabbix/

О главном: вы получите графики по количеству запросов по каждому типу записи на ваш DNS сервер в общем по всем зонам.  Будет 4 графика in, out, Bind statistics request in sec, Bind session open.

ВАЖНО:  для корректной работы нужно установить xml2. Лично у меня это вызвало небольшие сложности — нужно было найти пакет для CentOS. И я нашел его здесь: https://pkgs.org/download/xml2

Статьи очень похожи. Но дна чуть больше другой по функционалу. Например мне не нужно было решить задачу только мониторинга. В результате я взял обе статьи выделил для себя только то что нужно мне. Опишу кратко что нужно сделать (файл для импорта метрик и графики в конце материала).

  1. У вас должны быть установлены zabbix-agent и xml2
  2. Необходимо настроить ваш DNS сервер так что бы с него можно было забирать статистику. Для этого в конфигурационный файл (обычно тут /etc/bind/named.conf ) необходимо добавить строчки:
    statistics-channels {
     inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
    };

    и перезапустить ваш DNS для применения настроек.

  3. Рекомендуется проверить что статистика доступна и вы можете ее получить. Сделать это можно следующей командой:
    # curl http://localhost:8053/ 2>/dev/null | xml2 | grep -A1 queriesвы должны увидеть данные вида:
    /isc/bind/statistics/server/queries-in/rdtype/name=A
    /isc/bind/statistics/server/queries-in/rdtype/counter=3231693
    /isc/bind/statistics/server/queries-in/rdtype
    /isc/bind/statistics/server/queries-in/rdtype/name=NS
    /isc/bind/statistics/server/queries-in/rdtype/counter=215
    …………..
  4. Если все хорошо то нужно в файл конфигурации zabbix-agenta добавить строки конфигурации: # DNS UserParameter=bind.queries.in[*],curl http://localhost:8053/ 2>/dev/null | xml2 | grep -A1 «/isc/bind/statistics/server/queries-in/rdtype/name=$1$» | tail -1 | cut -d= -f2 UserParameter=bind.queries.out[*],curl http://localhost:8053/ 2>/dev/null | xml2 | grep -A1 «/isc/bind/statistics/views/view/rdtype/name=$1$» | tail -1 | cut -d= -f2 UserParameter=bind.stats.query[*],curl -s http://localhost:8053/ 2>/dev/null | xml2 | grep -A1 -i «/isc/bind/statistics/server/nsstat/name=Qry$1» | tail -1 | cut -d= -f2 UserParameter=bind.net.udp,netstat -nua | grep :53 | wc -l UserParameter=bind.net.tcp,netstat -nta | grep :53 | wc -lперезапустить zabbix-agent. Теперь можно проверить что агент может отдавать эти данные. Например так:
    # zabbix_agentd -t bind.stats.query[Dropped]
    в консоль должно выдать нечто подобное этому:
    bind.stats.query[Dropped]                     [t|48]
  5. Теперь необходимо загрузить шаблон в Zabbix. Компиляция обеих статей в виде XML файла шаблона для zabbix 3.0 находится тут.
  6. Теперь осталось назначит данный шаблон неоходимому хосту. Все. Через пару минут можно будет увидеть данные на графиках.

ВАЖНО: На случай возникновения сложностей скачивания XML2 по ссылке выше я сохранил у себя копии rpm пакетов для CentOS x86 и x64.

 

 

 

 

Autodesk — лицензии для учебных заведений.

Для учебных заведений Autodesk предлагает бесплатные легальные лицензии. В частности сетевая лицензия предполагает одновременную работу любого продукта на 3 000 студенческих мест. Что полностью закрывает лицензией любое учебное заведение. Инструкция по получению этих лицензий (актуальна с 2016г.) размещена на сайте autodesk — вот ссылка.

Первой проблемой для меня оказалось найти эту ссылку. Поэтому я размещаю копию этого документа актуальную на дату написания статьи (возможно скоро этот документ станет неактуальным) — вот ссылка.

Есть еще один важный момент. Изначально мне не удалось из личного кабинета получить файлы сетевой лицензии (такой опции просто не было). Я активировал лицензии в ручную на страничке активации. Требуется войти под своей учетной записью (той по которой вы получали ключи к продуктам) и далее следовать инструкциям. Кратко необходимо вбить ключи к продуктам и данные сервера лицензии после чего вы получить данные которые нужно сохранить в любой текстовый документ с любым расширением но рекомендуют расширение .lic.

В данный файл можно складывать несколько лицензий подряд. Заголовок лицензии должен быть один, а тело просто копируется в конец документа. Затем этот файл указывается в интерфейсе сервера лицензий. Если все настроено как указано в инструкции то вы получите рабочий сервер лицензий с активированными вами продуктами.

Позже у меня в личном кабинете появился удобный web интерфейс для получения сетевых лицензий. Данный интерфейс позволяе в том числе объединять все ваши лицензии в один файл автоматически.

Autodesk Autocad — ошибка при первом запуске. Error: 1325

После установки Autodesk AutoCad, при первом запуске, стартует Windows Installer, который должен настроить среду под текущим профилем. Но существуют ограниченные учетные записи. В результате недостаточности прав доступа или, если имя вашей учетной записи длиннее 11 символов, Windows Installer выдает следующее сообщение:

Windows Installer
Ошибка 1325. «<имя учетной записи>» не является допустимым коротким именем файла.

Решением этой проблемы может быть следующее:

  1. Изменить имя учетной записи так, чтобы оно стало короче 11 символов.
  2. Дать максимальные права пользователю для первого запуска и настройки приложения. Затем вернуть исходные права.
  3. Если по каким-то причинам пункты выше выполнить невозможно (как это было у меня), необходимо в ручную сформировать нужный профиль для AutoCad.

Рассмотрим подробнее вариант 3.

Для решения этой проблемы есть статья, на которую ссылается поддержка Autodesk. Опишу краткое содержание статьи здесь:

Ручная настройка профиля Autocad

Для ручного устранения данной проблемы необходимо выполнить следующие шаги:

  1. Необходимо зайти под любой административной учетной записью. Запустить Autocad. Будет сформирован пользовательский профиль, который мы вручную будем переносить.
  2. Для переноса данных потребуется из административной учетной записи скопировать следующие папки в ограниченную учетную запись:
    1. c:\Users\[username]\AppData\Local\Autodesk
    2. c:\Users\[username]\AppData\Roaming\Autodesk
  3. Так же потребуется перенести настройки реестра. А именно, нужно экспортировать следующую ветку реестра:
    1. HKEY_CURRENT_USER\Software\Autodesk
  4. После экспорта ветки необходимо открыть сохраненный файл в текстовом редакторе (например блокнотом) и сделать замену имени административной учетной записи на имя ограниченной учетной записи.
  5. Зайти под ограниченной учетной записью. Сделать слияние отредактированного файла реестра.
  6. Запустить Autocad. Все.

Для себя размещаю файл ветки реестра для Autodesk Autocad 2017. В файле требуется выполнить автозамену имени учетной записи с «student» на желаемую перед слиянием.

Подключение к оборудованию через RS-232 (COM port) в Linux

Внимание!
Для управления любым оборудованием через COM порт в Linux необходимо установить пакет minicom или screen.

minicom:

После установки пакета программу можно запустить командой minicom. В появившейся псевдографической оболочке программы необходимо указать нужный COM порт сервера. После чего достаточно несколько раз нажать Enter и вы увидите управляющую консоль необходимого оборудования.

screen:

$ screen /dev/ttyS0 9600

где: /dev/ttyS0 — это адрес к ком порту, а 9600 это скорость порта.

Для завершения работы соscreen используйте следующее сочетание клавиш «Ctrl-A»+»k»

Для завершения текущего сеанса screen, введите «Ctrl-A» + «к». Если вы хотите, чтобы временно свернуть экран screen, введите «Ctrl-A» + «D». Просмотреть список запущенных команд работающих под screen можно следующей командой:

$ screen -list

Перейти к нужной закладке screen можно командой:

$ screen -R PID_или_Name

где: PID_или_Name — это имя свернутой панели или ее номер процесса который видно в списке свернутых процессов  screen.

 

Linux поиск «утекающего» трафика с вашего компьютера в неизвестном направлении… (алгоритм)

Во первых нужно увидеть факт того что трафик течет куда то очень быстро:

Эта команда даст понять на какой именно удаленный IP утекает трафик.

# iftop -i ethX

где X — номер сетевого интерфейса.

Эта команда даст понять по каким портам происходит обмен данных.

# tcpdump -i ethX | grep IP

где:
X — номер сетевого интерфейса.
IP — определенный в пункте первом IP

Эта команда покажет информацию о процесс работающем на данном порту.

# netstat -apn | grep PORT

где:
PORT — это порт определенный в пункте два.

 

Linux SAMBA несколько PDC (как указать несколько SLAVE AD серверов для NTLM авторизации)

Все просто как раз, два, три 🙂

Для этого необходимо:

  1.  в файла smb.conf написать строку:
    password server = *
  2. В файле lmhosts расположенный в той же директории с smb.conf перечислить все необходимые pdc в формате ip hostname.
  3. Перезапустить службу winbind

После этого выбор сервера будет производиться автоматически в том порядке в котором указаны в файле lmhosts. Где это может пригодиться? Например у вас несколько доменных серверов для балансировки нагрузки или для повышения стабильности работы домена. И наступает момент обновления сиситемы — скорее всего в автоматическом режиме. И пока основной сервер находится в down Linux система не может никого авторизовать и это при живом запасном сервере. Согласитесь не очень приятная ситуация. Описанное выше решение позволяет решить эту проблему.

Как ограничить ssh авторизацию только локальными пользователями если сервер в составе домена Windows

Как ограничить ssh авторизацию только локальными пользователями если сервер в составе домена Windows?

По мотивам статьи: http://rus-linux.net/lib.php?name=/MyLDP/sec/pam.html

По умолчанию ssh как и многие другие приложения Linux используют PAM авторизацию по умолчанию. И в некоторых дистрибутивах все завязано на модуль pam_unix2.so который автоматически предоставляет доменным пользователям теже права что и локальным при вводе сервера в домен.

Задача состоит в том что бы такую возможность отключить только в SSH.

Причин для этого несколько:

1) Я не хочу давать никакой возможности доменным пользователям получать доступ к SSH
2) При попытке подбора пароля через ssh происходит блокировка пользователей в домене.

Для реализации вышеописанного можно поступить следующим образом:

1) В PAM политике изменить последовательность проверки указав модуль проверки локальных пользователей.
2) В случае отрицательно результата вышеуказанного модуля прекратить какую-либо проверку.

Файл конфигурации PAM для SSH находится по адресу /etc/pam.d/sshd
И содержит следующее:

#%PAM-1.0
auth requisite pam_nologin.so
auth include common-auth
account requisite pam_nologin.so
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session

Нам необходимо в самый верх добавить следующую строку auth requisite pam_unix.so
что приведет вышеуказанный файл к следующему виду:

#%PAM-1.0
auth requisite pam_unix.so
auth requisite pam_nologin.so
#auth include common-auth
account requisite pam_nologin.so
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session

Сохраняем изменения и наступает счастье 🙂

Модуль pam_unix.so занимается проверкой указанных пар пользователя и пароля в локальном списке пользователей и паролей системы. а параметр requisite позволяет прекратить дальнейшую проверку в случае если такой пары в локальной базе не было найдено.

Работает это все согласно следующим таблицам:

Таблица 1. Проверки PAM подразделяются на четыре группы, организованных в виде очереди. Задействование тех или иных групп определяется запросами пользователя.

 

  • auth Относится к аутентификации пользователей, к примеру, когда нужно ввести пароль. Обычно эти проверки идут первыми.
  • account Относится к управлению учетными записями, к примеру, сюда входит проверка устаревания пароля и проверки по времени доступа. Когда пользователь идентифицирован с помощью модулей auth, модули account определяют, можно ли пользователю давать доступ.
  • session Относится к управлению соединениями, например, журналирование входов в систему, журналирование выполненных действий или выполнение очистки по завершению сессии.
  • password Содержит функции, например, обновление пароля пользователя.

Таблица 2. Модули выполняются последовательно в каждой группе, в зависимости от их управляющих флагов. Требуется указать, является ли проверка обязательной, желательной и т.п.

  • required Этот модуль должен завершиться успешно. Если он завершается неудачей, вся проверка также завершается неудачей. Если все модули помечены как required, тогда непрохождение любой из проверок будет означать отказ в доступе, хотя все другие модули в группе также будут исполнены.
  • requisite Работает аналогично required, однако в случае неудачи, возврат происходит незамедлительно, и остальные модули группы даже не исполняются.
  • sufficient Если этот модуль завершается успешно, остальные модули не исполняются, и вся проверка завершается успешно.
  • optional Если этот модуль завершается неудачно, тогда окончательное решение зависит от результата исполнения других модулей. Если в конфигурации нет модулей типа required или
  • sufficient, тогда для разрешения доступа хотя бы один из модулей типа optional должен завершиться успешно.

Этого достаточно для решения задачи. Изменения вступают в силу сразу. Ничего перезапускать ненужно. Распространяется только на вновь создаваемые сессии.

SAMBA + AD генерация одинаковых uid и gid доменных пользователей на всех серверах

В свое время очень долго не мог найти решение данной проблемы:

Проблема:
SAMBA нормально работает и авторизует пользователей из Windows домена, но на разных серверах один и тот же пользователь имеет разные (случайным образом выбранные) идентификаторы (uid и gid).

Просмотр идентификатора пользователя:

#id name_user

или

#id DOMAIN\name_user

В результате, если по какой-то причине будет повреждена/обновлена база соответствия SID-ов и uid/gid (например, Вы перезаведете машину в домен), то каждый пользователь получит новый идентификатор. В результате доменные пользователи не смогут получить доступ к своим файлам и папкам, т.к. ранее назначенные на их каталоги права будут соответствовать другим пользователям. Проблема в том, что восстановить предыдущий порядок записей невозможно без резервной копии базы.

Решение:
Решается данная проблема использованием RID в конфигурации SAMBA. Данный алгоритм генерации uid и gid использует SID пользователя/группы доменного пользователя. В результате вычисления данным алгоритмом для одного и того же SID будет сгенерирован один и тот же uid/gid. В результате на всех Linux серверах будет единое пространство идентификаторов доменных пользователей. Что очень удобно при выделении прав доступа.

Пример использования:

/etc/samba/smb.conf
…………
   idmap uid = 10000-50000
   idmap gid = 10000-50000
   idmap config DAMIN_NAME : backend = rid
   idmap config DAMIN_NAME : range   = 10000-50000
…………

где DAMIN_NAME — это сокращенное имя вашего домена.

В результате для всех доменных пользователей и групп будут генерироваться единые uid/gid в диапозоне от 10000 до 50000. Вообще говоря диапозон idmap uid и idmap gid рекомендуется делать шире чем делать idmap config DAMIN_NAME : range. А рекомендуется это с целью возможных доверительных отношений среди доменов и прочих случаев, когда для разных доменов требуется разный диапазон идентификаторов. Диапазон идентификаторов на всех SAMBA серверах должен совпадать.

После внесения данных изменений достаточно перезапустить winbind, например, так:

/etc/init.d/winbind restart

Данная конфигурация прекрасно работает на samba-3.6.3-0.24.4

В то же время на samba-3.0.36-0.13.20.1 замечательно работает следующая конфигурация:

/etc/samba/smb.conf
…………
   idmap uid = 10000-50000
   idmap gid = 10000-50000
   idmap backend = rid»:DAMIN_NAME=10000-50000″

…………

Замечено что на SAMBA-3.6 такая запись не работает.

На других версиях мною не тестировалось, но думаю, на более старших работать будет.

Источники:
1) man idmap_rid
2) man smb.conf
3) http://www.samba.org/samba/docs/man/manpages-3/idmap_rid.8.html
4) http://www.ccs.neu.edu/home/battista/articles/winbindenterprise/ridconfi…

ВНИМАНИЕ! Данная статья не претендует на полноту описания и не гарантирует 100% результат. Она рассчитана только на указанную в ее названии проблему, т.е. предполагается, что у Вас уже установлены и настроены все необходимые пакеты.