вторник, 11 марта 2014 г.

Полная поддержка русского языка в Ubuntu 12.04 Server

Те, кто устанавливал русскую версию Ubuntu 12.04 Server сталкивались с проблемой отображения русских букв в консоли (запрос на проверку дисков и другие сообщения выводятся квадратиками). Эту проблему можно легко решить раз и навсегда.

Чтобы избавится от квадратиков вместо русских букв нужно включить поддержку фреймбуфера на этапе инициализации ядра. Для этого в файле /etc/initramfs-tools/initramfs.conf необходимо дописать строчку

FRAMEBUFFER=Y

Выполним в терминале:

sudo nano /etc/initramfs-tools/initramfs.conf
  

Дописываем в конце файла строчку FRAMEBUFFER=Y    


После завершения редактирования файла сохраняем результат нажав <Ctrl + o> и выходим из редактора нажав <Ctrl + x>.  
  
Затем обновляем образ командой в терминале:   
  
sudo update-initramfs -u
  
  
Теперь выбираем кодировку и шрифт командой в терминале:
  
sudo dpkg-reconfigure console-setup    
  
  
Выбираем кодировку UTF-8, переходим к пункту <Оk> и нажимаем.   
  
  
На следующем экране выбираем набор символов "комбинированный - латинский; славянская кириллица; греческий", переходим к пункту <Оk> и нажимаем. 
 
  
Шрифт я рекомендую выбрать TerminusBold. Далее снова переходим к пункту <Оk> и нажимаем.     
  
  
На следующем экране просто нажимаем <Оk>   
  
  
Выбираем размер шрифта "16", переходим к пункту <Оk> и нажимаем.
  
  
В конце рекомендуется сделать перезагрузку для проверки полученного результата.

среда, 5 марта 2014 г.

Решаем проблему Failed to bring up

Копирование диска с установленной системой Ubuntu для быстрого клонирования - удобный способ сэкономить время. Им нередко пользуются системные администраторы с большим парком серверов. Замена вышедшей из строя материнской платы или сетевых карт на ПК с Ubuntu - тоже типовая задача обслуживания. Если при выполнении этих задач Вы столкнулись с сообщением об ошибке "Failed to bring up" при попытке перенастроить сетевые интерфейсы - то решить её весьма просто.

Для сохранения постоянными обозначений сетевых интерфейсов в Ubuntu применяется привязка по mac-адресам. Увидеть эти привязки можно в файле:

/etc/udev/rules.d/70-persistent-net.rules

После замены материнской платы или сетевых карт, либо запуске скопированного образа диска с установленной Ubuntu на другом ПК Вам необходимо удалить этот файл (новый файл будет сгенерирован при перезагрузке с изменёнными mac-адресами оборудования). В этом же файле Вы можете изменить очерёдность назначенных сетевых интерфейсов, например поменяв eth0 и eth1 местами.

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

Отправка почты с POSTFIX через внешний почтовый ящик

Практически всегда для получения статистики о работе сервера и других данных требуется возможность отправки с него электронной почты. Однако установка полнофункционального почтового сервера не всегда целесообразна. Настроим почтовый сервер POSTFIX для отправки почты через внешний почтовый ящик (например, GMAIL). Почтовый ящик Вы должны зарегистрировать заранее.

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

sudo apt-get install postfix
  

Затем заменим файл /etc/postfix/main.cf новым содержимым. Для этого выполним в терминале:

sudo rm /etc/postfix/main.cf  

  

sudo nano /etc/postfix/main.cf


Вставляем в файл main.cf следующий текст:

<-- начало текста -->

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no

relayhost = smtp.gmail.com:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

#Указываем каталог очереди для Postfix
queue_directory = /var/spool/postfix

#Указываем имя нашего хоста
myhostname = server.mydomain.local

# Указываем файл с превдонимами почтовых ящиков
alias_maps = hash:/etc/postfix/aliases

#Указываем, для каких доменов будем принимать почту
mydestination = server.mydomain.local, localhost.mydomain.local, mydomain.local, localhost
myorigin = /etc/mailname

#Указываем с каких сетей будем принимать почту
mynetworks = 127.0.0.0/8 192.168.0.0/24 [::1]/128 [fe80::]/64

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4


<-- конец текста -->
 


Исправляем в файле параметры: myhostname, mydestination, mynetworks на свои.
Сохраняем настройки нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

Создаём файл /etc/postfix/gmail_passwd выполнив в терминале:

sudo nano /etc/postfix/gmail_passwd



Заполняем файл следующей строкой:

