Pull to refresh

Recens CP — самописная панель управления сервером beta

Reading time 4 min
Views 2.1K

Хабрапривет! Совсем недавно я начал заниматься системным администрированием, около 2 месяцев назад. По этому сразу прошу прощение за реализованные странным образом алгоритмы и, наверно, не «совсем» профессионально написан код. Хочу показать вам свое творение, и поинтересоваться нужно ли его развивать. Хотя на самом деле это не CP а сплошной быдлокод, никому не нужен, под хабракат тоже заглядывать не стоит.

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

Панель работает на отдельном порту с использованием SSL. Тестировалась на FreeBSD 8.1-RELEASE i386. Для работы Recens CP необходим Apache 2.2 и suPHP.

Приступим к настройке.

  • Желательно создать нового юзера в системе (командой adduser), с отдельным домашним каталогом. У меня это /home/recens
  • Скачать (sourceforge.net/projects/recens/files/recens-beta.zip/download) и распаковать архив в каталог public_html
  • Панель работает с ipfw и исполняет разные команды нуждающиеся в супер юзере, следовательно надо сделать:
    chown -R root:wheel /usr/home/recens/data/public_html
  • Также необходимо изменить конфиг suPHP. Находим строчки в /usr/local/etc/suphp.conf:
    ; Minimum UID
    min_uid=80
    ; Minimum GID
    min_gid=80
    

    и меняем их на
    ; Minimum UID
    min_uid=0
    ; Minimum GID
    min_gid=0
    

  • Настройка web-сервера


    Далее необходимо настроить Apache. Открываем httpd.conf Добавляем строчку listen:
    Listen 2012

    В виртуальные хосты прописываем (/extra/httpd-vhosts.conf):
    
    <VirtualHost *:2012>
    Options +ExecCGI
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "/home/recens/data/server.crt"
    SSLCertificateKeyFile "/home/recens/data/server.key"
    	ServerName servername.com
    	DocumentRoot "/usr/home/recens/data/public_html"
    	suPHP_UserGroup root wheel
    	CustomLog "/usr/home/recens/data/logs/recens-access.log" combined
    	ErrorLog "/usr/home/recens/data/logs/recens-error.log"
    	ServerAlias www.servername.com
    	ServerAdmin admin@servername.com
    	AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
    	AddType application/x-httpd-php-source .phps
    </VirtualHost>
    
    Предварительно надо cгенерировать server.crt и server.key для поддержки SSL. Сделать это можно с помощью примерно такой команды:
    openssl req -new -newkey rsa:1024 -nodes -keyout server.crt -x509 -days 500 \
              -subj /C=RU/ST=Msk/L=Msk/O=My\ Inc/OU=Sale/CN=bla/emailAddress=usr@dom.ru \
              -out server.crt
    Дальше необходимо добавить информацию о директиве в /extra/httpd-userdir.conf или непосредственно в httpd.conf:
    <Directory "/home/recens/data/public_html">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    После чего сделать
    apachectl graceful

  • Recens CP использует СУБД MySQL, а значит надо не забыть импортировать структуру БД. Находится она в файле recens.sql. Импортировать можно с помощью PhpMyAdmin. После импорта будет создан пользователь Admin с паролем password. Сразу же, по окончанию установки обязательно нужно сменить пароль!

IPFW


Я использую правила ipfw для сбора примитивной статистики. Чтобы их установить выполните от root'а:
ipfw add 10 count tcp from any to me dst-port 80
ipfw add 20 count tcp from me 80 to any

Cron


Чтобы все работало необходимо добавить в /etc/crontab следующею строчку:
*/5	*	*	*	*	root	/usr/local/bin/php /home/paketik/data/public_html/recens/cron.php > /dev/null

Приступим к правке конфига config.php.

define("DEBUGMODE",1);
define("DBHOST","localhost");
define("DBUSER","recens");
define("DBPASS","megapass");
define("DBNAME","recens");
define("TBLPREFIX","rec_"); 

  • DEBUGMODE — 1/0 включить или отключить вывод ошибок в браузер
  • DBHOST — хост для коннекта к БД.
  • DBUSER — пользователь для коннекта к БД.
  • DBPASS — пароль пользователя БД.
  • DBNAME — имя базы
  • TBLPREFIX — используемый префикс для таблиц.

Больше ничего можно не трогать. Зайдя по адресу https ://vashdomain. com:2012/ Вы должны увидеть следующее:

После логона (Admin:password) сразу идем в настройки (Other — > Settings) и ставим приличный пароль. На вкладке Dashboard, поле "Current system user" должно быть "root".

Немножко о возможностях


Вкладка Dashboard

  • General info — Общая информация о системе (Загрузка системы, информация о HDD, аптайм, текущий пользователь)
  • Last logged into Recens — Последние входы в контрольную панель. Первый столбец — идентификатор того, успешной ли была попытка входа. Если ip-адрес подсвечен красным, значит он не совпадает с текущим.
  • Banned ips in IPFW — Здесь отображаются забаненные ip фаерволом (у меня установлен sshit, который отправляет туда всех брутеров ssh)
  • Opened ports — Текущие открытые порты


Вкладка Statistic

  • HTTP traffic in — Весь входящий трафик на 80 порт за последний час
  • HTTP traffic out — Весь исходящий трафик с 80 порта за последний час
  • HDD usage — Диаграмма использования HDD
  • RAM usage — Диаграмма задействованной виртуальной памяти на данный момент
  • CPU usage — Загрузка процессора на данный момент

Вкладка Tools -> Service manager

Это веб-интерфейс для управления сервисами. Основные возможности — перезагрузка, остановка, старт сервиса.
Вкладка Security

  • Failed logins — Можно посмотреть всю историю неудачных входов с детализациею для IP, User-Agent и Login.
  • User manager — Изменения пользователей. Можно отключить пользователя поставив ему статус Active «0»
  • Firewall list rules — Просмотр правил IPFW
  • Firewall add rule — Редактор IPFW

Вкладка Other

  • Settings — Изменение настроек для текущего пользователя
  • Languages — установка language-packs

Скриншоты:







В следующей версии (если будет поддержка пользователей) планируется:

  • Файловый менеджер
  • Вход по системным аккаунтам
  • Всякие настройки для сервисов
  • Больше статистики


P.S. Допиливать еще и допиливать.
P.P.S Блог CMS, более удачного не нашел, если что — намекните куда переносить.
Tags:
Hubs:
+15
Comments 31
Comments Comments 31

Articles