Ответы пользователя по тегу Системное администрирование
  • Можно ли глобально в настройках Apache редиректить по User-agent?

    @shuraosipov
    httpd.apache.org/docs/2.0/misc/rewriteguide.html
    RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/3.*
    RewriteRule ^foo\.html$         foo.NS.html          [L]
    
    RewriteCond %{HTTP_USER_AGENT}  ^Lynx/.*         [OR]
    RewriteCond %{HTTP_USER_AGENT}  ^Mozilla/[12].*
    RewriteRule ^foo\.html$         foo.20.html          [L]
    
    RewriteRule ^foo\.html$         foo.32.html          [L]
    Ответ написан
  • Какие лучшие практики настройки SSH для вебсервера?

    @shuraosipov
    По воводу SSH
    1. запретить ssh login для root
    2. изменить порт, на котором работает sshd c 22 на любой другой.
    3. явно указать в конфиг файле, что будет использоваться ssh version 2.
    4. ограничить доступ по SSH только для конкретных пользователей (директива AllowUsers).
    5. использовать KeyBased Authentication с сильным ключом.
    6. В iptables разрешить доступ по ssh/sftp только с определенных ip адресов.
    7. Используй chroot jails для пользователей, которые будут логиниться по ssh/sftp.

    Что касается прав доступа и вебсервера:
    1. Создать учетную запись (sftp_uploader), которая будет использоваться для загрузки и обновления файлов на веб сервере.
    2. Создать отдельную группу (site_operations), выдать группе права на папку с картинками /var/www/pictures
    3. Добавить в группу пользователя site_operations и www-data.
    4. Выставить права chmod -R 2770 /var/www/pictures. 2 означает SGID. Все файлы, которые будут изменяться/добавляться в папке /var/www/pictures будут иметь ID группы site_operations. Так как пользователи www-data и sftp_uploader состоят в этой группе, то оба аккаунта будут иметь доступ к файлам, также не потребуется переустанавливать права доступа.
    5. Для предоставлния прав доступа вместо группы можно использовать ACL.
    6. Для пользователя www-data изменить дефолтный shell на /sbin/nologin

    Общесистемные:
    1. Дроп ICMP пакетов (не отвечать на ping)
    2. Обновить ядро, yum.
    3. Держать как можно меньше софта на машине.
    Ответ написан
  • Администрирование Linux - актуально ли?

    @shuraosipov
    Если есть желание учиться и развиваться технически я бы посоветовал следующее:

    1. Учи английски - необязательно говорить, но читать ты просто обязан. огромное количество ресурсов (книги, курсы и т.п.) гораздо проще читаются и воспринимаются от первоисточника. Также не забывай про огромное комьюнити. Не лишай себя возможности получить знания, только за счет того, что ты не знаешь язык.
    2. Учи матчасть. Так как тема топика удаленная работа, то учи скриптовые языки - bash, perl, python, ruby.
    3. Изучай основы: сети, операционные системы, протоколы и т.д. В конечном счете все сводится к основам.
    4. Выбери себе "любимую ОС" - debian, centos... whatever. Изучи ее. Подготовься к сертификации (rhsca, rhce...). Сама по себе сертификация ничего не значит, но в ходе подготовки ты выучишь базовые понятия, как и что работает, будешь иметь общее представление о системе.
    5. Практикуйся. Elance и тому подобные ресурсы помогут найти примеры конкретных задач.
    6. Смотри курсы (Яндекс КИТ, eDX, youtube каналы).
    7. Замечательный Technical Development Guide от Google - www.google.ru/about/careers/students/guide-to-tech...
    8. Так как времени всегда не хватает и приходится работать в цейтноте обрати внимание на time management и GTD техники. Мне очень нравится "Time Management для системных администраторов" Лимончелли.

    Немного банальности. Выбери то, что тебе нравится и практикуйся в этом.

    Успехов.
    Ответ написан