Диагностика почтовых протоколов

Эта статья о методах диагностики почтовых протоколов. Она предназначена для начинающих администраторов, желающих больше узнать об инструментах для быстрого тестирования авторизации/отправки/приема почтовых сообщений как сервером, так и клиентом. Но также может служить хорошей памяткой соответствующих команд и для более опытных администраторов.
Read the rest of this entry »

Настройки LAMP в разных дистрибутивах

Ниже представлена таблица с основными настройками LAMP в зависимости от используемого дистрибутива.

RHEL/CentOS(5,6,7)FedoraLinux20 Debian(6,7)Ubuntu(12.04,14.04) OpenSUSE
Apache
Файлы и каталоги настроек /etc/httpd/conf/httpd.conf

/etc/httpd/

/etc/sysconfig/httpd

/etc/apache2/apache2.conf

/etc/apache2/

/etc/default/apache

/etc/apache2/httpd.conf/etc/apache2/

/etc/sysconfig/apache2

ServerRoot /etc/httpd/ /etc/apache2/ /etc/apache2/
DocumentRoot /var/www/html/ /var/www/ /srv/www/htdocs/
ErrorLog /var/log/httpd/error_log /var/log/apache2/error.log /var/log/apache2/error_log
AccessLog /var/log/httpd/access_log /var/log/apache2/access.log /var/log/apache2/access_log
user/groupuid/gid apache/apache48/48 www-data/www-data33/33 wwwrun/www30/8
Mysql
Файлы икаталоги настроек /etc/my.cnf/etc/my.cnf.d/

/etc/mysql/my.cnf

/etc/mysql/

/etc/my.cnf/etc/mysql/
datadir /var/lib/mysql/ /var/lib/mysql/ /var/lib/mysql/
log-error/general_log_file /var/log/mysqld.log или /var/log/mariadb/mariadb.log /var/log/daemon.log (улучшение debian) /var/log/mysql/mysqld.log
log /var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysqld_multi.log
Socket /var/lib/mysql/mysql.sock /var/run/mysqld/mysqld.sock /var/run/mysql/mysql.sock
PHP
Файлы икаталоги настроек /etc/php.ini/etc/php.d / /etc/php5/apache2/php.ini/etc/php5/ /etc/php5/apache2/php.ini/etc/php5/
session.save_path CentOS56:/var/lib/php/session

CentOS7, FedoraLinux:/tmp

/var/lib/php5 /var/lib/php5

 

Команды для быстрого просмотра использованных опций при компиляции и текущих действующих настроек. Обратите внимание, что для apache в зависимости от версии некоторые команды могут не работать. Mysql может потребовать ввода логина и пароля. Кроме того, и для mysql и для php некоторые текущие настройки в режиме запроса из командной строки и через обращение к вебсерверу могут отличаться.
apache

apachectl -l
apachectl -t -D DUMP_RUN_CFG
apachectl -t -D DUMP_MODULES
apachectl -t -D DUMP_VHOSTS

mysql
mysql_config
mysql -e ‘show variables’
mysql -e ‘show status’

php
php-config
php -r ‘phpinfo();’ | less

Таблицу в формате pdf можно скачать здесь: ftp://ftp.ssnab.net:/pub/docs/configs.pdf

 

Исправление уязвимости shellshock для устаревших систем

Для дистрибутивов с действующей поддержкой уязвимость Shellshock устраняется простым обновлением пакета bash. Но если обновления уже не выпускаются, решение проблемы будет сложнее. Рабочих вариантов всего два – обновлять bash другим способом (брать из стороннего репозитория или компилировать самостоятельно) или отказываться от bash в пользу другого shell-интерпретатора.
Read the rest of this entry »

Работа с сервисами в linux.

Не смотря на активное внедрение systemd в linux дистрибутивах, другие системы инициализации по-прежнему используются, в основном это, конечно, upstart и sysvinit. Все со своими особенностями размещения конфигурационных файлов и утилитами для управления сервисами. Ниже приведена таблица соответствия основных операций в разных дистрибутивах.

 

