Архив рубрики: FreeBSD

Добавление swap в FreeBSD.

Создаем файл подкачки (swap file) необходимого размера. В нашем случае 2 Гб.

dd if=/dev/zero of=/usr/swap0 bs=1m count=2048

Задаем права на файл — «никто кроме нас».

chmod 0600 /usr/swap0

В файл /etc/fstab добавляем строку.

md99 none swap sw,file=/usr/swap0,late 0 0

Активируем файл подкачки.

swapon -aL

Отсюда.

sendmail STARTTLS=server: file /etc/mail/certs/dh.param unsafe: No such file or directory

Имеем ошибку вида:

STARTTLS=server: file /etc/mail/certs/dh.param unsafe: No such file or directory

Лечим.

cd /etc/mail/certs
openssl dhparam -out dh.param 4096

Операция занимает достаточно продолжительное время.

MySQL 5.7 set default root password on FreeBSD

Создаем файл /root/mysql-init следующего содержания:

UPDATE mysql.user
  SET authentication_string =
    PASSWORD('PaSsWoRd'),
  password_expired = 'N'
  WHERE User = 'root' AND
    Host = 'localhost';

в файл /etc/rc.conf

mysql_args="--init-file=/root/mysql-init"

Перезапускаем сервис mysqld командой:

service mysql-server restart

Удаляем или комментируем строку в файле rc.conf: mysql_args и еще раз перезапускаем mysql.
Заходим с установленным нами паролем или используем файл /root/.my.cnf

FreeBSD on ZFS. Installing updates…chflags: ///var/empty: Read-only file system

При обновлении FreeBSD получаем ошибку:

Installing updates...chflags: ///var/empty: Read-only file system

Смотрим:

# zfs get readonly zroot/var/empty
NAME             PROPERTY  VALUE   SOURCE
zroot/var/empty  readonly  on      local

Решение:

# zfs set readonly=off zroot/var/empty

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

# zfs set readonly=on zroot/var/empty

Решение подсмотрено здесь.

FreeBSD sendmail: 403 4.7.0 TLS handshake failed.

Имеем FreeBSD 10.1 RELEASE-p5. В логе следующая ошибка:

# tail -3 /var/log/maillog
Jan 30 10:36:34 server sm-mta[35469]: STARTTLS=client, error: connect failed=-1, reason=sslv3 alert unexpected message, SSL_error=1, errno=0, retry=-1
Jan 30 10:36:34 server sm-mta[35469]: ruleset=tls_server, arg1=SOFTWARE, relay=relay.domain.net, reject=403 4.7.0 TLS handshake failed.
Jan 30 10:36:34 server sm-mta[35469]: t0U7KXsS092332: to=<root@domain.net>, delay=00:16:01, xdelay=00:00:01, mailer=relay, pri=120694, relay=relay.domain.net. [10.0.0.1], dsn=4.0.0, stat=Deferred: 403 4.7.0 TLS handshake failed.

В файл /et/mail/access добавляем:

Try_TLS:domain.net<---TAB--->NO

Между именем домена и NO обязательно должен быть символ табуляции, а не пробел. Затем:

cd /etc/mail/
make maps
make stop
make start

Убеждаемся что все работает как нужно:

Jan 30 14:52:25 r00zabbix sm-mta[77900]: ruleset=try_tls, arg1=relay.domain.net, relay=relay.domain.net, reject=550 5.7.1 <root@domain.net>... do not try TLS with relay.domain.net [10.0.0.1]
Jan 30 14:52:25 server sm-mta[77900]: t0U7KXsS092332: to=<root@domain.net>, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30699, relay=relay.domain.net. [10.0.0.1], dsn=2.0.0, stat=Sent (38309900 message accepted for delivery)

Первоначальная настройка MySQL

Установка MySQL.

# pkg search mysql | grep server
geoserver-mysql-plugin-2.6.1
mysql51-server-5.1.73_2
mysql55-server-5.5.41
mysql56-server-5.6.22
# pkg install mysql56-server-5.6.22

или

cd /usr/ports/databases/mysql56-server/
make install clean

Разрешаем запуск MySQL сервера.

 
echo 'mysql_enable="YES"' >> /etc/rc.conf

Настраиваем файл конфигурации /var/db/mysql/my.cnf

[mysqld]
long_query_time = 2
key_buffer_size = 512M
max_allowed_packet = 2M
sort_buffer_size = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 256M
thread_cache_size = 16
query_cache_size = 256M
query_cache_type=1
query_cache_limit=1048576
max_connections = 512
tmp_table_size=256M
max_heap_table_size=128M
innodb_file_per_table
innodb_buffer_pool_size = 512M
innodb_log_buffer_size = 32M
innodb_flush_method=O_DIRECT
innodb_doublewrite = false
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
character-set-server=utf8
collation-server=utf8_bin
default-storage-engine=INNODB
max_allowed_packet=100M
innodb_log_file_size = 256M

Запускаем.

# /usr/local/etc/rc.d/mysql-server start

Меняем пароль root.

# mysql
mysql> use mysql;
mysql> update user set password=PASSWORD("password") where User='root';
mysql> flush privileges;
mysql> quit

Дабы при работе с mysql не вводить каждый раз пароль:

mysql -uroot -ppassword

Создаем файл /root/.my.cnf следующего содержания:

[client]
password       = password

Для пущей безопасности:

chmod 600 /root/.my.cnf

Создание базы данных name_database и пользователя user_database имеющего полные права для работы только с этой базой данных:

CREATE DATABASE name_database CHARACTER SET utf8;
CREATE USER 'user_database'@'localhost' IDENTIFIED BY 'user_password';
GRANT ALL PRIVILEGES ON name_database.* TO 'user_database'@'localhost';
flush privileges;

Настройка Unbound в ОС FreeBSD

В ОС FreeBSD начиная с версии 10.0-RELEASE DNS сервер заменен с BIND на Unbound. Настраиваем.
Разрешаем запуск.

echo 'local_unbound_enable="YES"' >> /etc/rc.conf

Инициализируем первоначальную настройку.

# /etc/rc.d/local_unbound onesetup
Performing initial setup.
Extracting forwarders from /etc/resolv.conf.
original /var/unbound/forward.conf saved as /var/unbound/forward.conf.20150128.112451
/var/unbound/lan-zones.conf not modified
/var/unbound/unbound.conf not modified
/etc/resolvconf.conf not modified
original /etc/resolv.conf saved as /etc/resolv.conf.20150128.112451

/etc/resolv.conf
nameserver — IP адрес сервера имён. Сервера опрашиваются в порядке описания. Максимальное количество адресов — три.
search — список доменов для поиска с помощью hostname lookup. Обычно определяется доменом, в котором находится компьютер.
domain — домен, в котором находится компьютер.
options edns0 — Использовать Extension mechanisms for DNS .
Опции search и domain нельзя использовать совместно.

search localdomain
nameserver 127.0.0.1
options edns0

Содержимое файла

cat /var/unbound/unbound.conf
server:
verbosity: 0
port: 53
interface: 127.0.0.1                 # Интерфейс на котором будем слушать 53-й порт
interface: 192.168.1.1               #
interface-automatic: no              # Определять интерфейсы автоматически мне не нужно
outgoing-interface: xxx.xxx.xxx.xxx  # ip адрес интерфейса, который подключен к интернет
access-control: 192.168.1.0/24 allow
access-control: ::1 allow
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
username: unbound
directory: /var/unbound
chroot: /var/unbound
pidfile: /var/run/local_unbound.pid
auto-trust-anchor-file: /var/unbound/root.key
hide-version: yes

Лог в отдельный файл — правим /etc/syslog.conf

!unbound
*.*                                             /var/log/unbound.log

Создадим лог файл.

touch /var/log/unbound.log

Ротация логов /etc/newsyslog

/var/log/unbound.log                    644  7     *    $D0   B    /var/run/local_unbound.pid

Пример файла зоны.

local-zone: "domain.net." static
        local-data: "domain.net. 86400          IN SOA ns.domain.net. noc.domain.net. 2015012815 86400 7200 604800 86400"
        local-data: "domain.net. 3600           IN NS           ns.nic.ru."
        local-data: "doamin.net. 3600           IN NS           ns0.nic.ru."
        local-data: "domain.net. 3600           IN NS           ns1.nic.ru."
        local-data: "domain.net. 3600           IN MX 10        mx01.domain.net."
        local-data: "domain.net. 3600           IN A            192.168.0.1"
        local-data: "www                        IN A            172.16.0.1"
        local-data: "mx1                        IN A            10.0.0.1"
        local-data: "mail                       IN CNAME        mx1"
        local-data: "smtp                       IN CNAME        mx1"
        local-data: "support                    IN A            1.2.3.4"

FreeBSD 10.1 RELEASE и XenTools

Два варианта установки XenTools для FreeBSD 10.1 RELEASE.

Вариант 1.

portupgrade fetch extract
cd /usr/ports/sysutils/xe-guest-utilities
make install clean
echo 'xenguest_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/xenguest start

Вариант 2.

pkg install xe-guest-utilities
echo 'xenguest_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/xenguest start

sm-mta: STARTTLS=server, error: cannot read DH parameters(/etc/mail/certs/dh.param)

Имеем FreeBSD 10.1 RELEASE. В логах при старте sendmail видим ругань вида:

Dec 26 09:32:03 server sm-mta[66555]: STARTTLS=server, error: cannot read DH parameters(/etc/mail/certs/dh.param): error

Исправляем:

openssl dhparam -out /etc/mail/certs/dh.param -2 1024