Качественный RS-232 контроллер

Очень сильно «наелся» RS-232 контроллерами от Orient и Espada, некоторые не смог завести под Linux, у некоторых брака больше чем рабочих экземпляров.

Начал искать варианты на Aliexpress и нашёл вот это чудо: «UTEK UT-752 2-ports PCI to RS232 Multi-Serial Port Card». Он работает под ОС Linux, драйвера для него находятся в актуальном состоянии, COM порты являются настоящими, а не виртуальными в случае контроллеров Orient. Кроме того у платы есть ещё преимущества, они указаны на сайте производителя. Ссылка на продавца — UTEK UT-752 2-ports PCI to RS232 Multi-Serial Port Card

Описание на сайте производителя: http://www.ethernet-serialconverter.com/sale-458862-pci-serial-card-2-ports-pci-to-rs232-multi-serial-port-card.html

Драйвер: https://www.solvline.com/eng/download_center/download_new.php?dno=1&fno=1&c2=7

Документация: https://www.solvline.com/eng/download_center/download_new.php?dno=2&fno=1&c2=7

Драйвер необходимо скомпилировать, для это в системе должен быть установлен gcc, make, kernel sources, kernel headers:
apt-get install linux-source
apt-get install linux-headers-amd64
apt-get install build-essential

Версия 21 драйвера прекрасно заработала на Debian Jessie:
lsb_release -a
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie

uname -a
Linux scannerserver 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux

После установки необходимо добавить строчку «golden_tulip» в «/etc/modules», так как инсталлятор использует корявую автозагрузку модуля.

Ошибка времени исполнения с кодом исключения 0x80041002

При использовании KMS можно получить ошибку «Ошибка времени исполнения с кодом исключения 0x80041002».
Для её исправления необходимо отключить и остановить службы:
«Инструментарий управления Windows»
«Центр обеспечения безопасности»

Для этого лучше пользоваться оснасткой: Администрирование — Сервисы

Перенести в любое другое место содержимое папки %windir%\System32\Wbem\Repository, после чего включить и запустить остановленные службы.
Проверить работоспособность KMS.

Служба «Лицензирование удаленных рабочих столов» завершена из-за внутренней ошибки %%-1073672191.

Возникновение ошибки «Служба «Лицензирование удаленных рабочих столов» завершена из-за внутренней ошибки %%-1073672191.» означает, что у службы «Лицензирование удаленных рабочих столов» (которая запускается от имени «Network Service») нет прав на доступ к директории:

"c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys"

.

Необходимо добавить права на чтение (если не поможет, то и на изменение, создание) для группы «Network Service». Можно проделать это через интерфейс, либо через командную строку:

icacls "c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /grant "Network Service":(RX) /T

Если не получается задать необходимые права для вложенных файлов даже пользователю с привилегиями администратора, необходимо сменить владельца:

takeown /F "c:\ProgramData\Microsoft\Crypto\RSA\MachineKeys" /R /A

Перезапустить сервис «Лицензирование удаленных рабочих столов».

Ссылки по теме:
https://msdn.microsoft.com/en-us/library/bb909654(v=vs.90).aspx
https://support.microsoft.com/en-us/kb/278381

Запуск nginx службой в Windows

Запуск nginx службой в Windows будет осуществляться с помощью программы Windows Service Wrapper.
Скачать её можно тут: http://download.java.net/maven/2/com/sun/winsw/winsw/.
Необходимо скачать .exe файл нужной версии (отлично подошла версия 1.7) и переместить в корень директории, где расположен nginx (например D:\Programs\nginx-1.7.2\), переименовав данный файл в ngsrvc.exe. В той же директории необходимо создать xml файл с именем ngsrvc.xml.

Содержимое файла ngsrvc.xml

<service>
<id>Nginx</id>
<name>Nginx</name>
<description>Nginx Web Server</description>
<executable>D:\Programs\nginx-1.7.2\nginx.exe</executable>
<logpath>D:\Programs\nginx-1.7.2\service_logs\</logpath>
<logmode>roll</logmode>
<depend></depend>
<startargument>-p D:\Programs\nginx-1.7.2\ -c conf\nginx.conf</startargument>
<stopargument>-p D:\Programs\nginx-1.7.2\ -c conf\nginx.conf -s stop</stopargument>
</service>

Где:

  • D:\Programs\nginx-1.7.2\nginx.exe путь до исполняемого файла nginx
  • D:\Programs\nginx-1.7.2\service_logs\ путь, по которому Windows Service Wrapper будет хранить свои лог файлы (если директории нет, нужно её создать).
  • В <startargument> передаются параметры обязательно необходимые для корректного запуска nginx как сервис, дело в том что nginx при формировании путей использует косую черту (как в Linux — /), соответственно при использовании nginx в Windows необходимо использовать обратную косую черту (обратный слеш — \). Именно по-этому при запуске и остановке сервиса указывается рабочая директория параметром -p и относительный путь к конфигурационному файлу -c.

Без корректного указания параметров -c и -p появлялась ошибка в логах Windows Service Wrapper примерного содержания:

2014/07/04 13:05:39 [emerg] 3236#1168: CreateFile() "D:\Programs\nginx-1.7.2\nginx/conf/nginx.conf" failed (3: Системе не удается найти указанный путь)

Для того, чтобы зарегистрировать сервис, необходимо запустить: ngsrvc.exe install , после чего указанный сервис появится в оснастке Администрирование -> Службы , откуда станет возможно ей управлять.
Не забудте создать папку service_logs, как указано в xml файле.
Дополнительные команды:

  • Запустить — ngsrvc.exe start
  • Остановить — ngsrvc.exe stop
  • Рестартовать — ngsrvc.exe restart
  • Деинсталляция службы — ngsrvc.exe uninstall

