Setup policy cfengine policy hub

September 20th, 2015 No comments

CFEngine – configuration management system written in c ++ language and it is running on * BSD, Linux, Windows and others OS. This article describes how to install FreeBSD policies server on your server. Installing on Linux OS will be similar, but with the use of one or another package manager. All actions within cfengine similar like in FreeBSD, and on Linux too, with the exception of the location of files and classes os_name ::

Installing policy hub

СPolicy Server or in another policy hub – cfengine service, which is responsible for the distribution of rules, policies and changes. Simply put – the “main server” in this case.

So let’s install cfengine package from the FreeBSD ports:

# cd /usr/ports/sysutils/cfengine
# make install clean

Make rehash:

# rehash

Once installed, go to the directory cfengine. His working directory – always /var/cfengine. Use the command, for that would go into a folder, create a directory bin/ and copy the binaries:

# cd /var/cfengine && mkdir bin && cp /usr/local/sbin/cf-* bin/

cfengine server authenticates and authorizes itself by RSA keys, similar to the ssh, and works as usual, in a pair. To generate them, use a special command:

# cf-key

No need to do anything, the keys are generated and are in their home directory – / var / cfengine / ppkeys, files localhost.priv – the private key, and localhost.pub – is a public one.

After installing cfengine as a port and as a package, to work it is not ready yet. master files should be downloaded that contain “file promises” – the master file, which describes the links on the policy. Files can be taken with git-hub project, but due to frequent changes and updates FreeBSD Ports policy, these files may not work with the build of of cfengine, located in the ports. We take them from a special archive. Download the master files:

# fetch http://cfengine.package-repos.s3.amazonaws.com/tarballs/masterfiles-3.6.5.tar.gz

Unpack:

# tar xzvf masterfiles-3.6.5.tar.gz

Remove archive:

# rm masterfiles-3.6.5.tar.gz

Now the server is ready to work, and all postinstall conditions was completed. To the server started to work as a policy hub, we have to run a command, for start synchronisation between masterfiles and input folder of the hub. The IP must be the same ip as your policy hub’ server. So we do it for server itself (important).

# cf-agent -B -s 192.168.1.10

In case of successful bootstrap, you will receive a log, where you can see what everything is ok. 192.168.1.10 is in our case is IP of the server where we do it. The message will be something like this:

# notice: Bootstrap to '192.168.101.45' completed successfully!

Just in case check how works cf-serverd:

# sockstat

You will see something like that:

root cf-serverd 14731 3 stream -> ??
root cf-serverd 14731 5 stream -> ??
root cf-serverd 14731 6 tcp4 6 *:5308 *:*
root cf-serverd 14731 7 dgram -> /var/run/logpriv

And on the other server (on client) check the port availability and nothing  not blocking the daemon:

# nc -v 192.168.101.45 5308
Connection to 192.168.101.45 5308 port [tcp/cfengine] succeeded!

This means that everything is is ok. Congratulations – you are beautiful. Make sure that all components are present cfengine to /etc/rc.conf:

# echo 'cf-serverd_enable="YES"' >> /etc/rc.conf
# echo 'cf_monitord_enable="YES"' >> /etc/rc.conf
# echo 'cf_execd_enable="YES"' >> /etc/rc.conf

The other components, such as cf-execd and cf-monitord run themselves, after the cf-serverd will started. Good luck. In the future, I will write about CFEngine more.

Categories: cfengine, System administration Tags:

Disable Selinux in Centos and RHEL

March 27th, 2015 No comments

selinux-penguin-new_medium

So, probably, many of you faced with the fact that the installation of any software causes you need to disable selinux on CentOS. In fact, selinux is a very useful, flexible and secure. You should read the documentation and understand it. However, not everyone has enough time to read the selinux documentation. And i would advice you do not turn off it, but i think that you found this article in google only because of one goal: I NEED TURN OFF FUCKING SELINUX!!!
Ok then, i’ll say you how to do it…
So, for that would disable the selinux, you first need to go to the server via ssh (of course, you can go to the server and do all the following steps with the keyboard :))

ssh user@server.com

All described in the following steps must be done as root user. Edit the necessary config:

# nano /etc/sysconfig/selinux

Then find in the string file called “SELINUX =” and replace them with the value to “disable”, instead of “permissive” available there. That’s it, i can congratulate you – we have disabled selinux on CentOS and RedHat.

 

Установка панели VESTA cp

March 27th, 2015 No comments

111

Я хотел бы представить всем панель управления Vesta – по моему мнению, это великолепная альтернатива платнымым ISPmanager DirectAdmin, а также тяжеловесному и дырявому Webmin. В этой статье я расскажу как установить vesta cp на ваш сервер с Linux.

Для начала, о поддержке. Панель управления Vesta cp в данный поддерживается RHEL/CentOS 5/6x, Debian 7, а также Ubuntu начиная с версии 12.04 и заканчивая 14.04. Установка vesta cp достаточно проста, требует ввода нескольких команд и занимает около 5-7 минут, делая всё сама: от загрузки файлов, до установки и настройки конфигов. Также хочется отметить, что непродвинутым пользователям для установки панели vesta cp на ОС CentOS и RedHat, требуется отключение selinux. Напомню, что отключение Selinux требует перезагрузки сервера.
Итак, поехали! Для начала, нам необходимо подсоединиться на наш сервер по ssh:

