Podwójna autoryzacja RDP – MultiOTP

Za nami rok zmagania się z pandemią COVID19 , a co za tym idzie pracą zdalną. Wielu administratorów małych sieci zastanawiało się pewnie w jaki sposób bezpiecznie udostępnić zasoby komputera z pracy zdalnej nie narażając sieci na włamania. Z pomocą przychodzi aplikacja MultiOTP, Ma ona bardzo dużą zaletę, umożliwia włączenie autoryzacji tylko dla połączeń zdalnych […]

Za nami rok zmagania się z pandemią COVID19 , a co za tym idzie pracą zdalną. Wielu administratorów małych sieci zastanawiało się pewnie w jaki sposób bezpiecznie udostępnić zasoby komputera z pracy zdalnej nie narażając sieci na włamania. Z pomocą przychodzi aplikacja MultiOTP, Ma ona bardzo dużą zaletę, umożliwia włączenie autoryzacji tylko dla połączeń zdalnych poprzez protokół RDP. Instalacja jest banalnie prosta, do katalogu c:/windows/system32 należy skopiować plik MultiOTPCredentialProviderV2.dll zaimportować wpis rejestru. Pliki załączone wraz z MultioOTYP Oraz z wypakowanego pliku katalog multiotp skopiować na głowną partycje c:\. W powstałym katalogu c:\multiotp\windows uruchomić plik multiotp.exe Wygeneruje on domyślną konfiguracje w katalogu config, multiotp.ini ,w pliku tym można ustawić np Issuer – nazwa wystawcy MULTIOTP czas ważności kodu itp.

Aby wygenerować kod autoryzacyjny trzeba wykonać trzy komendy:

  1. c:\multiotp\windows\multiotp -log -create nazwa_uzytkownika TOTP 4d123df5bf645cf0ad154cff528b6ee221d398e1 1234 6 30
  2. c:\multiotp\windows\multiotp -debug -set nazwa_uzytkownika pin=
  3. c:\multiotp\windows\multiotp -debug -qrcode nazwa_uzytkownika nazwa_uzytkownika.png

W pierwszej komendzie tworzymy użytkownika wraz z hashem kodującym ( ciąg 41 znaków). Druga komenda ustawia pin, tak mozna jeszcze dodatkowo ustawć, ta komenda go wyłącza. Trzecia komenda generuje kod QR dla aplikacji wyświetlającej token.

Do obsługi tokena świetnie nadaje się Aplikacja na systemy Android i IOS – Microsoft Authenticator, dostępna za darmo w sklepi GooglePlay lub AppStore

Autoryzacja wygląda w następujący sposób: Po poprawnym zalogowaniu się do pulpitu zdalnego wymagana jest powtórna autoryzacja z dodatkowym użyciem tokena z aplikacji Microsoft Authenticator.

Bardzo ważną kwestią jest dokładna synchronizacja zegara komputera z urządzeniem generującym kod ( telefonem) różnica rzędu 2-5 sekund nie będzie sprawiać większego problemu, natomiast różnica większa od czasu zmiany tokena nie pozwoli na zdalne zalogowanie się

Skompresowany MultiOTP z plikiem reg oraz dll –>multiotp.zip

EXIM 4.94 GUI VEXIM2 MariaDB – KROK PO KROKU – STEP BY STEP

Konfiguracja exim 4.94 do współpracy z vexim2 i mariadb kompilacja i instalacja libspf2 https://github.com/shevek/libspf2 ./configure –libdir=/usr/local/lib64 && make && make install Dovecot z Slackbuilds.org –>Dovecot 2.3.4 Przed budowaniem paczki wykonać: groupadd -g 202 dovecot && useradd -d /dev/null -s /bin/false -u 202 -g 202 dovecot && groupadd -g 248 dovenull && useradd -d /dev/null -s […]

Konfiguracja exim 4.94 do współpracy z vexim2 i mariadb

kompilacja i instalacja libspf2 https://github.com/shevek/libspf2 ./configure –libdir=/usr/local/lib64 && make && make install

Dovecot z Slackbuilds.org –>Dovecot 2.3.4
Przed budowaniem paczki wykonać:
groupadd -g 202 dovecot && useradd -d /dev/null -s /bin/false -u 202 -g 202 dovecot && groupadd -g 248 dovenull && useradd -d /dev/null -s /bin/false -u 248 -g 248 dovenull

Pliki do podmiany w etc/dovecot –>dovecot.zip
Plik zawiera skrypt do generowania certyfikatów , w pliku /etc/dovecot/dovecot-sql.conf.ext w linii connect = host=/var/run/mysql/mysql.sock dbname=vexim2 user=username password=password
należy ustawić login i hasło użytkownika mysql dla bazy vexim2

