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

Настраиваем SARG - анализатор логов прокси-сервера SQUID.

При использовании прокси-сервера всегда есть желание увидеть эффективность его использования, проанализировать проходящий трафик. Простым и наглядным анализатором логов прокси-сервера SQUID является SARG.

ОБРАТИТЕ ВНИМАНИЕ!
Для работы SARG требуется установленный web-сервер (например, apache2 или lighttpd). Установите его самостоятельно.

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

sudo apt-get install sarg


Для настройки SARG откроем файл /etc/sarg/sarg.conf командой в терминале:

sudo nano /etc/sarg/sarg.conf


Найдём строчку:

access_log /var/log/squid/access.log


И исправим её на:

access_log /var/log/squid3/access.log

И там же раскомментируем строки:

#graphs yes
#graph_days_bytes_bar_color orange


Затем находим строку:

#output_dir /var/www/html/squid-reports

Раскомментируем её и исправим на:

output_dir /var/www/squid-reports

А соседнюю строчку:

output_dir /var/lib/sarg

Закомментируем.



Далее ищем строку:

charset Latin1


И меняем её на:

charset UTF-8


Сохраняем изменения в файле нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.

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

sudo /usr/bin/sarg


В браузере должна открываться страничка SARG по адресу (укажите свой IP-адрес):

http://IP_Вашего_сервера/squid-reports

По-умолчанию анализатор SARG создаст отчёт за весь доступный период (при больших объёмах лог-файлов - это может занять некоторое время). Чтобы не запускать SARG каждый раз вручную и сделать разбивку на ежедневные, еженедельные и ежемесячные отчёты - выполним следующее. Откроем на редактирование файл /etc/sarg/sarg-reports.conf командой в терминале:

sudo nano /etc/sarg/sarg-reports.conf


Найдём строку:

LOGOLINK="http://$(hostname)/"


И исправим её на:

LOGOLINK="http://$(hostname)/squid-reports"


Там же можно задать ссылку на свой логотип (параметр LOGOIMG). При этом имейте ввиду, что изображение логотипа должно находиться в пределах корневой папки веб-сервера (/var/www) и пути указываются относительно корня веб-сервера, а не файловой системы.

Теперь внесем расписание формирования отчётов в CRON. Для этого выполним в терминале:

sudo crontab -e


Переходим в конец открывшегося файла:


И дописываем строки:

00,15,30,45   * * * * /usr/sbin/sarg-reports today
00           22 * * * /usr/sbin/sarg-reports daily
30           22 * * 0 /usr/sbin/sarg-reports weekly
30           23 1 * * /usr/sbin/sarg-reports monthly


В зависимости от заданного по-умолчанию редактора для crontab сохраняем файл:
- если редактор nano - нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.
- если редактор mcedit - нажав <F2> и выходим нажав <ESC> и затем <0>.

После чего перезапускаем CRON командой в терминале:

sudo service cron restart


На этом настройка закончена.

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

Простая настройка прозрачного прокси-сервера на SQUID.

Есть масса задач, для решения которых применяют прокси-серверы. Чаще всего это организация доступа в Интернет и кэширование трафика. Для этой цели выполним простую настройку прозрачного прокси-сервера на SQUID.

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

sudo apt-get install squid


Перейдём в каталог /etc/squid3


Переименуем оригинальный конфигурационный файл squid.conf в squid.conf.original выполнив команду в терминале:

sudo mv squid.conf squid.conf.original


Удалим из оригинального конфигурационного файла все комментарии и пустые строки, сохранив результат в /tmp/squid.tmp. Для этого в терминале выполним:

sudo grep -v '^#' squid.conf.original | sed '/^$/d' > /tmp/squid.tmp


Затем переместим полученный файл /tmp/squid.tmp в /etc/squid3/squid.conf командой в терминале:

sudo mv /tmp/squid.tmp /etc/squid3/squid.conf


Внесём изменения в файл настроек прокси-сервера, открыв его в редакторе nano командой в терминале:

sudo nano /etc/squid3/squid.conf


Разрешаем доступ только из своей сети добавив строку в файл (укажите IP-адреса своей сети):

acl localnet src 172.16.8.0/21


Разрешаем http-доступ для localnet добавив в файл строку:

http_access allow localnet


Указываем порт прокси-сервера - 3128, IP-адрес интерфейса на котором будет работать прокси-сервер (в моём случае - 172.16.15.1) и режим "прозрачный прокси" исправив строку в файле на:

http_port 172.16.15.1:3128 transparent


Вписываем в файл директорию кэша и его параметры:  

cache_dir ufs /var/spool/squid3 4096 32 256


Указываем минимальный размер кэшируемого файла (кэширование слишком мелких файлов сильно нагружает дисковую подсистему прокси-сервера):

minimum_object_size 2 KB


Указываем максимальный размер кэшируемого файла (кэширование очень больших файлов требует много места малоэффективно):

maximum_object_size 65536 KB


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

via off
forwarded_for delete


Сохраняем изменения в файле нажав <Ctrl> + <o> и выходим нажав <Ctrl> + <x>.
Остановим прокси-сервер командой в терминале:

sudo service squid3 stop


Подготовим директорию кэша выполнив в терминале:

sudo squid3 -z


Теперь запустим прокси-сервер командой:

sudo service squid3 start


Описываемая в этой статье схема подразумевает работу прокси-сервера в "прозрачном" режиме. Для этого сервер на котором устанавливается прокси-сервер SQUID должен быть шлюзом по-умолчанию для компьютеров локальной сети, а настройки прокси у пользователей указывать не требуется. Такая простота развёртывания обеспечивается перехватом обращений на порт 80 (http) и принудительным перенаправлением их на порт прокси-сервера - 3128. Делается это средствами IPTABLES командой в терминале:

sudo iptables -t nat -A PREROUTING ! -d 172.16.8.0/21 -i eth1 -p tcp -m multiport --dport 80 -j REDIRECT --to-port 3128


Данное правило для таблицы NAT обеспечивает перенаправление пакетов TCP, пришедших на порт 80 сетевого интерфейса ETH1 (но не в сторону сети 172.16.8.0/21 - не будем кэшировать трафик в локальной сети) на порт 3128.

Настройки IPTABLES в данной статье подробно не рассматриваются, поэтому способ включения приведённого выше правила при загрузке сервера необходимо выбрать самостоятельно (это может быть команда в /etc/rc.local или отдельный скрипт на bash, либо правило прописанное средствами webmin).

ВНИМАНИЕ! ЕСТЬ ОГРАНИЧЕНИЯ!
Схема работы SQUID в режиме прозрачного прокси удобна скоростью развёртывания и отсутствием необходимости настройки у всех потребителей (например, при подключении к сети оборудования, где не предусмотрена настройка работы через прокси - это может быть хорошим решением).

Но есть и ряд ограничений:
- нет возможности применять какую-либо авторизацию (ни по логину/паролю, ни по учётным данным домена Windows);
- работает только HTTP (порт 80), а для работы других протоколов (https, ftp и т.д.) необходимо использовать NAT;
- учёт трафика возможен только для HTTP (порт 80) и только по IP-адресам потребителей.

Если Вам необходим классический непрозрачный прокси-сервер - не прописывайте привило в IPTABLES, а в файле настроек строка с IP и портом прокси должна быть указана без transparent:

http_port 172.16.15.1:3128 

При такой схеме настройки прокси нужно указывать у всех потребителей.

вторник, 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
 


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