вторник, 5 ноября 2013 г.

DNS в Ubuntu 12.04

Перепечатка статьи + немного дополнений, про важные изменения в новой версии ubuntu. Взято с этого сайта
http://vasilisc.com/

В Ubuntu 12.04 произошли приятные изменения при разрешении имён в DNS. Рассмотрим два нововведения:
Переключение на resolvconf с файла /etc/resolv.conf
Dnsmasq теперь резолвер DNS по умолчанию в Desktop версии.

Переключение на resolvconf с файла /etc/resolv.conf

resolvconf это набор скриптов для управления разрешением имён в DNS. Наиболее важное для пользователей изменение то, что ручные изменения в /etc/resolv.conf будут потеряны и перезаписаны триггерами resolvconf. Вместо этого, resolvconf использует информацию из DHCP, от плагинов Network Manager и параметры dns-nameservers в /etc/network/interfaces, чтобы создать список DNS серверов и записать информацию в /etc/resolv.conf.
Возникают следующие вопросы:
  • Используется статическая IP конфигурация. Куда класть инфу о моих DNS серверах.
    DNS конфигурация для статических интерфейсов должна быть описана в соответствующих записях dns-nameservers, dns-search и dns-domain в /etc/network/interfaces
пример:
auto eth0
iface eth0 inet static
address 192.168.11.10
netmask 255.255.255.0
gateway 192.168.11.1
dns-nameservers 8.8.8.8 8.8.4.4
dns-search mydomain.com google.com

  • Как перекрыть конфигурацию resolvconf или добавить свои записи?
    Resolvconf хранит в /etc/resolvconf/resolv.conf.d/ каталоге файлы base, head, original и tail файлы. Всё хранится в resolv.conf формате:
    • base: используется, когда нет вообще никаких данных
    • head: используется для заголовка в /etc/resolv.conf
    • original: просто резервная копия оригинального resolv.conf во время установки resolvconf
    • tail: любая информация из этого файла добавляется в конец /etc/resolv.conf
(от себя добавлю еще то, что строки в файлах base, head, tail нужно писать полностью, в конце делая перевод строки, даже если будет одна строка или даже ели это просто комментарий)

  • Не хочу resolvconf. Как отключить resolvconf?
    Не рекомендуется отключать resolvconf, но ссылку /etc/resolv.conf можно заменить настоящим файлом /etc/resolv.conf. Но в будущих версиях Ubuntu вы можете получить множество несогласованных resolv.conf от разных сетевых программ.

Dnsmasq теперь резолвер DNS по умолчанию в Desktop версии.

В desktop установке, DNS сервер по умолчанию выставлен в 127.0.0.1, который указывает на управляемый NetworkManager dnsmasq сервер.
Это сделано для лучшей поддержки DNS у VPN пользователей, лучше обрабатывать DNS проблемы и восстанавливаться после сбоя.
Этот dnsmasq сервер НЕ кеширующий сервер созданный в целях безопасности, который снижает риски при отравлении DNS кеша или "прослушивание" DNS трафика в многопользовательской среде.
Большим преимуществом является то, что при подключении к VPN, вместо того, чтобы весь DNS трафик отправлять через VPN как раньше, отправлять только DNS запросы, связанные с подсетями и доменами, анонсированные VPN сервером. Это особенно важно из-за латентности связи VPN.
Для обработки сбоев DNS, Dnsmasq посылает DNS запросы к нескольким серверам DNS (если они будут указаны) и может обнаружить "мёртвых" и просто проигнорировать их. Если DNS "придёт в норму", то информация от него снова будет использована.
Сравните это с работой Libc при разрешении DNS имён, где состояние DNS сервера нельзя сохранить, так как libc это всего лишь библиотека, и поэтому каждое приложение будет испытывать таймауты при использовании "мёртвого" DNS сервера до переключения на следующий рабочий DNS.
Вопросы:
  • Как узнать какие DNS сервера я использую? Что-то типа cat /etc/resolv.conf.
    nm-tool даст информацию об ваших соединениях в NetworkManager, как если бы вы получили её через GUI.
    Ещё информацию можно получить из файла /run/nm-dns-dnsmasq.conf
  • Не хочу локальный резолвер у себя. Как отключить dnsmasq?
    В /etc/NetworkManager/NetworkManager.conf закомментируйте dns=dnsmasq строку и sudo restart network-manager.