Clamav https://www.clamav.net/downloads
Konfiguracja i instalacja ( dla formalności: ./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var –with-user=exim –with-group=exim && make && make install && :>/var/log/freshclam.log && :>/var/log/clamd.log && chown exim:exim /var/log/freshclam.log && chown exim:exim /var/log/clamd.log

Bogofilter 1.2.5 –>bogofilter
Pliki do podmiany w etc –>bogofilter.zip
Należy utworzyć katalog /tmp/bogofilter oraz /var/spool/bogofilter i nadać im uprawnienia dla użytkownika exim oraz grupy exim
chown exim:exim /var/spool/bogofilter && chown exim:exim /tmp/bogofilter

Spamassassin z Slackbuilds.org –>Spamassassin 3.4.4
Przed budowaniem paczki zainstalować potrzebne pakiety perla
cpan -i HTML::Parser && cpan -i Net::DNS && cpan -i NetAddr::IP && cpan -i Digest::SHA1 && cpan -i Mail::SPF && cpan -i GeoIP2::Database::Reader && cpan -i Geo::IP && cpan -i IP::Country::DB_File && cpan -i Net::CIDR::Lite && cpan -i IO::Socket::INET6 && cpan -i IO::Socket::SSL && cpan -i Mail::DKIM && cpan -i LWP::UserAgent && cpan -i Encode::Detect::Detector && cpan -i Net::Patricia && cpan -i BSD::Resource && cpan -i Archive::Zip && cpan -i IO::String
oraz:
Razor2 –>Razor2
perl Makefile.PL && make && make install
re2c Slackbuild –>re2c
Po instalacji koniecznie wykonać polecenie sa-update

dnspython Slackbuilds.org –>dnspython

mailman Slackbuilds.org –>mailman
Przed tworzeniem pakietu wykonać: groupadd -g 204 mailman && useradd -u 204 -d /dev/null -s /bin/false -g mailman mailman
Po instalacji wykonać /opt/mailman/bin/check_perms -f

vexim2 git clone https://github.com/vexim/vexim2.git –>vexim2
Skopiować plik /vexim/config/variables.php.example na variables.php
Plik konfiguracyjny vexim2 vexim/config/variables.php –>variables.zip
W pliku variables.php ustawić użytkownika i hasło dla bazy vexim2
Domyślne miejsce dla domen = $mailroot = „/var/vmail/”;

Plik mojego autorstwa polonizujący konsole vexim2 –>pl.zip
Rozpakować do katalogu locale w pliku config/i18n.php ustawić $language = 'pl_PL’;

Mysql
Inicjalizacja: mysql_install_db –user=mysql
chmod 755 /etc/rc.d/rc.mysqld
/etc/rc.d/rc.mysqld start
Utworzenie hasła dla użytkownika root w mysql: mysqladmin -u root password 'Twoje haslo’
Utworzyć użytkownika i haslo dla bazy vexim2
mysql -u root -p
CREATE USER 'username’@’localhost’ IDENTIFIED BY 'password’;
GRANT ALL PRIVILEGES ON * . * TO 'username’@’localhost’;
FLUSH PRIVILEGES;
Utworzenie bazy danych vexim2:
mysql -u username -p
CREATE DATABASE vexim2;
Zasilenie bazy danych:
w katalogu vexim2/setup:
mysql -u username -D vexim2 -p < mysql.sql Po zasileniu bazy danych zostanie wyświetlone haslo dla aministratora vexim2 - siteadmin "A site administrator user has been created with the following credentials: User name: siteadmin Password: aHer4dmfcn You are encouraged to change this password to an even more secure one though." EXIM Użytkownik i grupa dla Exim groupadd exim && useradd -g exim -d / -s /dev/null exim && mkdir -m 750 /var/log/exim && chown exim:exim /var/log/exim Konfiguracja Exim - plik Local/Makefile -->Makefile
Kompilacja instalacja – make && make install

Skompresowane pakiety oraz źródła –>vexim2_pakiety_i_zrodla.tar

MSSQL 2019 Slackware 14.2 i current

Niestety wszystkie wydania jak do tej pory zostały oparte o dystrybucje RedHat, Ubuntu i SUSE z obsługą systemd W załączeniu paczka txz z MSSQL dla Slackware Do poprawnego działania potrzebne są biblioteki libc++ oraz numactl w Slackware 14.2 dodatkowo python3 jeżeli ktoś nie ma zainstalowanego, paczki pythona3 zbudowana ze źródeł current Python3–>python3-3.9.1-x86_64-2.txz Python-setuptools–>python-setuptools-53.0.0-x86_64-1.txz Gotowe paczki […]

Niestety wszystkie wydania jak do tej pory zostały oparte o dystrybucje RedHat, Ubuntu i SUSE z obsługą systemd
W załączeniu paczka txz z MSSQL dla Slackware
Do poprawnego działania potrzebne są biblioteki libc++ oraz numactl w Slackware 14.2 dodatkowo python3 jeżeli ktoś nie ma zainstalowanego, paczki pythona3 zbudowana ze źródeł current
Python3–>python3-3.9.1-x86_64-2.txz
Python-setuptools–>python-setuptools-53.0.0-x86_64-1.txz
Gotowe paczki przy linkach do slackbuildów
https://slackbuilds.org/repository/14.2/system/numactl/?search=libnuma –>numactl-2.0.13-x86_64-1_SBo.tgz
Do poprawnego zbudowania paczki z libc++ wymagane są biblioteki – w odpowiedniej kolejności:
https://slackbuilds.org/repository/14.2/libraries/libunwind/ –>libunwind-1.1-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/development/docutils/–>docutils-0.14-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/pytz/–>pytz-2018.3-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/babel/–>babel-2.5.3-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/six/–>six-1.14.0-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/MarkupSafe/–>MarkupSafe-1.1.1-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/libraries/Jinja2/–>Jinja2-2.11.2-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/Pygments/–>Pygments-2.7.2-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/python-requests/–>python-requests-2.25.0-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/alabaster/–>alabaster-0.7.12-x86_64-1_SBo.tgz
https://slackbuilds.org/repository/14.2/python/imagesize/–>imagesize-1.2.0-x86_64-2_SBo.tgz
https://slackbuilds.org/repository/14.2/python/snowballstemmer/–>snowballstemmer-1.2.1-x86_64-2_SBo.tgz
https://slackbuilds.org/repository/14.2/development/Sphinx/–>Sphinx-3.4.1-x86_64-1_SBo.tgz

https://slackbuilds.org/repository/14.2/network/krb5/–>krb5-1.19-x86_64-1.txz

Na koniec pakiet libc++ https://slackbuilds.org/repository/14.2/libraries/libc++/–>libc++-3.8.0-x86_64-1_SBo

 

MSSQL 2019 Build 15.0.4083.2-15 –>mssql-server_15.0.4083.2-15_amd64.txz

MSSQL 2019 tools–>mssql-tools_17.7.1.1-1_amd64.txz

MSODBCSQL–>msodbcsql_13.1.9.2-1_amd64

Dodatkowe biblioteki dla wersji 15.0.4083.2-15 libsss_nss_idmap–>libsss_nss_idmap rozpakować do /usr/local/lib64

Pierwsza konfiguracja serwera poprzez /opt/mssql/bin/mssql-conf setup
Lista dostępnych opcji poprzez uruchomienie samego mssql-conf

nazwa serwera mssql vNEXT = nazwa hosta

przykładowy skrypt uruchomieniowy:

#!/bin/bash
#
# /etc/rc.d/rc.mssql
#
# Start/stop MSSQL
# Last modified: 03.01.2018

case „$1” in
'start’ )
echo „Start MSSQL”
nohup /opt/mssql/bin/sqlservr > /dev/null 2>&1 & echo $! > /var/run/sqlservr.pid
echo „MSSQL started.”
;;

'stop’)
echo „Stop MSSQL.”
pid=`cat /var/run/sqlservr.pid`
kill -s SIGINT $pid
rm /var/run/sqlservr.pid
echo „MSSQL Stopped.”
;;

*)
echo „usage $0 start|stop”
;;

esac

Tworzone bazy danych maja compatibility level 140 = mssql -vNext
Testowo baza płatnika o rozmiarze 4GB działa bez zarzutu zarówno w pierwotnym compatibility level 110 jak i w podniesionym do 140

Przydatne zapytania SQL

Podniesienie compatibility level:
ALTER DATABASE nazwa_bazy
SET COMPATIBILITY_LEVEL = 150;
GO

Sprawdzenie poziomu compatibility level:

USE nazwa_bazy;
GO
SELECT compatibility_level
FROM sys.databases WHERE name = 'nazwa_bazy’;
GO

AdHoc włączenie – dla Płatnika

sp_configure 'show advanced options’, 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries’, 1;
RECONFIGURE;
GO

 

Dodanie nazwy serwera do sys.servers

EXEC sp_addlinkedserver @server=’Twoja_nazwa’

Sprawdzenie nazw linked server

select name from sys.servers

 

Po instalacji zmiana collation z domyślnego latin1 zanim uruchomimy serwer mssql

mssql-conf set-collation

wpisać: Polish_CI_AS

Jest to bardzo ważne jeżeli przenosimy bazy np pakietu firmy INSERT (Subiekt, Rewizor, Rachmistrz itp) jeżeli nie zmienimy kodowania serwera na kodowanie równe bazie danych przy aktualizacji podmiotów otrzymamy błąd 0x80040E14

 

Przykładowy skrypt backupu pojedynczej bazy danych

#!/bin/bash
#
KIEDY=`date +%F`
KATALOG=/katalog/przechowywania/kopii
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P haslo_bazy -Q „BACKUP DATABASE [nazwa_bazy] TO DISK = N’$KATALOG/nazwa_bazy-$KIEDY.bak’ WITH NOFORMAT, NOINIT, NAME = 'nazwa_bazy-full’, SKIP, NOREWIND, STATS = 10”
gzip -9 $KATALOG/nazwa_bazy-$KIEDY.bak

 

Korzystając z serwisu zgadzasz się na korzystanie z plików cookie. Więcej informacji

Aby zapewnić Tobie najwyższy poziom realizacji usługi, opcje ciasteczek na tej stronie są ustawione na "zezwalaj na pliki cookies". Kontynuując przeglądanie strony bez zmiany ustawień lub klikając przycisk "Akceptuję" zgadzasz się na ich wykorzystanie.

Zamknij