smtp.gmail.com:587 mymail@gmail.com:mypassword



Не забываем изменить имя почтового ящика и пароль на свои.
Сохраняем настройки нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

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


sudo postmap /etc/postfix/gmail_passwd

  
sudo chmod 640 /etc/postfix/gmail_passwd*

 
sudo chown postfix.postfix /etc/postfix/gmail_passwd*


sudo /etc/init.d/postfix restart


Настройка закончена.
Теперь можно проверить отправку почты командой в терминале:

echo "Текст письма" | mail -s "Тема письма" mail@mail.ru
 


 Укажите свой текст, тему и почтовый ящик для отправки письма.  

среда, 26 февраля 2014 г.

Устанавливаем свой сервер точного времени - NTPD

Большое число протоколов и зависит от хорошей синхронизации времени между участниками информационного обмена. Можно синхронизировать часы своего компьютера с одним из публичных NTP-серверов, но ещё полезнее установить свой сервер точного времени и выполнять синхронизацию всех устройств в локальной сети с ним.

Для этой цели установим пакет NTPD, выполнив в терминале команду:

sudo apt-get install ntp

 
Настраиваем параметры в файле /etc/ntp.conf выполнив в терминале:

sudo nano /etc/ntp.conf



Для сохранения логов работы раскомментируем в открывшемся файле строку:

statsdir /var/log/ntpstats/


 
Откроем доступ к нашему серверу точного времени из своей локальной сети. Для этого добавляем в файл строку (указывая свою IP-сеть и маску):

restrict 192.168.131.0 mask 255.255.255.0 nomodify notrap

  
 
Сохраняем настройки нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

Перезапускаем NTPD выполнив в терминале команду:

sudo service ntp restart

 
Выполним первую принудительную синхронизацию. Для этого в терминале выполняем:

sudo ntpd -q

 
Сервер настроен и работает. Теперь его можно указывать для синхронизации времени устройств в Вашей локальной сети.

понедельник, 24 февраля 2014 г.

Ускоряем Интернет с помощью локального кэширующего DNS-сервера - PDNSD

Не секрет, что скорость открытия web-страниц в браузере зависит от ширины Вашего Интернет-канала.
Однако не меньшее влияние на этот процесс имеет работа DNS-серверов. Если предоставляемый Вам провайдером DNS-сервер сбоит или отвечает с большой задержкой - то никакой сверхширокий канал не улучшит ситуацию. Решить проблему можно установив свой локальный кэширующий DNS-сервер.

В качестве такого сервера мы будем использовать лёгкий и быстрый PDNSD. Установим его командой в терминале:

sudo apt-get install pdnsd
 

Перед Вами должно появиться окно с запросом о способе настройки pdnsd. Если такое окно не появилось - то скорее всего Вы уже устанавливали пакет pdnsd и удалили его через sudo apt-get remove pdnsd (при этом конфигурационные файлы пакета остались). В таком случае необходимо запустить перенастройку пакета командой в терминале:

sudo dpkg-reconfigure pdnsd


Итак, перед нами окно с запросом о способе настройки pdnsd.
  

 Т.к. мы хотим получить быстрое, стабильное и независящее от DNS-провайдеров решение - нам нужно использование корневых серверов. Перемещаемся клавишей <Tab> на пункт <Ok> и жмём <Enter>.


На следующем окне выбираем выбираем пункт "использовать корневые серверы" и затем клавишей <Tab> перемещаемся на пункт <Ok> и жмём <Enter>.

Проверим настройки запуска pdnsd. Набираем в терминале:

cat /etc/default/pdnsd
  

Проверяем наличие опций START_DAEMON=yes и AUTO_MODE=recurse.
  

В данном режиме пакет pdnsd будет брать настройки не из файла /etc/pdnsd.conf, а из файла /usr/share/pdnsd/pdnsd-recurse.conf
Откроем файл настроек pdnsd командой в терминале:

sudo nano /usr/share/pdnsd/pdnsd-recurse.conf



Мы увидим следующее:


Параметр perm_cache определяет сколько памяти в килобайтах будет отводиться под кеш (по умолчанию 2048).
Если Ваша система обслуживает целую сеть - рекомендуется увеличить это значение, например до 65536.
Ещё один важный для нас параметр server_ip (по умолчанию 127.0.0.1) - он определяет интерфейс на котором pdnsd будет принимать запросы. Для одиночного ПК можно оставить 127.0.0.1, но если Вы планируете быть быстрым DNS-сервером для своей сети - нужно указать Ваш сетевой интерфейс, например eth0.


Сохраняем настройки нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

По-умолчанию в Ubuntu применяется DNS-сервер dnsmasq. Его отличия от pdnsd в том, что он использует dns-сервера из файла /etc/resolv.conf и кэш держит только в оперативной памяти (при перезагрузке кэш теряется). Перед запуском pdnsd нам необходимо удалить dnsmasq, т.к. они оба по-умолчанию используют порт 53. Для удаления dnsmasq выполним в терминале:

sudo apt-get remove dnsmasq
 
 
Теперь нам нужно указать пакету resolvconf (именно он формирует файл /etc/resolv.conf) наш новый быстрый DNS-сервер. Для этого выполним в терминале:

sudo nano /etc/resolvconf/resolv.conf.d/base
 
 
Вписываем nameserver и IP-адрес (если Вы указываели server_ip=eth0 в файле /usr/share/pdnsd/pdnsd-recurse.conf) или 127.0.0.1 (если Вы указываели server_ip=127.0.0.1 в файле /usr/share/pdnsd/pdnsd-recurse.conf).
  
 
Сохраняем настройки нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

Обратите внимание:
- в файле настроек сетевых интерфейсов /etc/network/interfaces не должно быть строк с параметром dns-nameservers;
- в описываемой статье подразумевается использование статического IP-адреса на Вашем ПК.

Для чистоты эксперимента рекомендуется полностью перезагрузить ПК.

После перезагрузки убеждаемся, что в /etc/resolv.conf указан именно наш новый DNS-сервер. Выполним в терминале:

cat /etc/resolv.conf
 
 
Должен быть только наш DNS-сервер:
 
 
С помощью команды dig проанализируем ускорение dns-запросов. Выполним в терминале:

dig mail.ru
 
 
Получим вывод:
  

Затем ещё раз выполним тот же запрос:

dig mail.ru
 
 
И увидим другой результат:
 
 
Время запроса значительно сократилось. Аналогично можно попробовать потестировать обращения к другим доменам. После попадания запроса в кэш - ответ получается гораздо быстрее.

Текущее состояние и заполненность кэша pdnsd можно узнать выполнив в терминале:

sudo pdnsd-ctl status
 
 
Поднявшись в начало вывода можно увидеть данные о заполненности кэша: 
 
  
В приведённом примере это всего 62 записи, занявшие 0.0246% от выделенных нами под кэш 65536Кб.

Содержимое кэша pdnsd можно увидеть выполнив в терминале:

sudo pdnsd-ctl dump
 
 
Получим что-то вида:
 
 
Сбросить (очистить) кэш можно командой в терминале:

sudo pdnsd-ctl empty-cache
 
 
Но делать это просто так не стоит, т.к. именно накопленный кэш - ускоряет наши dns-запросы.

пятница, 21 февраля 2014 г.

Как легко пробросить порт с удалённого хоста на локальный через ssh?

Для упрощения организации проброса порта с удаленного хоста на локальный через ssh-туннель создан скрипт - portssh.

Данный скрипт выполняет проброс порта RPORT удаленного хоста HOSTNAME через ssh-туннель на порту SSHPORT под пользователем USERNAME на локальный порт LPORT.

Использование:
portssh [USERNAME@]HOSTNAME RPORT LPORT SSHPORT

Для работы скрипта на удалённом хосте должен быть установлен openssh-server.

Скопируйте скрипт в удобное Вам место, сделайте его исполняемым и создайте на него линк в папке /usr/bin. Например, если Вы расположили скрипт portssh.sh в папке /home/valery/MyScripts, то выполните в терминале:

chmod +x /home/valery/MyScripts/portssh.sh
cd /usr/bin
sudo ln -s /home/valery/MyScripts/portssh.sh portssh

Для получения справки по использованию скрипта запустите его просто набрав в терминале:

portssh

суббота, 15 февраля 2014 г.

Отключаем "Waiting up to 60 more seconds for network configuration..."

Если Вы в Ubuntu столкнулись с паузой "Waiting up to 60 more seconds for network configuration..." при старте ПК - то её можно отключить. Часто причиной появления данной паузы является невозможность получить сразу при старте ПК IP-адрес на одном из интерфейсов. Если ОС у Вас нормально работает с сетью и раздражает только пауза при её старте, то решение таково:

Запускаем терминал и комментируем в файле /etc/init/failsafe.conf две строчки с параметрами "sleep 40" и "sleep 59":

sudo nano /etc/init/failsafe.conf


Должно получиться так: