четверг, 18 июля 2019 г.

Тестовый сервер test2 базовая настройка

В данной статье опишем установку сервера СУБД PostgreSQL версия 10.5-24.1C на ubuntu server 16.04.6.
Драйверы hasp берем etersoft
1. Установка ubuntu 16.04.6
Устанавливаем ubuntu 16.04.6 без swap файла, т.е. размечаем вручную весь диск ext4 root.
RAM (16 GB) монтируем диск для backup /backup


Настройки ubuntu пользователь (привязка в скриптах) user пароль 12345, имя компьютера test2, позже мы его сменим скриптом, как и ip адрес.

После установки, Ctrl +Alt + T (окно терминала)
$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt autoremove -y
$ sudo apt install mc ssh samba -y

Возможно sudo apt upgrade -y не пройдет из за блокировки, тогда sudo reboot и повторите с начала.


2. Настройка сети

Тестовый сервер будет использовать dhcp

Смотрим:
$ cat  /etc/hosts
127.0.0.1       localhost
127.0.1.1       test2



$ sudo nano /etc/hosts

Меняем:

127.0.0.1       localhost test2

Сохранить.

$ cat /proc/cpuinfo | grep MHz
cpu MHz         : 800.111
cpu MHz         : 800.028
cpu MHz         : 800.377
cpu MHz         : 800.190


3. Тюнинг остального:

Сделаем еще один скрипт для настройки остального:

$ nano tuning.sh


#!/bin/bash
# отключим ipv6
sudo /bin/su -c "echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'net.ipv6.conf.lo.disable_ipv6 = 1' >> /etc/sysctl.conf"
#sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
#тюнинг postgresql
#add a swap file to an Ubuntu 16.04
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
sudo echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo /bin/su -c "echo 'vm.swappiness=1' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_migration_cost_ns = 5000000' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'kernel.sched_autogroup_enabled = 0' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_background_bytes = 67108864' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.dirty_bytes = 536870912' >> /etc/sysctl.conf"
sudo /bin/su -c "echo 'vm.zone_reclaim_mode = 0' >> /etc/sysctl.conf"
sudo sysctl -p
# перезагрузим сеть
#sudo systemctl restart networking.service
#sudo systemctl start networking.service
#sudo systemctl enable networking.service
# Настройка sudo journalctl -b sudo journalctl -b -1 sudo journalctl --list-boots
sudo sed -i 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
# Отключение уведомлений службы Apport (/var/crash)
sudo sed -i 's/enabled=1/enabled=0/' /etc/default/apport
# Отключим службу ondemand# (для разгона cpu)
# cat /proc/cpuinfo | grep MHz
# systemctl status ondemand
sudo systemctl stop ondemand
sudo systemctl disable ondemand
# shutdown -r now

Сохраним файл tuning.sh

------------------------------------------
Сделаем исполняем
$ chmod +x tuning.sh
$  sudo ./tuning.sh

или
$  sudo sh tuning.sh
------------------------------------------

Перезагрузимся

$ sudo reboot

После перезагрузки по сети можно подключиться MobaXterm

$ cat /proc/cpuinfo | grep MHz 
cat /proc/cpuinfo | grep MHz
cpu MHz         : 4000.489
cpu MHz         : 4000.162
cpu MHz         : 4000.980
cpu MHz         : 4002.072

$ free
              total        used        free      shared  buff/cache   available
Память:    16284616       95512    15944100        1312      245004    15870784
Подкачка:     1048572           0     1048572

4. Настройка ssh

$ cd ~
$ mkdir ~/.ssh
$ cd ~/.ssh
$ ip a
$ ssh-keygen -t rsa

user@test2:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): user@test2
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in user@test2.
Your public key has been saved in user@test2.pub.

$ ls

user@test2:~/.ssh$ ls
user@test2  user@test2.pub

Скачать и использовать для входа /home/user/.ssh/user@test2
$ cp ~/.ssh/user@test2.pub ~/.ssh/authorized_keys
$ rm ~/.ssh/user@test2.pub
$ rm ~/.ssh/user@test2
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
$ sudo nano /etc/ssh/sshd_config

Проверить:

PasswordAuthentication no
.....

PubkeyAuthentication yes
ChallengeResponseAuthentication no

PermitRootLogin no
 
Сохранить.

$ sudo systemctl reload sshd

5. Настройка Ubuntu для работы с ИБП от APC
APCUPSd: Поля о состоянии устройства
APCUPSD User Manual
Ureadahead сообщает об ошибках относительного пути в выходных данных journalctl

$ lsusb
....
Bus 001 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
....
$ sudo apt-get install apcupsd -y
$ sudo nano /etc/apcupsd/apcupsd.conf

1.
#UPSCABLE smart
UPSCABLE usb
......
2.
#UPSTYPE apcsmart
UPSTYPE usb

3. закомментировать DEVICE /dev/ttyS0
#DEVICE /dev/ttyS0

# Для проверки можно 30 (потом убрать )
TIMEOUT 30

