Добавление vlan в Ubuntu для ABillS

Приведу пример добавления VLAN в Ubuntu Server для ABillS.

Переключимся на пользователя root:

sudo su

Первым делом установим пакет vlan и загрузим модуль 8021q:

apt-get install vlan
modprobe 8021q

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

nano /etc/modules

И добавим если его там нет:

8021q

Создадим скрипт:

nano /etc/network/vlan.sh

Добавим в него содержимое (в IFACE указываем сетевой интерфейс для vlan, во VLANS — перечень VLAN):

#!/bin/bash
IFACE="eth1"
VLANS="51,200-350,700-1000"

  /sbin/vconfig set_name_type VLAN_PLUS_VID_NO_PAD
  VLANS=`echo ${VLANS} | sed 'N;s/\n/ /' |sed 's/,/ /g'`
  for i in $VLANS; do
    if [[ $i =~ - ]]; then
      IFS='-' read -a start_stop <<< "$i"
      for cur_iface in `seq ${start_stop[0]} ${start_stop[1]}`;
      do
        echo "${cur_iface}";
        /sbin/vconfig add ${IFACE} ${cur_iface}
        /sbin/ifconfig vlan${cur_iface} up
      done
    else
    echo "$i";
      /sbin/vconfig add ${IFACE} ${i}
      /sbin/ifconfig vlan${i} up
    fi;
  done

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

chmod +x /etc/network/vlan.sh

Запустим скрипт:

/etc/network/vlan.sh

Для автозапуска скрипта откроем конфигурацию сетевых интерфейсов:

nano /etc/network/interfaces

И добавим в конце строку:

post-up /etc/network/vlan.sh

Смотрите также:
Настройка VLAN в Ubuntu Server

Решение ошибки «nf_conntrack: table full, dropping packet»

Заметил однажды в Ubuntu Server 14.04 LTS настроенного как роутер, в файле /var/log/kern.log следующую ошибку:

Aug 14 17:32:51 router kernel: [1933791.144013] nf_conntrack: table full, dropping packet

Посмотрим текущее максимальное значение записей количества статуса соединений:

cat /proc/sys/net/netfilter/nf_conntrack_max
sysctl -a | grep conntrack_max

Посмотрим сколько использовано:

cat /proc/sys/net/netfilter/nf_conntrack_count

Увеличим командой:

echo 4194304 > /proc/sys/net/netfilter/nf_conntrack_max

Чтобы значение не сбросилось после перезапуска системы, можно добавить команду выше например в файл:

sudo nano /etc/rc.local

Либо откроем файл конфигурации ядра:

sudo nano /etc/sysctl.conf

Добавим или изменим строку:

net.netfilter.nf_conntrack_max = 4194304

И применим настройки:

sysctl -p

Как разрешить SMTP без SSL на порт 25 в iRedMail/Postfix

Чтобы разрешить на почтовом сервере отправку писем без шифрования через порт 25, необходимо открыть файл конфигурации Postfix, например в редакторе nano (в котором Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/postfix/main.cf

И раскомментировать две строки:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

И оставить закомментированной строку:

#smtpd_tls_auth_only=yes

Перезагрузим Postfix чтобы применить изменения:

sudo service postfix restart

После этого можно будет отправлять письма по SMTP через 25 порт без SSL так и как обычно через 587 с SSL.

Монтирование NTFS разделов в Linux

После подключения диска к серверу посмотрим список всех дисков и найдем имя нужного:

sudo fdisk -l

Приведу пример монтирования NTFS раздела диска в Ubuntu (так как у меня диск был разбит на два раздела, диск C и D, то в системе они были обнаружены как /dev/sdb1 и /dev/sdb2, оба и смонтируем в созданные директории):

sudo mkdir /newhdd1
sudo mount -t ntfs /dev/sdb1 /newhdd1
sudo mkdir /newhdd2
sudo mount -t ntfs /dev/sdb2 /newhdd2

Так как до этого диск использовался в системе Windows, у меня возникла ошибка монтирования:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount ‘/dev/sdb1’: Операция не позволена
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the ‘ro’ mount option.

В этом случае можно смонтировать раздел в режиме только для чтения:

sudo mount -t ntfs -o ro /dev/sdb1 /newhdd1

Либо исправить разделы командой:

sudo ntfsfix /dev/sdb1
sudo ntfsfix /dev/sdb2

И после этого смонтировать с полным доступом:

sudo mount -t ntfs /dev/sdb1 /newhdd1
sudo mount -t ntfs /dev/sdb2 /newhdd2

Отмонтировать можно так:

sudo umount -t ntfs /dev/sdb1 /newhdd1
sudo umount -t ntfs /dev/sdb2 /newhdd2

Смотрите также:
Управление разделами диска в Ubuntu используя fdisk

Обновление сертификата iRedMail

Приведу пример обновления сертификата на Ubuntu Server с установленным iRedMail.

Переключимся на root пользователя:

sudo -i

В установочной директории с iRedMail есть скрипт генерации сертификата, в моем случае он находится тут /root/iRedMail-0.9.7/tools/generate_ssl_keys.sh

Скопируем его в /etc/ssl/:

cp /root/iRedMail-0.9.7/tools/generate_ssl_keys.sh /etc/ssl/generate_ssl_keys.sh

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

nano /etc/ssl/generate_ssl_keys.sh

И изменить некоторую информацию, например:

TLS_COUNTRY=
TLS_STATE=
TLS_CITY=
TLS_ADMIN=

Сделаем файл исполняемым:

chmod +x /etc/ssl/generate_ssl_keys.sh

Запустим:

sh -e /etc/ssl/generate_ssl_keys.sh

После запуска будут сгенерированы файлы:

/etc/ssl/certs/iRedMail_CA.pem
/etc/ssl/private/iRedMail.key

Перезапустим веб-сервер apache2:

/etc/init.d/apache2 restart

Проверим сертификат (где mail.example.com — ваш домен):

openssl s_client -connect mail.example.com:443  | grep "Verify return code"

Установка и использование ioping

ioping — простой инструмент для мониторинга задержек ввода-вывода диска в режиме реального времени, аналогично как ping показывает задержку сети.

Установить в Ubuntu/Debian можно командой:

sudo apt-get install ioping

Приведу пример запуска с 10 запросами теста задержек к директории /tmp:

ioping -c 10 /tmp

Пример запроса с интервалом 0.2мс и увеличенным размером запроса:

ioping -i 0.2 -c 10 -s 1M -S 5M /tmp

Тест к диску:

ioping -R /dev/sda
ioping -RL /dev/sda

Опишу возможные опции запуска:
-c count (остановить после указанного количества запросов)
-w deadline (остановить после указанного количества времени)
-p period (отображать raw статистику после каждого указанного количества запросов)
-P period (отображать raw статистику после каждого указанного количества секунд)
-i interval (интервал между запросами в секундах)
-s size (размер запроса (4k))
-S size (размер рабочего набора)
-k (по завершению команды оставить (не удалять) рабочий файл ioping.tmp)
-L (последовательные операции вместо случайных, это также задаст размер запроса до 256k (как и -s 256k))
-A (асинхронный I/O)
-C (кешированный I/O)
-D (прямой I/O)
-B (не отображать информацию выполнения, она отобразится только по завершении команды в raw формате)
-q (не отображать информацию выполнения, она отобразится только по завершении команды)
-h (отображение краткой справки)
-v (просмотр версии)

Установка Redmine в Ubuntu

Redmine — серверное веб-приложение для управления проектами и задачами.

На тесте установлю Redmine в Ubuntu Server 16.04, в качестве базы данных будет использоваться MySQL, и так сначала установим необходимые компоненты:

sudo apt-get update
sudo apt-get install apache2 libapache2-mod-passenger
sudo apt-get install mysql-server mysql-client

Теперь выполним установку Redmine:

sudo apt-get install redmine redmine-mysql

Проверим установлен ли bundler gem:

sudo gem update
sudo gem install bundler

Откроем в текстовом редакторе файл конфигурации passenger.conf:

sudo nano /etc/apache2/mods-available/passenger.conf

И после строки:

<IfModule mod_passenger.c>

Добавим:

PassengerDefaultUser www-data

Создадим символическую ссылку на Redmine в директории веб сервера:

sudo ln -s /usr/share/redmine/public /var/www/html/redmine

Откроем файл конфигурации веб сервера в текстовом редакторе:

sudo nano /etc/apache2/sites-available/000-default.conf

И где нибудь внутри блока VirtualHost добавим:

<Directory /var/www/html/redmine>
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
</Directory>

Создадим файл Gemfile.lock и назначим его владельцем пользователя веб сервера www-data:

sudo touch /usr/share/redmine/Gemfile.lock
sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock

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

sudo service apache2 restart

Теперь Redmine установлен и его можно открыть по ссылке http://HOST/redmine
Где необходимо нажать Войти, ввести стандартный логин admin и пароль admin.

Все.