$ ssh user@server.com

Напоминаю вам, что все действия необходимо выполнять от пользователя root. Так что перед каждой командой используйте sudo <название команды>, либо sudo su, либо просто su – зависит от того, как вы используете систему.

$ sudo su

Также, перед установкой всяких веб-панелей управления и веб-интерфейсов, я рекомендую устанавливать в систему пакеты gcc, make, g++. Не всегда они пригодятся для того или иного устанавливаемого компонента, но рано или поздно пригодятся всегда, поверьте мне. Для CentOS или RHEL установки этих пакетов выглядит следующим образом:

# yum install gcc gcc-c++ make

Для *deb-производных систем, установка будет выглядеть примерно так:

# apt-get install gcc gcc-c++ make

Перейдём в папку, где будем производить скачку установочного скрипта vesta cp:

# cd /tmp

После этого, для установки панели управления vesta cp, нам необходимо загрузить на сервер установочный скрипт:

# curl -O http://vestacp.com/pub/vst-install.sh

Или, если не получилось, скачать установочный скрипт также можно другим способом:

# wget http://vestacp.com/pub/vst-install.sh

Далее, установочный скрипт Vesta cp необходимо сделать исполняемым, что бы он мог быть запущен:

# chmod +x vst-install.sh

Запускаем установку vesta cp:

# ./vst-install.sh

Либо вот так:

# bash vst-install.sh

Всё, установка панели vesta началась. Просто следуйте указаниям установщика. Скрипт выполнит все действия и сообщит о завершении установки. Также, во время установки он должен запросить у вас необходимые данные – например, такие как пароль администратора панели, пароль root от MySQL, а также в конце установки сообщит URL панели. По умолчанию, это http://<serverip>:8083. Удачи в использовании, в следующем моём посте будет обзор этой панели, а также разбор её функционала и сравнение с другими продуктами.

Закрывание паролем некоторых разделов сайта

March 1st, 2014 No comments

Многие отказались от apache в пользу связки php-fpm+nginx и других. Причин много, однако часто у многих возникают вопросы.
В Apache существует технология файла .htaccess, которые видит Apache. Однако nginx их не понимает, и понимать не будет. У него технология другая – location.
Этими самыми location’ами можно делать разные интересные вещи, аналогично .htaaccess (переадресации, подмену url обработку тех или иных файлов, запароливание разделов, листинг папок для репозитариев). Возможно со временем, мы рассмотрим больше, но сегодня – я расскажу о замене функционала .htapasswd

Итак, задача – создать закрытый сайт с авторизацией на nginx.
Проблема в том, что решение простое – люди добавляют location, указывают путь до файла с паролями и всё. Но проблема в том, что php перестает обрабатываться после перехода в эту закрытую директорию и загружает .php скрипты.
Решение: добавить обработчик php в location c .htapasswd . Ниже, правильный конфиг-файл:

location ~* (wp-login)\.php$ {
        try_files $uri $uri/ /index.php?args;
        auth_basic           "closed site";
        auth_basic_user_file /var/www/html/site.ru/.htpasswd;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
}

А теперь разберем по порядку.
location ~* (wp-login)\.php$ { – мы объявляем локейшн, назначаем папку и говорим работать с php.
wp-login – папка, раздела сайта, который необходимо закрыть авторизацией.
auth_basic_user_file – файл с логинами-паролями. Хранить в папке с сайтом небезопасно, показал для примера. Кстати, будут работать .htpasswd файлы от Apache.
Сгенерировать такой файл можно тут.

Categories: IT-bullshit, Linux Tags:

Установка Ajax-скрипта Looking Glass на сервер с Linux

November 17th, 2013 No comments

lg2

Почти у каждого хостера существует специальный сервис – Looking Glass. Делает он достаточно нехитрые вещи – а именно дает ping\traceroute от сервера где расположен он сам, до ip\домена который ему покажут. То есть задача в том, что бы проверить скорость\маршрут от source до destination адресов.

Задача реализации простая – клиенту должна быть доступна веб-станичка, на которой можно ввести нужный адрес и пиговать. Делается на php за пару минут при помощи shell_exec и POST. Однако, мы же хотим чего-то красивого, так что я предлагаю взять готовый скрипт. Мы – не дизайнеры, мы админы. Мы ленивы.

Итак, идем по ссылке на github: – https://github.com/telephone/LookingGlass и нажимаем “”Download ZIP”

lg

 

Далее, закачиваем архив на сервер, затем распаковываем:

$ unzip LookingGlass-master.zip

После, перейдем в только что распакованную директорию LookingGlass-master и запустим скрипт установки configure.sh:

# ./configure.sh

Скрипт спросит, Ваш IP, размер тестовых файлов, скажет какие пакеты ему понадобится. Установка полностью автоматическая. Я делал установку на nginx, разработчики советуют делать такой конфиг:

location ~ \.php$ {

# Append the following
fastcgi_buffer_size 1k;
fastcgi_buffers 128 1k;
fastcgi_max_temp_file_size 0;
gzip off;
}

В принципе все. По окончании установки получится примерно тоже, что и у меня: http://lg.qwertylan.ru/

Categories: IT-bullshit, System administration Tags: