четверг, 9 июля 2015 г.

ss - полезная утилита Linux для просмотра сокетов


ss - позволяет увидеть используемые сокеты
примеры:
ss -l  покажет открытые для прослушивания сокеты
ss -l | grep imap покажет сокеты открытые для imap




Скрипт на T-SQL для резервного копирования базы данных

DECLARE @fileDate VARCHAR(20)
DECLARE @path VARCHAR(256) -- путь для хранения рез-х копий
DECLARE @dbName VARCHAR(50) -- имя базы данных
DECLARE @fileName VARCHAR(256) -- имя резервной копии
DECLARE @pathWinrar VARCHAR(256) -- путь к WinRAR (без пробелов)
DECLARE @FullFileName VARCHAR(256) -- полное имя файла рез-й копии
DECLARE @cmd VARCHAR(256)

---------------------

SET @path = 'X:\DBBackup\'
SET @dbName = 'test'
SET @pathWinrar = 'X:\rar'
---------------------

SELECT  @fileDate  = (CONVERT(VARCHAR(30),GETDATE(),110)+'-'+replace(CONVERT(VARCHAR(5),GETDATE(),108),':','-'))


SET @fileName = @path  + @dbname + '\' +@fileDate + '-' + @dbName 
SET @FullFileName = @fileName + '.bak'
SELECT @fileName

BACKUP DATABASE @dbName TO DISK = @FullFileName

--packing *.bak files
SET @cmd = @pathWinrar + '\rar.exe a -df ' + @fileName + '.rar ' +  @fileName + '.bak'


EXEC xp_cmdshell @cmd
SELECT @cmd

Как в ZABBIX передать количество сообщений из Журнала Событий Windows

В файл zabbix.conf на клиенте, необходимо добавить следующие строки:


UserParameter=<имя элемента данных zabbix>,powershell -NoProfile -ExecutionPolicy Bypass -command "$ErrorActionPreference = 'silentlycontinue'; $evlist = @(Get-EventLog -LogName <имя журнала Windows> -EntryType <тип сообщения>).Count ; 
$evlist"


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

Для получения количества предупреждений в журнале System:
UserParameter=sys_warnings.count,powershell -NoProfile -ExecutionPolicy Bypass -command "$ErrorActionPreference = 'silentlycontinue'; $evlist = @(Get-EventLog -LogName System -EntryType Warning).Count ; $evlist"

Для получения количества предупреждений в журнале Application:
UserParameter=app_warnings.count,powershell -NoProfile -ExecutionPolicy Bypass -command "$ErrorActionPreference = 'silentlycontinue'; $evlist = @(Get-EventLog -LogName Application -EntryType Warning).Count ; $evlist"
 

Для получения количества ошибок в журнале Application:
UserParameter=sys_errors.count,powershell -NoProfile -ExecutionPolicy Bypass -command "$ErrorActionPreference = 'silentlycontinue'; $evlist = @(Get-EventLog -LogName System -EntryType Error).Count ; $evlist"

Для получения количества ошибок в журнале Application для определенной службы Windows Backup:
UserParameter=backup_events.count,powershell -NoProfile -ExecutionPolicy Bypass -command "$ErrorActionPreference = 'silentlycontinue'; $evlist = (@(Get-EventLog -LogName Application -EntryType Error -Source Microsoft-Windows-Backup).Count)+(@(Get-EventLog -LogName Application -EntryType Warning -Source Microsoft-Windows-Backup).Count) ; $evlist"

[HOWTO POSH] Как найти старые RDP сессии

Get-RDUserSession | where {(get-date $_.DisconnectTime) -lt (get-date <ДАТА>) }

<ДАТА> - дата, сессии старше которой, считаются устаревшими.

[HOWTO POSH] Как узнать имя пользователя по его SID

$objSID = New-Object System.Security.Principal.SecurityIdentifier("<SID>")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

[HOWTO POSH] Как узнать дату последнего входа пользователя в домен

Get-ADUser -f * -pr lastlogondate|sort -property lastlogondate|ft samaccountname,lastlogondate -auto

[HOWTO POSH] Как узнать размер VHD диска

Покажет размер диска в гигабайтах:

(get-vhd "D:\Hyper-V\diskname.vhdx" | Select Size).Size/1073741824

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

1. Вывести все порты (активные):

# netstat -a | more 




# netstat -at    все tcp порты
# netstat -au    все udp порты 


2. Вывести только слушаемые порты:


# netstat -l
# netstat -lt    слушаемые tcp порты
# netstat -lu    слушаемые udp порты 
# netstat -lx    слушаемые UNIX порты 

 
3. Отобразить статистику для каждого протокола

# netstat -s
# netstat -st    статистика для tcp
# netstat -su    статистика для udp

4. Вывод PID и имен запущенных программ

# netstat -p    
# netstat -pt    для tcp
# netstat -pu    для udp


5. Вывод без преобразования имен хостов, портов и имен пользователей
 
# netstat -an
 
 В случае если необходимо не преобразовывать что-то одно из этих трех параметров 
  (портов, хостов, пользователей):

# netstat -a --numeric-ports    не преобразовывать порты
# netstat -a --numeric-hosts    не преобразовывать имена хостов
# netstat -a --numeric-users    не преобразовывать имена пользователей


6. Вывод информации информации беспрерывно (интерактивно)
 
 Вывод будет обновляться каждые несколько секунд

# netstat -с


7. Вывод неподдерживаемых семейств адрессов (в конце вывода)

# netstat --verbose

8. Отобразить информацию о маршрутизации

# netstat -r

9. Найти порт используемый программой


# netstat -ap | grep ssh       найти порт используемый ssh
 
Найти программу, использующуй порт (в данном случае 80-й порт):

# netstat -an | grep ":80"


10. Вывести информацию об интерфейса

# netstat -i
 
# netstat -ie    вывод анлогичный ifconfig

 
 
по материалам с сайта www.thegeekstuff.com

четверг, 2 июля 2015 г.

Беспарольный SSH

Для входа на SSH сервер с использованием беспарольной аутентификации необходимо сгенерировать ключ (private) который будет использоваться на клиенте

ssh-keygen -t <тип ключа (RSA по умолчанию)>


Затем настроим /etc/ssh/sshd_config на сервере


RSAAuthentication yes
PubkeyAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

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


Разрешить доступ для группы sudoers

Match Group sudoers


Для доступа с Linux, используем следующий способ:

ssh-copy-id -i ~/.ssh/<имя публичного ключа> <удаленный сервер>

Например:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost.com

После этого наш публичный ключ появится в файле authorized_keys (можно просто добавить туда вручную)

Затем, необходимо добавить нужный ключ в используемые для входа ключи командой (убедитесь что на ключ сделан chmod 400, иначе будет ругаться что unprotected private key):

ssh-add ~/.ssh/<имя публичного ключа*>



Проверим есть ли этот ключ в списке:

 ssh-add -L



Для доступа с Windows хоста, можно использовать PuTTY:
для этого необходим сам PuTTY.exe, puttygen.exe и pagent.exe.
Импортируйте приватный ключ с помощью puttygen.exe в формат ppk, который необходимо открыть в pagent.exe.

Делаем chmod 0600 для private ключей на сервере.

Для отладки подключения ssh используйте

ssh -vT <имя сервера>