Skip to content


Настройка SELinux на веб-сервере

Однажды я решил, что дальше так жить нельзя. В смысле, что нужно перестать отключать SELinux. Далее описано что делать, чтобы и SELinux не отключать и чтобы сервер в бесполезную тыкву не превращался.

Понять куда копать обычно помогает командочка

  1. grep denied /var/log/audit/audit.log
  1. Если апач не стартует, рассказывая про permission denied для одного из конфиг-файлов, то в audit.log есть что-то типа:

    type=AVC msg=audit(1501594149.023:2543): avc: denied { getattr } for pid=14324 comm="httpd" path="/vhosts/conf/httpd.conf" dev="dm-2" ino=100663502 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file

    Лечится это так:

    1. semanage fcontext -a -t httpd_config_t "/vhosts/conf(/.*)?"
    2. restorecon -Rv /vhosts/conf
  2. Если в audit.log видим

    type=AVC msg=audit(1501594181.889:2546): avc: denied { write } for pid=14349 comm="httpd" name="logs" dev="dm-2" ino=90 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=dir

    То делаем:

    1. semanage fcontext -a -t httpd_log_t "/vhosts/logs(/.*)?"
    2. restorecon -Rv /vhosts/logs
  3. Если при попытке доступа к любому файлу сайта апач выдает 403, то в audit.log обычно видим

    type=AVC msg=audit(1501594423.783:2553): avc: denied { getattr } for pid=14390 comm="httpd" path="/vhosts/host1_html/index.html" dev="dm-2" ino=67148571 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file

    Лечится вот так:

    1. semanage fcontext -a -t httpd_sys_content_t "/vhosts/host1_html(/.*)?"
    2. restorecon -vR /vhosts/host1_html
  4. Если веб-приложению нужен доступ на запись к определённым файлам сайта, то вместо httpd_sys_content_t следует использовать httpd_sys_rw_content_t. Например, для WordPress почти всегда нужно сделать что-то типа:
    1. semanage fcontext -t httpd_sys_rw_content_t -a "/vhosts/host1_html/wp-content/uploads(/.*)?"
    2. semanage fcontext -t httpd_sys_rw_content_t -a "/vhosts/host1_html/wp-content/upgrade(/.*)?"
    3. restorecon -vR /vhosts/host1_html
  5. Если php не может отправить почту, в maillog-е "postfix/sendmail[14409]: fatal: open /etc/postfix/main.cf: Permission denied" и в audit.log видим

    type=AVC msg=audit(1502447179.083:18392): avc: denied { read } for pid=14409 comm="sendmail" name="main.cf" dev="dm-0" ino=17209129 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:postfix_etc_t:s0 tclass=file

    то делаем:

    1. setsebool -P httpd_can_sendmail=1

    Параметр -P означает, что это нужно сохранить перманентно. Не добавляйте, если не требуется делать такие изменения навсегда.

  6. Если php не может подключиться к mysql-базе и в audit.log такое

    type=AVC msg=audit(1501600773.859:125): avc: denied { name_connect } for pid=3082 comm="php-fpm" dest=3306 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:mysqld_port_t:s0 tclass=tcp_socket

    то делаем

    1. setsebool -P httpd_can_network_connect_db 1
  7. Если php не может подключиться к memcache и в audit.log такое

    type=AVC msg=audit(1532103361.735:38182): avc: denied { name_connect } for pid=12892 comm="php-fpm" dest=11211 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:memcache_port_t:s0 tclass=tcp_socket

    то делаем

    1. setsebool -P httpd_can_network_memcache=1
  8. Если вы решили перевесить SSH-сервер на какой-то нестандартный порт, например, 2229, то нужно не забыть сказать об этом селинуксу:
    1. semanage port -a -t ssh_port_t -p tcp 2229

    После чего проверка должна показать нечто такое:

    1. semanage port --list | grep -i ssh
    2. ssh_port_t                     tcp      2229, 22
  9. Если вы решили переместить базы данных mysql в какое-то нестандартное место (например, из /var/lib/mysql в /home/mysql), то нужно сделать
    1. semanage fcontext -a -t mysqld_db_t "/home/mysql(/.*)?"
    2. restorecon -Rv /home/mysql

В некоторых случаях даже после внимательного прочтения audit.log просветления не приходит и непонятно что нужно подкрутить. Тогда может помочь утилитка audit2allow (входит в состав пакета policycoreutils-python), которой надо скормить сточку с denied из audit.log. С помощью ключа -M задается какое-то произвольное имя, которое будет использовано для формирования файлов с результатами. В файле с расширением .te будет текстовая человекочитабельная версия, а в файле .pp - собственно нужный нам модуль, который затем инсталлируется с помощью команды semodule:

  1. grep denied  /var/log/audit/audit.log | tail -n1  | audit2allow -M exim-dovecot
  2.  
  3. ls
  4. exim-dovecot.pp exim-dovecot.te
  5.  
  6. file exim-dovecot.pp
  7. exim-dovecot.pp: SE Linux modular policy version 1, 1 sections, mod version 19, MLS, module name exim-dovecot\003
  8.  
  9. semodule -i exim-dovecot.pp

Размещено в категории *nix. Теги: , .

Как сохранить рассудок, работая на трудоголика: 10 советов по восстановлению баланса между личным и рабочим временем

Инфографику предоставила Wrike - Проект Менеджмент

Как сохранить рассудок, работая на трудоголика: 10 советов по восстановлению баланса между личным и рабочим временем

Размещено в категории Разное. Теги: , , .

Tier1 & Tier2 carriers list

Думаю, многие неоднократно встречали такие термины как Tier-1 Operator или Tier-1 Network. Обычно в том контексте, что раз "у нас есть пиринг с Tier-1" или "мы сами являемся Tier-1", то это очень круто, так как у нас самые маленькие пинги и самая высокая отказоустойчивость :) Многие эти бренды и так у всех на слуху, но мне показалось, что собрать их в одной статье будет полезно. Итак, встречайте, вот список провайдеров, гордо носящих статусы Tier-1 и Tier-2:

  • Abovenet
  • Atrato IP
  • Belgacom
  • Cable and Wireless
  • Cogent
  • Cox communications
  • Deutsche Telkom
  • France Telecom
  • Globalcrossing
  • Globalnet
  • Init7
  • Interoute
  • Iptransit
  • Jazztel
  • KPN telecom
  • Kabel Deutschland
  • Lambdanet
  • Level3
  • Megafon
  • NTT
  • Neo Telecoms
  • Portugal Telecom
  • RETN
  • Romania data systems
  • Tata telecommunications
  • Telecom Italia
  • Telefonica Deutschland
  • Telefonica Wholesale
  • Telia sonera
  • Transtelecom

Источник:
https://kb.leaseweb.com/display/KB/Network+types#Networktypes-Availabilitymatrix

UPDATE: Аналогичный список есть и в Википедии:
https://en.wikipedia.org/wiki/Tier_1_network
https://en.wikipedia.org/wiki/Tier_2_network

Размещено в категории Разное.

6 тенденций, определяющих условия труда в ближайшем будущем

Инфографику предоставила Wrike - Организация Управления Проектами

6 тенденций, определяющих условия труда в ближайшем будущем

Размещено в категории Разное. Теги: , , .