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

Переполнение /var/spool/clientmqueue во FreeBSD

Во FreeBSD система генерирует достаточно много сообщений по работе системы, которые складываются в /var/spool/clientmqueue.
Если у Вас не настроена отсылка данных уведомлений, то постепенно раздел /var заполнятся, в результате чего можно получить кучу проблем, ну например прекращение нормальной работы mysql или ведение логов, или ошибки с tmp, сессиями. Если Вам не интересно получать кучу сообщений (либо настраивать их получение), то можно сделать это следующим образом... Читать далее Переполнение /var/spool/clientmqueue во FreeBSD

Восстановление потерянного пароля root в MySQL

Часто на новом месте работы приходится принимать автопилотные сервера с MySQL, где root пароли от системы еще известны, а вот у служб - уже нет. Рассмотрю смену пароля MySQL на платформе FreeBSD. Для других О решение в принципе аналогичное. Итак нам надо:

1. остановить сервер
/usr/local/etc/rc.d/mysql-server.sh stop
2. запустить в режиме игнорирования таблицы безопасности
mysqld_safe --skip-grant-tables &
3. законнектиться под рутом
mysql -u root
4. выбрать системную таблицу где хранятися пароли
use mysql
5. сменить пароль командой
UPDATE user SET Password=PASSWORD("Ваш новый пароль") WHERE User='root';
6. обновить привилегии
FLUSH PRIVILEGES;
7. выйти из mysql
exit
8. остановить mysq -демона в режиме игнора
/usr/local/etc/rc.d/mysql-server.sh stop
9. запустить в нормальном режиме
/usr/local/etc/rc.d/mysql-server.sh start

И все. Сервер работает, пароль root заменен.

Установка MySQL на FreeBSD

Краткий кукбук по установке MySQL на FreeBSD.

Ставим из портов (версия порта меняется), описано для примера 5.1:
cd usr/ports/databases/mysql51-server
make install clean
rehash

в etc/rc.conf добавляем
mysql_enable="YES"

выполняем инициализацию системных БД
cd /usr/local/
bin/mysql_install_db --user=mysql --ldata=/var/db/mysql

запускаем сервер
/usr/local/etc/rc.d/mysql-server start

меняем пассы рута, потому как по умолчанию пустышки
/usr/local/bin/mysqladmin -u root password пароль
/usr/local/bin/mysqladmin -u root -h ns1.mydomain.ru password пароль (если запущен слушать и на ns1.mydomain.ru)

обычно я оставляю только root пароль для localhost, остальное удаляю. Так как чаще всего mysql нужен только локально, то лишние учетные записи, равно как и работа демона на интерфейсах отличных от localhost не нужны.

если обновили mysql с предыдущей версии то запускаем mysql_upgrade сразу после обновления

Трансляция портов на FreeBSD с помощью rinetd

Для начала настраивается натирование на машине.
Должен работать демон natd

настройки в rc.conf (при условии что fxp0 - интерфейс смотрящий в инет)

gateway_enable="YES"
usbd_enable="YES"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="-f /etc/natd.conf"

в файлике natd.conf который надо создать (по умолчанию его нет) нужно чтобы лежало следующее:

same_ports yes
use_sockets yes

должен быть настроен файрвол как написано в основноых настройках. (с дивертом трафика)

потом ставится rinetd из /usr/ports/net/rinetd/
make
make install

добавляется в rc.conf
rinetd_enable="YES"

создается файл конфигурации в /usr/local/etc/rinetd.conf
где внутри пишутся правила вида:
195.16.32.26 110 192.168.0.5 110
195.16.32.26 25 192.168.0.5 25
этот пример показывает как перенаправить образение на 25 и 110 порты из внешнего интерфейса роутера на внутренний сервер почты.

можно вполне перенаправлять как для внутреннего так и для наружного траффика. например то же перенаправление для локальной почты
192.168.0.104 110 192.168.0.5 110
192.168.0.104 25 192.168.0.5 25

Трансляция портов на FreeBSD с использованием socket

Мы подразумеваем, что у нас внешний сервер - на FreeBSD. В нем минимум 2 сетевых карты. Как пробросить порты в этом случае:
Ставим из /usr/ports/sysutils/socket - стандартное make, make install

Добавляем для нашего порта, по которому мы будем ломиться со стороны Интернета соответствующую запись в /etc/services
ourpt8010 8010/tcp
ourpt8010 8010/udp

Теперь еще одна запись в /etc/inetd.conf
ourpt8010 stream tcp nowait root /usr/local/bin/socket socket 192.168.11.42 8010

перестартуем InetD по kill -1
Проверяем работоспособность