Первые меры безопасности во FreeBSD

Операционные системы 09.04.2010

Не так давно попросили меня написать о первых мерах безопасности во FreeBSD. Я конечно протянул время, но статью всетаки публику, авось кому пригодиться.

Закрываем SSH

Отредактируйте в файле /etc/ssh/sshd_config следующие строки:

# Будет добавлено к названию версии, посмотреть можно через telnet на 2244 порт
VersionAddendum SuperPuperSSH-9.8.7
# Указываем порт который будем слушать, главное чтобы он отличался от 22-го,
# так как много тупых ботов подбирающих пароли на 22 порт
Port 2244
# Внешний адрес моей машины
ListenAddress 82.146.63.195

И еще рекомендую закрыть доступ для пользователя root, все в том же sshd_config закомментируйте строку:

#PermitRootLogin yes

От перебора паролей по SSH вам может помочь DenyHost.

Читать полностью »

Восстановление GRUB

Операционные системы 06.04.2010

Удалось мне немного поломать граб, из-за того что я удалил перед ним стоящий раздел с NTFS, ибо Windows мне уже не нужен. Что и следовало ожидать — появилась проблема:

error: unknown filesystem
grub rescue >

Читать полностью »

Ubuntu. Рабочее окружение Nginx+PHP5.3+FPM+MySQL

Операционные системы 16.03.2010

Собирали с васяцом на выходных рабочее окружение на своих нетбуках и решили юзать PHP 5.3 и PHP-FPM. Для себя я решил ставить все наиболее простым способом, если это возможно, поэтому сначала прибегаю к apt-get, а потом уже к сборке из сорцов. Кстати, если у вас уже установлен какой-либо PHP, то предварительно удалите его (libapache2-mod-php5 в том числе, если он есть).

Вообще эта инструкция применительна и к FreeBSD, просто вместо «apt-get install» используйте установку из портов.

Добавляем пользователя

Для начала создадим пользователя и группу www, от которой будет работать Nginx и PHP.

addgroup www
adduser --shell /usr/sbin/nologin --no-create-home --ingroup www --disabled-password --disabled-login www

Читать полностью »

FreeBSD. Svnserve — запуск Subversion без Apache!

Операционные системы 21.02.2010

В продолжении темы перехода с Apache, сегодня расскажу о простом запуске Subversion без Apache. Для этого мы используем svnserver. Настройка достаточно проста, и так перейдем к делу!

После установки Subversion, у вас должен появится svnserve, проверить можно так:

# svnserve --version
svnserve, version 1.6.4 (r38063)
   compiled Aug 25 2009, 15:27:23

Если вы только что установили Subversion, то не забудьте выполнить «rehash».

Читать полностью »

Перенос Trac на Nginx и tracd

Операционные системы 11.02.2010

Я когда-то написал статью Установка и настройка Trac на FreeBSD, теперь пришло время отказываться от Apache, в пользу Nginx+PHP/FastCGI и необходимо куда-то пересаживать Trac.

Есть несколько способов помимо mod_python, я выбрал использование tracd (веб-сервер самого трака). Но если в какой-то момент времени я пойму что этот способ мне не нравится, я обязательно напишу статью про связку через FastCGI.

Tracd

Поднимаем tracd так:

tracd --daemonize --pidfile=/var/run/trac/tracd.3050 --port=3050 --protocol=http --env-parent-dir=/var/trac \
    --basic-auth=project1,/var/svn/svn-auth-file,svn --basic-auth=project2,/var/svn/svn-auth-file,svn

Где,

  • --daemonize — запуск tracd в фоне как демона;
  • --pidfile — путь до pid-файла;
  • --port — tcp-порт, который будет слушать;
  • --protocol — протокол (Варианты: http, scgi, ajp. В нашем случае http);
  • --env-parent-dir — мульти-проектовый режим, надо указать родительский каталог проектов (Еще есть «--single-env», это сингл-режим и надо указывать полный путь до проекта);
  • --basic-auth — авторизация (Формат «projectdir,htpasswd_file,realm», если юзаете --env-parent-dir, то можете только каталог проекта указывать в «projectdir», а не полный путь).

Наберите «--help» и почитайте справку по всем опциям.

Nginx

Теперь добавим в Nginx новый бекенд:

upstream trac {
    server 127.0.0.1:3050;
}

И перепишем конфиг хоста:

server {
    listen 80;
    server_name trac.example.com;

    location / {
        #auth_basic            "Password, please!";
        #auth_basic_user_file  /var/svn/svn-auth-file;

        proxy_pass      http://trac;
        proxy_set_header Host $host;
    }
}

Ну вот и все, осталось ребутнуть nginx

/usr/local/etc/rc.d/nginx restart

Читать полностью »