Архив с программой и конфигурационным файлом: ngsrvc

Проблема при открытии HTTPS сайтов в Chrome через прокси сервер Squid

Всё чаще стали проявляться проблемы у пользователей при открытии HTTPS сайтов в Chrome (версия 29.0.1547.66 m) с использованием прокси сервера Squid (Basic и NTLM аутентификация), при чём даже на одинаковых аппаратных конфигурациях у одних пользователей всё исправно работало, у других нет. В браузерах — Opera, Firefox всё работало без проблем.

Симптомы следующие: при переходе на любой HTTPS сайт, например, на https://dropbox.com https://twitter.com страница не загружалась (но если и загружалась, то с 10-ой попытки обновления, и не полностью). Также при открытии появлялись ошибки ERR_TIMED_OUT и ERR_TUNNEL_CONNECTION_FAILED.

Испробовали всё, что можно: указание в Chrome прокси сервера вручную, указание конкретного типа аутентификации (так как по логам Squid было видно, что Chrome не всегда пытается аутентифицироваться, во всяком случае реже, чем при открытии просто HTTP сайтов), далее убрали все ограничения Squid и аутентификацию в том числе, но это не помогло решить проблему. Также было замечено, что Internet Explorer имеет аналогичные проблемы при доступе на HTTPS сайты.

В итоге решено было посмотреть «диалог» между клиентом и прокси сервером, используя анализатор сетевого протокола Wireshark (http://wireshark.org). Wireshark запускался на стороне клиента. Проходящие пакеты были записаны и отфильтрованы по адресу прокси ip.addr==192.92.92.100. И тут обнаружилось следующее — пакеты, отправляемые клиентом, имели некорректную (нулевую) контрольную сумму (скриншот приведён ниже). После чего было решено в настройках сетевого адаптера отключить всё, что касается «разгрузок протоколов», энергосбережения, контроля трафика и прочих функций, которые берёт на себя сетевая карта вместо ОС. Пакеты стали отправляться с правильной контрольной суммой заголовка и Chrome стал открывать HTTPS узлы мгновенно, без нареканий, с использованием аутентификации на прокси сервере Squid. На остальных проблемных компьютерах данные манипуляции также помогли решить проблему (сетевая карта была такая же). Возможно также помогает обновление драйвера сетевой карты, но данный метод не испробован.

Сетевая карта: Realtek PCIe GBE Family Controller
Драйвер: Realtek 21/03/2011, version 7.43.321.2011

Пакеты с некорректной контрольной суммой заголовка:
wireshark_chrome

Окно с настройками сетевой карты:
settings

При подключении VPN перестаёт работать NTLM — MS Windows Vista, 7

При установке VPN соединения стандартными средствами Windows, перестала работать NTLM авторизация в локальной сети с той машины, на которой было установлено VPN соединение. Как показал разбор проходящего трафика, Windows для авторизации на ресурсах начинает использовать не доменные учётные данные, под которыми был совершён вход на компьютер, а учётные данные от VPN подключения, они разные.

Решается данная проблема следующим образом:
В файле C:\Users\USERNAME\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk необходимо найти параметр UseRasCredentials и заменить его значение на UseRasCredentials=0

После изменения настроек необходимо переподключить VPN соединение.

Adobe Flash Player — подвисания браузера

Если браузер надолго зависает при появлении на странице flash-контента, можно попробовать следующее:

win + R
32 бит: notepad.exe %windir%\System32\Macromed\Flash\mms.cfg
64 бит: notepad.exe %windir%\Syswow64\Macromed\Flash\mms.cfg
Добавить/изменить строчку ProtectedMode=0

Apache mod_ldap Internal Server Error — Проблема при аутентификации в AD

Очень долго боролся с авторизацией Apache2 в Active Directory, настраивал не первый раз, но почему то аутентификация не проходила (окошко для ввода логина пароля выскакивало, но ввод правильных учётных данных не позволял аутентифицироваться, в браузере отображалась страница с Internal Server Error).
После долгих мучительных поисков и проб, обнаружил что можно подключаться к AD через другой порт 3268, что и позволило решить проблему. Почему раньше всё работало через 389 порт, а теперь нет, затрудняюсь ответить.
Пример .htaccess:

AuthType Basic
AuthBasicProvider ldap
AuthName «DOMAIN.RU Auth»
AuthzLDAPAuthoritative off
AuthLDAPUrl ldap://DOMAIN.RU:3268/DC=DOMAIN,DC=RU?sAMAccountName?sub?(objectClass=user) NONE
AuthLDAPBindDN «user@DOMAIN.RU»
AuthLDAPBindPassword «user»
Require valid-user

AD — Windows Server 2008 R2
Apache 2.2.21-r1

Ограничение размера профиля пользователя в Windows

Для ограничения размера профиля пользователя в Windows XP/Vista/7 и Windows Server 2003/2008 (также и в R2) можно использовать групповые политики.
Для этого необходимо вызвать оснастку gpedit.msc и перейти в раздел «Конфигурация пользователя\Административные шаблоны\Система\Профили пользователей\Ограничить размер профиля» или английский аналог «User Configuration\Administrative Templates\System\User Profiles\Limit profile size»
В настройках данной политики есть удобная функция оповещения пользователя о превышении указанного лимита.

Чтобы изменения вступили в силу сразу, можно выполнить команду gpupdate /force

Синхронизация времени с контроллером домена

На клиентских ОС Windows узнать время на контроллере домена:
net time /domain:имя_домена

Синхронизировать время с контроллером домена:
net time /domain:имя_домена /set