Перенаправление запросов на SSL

Опишу несколько вариантов перенаправления запросов с HTTP на HTTPS, первый и второй методы самые надежные:

1) Через virtual hosts.
В конфигурации сайта добавим строку Redirect, например когда на сайт установили SSL сертификат и нужно перенаправить все запросы на HTTPS:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName ixnfo.com
   ServerAlias www.ixnfo.com
   Redirect / https://ixnfo.com/
</VirtualHost>

<VirtualHost *:443>
   ServerName ixnfo.com
   ServerAlias www.ixnfo.com
   DocumentRoot /var/www/html
   SSLEngine On
   ...
</VirtualHost>

Если нужно перенаправить только некоторые запросы:

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName ixnfo.com
   ServerAlias www.ixnfo.com
   Redirect /forum https://forum.ixnfo.com/
</VirtualHost>

<VirtualHost *:443>
   ServerName ixnfo.com
   ServerAlias www.ixnfo.com
   DocumentRoot /var/www/html
   SSLEngine On
   ...
</VirtualHost>

2) Перенаправление с использованием .htaccess.
Аналогично как и в первом варианте, в нужную директорию сайта положим файл .htaccess и добавим в него строку (чтобы веб-сервер учитывал файл .htaccess, нужно в конфигурации сайта выше указать опцию AllowOverride All):

Redirect /forum https://forum.ixnfo.com/

3) И не рекомендуемый способ, используя mod_rewrite, содержимое нужно добавить в файл .htaccess:

# Включение функции Rewrite
RewriteEngine On
# Проверяем что соединение не HTTPS
RewriteCond %{HTTPS} !=on
# Направляем в то же место, но уже HTTPS:
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Смотрите также:
Использование .htaccess
Как настроить SSL и HTTPS для WordPress

Настройка места для резервных копий Hetzner.de

На тесте вошел на https://robot.your-server.de/, открыл Main functions — Servers, выбрал сервер и во вкладке Backup активировал бесплатные 100GB, так как для серверов стоимостью 39€ или более это место выделялось бесплатно.
Активировал WebDAV чтобы протестировать, samba было уже активировано, также можно подключаться по FTP, FTPS, SFTP и SCP используя имя пользователя и пароль, через SFTP/SCP можно также подключаться по ключу.
Скорость передачи данных на сервер резервного копирования зависит от количества подключенных пользователей и их трафика.
При подключении следует использовать доменное имя, например USER.your-backup.de, так как IP адрес может меняться.
Также нельзя создать директории /etc и /lib на месте для резервных копий.

На примере в Ubuntu Server смонтирую место для резервных копий через SAMBA/CIFS.
Установим необходимые утилиты и создадим директорию в которую будем монтировать:

sudo apt-get install cifs-utils
sudo mkdir /backup

Временно смонтировать место можно командой:

sudo mount.cifs -o user=USER,pass=PASSWORD //USER.your-backup.de/backup /backup

Для автоматического монтирования после перезапуска системы добавим в файл /etc/fstab следующую строку:

//USER.your-backup.de/backup /backup   cifs  iocharset=utf8,rw,credentials=/etc/backup-credentials.txt,uid=SYSTEM_USER,gid=SYSTEM_GROUP,file_mode=0660,dir_mode=0770 0 0

Открыть файл можно например текстовым редактором nano (CTRL+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/fstab

А в файл /etc/backup-credentials.txt добавим следующие строки:

username=USER
password=PASSWORD

Установим права только для владельца файла в целях безопасности:

sudo chmod 600 /etc/backup-credentials.txt

Если используется операционная система Windows, то нужно создать системного пользователя с такими же логином и паролем как у места для резервных копий.

Теперь для теста подключусь через WebDAV.
Установим необходимые утилиты и создадим директорию в которую будем монтировать:

sudo apt-get install davfs2
sudo mkdir /backup

Временно смонтировать через WebDAV место можно командой:

sudo mount -t davfs https://USER.your-backup.de /backup

Для автоматического монтирования после перезапуска системы добавим в файл /etc/fstab следующую строку:

https://USER.your-backup.de /backup davfs rw,uid=SYSTEM_USER,gid=SYSTEM_GROUP,file_mode=0660,dir_mode=0770 0 0

А в файл /etc/davfs2/secrets следующую строку:

https://USER.your-backup.de USER PASSWORD

На этом все, в моем случае можно сохранять резервные копии в директорию /backup.

Решение ошибки dhcpd self-test failed. Please fix the config file

Заметил однажды в логах syslog ошибку:

dhcpd self-test failed. Please fix the config file

На сервере был установлен isc-dhcp-server.

Проверить правильность конфигурационного файла можно командой:

dhcpd -t
dhcpd -t -cf /dir/dhcpd.conf
/usr/sbin/dhcpd -t

Команда должна сообщить на какой строке ошибка, но заметил что если она не критическая, то может и не сообщить.
Ключ t выполняет тест конфигурации, а cf позволяет указать путь к файлу конфигурации, если он не стандартный.

В моем случае, в конфигурационном файле /etc/dhcp/dhcpd.conf кто-то совершил опечатку, в строке ниже (была лишняя буква):

authorivtative;

Из-за этого и возникала ошибка, но несмотря на ошибку dhcp работал.
Хотя когда-то встречались и критические ошибки, например неправильно написанный mac адрес, из-за такой ошибки DHCP не запускался.

Настройка ircd-hybrid

Допустим мы установили ircd-hybrid как я описывал в этой статье — Установка IRC сервера — ircd-hybrid
Теперь приступим к настройке.

Отредактируем текст приветственного сообщения:

sudo nano /etc/ircd-hybrid/ircd.motd

Сделаем копию конфигурационного файла на всякий случай:

sudo cp /etc/ircd-hybrid/ircd.conf /etc/ircd-hybrid/ircd_original.conf

Откроем в текстовом редакторе основной файл конфигурации, настроим параметры и закомментируем ненужные:

sudo nano /etc/ircd-hybrid/ircd.conf

В конфигурационном файле сначала идут стандартные параметры serverinfo, по желанию изменим их:

serverinfo {
        name = "hybrid8.debian.local";
        description = "test";
        network_name = "debian";
        network_desc = "This is My Network";
        hub = no;
        default_max_clients = 512;
        max_nick_length = 15;
        max_topic_length = 300;
};

Далее контакты администратора сервера, по желанию изменим их:

admin {
        name = "SYSADMIN";
        description = "Main Server Administrator";
        email = "<admin@example.com>";
};

Сетевые параметры (на каких портах будет работать ircd-hybrid, например можно изменить на один 6667):

listen {
        port = 6665 .. 6669;
};

Первый блок auth который разрешает подключаться всем с локального адреса 127.0.0.1:

auth {
        user = "*@127.0.0.1";
        spoof = "i.love.debian.org";
        class = "opers";
        flags = need_password, spoof_notice, exceed_limit, kline_exempt,
                xline_exempt, resv_exempt, no_tilde, can_flood;
};

Еще один блок auth разрешающий подключаться всем (его закомментируем или изменим под свои нужды):

auth {
        user = "*@*";
        class = "users";
        flags = need_ident;
};

Например, создадим пароль пользователю, скопируем результат команды в зашифрованном виде:

mkpasswd PASSWORD

Добавим возможность авторизации любым пользователям только с паролем и с указанной сети:

auth {
        user = "*@192.168.3.0/24";
        class = "users";
        flags = need_password;
encrypted = yes;
password = "PASSWORD_FROM_mkpasswd";
};

В блоке auth пароль будет хранится в шифрованном виде, в IRC клиенте указывается как есть.
Чтобы указать в блоке auth пароль в нешифрованном виде, нужно убрать encrypted.

В секции general отключим need_ident:

general {
...
disable_auth = yes;
...
};

Перезапустим ircd-hybrid чтобы применить изменения:

sudo /etc/init.d/ircd-hybrid restart
sudo service ircd-hybrid restart

Также можем добавить оператора:

auth {
name = "admin";
user = "admin@192.168.3.254/32";
class = "opers";
flags = need_password, spoof_notice, exceed_limit, kline_exempt;
encrypted = yes;
password = "PASSWORD_FROM_mkpasswd";
};

Блокировать IP адреса в случае необходимости можно следующим образом:

deny {
       ip = "192.168.4.4/32";
       reason = "Spam";
};

После изменений в конфигурационном файле нужно перезапустить ircd-hybrid.
В качестве клиента можно использовать например бесплатный AdiIRC.

Установка IRC сервера — ircd-hybrid

Приведу пример установки IRC сервера — ircd-hybrid.

Для установки ircd-hybrid в Ubuntu выполним команду:

sudo apt-get install ircd-hybrid

После установки ircd-hybrid будет использовать TCP порты 6665-6669.

По желанию, чтобы подключится к IRC из терминала, можно установить например IRC клиент epic4:

sudo apt-get install epic4

И подключится:

irc 127.0.0.1

Подключится к каналу можно командой:

/join CHANNEL

Выйти:

/quit

Проверить запущен ли ircd-hybrid можно например так:

netstat -a | grep irc
netstat -an | grep 6667

Перезапустить ircd-hybrid можно так:

sudo /etc/init.d/ircd-hybrid restart

Если используется iptables, до нужно прописать правило:

sudo iptables -A INPUT -p tcp -m tcp -s 192.168.1.0/24 --dport 6667 -j ACCEPT

На этом установка завершена и можно переходить к настройке.
Смотрите мою статью о настройке — Настройка ircd-hybrid

Также приведу пример установки ircd-hybrid из исходников.
Скачаем ircd-hybrid с официальный сайта:

wget http://prdownloads.sourceforge.net/ircd-hybrid/ircd-hybrid-8.2.22.tgz
tar -xvf ircd-hybrid-8.2.22.tgz
cd ircd-hybrid-8.2.22

Установим необходимые компоненты:

sudo apt-get install build-essential unzip cmake

Сконфигурируем и установим ircd-hybrid:

./configure --prefix="/home/USER/ircd"
make
make install

Можно также установить Anope (для расширения функциональности):

cd /tmp/
wget https://github.com/anope/anope/archive/2.0.zip
unzip 2.0.zip
cd anope-2.0
./Config
cd build
make
make install

Установим правильного владельца:

sudo chown -R USER: ~/services ~/ircd

Решение ошибки /usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault

Заметил однажды после установки EJabberd в Ubuntu Server 16.04 и добавлении пользователя от root командой:

ejabberdctl register USER localhost PASSWORD

Следующую ошибку:

/usr/sbin/ejabberdctl: line 428: 14615 Segmentation fault $EXEC_CMD «$CMD»

В лог файле /var/log/syslog сообщалось:

Sep 11 11:17:00 mail kernel: [4647543.535271] audit: type=1400 audit(1505117820.598:43): apparmor=»DENIED» operation=»file_mmap» profile=»/usr/sbin/ejabberdctl//su» name=»/bin/su» pid=14439 comm=»su» requested_mask=»m» denied_mask=»m» fsuid=0 ouid=0

Для решения ошибки открыл файл конфигурации apparmor:

nano /etc/apparmor.d/usr.sbin.ejabberdctl

Нашел строку:

/bin/su                                 r,

И изменил её, добавив m:

/bin/su                                 rm,

Перезапустил apparmor:

sudo service apparmor restart

Все, ошибка больше не появлялась.

Резервное копирование Redmine

Создадим скрипт (в текстовом редакторе nano Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/cron.daily/redmine

Пример содержимого скрипта:

#!/bin/sh
/usr/bin/mysqldump -u root -p<password> redmine_default | gzip > /path/to/backups/redmine_db_`date +%y_%m_%d`.gz
rsync -a /var/lib/redmine/default/files /path/to/backups/files

Сделаем скрипт исполняемым:

chmod +x /etc/cron.daily/redmine

В скрипте можно также добавить команду удаления старых файлов или директории, чтобы не возникло переполнения диска, подробнее смотрите мою статью — Скрипт удаления старых файлов

Смотрите также прочие мои статьи о резервном копировании — Резервное копирование