Показаны сообщения с ярлыком установка. Показать все сообщения
Показаны сообщения с ярлыком установка. Показать все сообщения

пятница, 30 декабря 2016 г.

Установка Roundcube.

Почтовый сервер на базе Dovecot+Postfix+DKIM+MySQL+Postgrey устанавливал по инструкции с сайта. Автор разрешил опубликовать материал у себя (оформлю для публикации, как будет время), чтобы материал дублировался в моих записях на всякий случай.

В конфигах которые настраивал пришлось заменить localhost на 127.0.0.1 иначе кидало ошибку в syslog (увы не помню какую именно).


Все команды выполнялись от прав пользователя root.

1. В моем репозитории почему-то его не оказалось, потому скачиваю сырцы во временную папку:
cd /tmp/
wget https://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.4/roundcubemail-1.1.4-complete.tar.gz

2. Распаковываю архив:
tar xfvz roundcubemail-1.1.4-complete.tar.gz

3. Удаляю архив и перемещаю распакованные данные:
rm roundcubemail-1.1.4-complete.tar.gz
mv roundcubemail-1.1.4-complete /var/www/roundcube

4. Перехожу в папку и задаю права на папки temp logs:
cd /var/www/roundcube
chmod 777 temp logs

5. Вхожу и создаю БД для Roundcube:
mysql -u root -p
CREATE DATABASE IF NOT EXISTS `roundcube`;
GRANT ALL PRIVILEGES ON `roundcube` . * TO 'root'@'localhost' IDENTIFIED BY 'mySecretPassword';
FLUSH PRIVILEGES;
quit

6. Наполняю созданную БД:
mysql -u root -p"mySecretPassword" roundcube < SQL/mysql.initial.sql

7. Настраиваю apache:
nano /etc/apache2/sites-enabled/mail.conf

Alias /mail /var/www/roundcube/

   RemoveHandler .php  .php3 .php4 .phtml
   AddType application/x-httpd-php .php  .php3 .php4 .phtml
   php_admin_value open_basedir /
   AddType text/x-component .htc
   
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   

   
      php_flag display_errors Off
      php_flag log_errors On
      php_value error_log logs/errors
      php_value upload_max_filesize 5M
      php_value post_max_size 6M
      php_value memory_limit 64M
   

   
      Order allow,deny
      Deny from all
   

   Order deny,allow
   Allow from all

8. Перезапускаю apache:
/etc/init.d/apache2 restart

9. Создаю вручную конфиг roundcube:
nano /var/www/roundcube/config/config.inc.php


/* Local configuration for Roundcube Webmail */

// ----------------------------------
// SQL DATABASE
// ----------------------------------
$config['db_dsnw'] = 'mysql://root:mySecretPassword@localhost/roundcube';

// ----------------------------------
// IMAP
// ----------------------------------
$config['default_host'] = 'localhost';

// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config['support_url'] = '';

// this key is used to encrypt the users imap password which is stored
// in the session record (and the client cookie if remember password is enabled).
// please provide a string of exactly 24 chars.
$config['des_key'] = '2dcd0f65ff91d3b2bcabcdc5';

// ----------------------------------
// PLUGINS
// ----------------------------------
// List of active plugins (in plugins/ directory)
$config['plugins'] = array();

// the default locale setting (leave empty for auto-detection)
// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
$config['language'] = 'ru_RU';

$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['quota_zero_as_unlimited'] = true;
$rcmail_config['preview_pane'] = true;
$rcmail_config['read_when_deleted'] = false;
$rcmail_config['check_all_folders'] = true;
$rcmail_config['imap_auth_type'] = 'CRAM-MD5';
$rcmail_config['smtp_auth_type'] = 'CRAM-MD5';

10. Удаляю установщик коонфигурации (собственно п. Можно делать через него):
rm -rf /var/www/roundcube/installer/

11. Включаю автоматическое создание стандартных папок, типа корзина-спам и т.д. Для это в конфиге nano /var/www/roundcube/config/defaults.inc.php меняю значение ключа:
$config['create_default_folders'] = true;

12. Проверяю введя в браузере:

в качестве учетных данных ввожу e-mail и пароль.

четверг, 28 апреля 2016 г.

Настройка NFS-сервера на ZFS с включённой дедубликацией и сжатием



Все команды выполнялись от прав пользователя root.

1. Ставлю Debian 8.0 Jessie (важно!!! чтобы версия была x64).
2. Устанавливаю ZFS:

wget http://zfsonlinux.org/4D5843EA.asc -O - | apt-key add -
wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_6_all.deb
dpkg -i zfsonlinux_6_all.deb
apt-get update

apt-get install lsb-release
apt-get install debian-zfs
reboot

3. Создаю пул:

Проверяю что установилось.
dpkg -l | grep zfs
ii  debian-zfs                     7~jessie                    amd64        Nati           ve ZFS filesystem metapackage for Debian.
ii  libzfs2                        0.6.5.6-7                   amd64        Nati           ve ZFS filesystem library for Linux
ii  zfs-dkms                       0.6.5.6-7                   all          Nati           ve ZFS filesystem kernel modules for Linux
ii  zfsonlinux                     6                           all          arch           ive.zfsonlinux.org trust package
ii  zfsutils                       0.6.5.6-7                   amd64        comm           and-line tools to manage ZFS filesystems

Проверяю какие диски есть
ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  /dev/sdc

Проверяю есть ли пул )))
zpool list
no pools available

Создаю RAID-1
zpool create -f pool mirror /dev/sdb /dev/sdc

Проверяю:
zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
pool  9,94G   187K  9,94G         -     7%     0%  1.00x  ONLINE  -


Проверяю статуса пулов:
zpool status
  pool: pool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        pool        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

errors: No known data errors

Проверяю его наличии в системе
df -hT
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root        ext4       1,9G         1,3G  424M           76% /
udev             devtmpfs    10M            0   10M            0% /dev
tmpfs            tmpfs      200M         4,6M  196M            3% /run
tmpfs            tmpfs      500M            0  500M            0% /dev/shm
tmpfs            tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs            tmpfs      500M            0  500M            0% /sys/fs/cgroup
pool             zfs        9,7G         128K  9,7G            1% /pool


4. Тюнингую ZFS:
Включаю сжатие данных
zfs set compression=on pool
zfs get compression pool
NAME  PROPERTY     VALUE     SOURCE
pool  compression  on        local
 

Включаю дедупликацию
zfs set dedup=on pool
zfs get dedup
NAME  PROPERTY  VALUE          SOURCE
pool  dedup     on             local

5. Устанавливаю NFS-сервер:
apt-get install nfs-kernel-server nfs-common

Назначаю права на ZFS-пул
chown nobody:nogroup /pool
chmod 777 /pool

Правлю конфиг сервера (добавив строчку)
nano /etc/exports
/pool   192.168.0.0/24 (rw,async,no_subtree_check)

Перезагружаю NFS-сервер
/etc/init.d/nfs-kernel-server restart

6. Проверка подключения на базе Linux клиента:
Устанавливаю сам клиент
apt-get install nfs-common

Создаю папку куда буду монтировать
mkdir -p /mnt/nfs

Собственно монтирую
mount 192.168.0.10:/pool /mnt/nfs

Проверяю
df -hT
Файловая система     Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root            ext4       176G         985M  166G            1% /
udev                 devtmpfs    10M            0   10M            0% /dev
tmpfs                tmpfs      200M         4,5M  196M            3% /run
tmpfs                tmpfs      500M            0  500M            0% /dev/shm
tmpfs                tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs                tmpfs      500M            0  500M            0% /sys/fs/cgroup
192.168.0.10:/pool       nfs4       9,7G         128K  9,7G            1% /mnt/nfs

Размонтирование делается обычно
umount /pool

7. Проверка подключения на базе Windows:
Проверять буду программой NekoDrive.


Таким образом создается диск Е куда все и монтируется. Unicode нужно для корректного отображения кириллицы.

Пример работы сжатия ZFS пула:
Залил на NFS виртуальную машину изначальный размер согласно свойствам Windows - 6,72 ГБ (7 219 906 743 байт).
Проверяю пул (показывает 4,2 Гб)
 df -hT
Файловая система Тип      Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root        ext4       1,9G         1,3G  423M           76% /
udev             devtmpfs    10M            0   10M            0% /dev
tmpfs            tmpfs      200M         4,6M  196M            3% /run
tmpfs            tmpfs      500M            0  500M            0% /dev/shm
tmpfs            tmpfs      5,0M            0  5,0M            0% /run/lock
tmpfs            tmpfs      500M            0  500M            0% /sys/fs/cgroup
pool             zfs             9,7G         4,2G  5,5G           43% /pool


понедельник, 9 февраля 2015 г.

Настройка SSH для авторизации по ключам

И так, SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. Вданной статье пойдет разговор о настройке серверной части SSH.
Все команды выполнялись от прав пользователя root.
1. Устанавливаю SSH — 'apt-get install ssh'. После установки останавливаю его, ибо нужно сконфигурировать его под мои нужды - '/etc/init.d/ssh stop'.
2. Собственно редактирую конфиг SSH-сервера — 'nano /etc/ssh/sshd_config', до следующего вида:

# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
# Меняем стандартный порт 22 для большей безопасности на 122 или иной
Port 122
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
# Указываем серверу работать лишь по 2 протоколу
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
# Запрещаем подключение к серверу по логину root
PermitRootLogin no
# Отключаем проверку прав пользователей в их домашних каталогах перед тем, как пустить на сервер
StrictModes no
# Разрешаем подключение только перечисленным пользователям
AllowUsers demon klim dethroner

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
# Согласно рекомендациям запрещаем подключение пользователей с пустыми паролями
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
# Отключаем вход на сервер по паролям
PasswordAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

3. Генерирую ключи для каждого пользователя (в моем случае demon klim dethroner). Можно пользоваться средствами самой ОС – описано тут (пункт 2), но я пользуюсь PuTTYGen. Т.е. запускаю программу нажимаю кнопку «Generate» перемещаю курсор мышки по экрану для набора случайной статистики при генерации. Должно получиться что-то типа:
4. Далее сохраняю ключи в надежном месте, получаю файлы вида:
public
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20150209"
AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY
lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw==
---- END SSH2 PUBLIC KEY ----
private.ppk
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20150209
Public-Lines: 4
AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY
lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw==
Private-Lines: 8
AAAAgDAyvf2L7L3usaq1DoBZJYPwTZdDHjZwtqGJDwNLbolw/+t3pBgpEPwYhxj9ZVjCPOo1bGjN1
hzmta4wJRfIJ+LwuBfU4U8x3JUaBRdHerhFlk3jLF8NAdVwi5QwCzCrCobZql+kpWX8QsvE5AXcsBT
USB19+OdBlTY4oeraMQodAAAAQQC2+r0kr3ovycrvHMLyQ8VB8yeWhg9yknpZiyEhJMJz2g7SNVI
KXLwbBxWVfgxa/ihtXp4LPngR9aR2KE4IuN3vAAAAQQCmVU8DVSq8EP/eLJMN9wKI/ceGIWMKHmFPDiL95HJUBl7FCoO4yWS6MI+bt+DVOB5jlRZuxs76cpdh7eqyIj3ZAAAAQQC216nt
eeUyXbQkF9tMPeHjKfpQ7B5JTnhHTQ43J5QJSGp2whVoRK5Zzry/DCcOhG3v/QEZiKw1eLutVJRt6QWN
Private-MAC: 5d1f912438f2712c6701170dd77b08ba6b5fa918
5. В домашней папке каждого пользователя, разрешенного в конфиге, создаю файл в домашней директории, где будет храниться публичный ключ, например - 'touch /home/dethroner/.ssh/authorized_keys'
6. Назначаю права на созданную папку .ssh - 'chown dethroner:dethroner /home/dethroner/.ssh' и 'chmod 700 /home/dethroner/.ssh'
7. Прописываю сгенерированный ключ в созданный файл - 'nano /home/dethroner/.ssh/authorized_keys ', получаю что-то типа:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY
lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw== dethroner@server.ex
8. Назначаю права на файл - 'chmod 600 /home/dethroner/.ssh/authorized_keys'
9. Запускаю SSH - '/etc/init.d/ssh start'
10. Важно добавить правила в таблицу iptables например как у меня или так (пункт 3).
11. Добавляю указанных пользователей для обеспечения root доступа из-под sudo для это набираю - 'visudo' (файл /etc/sudoers откроется в редакторе по умолчанию) и добавляю:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL
demon ALL=(ALL) NOPASSWD: ALL
dethroner ALL=(ALL) NOPASSWD: ALL
klim ALL=(ALL) NOPASSWD: ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL
Затем жму 'ctrl+o', 'enter', 'ctrl+x' для сохранения изменений и выхода из редактора.
12. При использовании PuTTY для подключения к SSH-серверу указываю адрес и порт в программе:

 

Так же указываю путь к private.ppk



Нажимаю «Open» и подключаюсь к SSH-серверу. Ну или можно сохранить настройки, чтобы не вводить постоянно. После подключения к SSH-серверу в строке логин ввожу имя пользователя и попадаю в систему. Доступ с правами root осуществляется посредством sudo.