понедельник, 4 ноября 2013 г.

Черный экран монитора в Ubuntu 12.04

После установки ubuntu-server 12.04 и перезагрузки перестал включаться монитор. Сообщение нет сигнала от видео карты. Такое происходило не всегда иногда загрузка проходила успешно. Системная плата ASUS P8 Intel i3200. Каждую неудачную загрузку ubunu  фиксировала как сбой и предлагалось исправление - восстановление системы при старте. По этой проблеме интернет полон запросов и ответов. В обще решение такое:

1. Открываем терминал и выполняем:
sudo apt-get install v86d

2. Далее отредактируем настройки Grub:
sudo gedit /etc/default/grub

3. Ищем в файле следующую строку:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
и меняем ее на такую:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset

4. Обновим конфигурацию Grub следующей командой:
sudo update-grub


v86d обеспечивает серверную часть для драйверов ядра, которым необходимо выполнить BIOS x86-код. Код выполняется в контролируемой среде, а результаты передаются обратно в ядро через NetLink интерфейс.

еще были такие варианты советов по настройке:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1440x900-24,mtrr=3,scroll=ywrap" правильно будет?

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1680x1050-24,mtrr=3,scroll=ywrap"

GRUB_CMDLINE_LINUX_DEFAULT=«quiet splash nomodeset ati.modeset=0 radeon.modeset=0»

GRUB_GFXMODE=1024x768


пример содержимого файла /etc/default/grub

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
GRUB_CMDLINE_LINUX=""

воскресенье, 13 октября 2013 г.

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

После проверки диска на ошибки перестала запускаться программа traffpro. При запуске сообщала что не могла подключиться к базе mysql. Принудительную проверку диска делал так - с помощью touch создал пустой файл в корне диска /forcefsck, который служит сигналом (флагом) для fsck, что нужно проверить диски после перезагрузки.

Из документации по mysql:

Распространенной проблемой при работе с базами данных mysql является потеря пароля рута по разного рода причинам. В этой статье будет описано как без потери данных можно быстро восстановить пароль root в mysql на примере систем Debian/Ubuntu.

Обычно при попытке запуска mysql такая проблема сопровождается сообщением:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

или

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Для смены пароля суперпользователя в mysql предварительно войдите в сеанс root в консоли:

su

Затем остановите запущенный сервис mysql:

service mysql stop

После команды:

mysqld_safe --skip-grant-tables &

вы сможете войти в mysql без пароля:

mysql -uroot mysql

В сеансе управления mysql введите следующие строки:

UPDATE user SET password=PASSWORD("your_password") WHERE user="root";
FLUSH PRIVILEGES;
EXIT

Где вместо your_password — введите ваш пароль.

После этого остается только запустить mysql:

/etc/init.d/mysql restart

вторник, 29 мая 2012 г.

Backup на Yandex Disk

Первоисточник - http://www.linuxatwork.ru/2012/05/13/mount-yandex-disk-ubuntu/
Тут тоже что то серьезно описано:
http://sites.google.com/site/grabliubuntu/sistema/fajlovye-sistemy-raid-i-lvm/webdove-yandeks-disk
 
Плюсы Yandex Disk это 10 ГБ. доступного места и самое главное - не нужно устанавливать дополнительные приложения как например для Dropbox. В ubuntu-server этот сервис можно подключить через файловый менеджер, с помощью WebDAV.

Устанавливаем утилиту davfs2
apt-get install davfs2

Создаем точку монтирования
mkdir /mnt/yandex

Для того чтобы не вводить каждый раз логин и пароль для доступа к Yandex Disk при каждом подключении, сохроняем эти данные в конфиг /etc/davfs2/secrets
echo "https://webdav.yandex.ru yandex_username yandex_password" >> /etc/davfs2/secrets

Команда монтирования
mount -t davfs  https://webdav.yandex.ru /mnt/yandex

Всё. Это просто супер использовать Yandex Disk для небольших архивов или сброса логов и статистики.


****

Чтобы не вводить пароль в командном файле в Linux есть еще один стандартный метод. Можно использовать утилиту expect. Пример:

#!/usr/bin/expect
spawn mount.davfs https://webdav.yandex.ru /mnt/yandex
expect "Username:"  # какую интерактивную команду обработать
send "xxxxxxx@yandex.ru\r"  # передать какое то  значение
expect "Password:"
send "xxxxxxx\r"
expect eof
exit 0

воскресенье, 29 апреля 2012 г.

Проба ubuntu 12.04

Сразу после выхода новой версии ubuntu 12.04 установил ее на virtualbox. Первая проблема - это вместо русских букв печатаются квадраты.
Решение сдесь - http://help.ubuntu.ru/wiki/russian_font_in_console
или на форуме http://forum.ubuntu.ru/index.php?topic=150770.0

Если кратко то необходимо сделать следующие:
Нужно включить поддержку фреймбуфера на этапе инициализации ядра.
Для этого:
1. в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:

sudo -i
echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf
exit

2. Обновить образ рамдиска периода инициализации ядра (initrd):

sudo update-initramfs -u


Поле этих манипуляций настройки сделанные командой:


sudo dpkg-reconfigure console-setup

Наконец начнут работать: Русским фонтами будет показываться все с самого начала - т.е. даже запрос на проверку дисков (возникающий в процессе инициализации ядра) будет выводится кириллицей, а не квадратами.

Возможно потребуется так же настроить и клавиатуру (раскладки, переключение раскладок и compose-key)3):

sudo dpkg-reconfigure keyboard-configuration

понедельник, 26 марта 2012 г.

Дополнительная настройка SSH



Произошел неприятный случай. Очень кратко - ставил интернет сервер, дело было в пятницу вечером. Были сделаны основные настройки, установлено подключение к интернет, ip выделенный. Пароль root был очень простой "111". Менять пароль не стал решив все доделать на следующий день. В субботу, с раннего утра сработало шестое чувство (это правда, по другому не могу сказать). Подключился к серверу из дома и обнаружил вторжение с Сербского сайта на мой сервер. Взлом был по ssh под root методом перебора паролей из файла, в котором примерно 800 тыс.вариантов паролей и логинов. Навредить ни чего не успели потому что система была чистой да и времени у них было мало - около четырех часов. Что делали - исследовали локальную сеть и пытались установить сервер сообщений. Виноват конечно только я. С таким отношением к безопасности это должно было когда нибудь случиться. Теперь перестраховываюсь и всегда делаю настройку авторизации доступа в ssh по ключу.


ssh-keygen -t rsa  - создаем сам ключ.

/home/user/.ssh - создаем каталог у пользователя и копируем туда публичный ключ под именем authorized_keys

дополнительная настройка прав

chown -R user /home/user/.ssh
chmod 700 /home/user/.ssh/
chmod 600 /home/user/.ssh/authorized_keys

Проверяю следующие настройки в файле /etc/ssh/sshd_config:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no - запрещена парольная аутентификация
PermitEmptyPasswords no - запрещены пустые пароли
AllowUsers user - разрешена работа только перечисленным пользователям (root нет)

Далее забираем с сервера приватный ключ и конвертируем его в putty.

sudo -s -H - получение постоянных прав root, если не хочется каждый раз вводить команду sudo

суббота, 29 октября 2011 г.

Администрирование пользователей

sudo -s -H   - переключится сессию в root
sudo passwd -l root   - заблокировать пользователя root
sudo passwd -u root  - разблокировать root
sudo -K  - гарантированно прервать сессию sudo
last - Последние логины в системы
who - кто в системе
w - кто в системе и что делают
users - кто подключился
usermod .. - управление пользователями
userdel -f test  - удаление пользователя test
uptime - время работы системы

команды утилиты acct
ac – печатает статистику о времени которое пользователи провели находясь в системе
sa – собирает информацию о выполненных командах и запущенных приложениях, пользователей и т.д.
lastcomm – смотреть последние выполненные команды
accton – включить\выключить сбор инфы

Для безопасности изменил настройки файла конфигурации ssh-сервера /etc/ssh/sshd_config
PermitRootLogin no - запрещаем пользователю root использовать ssh
AllowUsers - список пользователей (через пробел), кому разрешено удаленное подключение.

#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1