пятница, 18 декабря 2015 г.

Добавить пользователя на сервер SAMBA 3.x

1) Создадим пользователя
useradd i.ivanov

2) Зададим пароль
smbpasswd -a i.ivanov

3) Добавим пользователя в группу managers
usermod -a  -G managers i.ivanov

4) Проверим
id i.ivanov

пятница, 28 августа 2015 г.

Установка OpenVPN на Debian

Настройка OpenVPN

1. Установим Easy RSA 3.0
    $cd ~
    $git clone https://github.com/OpenVPN/easy-rsa.git

2. Установим OpenVPN
    $sudo apt-get install openvn
3. Создадим папку логов для openvpn
    mkdir /var/log/openvpn
4. Создадим конфиг server.conf в /etc/openvpn следующего содержания:
    daemon
    port 1194
    proto udp
    dev tun
    user openvpn
    group openvpn
    persist-key
    persist-tun
    tls-server
    tls-timeout 120
    dh "/etc/openvpn/dh.pem"
    ca "/etc/openvpn/ca.crt"
    cert "/etc/openvpn/vpn-server.crt"
    key "/etc/openvpn/server.key"
    tls-auth "/etc/openvpn/ta.key" 0
    server 10.0.1.0 255.255.255.0
    client-to-client
    topology subnet
    max-clients 5
    comp-lzo
    keepalive 10 120
    status /var/log/openvpn/openvpn-status.log 1
    status-version 3
    log-append /var/log/openvpn/openvpn-server.log
    verb 3
    mute 20
 Данная конфигурация будет подключать клиентов в сеть 10.0.1.0/24
 Сервер будет иметь IP 10.0.1.1   


среда, 5 августа 2015 г.

Добавление файла в owncloud вручную через папку data.

Чтобы добавить файл в owncloud минуя веб интерфейс, необходимо
1) скопировать файл в папку <путь к owncloud>/data/<учетная запись>
2) установить владельца файла пользователя под которым запущен owncloud (например www-data):
  chown www-data:www-data somefile.txt
3) Установить права для файла:
  chmod 775 somefile.txt
4) Пересканировать файлы owncloud
sudo -u www-data php <путь к owncloud>/console.php files:scan --all



 

четверг, 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 <имя сервера>

вторник, 30 июня 2015 г.

[HOWTO BASH] Как проверить вывод комманды в bash


Пример:

 [[ $((qm status 101) | grep "running") ]] && echo "OK" || echo "not OK"

Или:


#!/bin/bash
#usage script.sh <vmid>

STATUS=$(qm status $1)
if (echo $STATUS | grep "running"); then
        echo "ok";
else
        echo "not ok";
fi