TIMEOUT - параметр актуален для старых ИБП, неспособных определять свой уровень заряда. Задаёт время (в секундах) между сбоем электропитания и отключением компьютера. Для современного ИБП параметр стоит оставить на 0, но выставление иного значения может быть удобно для тестирования работы ИБП. Например, если выставить 30 и выдернуть шнур из розетки, уже через полминуты apcupsd продемонстрирует своё умение выключать компьютер
Сохранить.

Настроим /etc/default/apcupsd 
Заменяем ISCONFIGURED=no на ISCONFIGURED=yes , сохраняем, закрываем. Отныне apcupsd будет знать, что мы не забыли его настроить.

Т.е 0 будет ждать разрядки батареи, 30 - будет ждать 30 с.


$ sudo nano /etc/default/apcupsd

#ISCONFIGURED=no
ISCONFIGURED=yes


Сохранить.


Теперь достаточно запустить apcupsd:

$ sudo /etc/init.d/apcupsd start
Starting UPS power management: apcupsd.
$ sudo /etc/init.d/apcupsd status

user@s1030:~$ sudo /etc/init.d/apcupsd status
APC      : 001,017,0423
DATE     : 2018-08-02 18:09:14 +0300
HOSTNAME : s1030
VERSION  : 3.14.12 (29 March 2014) debian
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2018-08-02 18:08:49 +0300
STATUS   : COMMLOST
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 30 Seconds
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000100
END APC  : 2018-08-02 18:09:14 +0300

Важно!
$ sudo reboot

 Смотреть статус должен быть STATUS   : ONLINE
 Если STATUS   : COMMLOST, нет связи с UPS !!!


$ sudo /etc/init.d/apcupsd status
APC      : 001,034,0830
DATE     : 2019-07-18 19:35:41 +0300
HOSTNAME : test2
VERSION  : 3.14.12 (29 March 2014) debian
UPSNAME  : test2
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2019-07-18 19:35:39 +0300
MODEL    : Back-UPS ES 700G
STATUS   : ONLINE
LINEV    : 224.0 Volts
LOADPCT  : 12.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 26.1 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 30 Seconds
SENSE    : Medium
LOTRANS  : 180.0 Volts
HITRANS  : 266.0 Volts
ALARMDEL : 30 Seconds
BATTV    : 13.5 Volts
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000008
SERIALNO : 5B1826T43258
BATTDATE : 2018-06-27
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts
FIRMWARE : 871.O4 .I USB FW:O4
END APC  : 2019-07-18 19:36:06 +0300



BCHARGE  : 50.0 Percent - Зарядка батарей 50%
TIMELEFT : 26.1 Minutes - Оставшееся время работы от батареи по оценке ИБП.

Вырубить из розетки, через 30 с сервер должен отключиться.

======================================================
6. Настройка Postfix для отправи почты через yandex

Настройка Postfix для отправки почты через yandex

Postfix relay yandex
Пошаговая инструкция установки Postfix и Dovecot на Ubuntu
journalctl: open database /etc/aliases.db: No such file or directory 

user@yandex.ru - e-mail с которого будем посылать письма на произвольные адреса

$ sudo apt update 
$ sudo apt upgrade
(postfix без настройки)
$ sudo apt install postfix mutt


$ sudo mkdir /etc/postfix/private
#$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
$ sudo nano /etc/postfix/main.cf

Вставить в пустой файл:

relayhost =
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical


Сохранить.

Создать файл /etc/postfix/private/canonical :

$ sudo nano /etc/postfix/private/canonical

Содержимое (Ваш: user@yandex.ru  где user ваш логин) :

@yandex.ru user@yandex.ru


Сохранить.

Создать файл  /etc/postfix/private/sender_relay :

sudo nano /etc/postfix/private/sender_relay

Содержимое:

@yandex.ru smtp.yandex.ru

Сохранить.

Создать файл  /etc/postfix/private/sasl_passwd:
где вместо *** укажите свой пароль:
 
$ sudo nano /etc/postfix/private/sasl_passwd

Содержимое (Ваш: user@yandex.ru  где user ваш логин, password - ваш пароль ) :

[smtp.yandex.ru] user@yandex.ru:password

Сохранить.