Система Дистрибутивы Основные файлы
и каталоги для настроек
Листинг сервисов Активация/Деактивация/Уровни запуска Операции над
сервисами
sysvinit(rhel based) RHEL/CentOS 5-FedoraLinux 8-Mageia1

Mandriva2010-

ArchLinux 2012-09-

/etc/init.d//etc/rc.d//etc/inittab chkconfig –list chkconfig –level NN
service off|onchkconfig –add|–del
service
service service
start|stop|restart|status/etc/init.d/service
start|stop|restart|status
sysvinit(debian based) Debian7-Ubuntu 6.06- /etc/init.d//etc/rc.d//etc/init/

/etc/inittab

rcconfsysv-rc-confrcconf –list

sysv-rc-conf –list

(устанавливается
отдельно)

update-rc.d -f service
defaultsupdate-rc.d -f service
removeupdate-rc.d service stop
20 2 3 4 5 .update-rc.d service start
20 3 4 5 .
invoke-rc.d service
start|stop|restart|status/etc/init.d/service
start|stop|restart|status
upstart RHEL/CentOS6FedoraLinux 9-14Ubuntu 6.10-14.10 /etc/event.d//etc/init.d//etc/init/ service –status-all - start|stop|restart|status
service
systemd RHEL/CentOS7FedoraLinux15+Debian 8

Mageia 2+

Mandriva 2011+

openSUSE 12.1+

ArchLinux 2012-10+

/etc/systemd systemctl list-unit-files
| grep enabledsystemctl list-unit-files
–type=servicesystemctl list-units
–type=servicels
/etc/systemd/system/*.wants
systemctl enable|disable
service
systemctl
start|stop|restart|status service
openrc Gentoo (используется
вместе с init)
/etc/init.d//etc/runlevels rc-statusrc-update -s rc-update add|del rc-service service
start|stop|reload/etc/init.d/service
start|stop|reload
initng - /etc/initng/ ng-update show ng-update ngc
start|stop|restart|status service

Таблицу можно скачать здесь: ftp://ftp.ssnab.net/pub/docs/sysinit.pdf

 

Менеджеры пакетов

В современных дистрибутивах Linux программное обеспечение поставляется в пакетах — архивах с исполняемыми файлами, библиотеками, файлами настроек и прочим, необходимым для работы программы. Пакеты обычно имеют контрольные суммы, которые используются для проверки целостности пакетов и цифровые подписи, позволяющие убедиться в его подлинности.
Разные дистрибутивы могут использовать разные форматы пакетов, но общая схема их организации примерно одинакова, также, как и обычный перечень операций, которые над ними выполняются. Вместе с тем синтаксис работы от одного к другому может существенно отличаться и упомнить все отличия довольно сложно.

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

 

Дистрибутив Версия Формат пакетов Локальный менеджер
пакетов
Стандартный менеджер
пакетов
Графические
менеджеры
Настройка
репозиториев
CentOS <4 .rpm rpm up2date pirut
или PackageKit
/etc/sysconfig/rhn/
>4 yum /etc/yum.repos.d/
RHEL <5 up2date /etc/sysconfig/rhn/
>5 yum /etc/yum.repos.d/
Fedora Linux <4 up2date /etc/sysconfig/rhn/
>4 yum /etc/yum.repos.d/
OpenSuse * zypper,rug yast /etc/zypp/repos.d/
Mandriva/Mageia * urpmi gurpmi,rpmdrake,smart /etc/urpmi/
Debian * .deb dpkg,dselect apt-get,aptitude synaptic,software-center /etc/apt/source.list
Ubuntu *
ArchLinux * .pkg pacman pacman pacman GUI front-ends /etc/pacman.d/mirrorlist
Gentoo * .tbz2 emerge emerge(portage) Porthole Переменная SYNC
в /etc/make.globals для выбора зеркала в старых
версиях. ПеременнаяGENTOO_MIRRORS в/etc/portage/make.conf/etc/portage/repos.confв новых версиях.

 

Менеджер Обновить
информацию из репозиториев
Обновить
систему
Поиск Установка Удаление
yum make-cacheсheck-update update search install remove,
erase
apt apt-get
update
apt-get
upgrade
apt-cache search apt-get
install
apt-get
remove
up2date -u, –update -u, –update –showall | grep package -i,
–install
Нет
опции. Используется rpm -e
zypper refresh, ref update,
up
search, se install,
in
remove,
rm
pacman -Sy -Syu -Ss -S -R,
–remove
urpmi urpmi.update
-a
urpmi –auto-selecturpmi –auto-update urpmq -i urpmi urpme
emerge emerge –sync emerge -uDN world emerge –search|equery emerge
пакет
>emerge
-C,-cav

 

Действие RPM DPKG
Список
установленных пакетов
rpm -qa dpkg -l
Список установленных
пакетов, отсортированных по размеру
rpm -qa –qf=’%{NAME}
%{SIZE}\n’ | sort -rnk2
dpkg-query -W
-f=’${Package;-50}\t${Installed-Size} ${Status}\n’ | grep -v
deinstall | sort -rnk2
Информация и
список файлов в установленном пакете
rpm -qi имя_пакетаrpm -ql имя_пакета dpkg -s| имя_пакета,
dpkg -p имя_пакетаdpkg -L имя_пакета
Информация
и список файлов в неустановленном
пакете
rpm -qpi файл_пакетаrpm -qpl файл_пакета dpkg -I файл_пакетаdpkg -c файл_пакета
Установить rpm -i файл_пакета dpkg -i файл_пакета
Обновить rpm -U файл_пакета dpkg -i файл_пакета
Удалить rpm -e имя_пакета dpkg -r имя_пакетаdpkg -P имя_пакета (вместе с файлами настроек)
Установить или
удалить, игнорируя зависимости пакета
rpm -i –nodeps файл_пакетаrpm -e –nodeps имя_пакета dpkg –force-all -i файл_пакетаdpkg –force-all -r файл_пакета (–ignore-depends
имя_пакета, –force-depends)
Поиск пакета,
которому принадлежит файл
rpm -qf путь к файлу dpkg -S путь к файлу из пакета
Проверить
целостность пакета
rpm -V файл_пакета debsums имя_пакета
Проверить
целостность всех пакетов в системе
rpm -Va debsums
Извлечь файлы
из файла пакета
rpm2cpio файл_пакета | cpio -ivd dpkg-deb -X файлdpkg -X файл каталог
Просмотр скрипта,
запускаемого при инсталляции пакета
rpm -q –scripts имя_пакета cat
/var/lib/dpkg/info/пакет.{pre,post}{inst,rm}
Посмотреть
список изменений в обновлении пакета
rpm -q –changelog имя_пакета gzip -dc
/usr/share/doc/пакет/changelog*.gz | less
Перенастроить
пакет
Необходимо
переустановить пакет

rpm -U файл_пакета

dpkg –configure пакет

 

Таблицы в pdf можно скачать здесь:

ftp://ftp.ssnab.net/pub/docs/managers1.pdf

ftp://ftp.ssnab.net/pub/docs/managers2.pdf

ftp://ftp.ssnab.net/pub/docs/managers3.pdf

 

Проблема одного зашифрованного диска в разных дистрибутивах Linux

При шифровании дисков с помощью dm-crypt (утилита cryptsetup), можно столкнуться с проблемой того, что диск, созданный и нормально использующийся в одном дистрибутиве Linux не получается использовать в другом дистрибутиве. Например, после апгрейда системы или при использовании экспортированного по iscsi диска на разных машиных.

При этом cryptsetup create на проблемной ОС выполняется нормально, и только при монтировании файловой системы происходит ошибка и сообщения такого вида:

[21922.459126] EXT4-fs (dm-0): ext4_check_descriptors: Block bitmap for group 0 not in group (block 425460162)!
[21922.459144] EXT4-fs (dm-0): group descriptors corrupted!

Проблема заключается в том, что разные версии cryptsetup могут использовать по умолчанию разные шифры. При этом на шифруемом диске не указывается информация о том, какой шифр используется.

Для решения описанной проблемы нужно на второй системе в явном виде указывать применяемый шифр. Узнать его можно проверив статус подключенного диска на первой системе:

# cryptsetup status sdc_secure
/dev/mapper/sdc_secure is active:
cipher:  aes-cbc-essiv:sha256
...

После этого для подключения диска на второй системе этот шифр нужно указать в параметрах cryptsetup:

cryptsetup -c 'aes-cbc-essiv:sha256' create sdc_secure /dev/sdc

java.security.AccessControlException при работа Java-приложение

При различных операциях с Java-приложениями в Debian/Ubuntu могут возникать ошибки доступа java.security.AccessControlException. Причина заключается в очень жесткой политике по умолчанию у Security Manager.

Можно проверить по документации, какие права доступа нужны для запуска и работы требуемого вам приложения и прописать их в java.policy для этого приложения. Как вариант с самой низкой безопасностью, можно выделить этому приложения полный доступ, добавив в java.policy:

grant codeBase "file:${catalina.base}/ПУТЬ_К_ВАШЕМУ_ПРИЛОЖЕНИЮ/-" {
  permission java.security.AllPermission;
};

См. также:

  • http://java-monitor.com/forum/archive/index.php/t-134.html
  • http://stackoverflow.com/questions/4689123/java-security-accesscontrolexception-access-denied-java-io-filepermission-usr
  • http://docs.oracle.com/javase/1.3/docs/guide/security/PolicyFiles.html
  • http://tomcat.apache.org/tomcat-6.0-doc/security-manager-howto.html

 

Новые тарифы для 1С-Битрикс

Представляем новые тарифы для 1С-Битрикс с готовыми  виртуальными машинами VMBitrix. Виртуальные машины настроены и оптимизированы специально для Bitrix, тарифы с большим количеством вычислительных ресурсов обеспечивают высокую производительность и скорость работы сайтов. При оплате за 1 год предоставляется дополнительная скидка 25%.

Все тарифы включают:
* Предустановленный образ VMBitrix
* Гарантированное выделение памяти и диска без оверселлинга
* Максимальная процессорная мощность в 4 ядра
* Подключение к узловой сети 1000 mbps full-duplex, 1 IP-адрес
* Разделяемое подключение к Интернет 100 mbps без ограничений
* Все полномочия администратора (root-доступ)
* Паравиртуализация на базе Xen и аппаратная виртуализация на базе Xen
* Соглашение об уровне обслуживания (SLA) с компенсацией
* Гарантированная доступность услуги более 99.5%
* Замена неисправного оборудования в течение 1 часа
* Сеть хранения данных (SAN)
* Зеркальное дублирование дисков RAID1
* Базовая техническая поддержка

Подробности на странице описания тарифов: http://www.truevds.ru/price?pricelist=bitrix_2

Пресет VMBitrix 4.1

Ввели в эксплуатацию новую версию пресета CMS Bitrix, основанную на образе «1C-Битрикс: Виртуальная машина», созданном разработчиками 1C-Битрикс. Это полностью настроенный, протестированный и адаптированный для оптимальной работы как с продуктами «1С-Битрикс», так и с любыми PHP-приложениями.

Ключевые компоненты:

  • 1C-Битрикс: Виртуальная машина 4.1
  • CentOS 6
  • Nginx 1.2.4
  • Apache 2.2.15
  • PHP 5.3.3
  • MySQL 5.1.61

Новая версия пресета Ruby on Rails production

Выпустили новую версию пресета Ruby on Rails production.

Пресет использует Nginx в качестве веб-сервера, сервер Rails/Rack приложений – Passenger (mod_rails), интегрирован в Nginx. Установленный интерпретатор ruby – 1.9.3 (отличается от 1.8 значительным ускорением работы и удобными добавлениями в синтаксис).

Ключевые компоненты:

  • Debian 6
  • Ruby 1.9.3
  • Rails 3.2.8
  • Passenger 3.0.17
  • Nginx 1.2.3