Решение ошибки «Service virtual port has existed already»

Заметил однажды на Huawei MA5683T при добавлении ONT, а именно service port, следующую ошибку:

Failure: Service virtual port has existed already

Как и сообщает ошибка, service port уже прописан для данного ONT.
В моём случае просто была опечатка в ONT ID, случайно указал не тот, после указания правильного все прописалось.

А если необходимо прописать несколько service port для одного ONT, то смотрите мою статью — Добавление ONT с trunk портом на Huawei SmartAX MA5683T

Решение ошибки ERROR 1067 (42000) at line 211: Invalid default value for ‘blablabla’

Заметил однажды при импорте sql файла следующую ошибку:

ERROR 1067 (42000) at line 211: Invalid default value for ‘blablabla’

Она возникает в связи с тем что новые версии MySQL сервера используют строгий режим и такие параметры как NO_ZERO_DATE не позволяют вносить в базу значения даты как например ‘0000-00-00’.

Подключимся к mysql серверу:

mysql -u root -p

Выполним запрос который отобразит значения sql_mode:

show variables like 'sql_mode';

Скопируем строку с этими значениями и выйдем из mysql:

exit

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

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

У меня в файле не было sql_mode=, по этому в конце файла вставим строку со скопированными ранее значениями убрав из нее NO_ZERO_IN_DATE,NO_ZERO_DATE, в моё случае получилось следующее:

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

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

sudo service mysql restart

Все, теперь при импорте данной ошибки не должно быть.

Добавление 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"