$ sudo postmap /etc/postfix/private/*
$ sudo postalias /etc/aliases
$ sudo systemctl restart postfix.service
#$ sudo systemctl status postfix.service

$ sudo reboot

$ sudo systemctl status postfix.service

 посмотреть:

$ sudo journalctl -b
$ sudo journalctl -b -p err

Если есть сообщения:
........
open database /etc/aliases.db: No such file or directory
........

$ sudo postalias /etc/aliases
или
$ sudo newaliases

Перезагрузить и проверить.

Отправка почты на наш e-mail:

$ echo "test" | mutt -s "test" nash@e-mail.ru

Отправка почты на наш e-mail с вложением файла:

$ echo "test" | mutt -s "test" nash@e-mail.ru -a file

$ sudo apt install sysstat lm-sensors smartmontools

======================================================

7. Зашарить папку по сети \\test\files
$ sudo mkdir /share/
$ sudo chmod -R 777 /share/
$ sudo chown -R root:sambashare /share/
$ sudo cp -b -f /etc/samba/smb.conf /etc/samba/smb.conf.bak
$ sudo nano /etc/samba/smb.conf

Добавить в конец

[files]
path = /share/
comment = No comment
read only = no
available = yes
browseable = yes
writable = yes
guest ok = yes
public = yes
printable = no
locking = no
strict locking = no

Сохранить
Перезагрузить службу

$ sudo service smbd restart

======================================================
8. Настройка rsync Ubuntu 16.04
$ sudo nano /etc/default/rsync

#RSYNC_ENABLE=false
RSYNC_ENABLE=true

Сохранить.


$ sudo nano /etc/rsyncd.conf
# create new
# any name you like

[backup]
# destination directory to copy

path =
/backup
# hosts you allow to access

hosts allow = 192.168.0.0/255.255.255.0
hosts deny = *
list = true
uid = root
gid = root
read only = false


Сохранить.

$ sudo systemctl enable rsync
$ sudo systemctl start rsync

Архивы вида pg_pro-2019-05-28_12-39-21.tar.gz
будут в папке /backupwal/copy

Для скачивания на windows машины
Установка RSync в Windows Cygwin 

На windows машине запускаем синхронизацию в планировщике один раз в день, по времени
позже обычного завершения архивирования на сервере

rsync -avz 192.168.0.239::backup  /cygdrive/D/z  --progress 

В папке D:\z 

будут складываться архивы копии кластера за каждый вида: 
.....
pg_pro-2019-05-28_12-39-21.tar.gz 
.....

Старые архивные копии можно удалять forfiles.exe
Как удалять файлы старше 10 дней на windows

9. Настройка клиента Openconnect

$ sudo apt install openconnect

Положить сертификат
 /root/server.p12 - клиентский
/root/ca-cert.pem - сервера


Запустить локально:
$ sudo openconnect -b xxx.xxx.xxx.xxx -c /root/server@xxx.xxx.xxx.xxx.p12 --cafile /root/ca-cert.pem


Если в логах появится постоянно:

Jul 16 13:44:47 u1804 openconnect[1796]: DTLS handshake failed: The operation timed out
Jul 16 13:46:17 u1804 openconnect[1796]: DTLS handshake failed: Resource temporarily unavailable, try again.
Jul 16 13:50:48 u1804 openconnect[1796]: message repeated 3 times: [ DTLS handshake failed: Resource temporarily unavailable, try again.]

Добавить:
--no-dtls

$ sudo openconnect -b XXX.XXX.XXX.XXX -c /root/server@XXX.XXX.XXX.XXX.p12 --key-password=password --cafile /root/ca-cert.pem --no-dtls --syslog

$ route


$ sudo pkill openconnect


Сделать службу:

$ sudo nano /etc/systemd/system/openconnect.service

Вставить:

[Unit]
  Description=OpenConnect VPN Client
  After=network-online.target
  Wants=network-online.target

[Service]
  Type=simple
  ExecStart=/usr/sbin/openconnect XXX.XXX.XXX.XXX -c /root/server@XXX.XXX.XXX.XXX.p12 --key-password=password --cafile /root/ca-cert.pem --no-dtls --syslog
  #--no-dtls # Добавить в предыдущую строку для отключения dtls
  ExecStop=/usr/bin/pkill openconnect
  Restart=always
  RestartSec=2

[Install]
  WantedBy=multi-user.target

Сохранить.

$ sudo systemctl enable openconnect.service

$ sudo systemctl start openconnect.service

Если что то менялось:
$ sudo systemctl daemon-reload
$ sudo systemctl restart openconnect.service

$ route
Проверить ip (если настроена маршрутизация интернета)
$ wget -O - -q icanhazip.com

$ sudo reboot

Настройка ufw для ограничения доступа по vpn
$ sudo sed -i 's|IPV6=yes|IPV6=no|' /etc/default/ufw
$ sudo ufw reset
$ sudo ufw status
$ sudo ufw enable
$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
$ sudo ufw default deny forward
$ sudo ufw allow out on enp1s0
$ sudo ufw allow in on enp1s0
$ sudo ufw allow out on tun0 to any port 22
$ sudo ufw allow in on tun0 to any port 22
$ sudo ufw allow in on tun0 to any port 1545
$ sudo ufw disable && sudo ufw enable
$ sudo ufw status


 Таким образом локальная сеть без ограничений, по tun0 открыт ssh, а доступ к нему по сертификату.

Удаление правил:
# ufw status numbered
.........
# ufw delete 2

10. Отключить оповещение по почте с в команде crontab

$ sudo crontab -e

Добавить в начало:

MAILTO=""
 


Сохранить.
 

 



 



Комментариев нет:

Отправить комментарий