Page_c76a3fcf https://linux-notes.org Unix/ Linux блог, на котором можно найти полезную информацию по настройке ОС и ПО. Tue, 09 May 2017 15:13:33 +0000 ru-RU hourly 1 https://wordpress.org/?v=6.7.2 Page_c76a3fcf https://linux-notes.org/nastrojka-vsftpd-s-ssl-tls-na-centos-redhat-fedora/ https://linux-notes.org/nastrojka-vsftpd-s-ssl-tls-na-centos-redhat-fedora/#respond Wed, 13 May 2015 12:47:48 +0000 http://linux-notes.org/?p=6137 Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora FTP —  протокол передачи файлов (способ передачи файлов) между локальным и удаленным серверам. Это самый популярный метод передачи файлов, но его перестают использовать из-за отсутствия безопасности. Очень хорошая альтернатива — SFTP. Этот протокол реализует совместное использование файлов через SSH. Если вы хотите использовать FTP, вы должны по крайней мере обеспечить связь с […]

The post Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>

Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora

FTP —  протокол передачи файлов (способ передачи файлов) между локальным и удаленным серверам. Это самый популярный метод передачи файлов, но его перестают использовать из-за отсутствия безопасности.

Очень хорошая альтернатива — SFTP. Этот протокол реализует совместное использование файлов через SSH. Если вы хотите использовать FTP, вы должны по крайней мере обеспечить связь с SSL / TLS сертификатами.

По этому мануалу «Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora», я тестировал свою конфигурацию vsftpd с TLS/SSL сертификатами на CentOS 6.6 и CentOS 7.

Настройку с основными параметрами я описывал ранее в своей статье, вы можете ознакомится с нею тут:
Установка vsftpd на CentOS

В той статье очень подробно расписано использование данного FTP сервиса с различными опциями.

Может быть полезна еще следующая статья:
Скачивать и закачивать файлы по FTP используя консоль 

Настройка SSL с vsftpd

Первый шаг к получению полноценного  VSFTPD  — это работать с SSL, по этому, создадим сертификат SSL. Мы на самом деле будет использовать TLS (это тоже протокол), и он является преемником от SSL и более безопасный.

Мы создадим подкаталог внутри каталога SSL для хранения наших файлов:

$ sudo mkdir /etc/ssl/private

Создадим сертификат с ключем и поместим все в однин файл, для этого можно использовать следующую команду:

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Ответьте на вопросы, которые он просит. Наиболее важным из которых является «общее имя» («Common Name») вашего сервера, который будет иметь  IP-адрес или доменное имя и будет использоваться для дальнейшего подключения.

Добавить SSL в файла конфигурации VSFTPD 

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

Откройте файл конфигурации Vsftpd как root:

# vim /etc/vsftpd/vsftpd.conf

В нижней части файла добавляем  SSL/TLS. Мы должны указать расположение нашего сертификата и ключей. Мы на самом деле, используем 2 в 1 и используем все в одном файле, так что мы будем указывать оба варианта в том же файле:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Далее, нам необходимо разрешить использование данных файлов, так же стоит отключить анонимных пользователей в конфиге. Мы должны также прописать настройку на использование SSL для передачи данных и входе подпрограмм:

[...]
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
[...]

Далее, мы ограничиваем тип подключения к TLS, который более безопасен, чем SSL. Мы будем делать это явно позволяя использовать TLS и отрицая использовать SSL:

[...]
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
[...]

Добавим несколько настроек конфигурации:

[...]
require_ssl_reuse=NO
ssl_ciphers=HIGH
[...]

Сохраняем и закрываем данный конфигурационный файл.

Перезапускаем VSFTPD чтобы наши изменения применились:

# /etc/init.d/vsftpd restart

или

# service vsftpd restart

Также настраиваем его для автоматического запуска при каждой перезагрузке ОС:

# chkconfig vsftpd on

Все, сервер готов. На этом, моя тема «Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora» завершена.

 

The post Настройка vsftpd с SSL/TLS на CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>
https://linux-notes.org/nastrojka-vsftpd-s-ssl-tls-na-centos-redhat-fedora/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-mercurial-na-unix-linux/ https://linux-notes.org/ustanovka-mercurial-na-unix-linux/#respond Fri, 17 Apr 2015 09:13:54 +0000 http://linux-notes.org/?p=5932 Установка Mercurial на Unix/Linux Mercurial — это утилита, распределенная система для управления версиями, которая была разработанна для эффективной работы с очень большими репозиториями кода. Данная кроссплатвофрменную программу можно установить на Linux (Debian, Ubuntu  или CentOS, Fedora, RHEL) и Unix (FreeBSD, OS X)  Я хочу в своей статье «Установка Mercurial на Unix/Linux» рассказать как можно установить […]

The post Установка Mercurial на Unix/Linux first appeared on linux-notes.org.]]>

Установка Mercurial на Unix/Linux

Mercurial — это утилита, распределенная система для управления версиями, которая была разработанна для эффективной работы с очень большими репозиториями кода. Данная кроссплатвофрменную программу можно установить на Linux (Debian, Ubuntu  или CentOS, Fedora, RHEL) и Unix (FreeBSD, OS X)  Я хочу в своей статье «Установка Mercurial на Unix/Linux» рассказать как можно установить и пользоваться Mercurial на Unix/Linux.

Установка Mercurial

Установка на  Debian/Ubuntu/Mint

$ apt-get install mercurial

Установка на /RedHat/CentOS/Fedora

$ yum install mercurial

Установка на  Gentoo

$ emerge mercurial

Установка на Mac OS.
Подключаем HOMEBREW и после чего выполняем команду:

$ brew install mercurial

Установка на FreeBSD

$ cd /usr/ports/devel/mercurial
$ make install

Установка на Solaris 11 Express

$ pkg install SUNWmercurial

Работа с Mercurial

Клонирование проекта и внесения (push) изменений:

$ hg clone http://selenic.com/repo/hello
$ cd hello
$ (edit files)
$ hg add (new files)
$ hg commit -m 'My changes'
$ hg push

Создание проекта и  его аплоад:

$ hg init (project-directory)
$ cd (project-directory)
$ (add some files)
$ hg add
$ hg commit -m 'Initial commit'

На этом, я завершаю свою тему «Установка Mercurial на Unix/Linux».

The post Установка Mercurial на Unix/Linux first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-mercurial-na-unix-linux/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-nginx-php-fpm-mariadb-na-centos-7-rhel-7/ https://linux-notes.org/ustanovka-nginx-php-fpm-mariadb-na-centos-7-rhel-7/#respond Wed, 11 Feb 2015 00:42:33 +0000 http://linux-notes.org/?p=5356 Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7 Nginx — это свободный и с открытым исходным кодом высокопроизводительный HTTP сервер, он очень стабилен, имеется большой набор разных функций, простой в конфигурации и с низким потреблением ресурсов. Данная статья «Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7» покажет вам, как установить Nginx на CentOS 7 […]

The post Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7 first appeared on linux-notes.org.]]>

Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7

Nginx — это свободный и с открытым исходным кодом высокопроизводительный HTTP сервер, он очень стабилен, имеется большой набор разных функций, простой в конфигурации и с низким потреблением ресурсов. Данная статья «Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7» покажет вам, как установить Nginx на CentOS 7 / RHEL 7 с поддержкой PHP (через PHP-FPM) и c поддержкой MariaDB. PHP-FPM — это альтернативная реализация PHP FastCGI, которая имеет некоторые дополнительные возможности, полезные для сайтов с любым размером.
Первое, что нужно сделать, так это войти в систему как суперпользователь (root):

$ su -

Установите Wget и Vim с помощью Yum, если они не установлены в системе CentOS 7:

# if ! type -path "wget" > /dev/null 2>&1; then yum install wget -y; fi
# if ! type -path "vim" > /dev/null 2>&1; then yum install vim -y; fi

Первое, что нужно сделать перед установкой LEMP, так это обновить CentOS 7, выполнив следующую команду в вашем терминале:

# yum update

1. Установка MariaDB.

Я использую самую последнюю версию MariaDB — это версия 10.х и ее установку можно прочитать тут:

Установка MariaDB 10 на CentOS 7

Так же можно установить и MariaDB 5.x для этого нужно посетить официальный сайт и воспользоваться мануалом. Я постараюсь попозже рассказать как это можно сделать.

Вы можете почитать мой готовый конфиг тут:
my.cnf

Так же можете скачать его и использовать:

# cd /etc/ && wget http://linux-notes.org/wp-content/uploads/files/LEMP/CentOS_7/mysql/my.cnf

Переходим к следующему этапу.

2. Установка Nginx.

Установите Nginx rpm репозиториев чтобы загрузить и установить Nginx с официального сайта. Для этого выполняем:

# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

Примечание:  Так же можно установить репозиторий EPEL и REMI и после чего выполнить установку nginx

Установите Nginx с помощью:

# yum -y install nginx

Запустите Nginx после установки:

# systemctl restart nginx.service

Проброс портов в Iptables и SELinux:

Выполните следующие команды, чтобы разрешить использование HTTP через брандмауэр.

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --reload

Далее, откроем веб-браузер:
http://your_IP_or_server

Вы должны увидеть следующую страницу; Это подтвердит вам, что ngnix успешно установлен на сервере.

Установка Nginx CentOS 7Корневая папка, по умолчанию, в  Nginx на CentOS 7 находится /usr/share/nginx/html. Конфигурационные файлы в /etc/nginx.

Worker Processes и Worker Connections

Первые две переменные, которые мы должны настроиться являются рабочие процессы (worker processes) и рабочие соединения (worker connections). Директива worker_processes является надежным позвоночником для жизни Nginx. Это обычно 1 рабочий процесс для каждого ядра. Проверить можно следующим образом:

# grep processor /proc/cpuinfo | wc -l
4

У меня 4-хядерный процессор.

Можно вывести полную информацию о процессорах:

# cat /proc/cpuinfo

Или

# cat /proc/cpuinfo |grep processor

processor : 0
processor : 1
processor : 2
processor : 3

Команда worker_connections сообщает нашим рабочие процессы, сколько человек одновременно могут обслуживаться в Nginx. Значение по умолчанию 768;Однако, учитывая, что каждый браузер обычно открывает, по крайней мере 2 соединения / сервер. Мы можем проверить наши основные ограничения с помощью команды ULIMIT:

# ulimit -n
1024

У меня этот параметр равен 1024. Давайте обновим наш конфигурации:

# vim /etc/nginx/nginx.conf

и вставляем:

[...]
worker_processes 1;
worker_connections 1024;
[...]

ЗАПОМНИТЕ, количество клиентов, (которые могут быть обслужены) мы можем умножить на количество ядер. И по этому, т.к у меня ядер 4, я умнажаю 1024×4=4096. По этому, я себе исправлю данный параметр в конфиге.

Буфер
Другой невероятно важно параметр — это размер буфера. Если размеры буферов слишком мала, то Nginx придется писать во временный файл и в результате чего диск будит читать и писать постоянно. Есть несколько директив, которые нам нужно понять, до принятия любых решений.

client_body_buffer_size: Это обрабатывает размер буфера клиента. Действия после, как правило, через форму.

client_header_buffer_size: Как и в предыдущем директива, только вместо этого он обрабатывает размер заголовка клиент. Для всех намерений и целей, 1K, как правило, приличного размера для этой директивы.

client_max_body_size: Максимально допустимый размер запроса клиента. Если максимальный размер превышен, то Nginx будет выдавать ошибку 413 или Request Entity Too Large.

large_client_header_buffers: максимальное число и размер буферов для крупных заголовков клиентов.

И так вставляем:

[...]
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 2 1k;
[...]

Тайм-ауты
Тайм-ауты могут также резко повысить производительность.

Директивы client_body_timeout и client_header_timeout несут ответственность за время который сервер будет ждать тела клиента или заголовок клиента, чтобы бы отправить после запроса. Если ни тело или заголовок отправляется, сервер выдаст ошибку 408 или запрос тайм-аут.

Keepalive_timeout назначает тайм-аут для Keep-Alive соединений с клиентом. Проще говоря, Nginx будет закрывать соединение с клиентом после этого периода времени.

И, наконец, send_timeout устанавливается не на всю передачу ответа, а только между двумя операциями чтения; если после этого времени клиент ничего не примет, то Nginx выключает соединение.

[...]
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
[...]

 Gzip сжатия
Gzip может помочь уменьшить количество передач по сети Nginx. Однако, будьте осторожны увеличения gzip_comp_level слишком высоко, как сервер начнет тратить CPU.

[...]
gzip on;
gzip_comp_level 2;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/x-javascript text/xml text/css application/xml;
[...]

 Кэширование статических файлов
Это можно установить когда истекает заголовки для файлов, которые не меняются и обслуживаются регулярно. Эта директива может быть добавлен к реальным сервером блока Nginx.

[...]
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
                                               expires 365d;
                                             }
[...]

Logging 

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

[...]
access_log off;
[...]

По причинам безопасности, выключаем парамерт:

[...]
server_tokens off;
[...]

Защита от DDos

ПОПОЗЖЕ БУДЕТ 😉

Автоматический запуск Nginx при запуске системы:

# systemctl enable nginx.service

Я немного оптимизировал свой конфиг и вы можете использовать его в ознакомительных целях и не только. Чтобы прочитать его, перейдите по ссылке тут:
nginx.conf

Чтобы скачать его:

# cd /etc/nginx/ && wget http://linux-notes.org/wp-content/uploads/files/LEMP/CentOS_7/nginx/nginx.conf_working

И перезапускаем после этого сам сервер nginx:

# service nginx restart

Если нет никаких ошибок — это хорошо. Если есть, то их нужно исправить ^ ^

3. Установка PHP5-FPM.

Далее следует установить PHP через PHP-FPM (PHP-FPM (FastCGI Process Manager), это альтернативная реализация PHP FastCGI. Она имеет некоторые дополнительные возможности, полезные для сайтов любого размера. Установить его вы можете выполнив следующую команду:

# yum install php-fpm php-mysql php-cli php-mcrypt memcached php-apc

Кроме того, установите любой другой модуль PHP, который требует ваше приложение. Список приведен ниже, или вы можете использовать «yum search php-» командной строке, чтобы получить список доступных PHP модулей на ваших CentOS 7 системе:

  • php-bcmath — модуль для PHP приложений с использованием библиотеки BCMath.
  • php-cli — интерфейс командной строки для PHP (CLI).
  • php-common — Common (общие) файлы для PHP.
  • php-dba — модуль абстрактного слоя с использованием БД для PHP приложений.
  • php-devel — Файлы, необходимые для сборки расширений PHP.
  • php-embedded — библиотека PHP для встраивания в приложения.
  • php-enchant — Enchant расширение для PHP приложений.
  • php-fpm — PHP FastCGI Process Manager
  • php-gd — модуль для PHP приложений для использования графической библиотеки GD.
  • php-imap -модуль для PHP приложений которые используют протокол IMAP.
  • php-intl -Интернационализация расширения для PHP приложений.
  • php-ldap -модуль для PHP приложений которые используют LDAP.
  • php-mbstring — A module for PHP applications which need multi-byte string handling
  • php-mcrypt — Стандартный модуль PHP с поддержкой Mcrypt.
  • php-mysql -модуль для PHP приложений которые используют MySQL.
  • php-mysqlnd -модуль для PHP приложений которые используют MySQL.
  • php-odbc -модуль для PHP приложений которые используют ODBC.
  • php-pdo — модуль абстракции доступа к базе данных для PHP приложений.
  • php-pear.noarch — PHP Extension and Application Repository framework
  • php-pecl-memcache — расширение для работы с Memcached.
  • php-pgsql — модуль для PHP приложений которые используют PostgreSQL.
  • php-process — Модуль для PHP, который использует интерфейсы системного процессора.
  • php-pspell — модуль для PHP приложений для использования интерфейсов pspell.
  • php-recode -модуль для PHP приложений которые используют библиотеку recode.
  • php-snmp —  модуль для PHP приложений, которые запрашивают SNMP-управляемые устройства.
  • php-soap -модуль для PHP приложений которые используют протокол SOAP.
  • php-xml -модуль для PHP приложений которые используют XML.
  • php-xmlrpc -модуль для PHP приложений которые используют протокол XML-RPC.

Сейчан нужно отредактировать файл /etc/php.ini:

# vim /etc/php.ini
[...]
cgi.fix_pathinfo=0
[...]

Далее, выполним настройку PHP основной конфигурации /etc/php.ini:

$ sudo vim /etc/php.ini

[...]
cgi.fix_pathinfo=0
date.timezone = Europe/Kiev
upload_max_filesize = 32M
memory_limit = 128M
expose_php = Off
[...]

Мой готовый конфиг php.ini лежит тут:
php.ini

Отредактируем файл /etc/php-fpm.d/www.conf для этого выполним:

# vim /etc/php-fpm.d/www.conf
Убедитесь, что следующие значения php разкомментированы.

[...]
user = nginx
group = nginx
pm.min_spare_servers = 5
[...]
pm.max_spare_servers = 35
[...]

Мой конфиг для php-fpm:
php-fpm.conf

Чтобы проверить, правильно ли сконфигурирован конфиг php-fpm, используйте:

# php-fpm -t

PS: Скачайте его от сюда:

# cd /etc/php-fpm/ && wget http://linux-notes.org/wp-content/uploads/files/LEMP/CentOS_7/php-fpm/php-fpm.conf_working

Включение PHP-FPM поддержки на виртуальных хост.

Далее, перейдите в /etc/nginx и скопируйте исходный файл конфигурации Nginx (чтобы вернуть в друг чего):

# cp /etc/nginx/nginx.conf{,.orig}

Сейчас нужно поправить немного конфигурацию nginx для работы с php-fpm:

# vim /etc/nginx/nginx.conf

# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes 4; #1;

error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;

pid /run/nginx.pid;

events {
        worker_connections 1024;
        }

http {
      include /etc/nginx/mime.types;
      default_type application/octet-stream;
      log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';

      access_log /var/log/nginx/access.log main;

      sendfile on;
      #tcp_nopush on;

      #keepalive_timeout 0;
      keepalive_timeout 65;

      #gzip on;

      index index.html index.htm;

      # Load modular configuration files from the /etc/nginx/conf.d directory.
      # See http://nginx.org/en/docs/ngx_core_module.html#include
      # for more information.
      include /etc/nginx/conf.d/*.conf;

 server {
         listen 80 default_server;
         server_name localhost;
         root /home/www;
         #/usr/share/nginx/html;

         #charset koi8-r;

         #access_log /var/log/nginx/host.access.log main;

         # Load configuration files for the default server block.
         include /etc/nginx/default.d/*.conf;
 
location ~ \.php$ { # 
                   root /home/www;
                   fastcgi_pass 127.0.0.1:9000;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 
                   include fastcgi_params;
                  }
 location / {

             }

 # redirect server error pages to the static page /40x.html
 #
 error_page 404 /404.html;
 location = /40x.html {

                       }

 # redirect server error pages to the static page /50x.html
 #
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {

                       }
   }
}

Создам папки для домашней директории:

$ mkdir /home/www

Это можно не выполнять если не меняете расположение в данном конфиге.

Перегружаем энжинкс:

# systemctl reload nginx.service

Сейчас я покажу как можно создать виртуальные хосты-сервера для Nginx.

linux-notes.org:

Server Name : linux-notes.org
Document Root : /home/www/linux-notes/public_html

# vim /etc/nginx/conf.d/linux-notes.org.conf

 windows-notes.org:

Server Name : windows-notes.org
Document Root : /home/www/windows-notes/public_html

# vim /etc/nginx/conf.d/windows-notes.org.conf

Создайте файл конфигурации с именем windows-notes.org.conf и  отредактируйте данный конфиг /etc/nginx/conf.d/windows-notes.org.conf:

# vim /etc/nginx/conf.d/windows-notes.org.conf

server {
 listen *:80;
 #listen 127.0.0.1:8080 default; 
 server_name linux-notes.org www.linux-notes.org;
 #charset koi8-r;
 access_log /var/log/nginx/access-linux-notes.org.log main;
 error_log /var/log/nginx/error-linux-notes.org.log;
 include conf.d/gzip.conf;
 root /home/www/linux-notes/public_html;
 index index.php index.html index.htm;

#errors
error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/html/;
 }

 location / {
 try_files $uri $uri/ /index.php?$args;
 } 
location ~ (xmlrpc.php|wp-config.php|wp-settings.php|readme.html|license.txt)$ {
 return 404;
 access_log off;
 }
# PHP-FPM
# PHP scripts -> PHP-FPM server listening on 127.0.0.1:9000
location ~ \.php$ {
 # The following line prevents malicious php code to be executed through some uploaded file (without php extension, like image)
 # This fix shoudn't work though, if nginx and php are not on the same server, other options exist (like unauthorizing php execution within upload folder)
 # More on this serious security concern in the "Pass Non-PHP Requests to PHP" section, there http://wiki.nginx.org/Pitfalls
 try_files $uri =404;

 # PHP 
 # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_cache fastcgicache;
 fastcgi_cache_valid any 1m;
 fastcgi_cache_use_stale error timeout invalid_header http_500;

 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_intercept_errors on;
 fastcgi_ignore_client_abort off;
 fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffers 4 256k;
 fastcgi_buffer_size 128k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k;
 fastcgi_keep_conn on;
 #Помещать страницу в кеш, после 3-х использований. Меньшее число вызвало у меня труднообъяснимые глюки на формах регистрации
 fastcgi_cache_min_uses 3;
 #Кешировать перечисленные ответы
 fastcgi_cache_valid 200 301 302 304 5m;
 #Формат ключа кеша - по этому ключу nginx находит правильную страничку
 fastcgi_cache_key "$request_method|$host|$request_uri";
 }
 #----------------------------------------------------------
 # Define default caching of 24h
 expires 86400s;
 add_header Pragma public;
 add_header Cache-Control "max-age=86400, public, must-revalidate, proxy-revalidate";

#подключения обработки Perl 
#Все скрипты заканчивающиеся на pl и cgi
# location ~ \.(pl|cgi)$
# {
# #Не сжимаем скрипты
# gzip off;
# try_files $uri =404;
# #Передаем скрипты на обработку fcgiwrap
# fastcgi_pass unix:/var/run/fcgiwrap.socket;
# # Используем стандартные параметры
# include /etc/nginx/fastcgi_params;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_ignore_client_abort off;
# }
##Замена апачевской ScriptAlias
# location /cgi-bin/ {
# gzip off;
# try_files $uri =404;
# root /var/www/;
# #fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/var/run/fcgiwrap.socket;
# include /etc/nginx/fastcgi_params;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_ignore_client_abort off;
# }

#-------
 # Rewrite for versioned CSS+JS via filemtime
 location ~* ^.+\.(css|js)$ {
 rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last;
 expires 31536000s;
 access_log off;
 log_not_found off;
 add_header Pragma public;
 add_header Cache-Control "max-age=31536000, public";
 }

 # Aggressive caching for static files
 location ~* \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|ogv|otf|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|t?gz|tif|tiff|ttf|wav|webm|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
 expires 31536000s;
 access_log off;
 log_not_found off;
 add_header Pragma public;
 add_header Cache-Control "max-age=31536000, public";
 }
#----------------------------------------------------------
#/wordpress-w3-total-cache.conf
gzip on;
#gzip_types text/css application/x-javascript text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
#include conf.d/gzip.conf;
 location ~ \.(css|js)$ {
 expires max;
 break;
 }
 location ~ \.(rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {
 expires 3600;
 break;
 }
 location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
 expires max;
 break;
 }
add_header "X-UA-Compatible" "IE=Edge,chrome=1";
#---------------------------------------------------------- }

if ($request_method !~ ^(GET|POST|HEAD)$ ) {
 return 444;
 }

 location = /favicon.ico {
 log_not_found off;
 access_log off;
 }
 location = /robots.txt {
 allow all;
 log_not_found off;
 access_log off;
 }
 # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
 # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
 location ~ /\.ht {
 deny all;
 access_log off;
 log_not_found off;
 }
 # Deny access to any files with a .php extension in the uploads directory
 # Works in sub-directory installs and also in multisite network
 # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban)
 location ~* /(?:uploads|files)/.*\.php$ {
 deny all;
 #access_log off;
 #log_not_found off;
 }
 # deny access to WP config file and license.txt and readme.html files
 location ~ /(\.|wp-config.php|readme.html|license.txt) {
 deny all;
 }
 # deny access to .conf files
 location ~* \.(conf)$ {
 deny all;
 } 

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

# Uncomment one of the lines below for the appropriate caching plugin (if used).
include global/w3-total-cache.conf;

}
server {
 listen 443;
 server_name https://linux-notes.org https://www.linux-notes.org;
 ssl on;
 ssl_certificate /etc/nginx/ssl/linux-notes.org.crt;
 ssl_certificate_key /etc/nginx/ssl/linux-notes.org.key;

 ssl_session_timeout 5m;

 ssl_protocols SSLv2 SSLv3 TLSv1;
 ssl_ciphers HIGH:!aNULL:!MD5;
 ssl_prefer_server_ciphers on;

#location / {
# #root html;
# root /home/www/linux-notes/public_html;
# index index.php index.html index.htm;
# }
#
#location ~ \.php$ {
# #root /usr/share/nginx/html;
# root /home/www/linux-notes/public_html;
# fastcgi_split_path_info ^(.+\.php)(.*)$;
# #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
# include fastcgi_params;
# }
#}
 access_log /var/log/nginx/access-linux-notes-SSL.org.log main;
 error_log /var/log/nginx/error-linux-notes-SSL.org.log;
 include conf.d/gzip.conf;
 root /home/www/linux-notes/public_html;
 index index.php index.html index.htm;
 
 location / {
 try_files $uri $uri/ /index.php?$args;
 }
 
 # PHP-FPM
 # PHP scripts -> PHP-FPM server listening on 127.0.0.1:9000
 location ~ \.php$ {
 # The following line prevents malicious php code to be executed through some uploaded file (without php extension, like image)
 # This fix shoudn't work though, if nginx and php are not on the same server, other options exist (like unauthorizing php execution within up load folder)
 # More on this serious security concern in the "Pass Non-PHP Requests to PHP" section, there http://wiki.nginx.org/Pitfalls
 try_files $uri =404; 
 # PHP 
 # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_intercept_errors on;
 fastcgi_ignore_client_abort off;
 fastcgi_connect_timeout 60;
 fastcgi_send_timeout 180;
 fastcgi_read_timeout 180;
 fastcgi_buffers 4 256k;
 fastcgi_buffer_size 128k;
 fastcgi_busy_buffers_size 256k;
 fastcgi_temp_file_write_size 256k; 
 }
 #----------------------------------------------------------
 # Define default caching of 24h
 expires 86400s;
 add_header Pragma public;
 add_header Cache-Control "max-age=86400, public, must-revalidate, proxy-revalidate"; 
 # Rewrite for versioned CSS+JS via filemtime
 location ~* ^.+\.(css|js)$ {
 rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last;
 expires 31536000s;
 access_log off;
 log_not_found off;
 add_header Pragma public;
 add_header Cache-Control "max-age=31536000, public";
 }
 
 # Aggressive caching for static files
 location ~* \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|ogv|otf|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|t?gz|tif|tiff|ttf|wav|webm|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
 expires 31536000s;
 access_log off;
 log_not_found off;
 add_header Pragma public;
 add_header Cache-Control "max-age=31536000, public";
 }
 #----------------------------------------------------------
 #/wordpress-w3-total-cache.conf
 gzip on;
 gzip_types text/css application/x-javascript text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location ~ \.(css|js)$ {
 expires max;
 break;
 }
 location ~ \.(rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$ {
 expires 3600;
 break;
 }
 location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ {
 expires max;
 break;
 }
 add_header "X-UA-Compatible" "IE=Edge,chrome=1";
 #----------------------------------------------------------
 location ~ /(\.|wp-config.php|readme.html|license.txt) {
 return 404;
 }
 location = /favicon.ico {
 log_not_found off;
 access_log off;
 }
 location = /robots.txt {
 allow all;
 log_not_found off;
 access_log off;
 }
 location ~ /\.ht {
 deny all;
 access_log off;
 log_not_found off;
 }
 
}


Но этот конфиг для стандартного сайт, у меня он не работал для моей CMS, такой как -WP. По этому, я приведу пример конфига для ВП.

# vim /etc/nginx/conf.d/WP-windows-notes.org.conf

Смотрите конфиг выше.

Создадим host для вашего домена (windows-notes.org)  в файл /etc/hosts для этого:

# vi /etc/hosts

[...]
127.0.0.1  localhost windows-notes.org
[...]

Добавил это т.к использую виртуальную машину.

Тестирование PHP-FPM поддержки виртуальных хостов.

Создайте в корневой каталог:

$ mkdir -p /home/www/windows-notes/public_html

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

$ echo "<?php phpinfo (); ?>" > /home/www/windows-notes/public_html

И так как я изменил домашнюю директорию nginx, то и в нее добавлю:

$ echo "<?php phpinfo (); ?>" > /home/www

Перезапустите службы:

# systemctl restart nginx.service
# systemctl restart php-fpm.service

Проверить корректную работу конфигов в энжинкс можно:

# nginx -t

Я добавлю службу php-fpm в автозапуск ОС:

# systemctl enable php-fpm

Проверим статус служб:

# systemctl status nginx
# systemctl status php-fpm
# systemctl status mariadb

Теперь откройте веб-браузер и введите свой домен.

Установка phpMyAdmin

Посмотрим с какими модулями установлен nginx:

# 2>&1 nginx -V | tr -- - '\n' | grep _module

У меня это:

http_ssl_module 
http_realip_module 
http_addition_module 
http_sub_module 
http_dav_module 
http_flv_module 
http_mp4_module 
http_gunzip_module 
http_gzip_static_module 
http_random_index_module 
http_secure_link_module 
http_stub_status_module 
http_auth_request_module 
mail_ssl_module 
http_spdy_module

Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7 завершена.

PS: Вы можете скачать мои конфиги на GITHUB

The post Установка Nginx, PHP-FPM, MariaDB на CentOS 7 / RHEL 7 first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-nginx-php-fpm-mariadb-na-centos-7-rhel-7/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-vsftpd-s-virtual-ny-mi-pol-zovatelyami-na-centos/ https://linux-notes.org/ustanovka-vsftpd-s-virtual-ny-mi-pol-zovatelyami-na-centos/#respond Sun, 25 Jan 2015 16:01:46 +0000 http://linux-notes.org/?p=5168 Установка VSFTPD с виртуальными пользователями на CentOS Хочу рассказать как я устанавливал  VSFTPD на CentOS, будет работать и на RedHat и Fedora. В данной статье «Установка VSFTPD с виртуальными пользователями на CentOS» я приведу подробные инструкции по установке и настройке данного FTP сервера под названием VSFTPD. vsftpd (англ. Very Secure FTP Daemon) — это один […]

The post Установка VSFTPD с виртуальными пользователями на CentOS first appeared on linux-notes.org.]]>

Установка VSFTPD с виртуальными пользователями на CentOS

Хочу рассказать как я устанавливал  VSFTPD на CentOS, будет работать и на RedHat и Fedora. В данной статье «Установка VSFTPD с виртуальными пользователями на CentOS» я приведу подробные инструкции по установке и настройке данного FTP сервера под названием VSFTPD.

vsftpd (англ. Very Secure FTP Daemon) — это один из FTP-серверов который поддерживает IPv6 и SSLи он есть сервером ФТП по умолчанию во многих ОС.

Основные возможности VSFTPD

  • Поддерживает виртуальные ip.
  • Поддерживает виртуальных пользователей.
  •  Поддерживает работы через [x]inetd так и отдельно.
  •  Можно настроить ФПТ доступ для каждого пользователя.
  •  увеличение полосы пропускания.
  •  Поддерживает настройки для каждого ip.
  •  Поддерживает лимитов для каждого ip.
  •  Поддерживает протокол IPv6.

Устанавливка пакета с VSFTPd.

# yum -y install vsftpd

Сейчас, установим пакет баз данных (нужен будет для хранения пользователей)

# yum install compat-db

Создаем пользователя для ftp (у меня это  virtualftp):

# adduser -d /home/virtualftp/ virtualftp -s /sbin/nologin

Нужно отредактировать конфиг vsftpd сервера:

# vim /etc/vsftpd/vsftpd.conf
[...]

pam_service_name=vsftpd-db

[...]

В этот файл так же добавляем блок о виртуальных пользователях (я этот блок добавил в самы низ открытого файла).

# Virtual users will be logged into /home/vweb/[username]/
user_sub_token=$USER
local_root=/home/virtualftp/$USER
guest_enable=YES
guest_username=virtualftp
# Umask applied for virtual users and anon
anon_umask=0022
# Allows uploading by virtual users
anon_upload_enable=YES
# Allows creation of directories by virtual users
anon_mkdir_write_enable=YES
# Allows deletion of files and directories by virtual users
anon_other_write_enable=YES

Сейчас необходимо создать  так же файл для хранения всех пользователей:

# vim /etc/pam.d/vsftpd-db

session optional pam_keyinit.so force revoke
auth required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so debug db=/etc/vsftpd/login

При этом файл с паролями будет в /etc/vsftpd/login.db

Создадим файл с пользователями FTP:

# vim /etc/vsftpd/login.txt

В этот файл нужно прописать пользователей с ихними паролями в таком виде:

your_user1
your_pass1
your_user2
your_pass2

После этого нужно сгенерировать файл с паролями для всех пользователей:

# rm /etc/vsftpd/login.db
# db42_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/login.db
# chmod 600 /etc/vsftpd/ftpusers /etc/vsftpd/login.txt

Создадим папки для пользователей

# mkdir -p /home/virtualftp/your_user1
# mkdir -p /home/virtualftp/your_user2

Выставляем права для сервера:

# chown -R virtualftp:virtualftp /home/virtualftp/
# chmod -R 644 /home/virtualftp/
# find /home/virtualftp/ -type d -exec chmod 755 {} \;

Запустим VSFTPd

# service vsftpd start

Я добавлю VSFTPD в автозагрузку ОС:

# chkconfig vsftpd on

После этого можно пользоваться данным FTP сервером.

Если установлен IPtables, то также должны добавить несколько правил в брандмауэре, чтобы принять соединения на FTP порты.
Чтобы открыть порты в IPTables введите следующие команды:

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Затем, сохраняем новые правила:

# service iptables save

Перезагружаем iptables:

# service iptables restart

Установка VSFTPD с виртуальными пользователями на CentOS  завершена.

The post Установка VSFTPD с виртуальными пользователями на CentOS first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-vsftpd-s-virtual-ny-mi-pol-zovatelyami-na-centos/feed/ 0
Page_c76a3fcf https://linux-notes.org/vosstanovlenie-povrezhdennoj-bazy-danny-h-rpm/ https://linux-notes.org/vosstanovlenie-povrezhdennoj-bazy-danny-h-rpm/#respond Tue, 20 Jan 2015 20:57:36 +0000 http://linux-notes.org/?p=5072 Восстановление поврежденной базы данных RPM Недавно, я заметил  что одном из серверов я получаю сообщение об ошибке «RPM база данных повреждена». Я использую CentOS. Иногда, это можно исправить данные ошибки связанные с базами данных RPM. Многие администраторы не делают резервные копии RPM базы rpm (/var/lib/rpm). В любом случае, если вы когда-нибудь повредили  RPM базу данных, вот краткая статья «Восстановление поврежденной […]

The post Восстановление поврежденной базы данных RPM first appeared on linux-notes.org.]]>

Восстановление поврежденной базы данных RPM

Недавно, я заметил  что одном из серверов я получаю сообщение об ошибке «RPM база данных повреждена». Я использую CentOS.

Иногда, это можно исправить данные ошибки связанные с базами данных RPM. Многие администраторы не делают резервные копии RPM базы rpm (/var/lib/rpm).

В любом случае, если вы когда-нибудь повредили  RPM базу данных, вот краткая статья «Восстановление поврежденной базы данных RPM», чтобы это быстренько исправить (вы должны установить rpmdb инструменты):

# yum install rpmdb

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

# init 1

Способ # 1

Удаляем все файлы «__db*»  с директории /var/lib/rpm/__db*:

# mv /var/lib/rpm/__db* /tmp
# rm /var/lib/rpm/__db*

Восстановление RPM базы данных:

# rpm --rebuilddb
# rpmdb_verify Packages

После успешного восстановления базы rpm, можно уже удалять старую базу:

# rm -rf /tmp/__db*

Способ # 2

Если вы все еще получаете ошибки, то попытайтесь исправить  это с помощью следующих команд:

# mv Packages Packages-BAKUP
# db_dump Packages-BAKUP | db_load Packages
# rpm -qa
# rpm --rebuilddb

Восстановление поврежденной базы данных RPM завершено.

The post Восстановление поврежденной базы данных RPM first appeared on linux-notes.org.]]>
https://linux-notes.org/vosstanovlenie-povrezhdennoj-bazy-danny-h-rpm/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-apache2-s-php5-i-mysql-phpmyadmin-dlya-centos-redhat-fedora/ https://linux-notes.org/ustanovka-apache2-s-php5-i-mysql-phpmyadmin-dlya-centos-redhat-fedora/#respond Sun, 23 Nov 2014 17:10:27 +0000 http://linux-notes.org/?p=3692 Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora Хочу рассказать  как можно установить LAMP с поддержкой phpmyadmin на такие ОС как CentOS/RedHat или Fedora. Все необходимое приведено в статье «Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora» и на готовых примерах покажу как это делается очень просто и с минимальными усилиями. […]

The post Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>

Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora

Хочу рассказать  как можно установить LAMP с поддержкой phpmyadmin на такие ОС как CentOS/RedHat или Fedora. Все необходимое приведено в статье «Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora» и на готовых примерах покажу как это делается очень просто и с минимальными усилиями. Я недавно описывал данную установку но для Debian/Ubuntu и Mint, если нужно, то прочитайте и ознакомьтесь:
Установка Apache2 с PHP5 и MySQL + phpmyadmin для Debian/Ubuntu/Mint

Установка Web-сервера

Обновим ОС нашу и после чего установим веб сервер, апач:

# yum update
# yum install httpd

Вся конфигурация в apache сохранена в файле под названием httpd.conf, я рекомендую вам создать резервную копию данного файла:

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.origin

И все конфигурационные файлы апача будут лежать в /etc/httpd/conf.d/ и имеют розширение *.conf.

Установка поддержки сценариев (скриптов)

Следующие команды являются необязательными и должны быть запущены, если вы хотите иметь поддержку в Apache таких скриптов как PHP, Ruby, Python, или Perl.

Чтобы установить поддержку Ruby:

# yum install ruby

Чтобы установить поддержку Perl:

# yum install mod_perl

Чтобы установить поддержку Python:

# yum install mod_wsgi

Если вам нужна поддержка MySQL в Python, вы также должны установить поддержку Python MySQL:

# yum install MySQL-python

Настройка Virtualhosts

Теперь покажу как можно создать или настроить виртуальные хосты, чтобы можно было использовать несколько доменов (или субдоменов) на вашей VPS или выделенном сервере. Созданными доменами можно управлять с помощью различных пользователей или одного пользователя. Есть разные способы сделать это но я рекомендую именно как написано у меня. По дефолту, апач ведет прослушку всех IP-адресов, которые доступны виртуальному серверу. Но я должен исправить это и указать слушать только 1 ИП.

Начните с добавления следующей строки в файл конфигурации вашего виртуального хостинга:

# vim etc/httpd/conf.d/vhost.conf
[...]
NameVirtualHost 203.75.34.45:80
[...]

Теперь необходимо будет создать виртуальные хосты для каждого сайта. Для примера я использую домены «linux-notes.org» и «windows-notes.org». Снова открываем файл vhost.conf (который открывали выше) и пропишем виртуальные хосты следующим образом:

<VirtualHost linux-notes.org:80>
ServerAdmin mail@linux-notes.org
ServerName linux-notes.org
ServerAlias www.linux-notes.org
DocumentRoot /srv/www/linux-notes.org/public_html/
ErrorLog /srv/www/linux-notes.org/logs/error.log
CustomLog /srv/www/linux-notes.org/logs/access.log combined
</VirtualHost>

<VirtualHost windows-notes.org:80>
ServerAdmin admin@windows-notes.org
ServerName windows-notes.org
ServerAlias www.windows-notes.org
DocumentRoot /srv/www/windows-notes.org/public_html/
ErrorLog /srv/www/windows-notes.org/logs/error.log
CustomLog /srv/www/windows-notes.org/logs/access.log combined
</VirtualHost>

Примечание:

Каталог /srv/www для расположения файлов и скриптов для сайтов виртуального хостинга выбран для примера. При необходимости эти файлы можно расположить в других местах.

ErrorLog и CustomLog создаются для отслеживания ошибок и сбора статистики. Их создание не обязательно. Если они определены (как показано выше), каталоги должны быть созданы до перезагрузки Apache.

Так же нужно создать недостающие папки для наших сайтов и для хранение ошибок:

# mkdir -p /srv/www/linux-notes.org/public_html
# mkdir -p /srv/www/linux-notes.org/logs
# mkdir -p /srv/www/windows-notes.org/public_html
# mkdir -p /srv/www/windows-notes.org/logs

После создания виртуальных хостов, нужно запустить сервер апач:

# /etc/init.d/httpd start

Так же, если установлен iptables, то стоит открыть 80-й порт или любой другой (если используете другой):

# system-config-securitylevel-tui --quiet --port=80:tcp

Я предполагаю, у вас уже имеется настроенные DNS для ваших доменов, и хостинг для вашего доменов должен заработать.

Для того, чтобы Apache запускался после следующего цикла перезагрузки, введите следующую команду:

# /sbin/chkconfig httpd on

или

# chkconfig httpd on

После любых изменений в  файле vhost.conf, или в любом другом конфигурационном файле апач, не стоит делать перезагрузку веб-сервера:

# /etc/init.d/httpd reload

Установка дополнительных модулей для apache

Одним из главных достоинств Apache является его крайняя настраиваемость и гибкость. По умолчанию, модули расположены в /etc/httpd/modules/. Директивы конфигурации для модулей по умолчанию находятся в /etc/httpd/conf/httpd.conf, в то время как параметры конфигурации для дополнительных модулей, установленных с yum, как правило, размещены в *.conf файлов в /etc/httpd/conf.d/.

Чтобы убедиться, что модуль включен, смотрите в «конф» файлов для строк, начинающихся с LoadModule. Следующие две команды должны создать или вывести список доступных модулей:

# grep ^LoadModule /etc/httpd/conf/httpd.conf
# grep ^LoadModule /etc/httpd/conf.d/*

Чтобы отключить существующий модуль (на свой страх и риск) отредактировать файл и закомментируйте LoadModule (например #).
Чтобы получить список доступных модулей Apache в репозитории CentOS используют следующие команды:

# yum search mod_

Вы можете установить один из этих модулей с помощью команды:

# yum install mod_[module-name]

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

Понимание .htaccess конфигурации

Файл .htaccess является интерфейсом настройки Apache и многие веб-мастера и разработчики имеют самый большой опыт работы с ним. Ввод опции конфигурации в этих файлах позволит вам контролировать поведение сервера Apache в каждом каталоге. Это позволяет «заблокировать» каталог чтобы предотвратить общий доступ к ним.

Помните, что параметры, указанные в файле .htaccess применяются ко всем каталогам что находятся ниже. Кроме того, обратите внимание, что все параметры, указанные в файле .htaccess можно указать местоположение конфигурации на уровене выше. Если такая организация конфигурации желательно для вашей установки можно задать опции каталога уровня с помощью <Directory> блоки в каталоге виртуального сервера.

По умолчанию, файл httpd.conf ограничивается и не позволяют переопределения. Вам нужно будет настроить следующие строки:

# vim /etc/httpd/conf/httpd.conf
<Directory /srv/www>
Options FollowSymLinks
AllowOverride All
</Directory>

Защита каталога паролем

В не веб доступной директории, нам нужно создать файл .htpasswd. Например, если корень документа для вашего виртуального хоста /srv/www/example.com/public_html/, использовать /srv/www/example.com/. Вход в этот каталог:

# cd /srv/www/example.com/

С помощью команды Htpasswd мы создадим новый ввод пароля для пользователя с именем cecil:

# htpasswd -c .htpasswd cecil

Обратите внимание, что можно указать альтернативное имя для файла паролей (например. .htpasswd), Что может быть разумным, если вы хотите сохранить ряд .htpasswd файлов для разных каталогов в том же месте.

Эти имена пользователей и пароли не нужны (и не должны) соответствовать системных имен пользователей и паролей. Кроме того, вы можете указать, как пароли шифруются / хэшируется с флагом «-m» для MD5, или «-s» для SHA-хэшей. Кроме того, обратите внимание, что при добавлении дополнительных пользователей для файла .htpasswd вы не должны использовать опцию «-c» (что создает новый файл).

В файле .htaccess для каталога, который вы хотите защитить, добавьте следующие строки:

# vim /путь_к_сайту_где_будет_блокироваться_доступ/.htaccess
AuthUserFile /srv/www/example.com/.htpasswd
AuthType Basic
AuthName "Advanced Choreographic Information"
Require valid-user

Хочу отметить, что AuthName представлена пользователю в качестве объяснения в диалоге аутентификации для того, что они просят доступ к серверу.

Перепись адресов с mod_rewrite

Mod_rewrite engine очень мощный, и доступен для использования по умолчанию. Хотя возможности mod_rewrite далеко выходит за рамки данного раздела, я хочу предоставить краткое описание и некоторые случаи общего пользования.

В <Directory > блока или .htaccess файла, разрешите использование модуля mod_rewrite. Нужно сделать в виртуальном хосте самого апача или в .htaccess файле:

[...]
RewriteEngine on
[...]

Теперь, вы можете создать любое количество отдельных правил перезаписи. Эти правила обеспечивают шаблон, который сервер сравнивает все входящие запросы, и, если запрос соответствует образцу перезаписи, сервер обеспечивает альтернативную страницу. Вот правил переписывания. Нужно сделать в виртуальном хосте самого апача или в .htaccess файле:

[...]
RewriteRule ^post-id/([0-9]+)$ /posts/$1.html
[...]

Разберем это правило. Во-первых, обратите внимание, что первая строка шаблон для сопоставления с входящих запросов. Вторая строка определяет фактические файлы, которые будут поданы. patterns mod_rewrite используют синтаксис регулярных выражений: ^ соответствует началу строки, а $ совпадает с концом строки, это означает, что движок перезаписи не будет переписывать строки, которые частично соответствуют шаблону.

Строка в вопросе переписывает все адреса URL, которые определяют пути, которые начинаются с /post-id/ и содержат один или несколько номеров (например. [0-9] +), отбывает соответствующий .html файл в/posts/ каталоге. Термины в шаблоне указывают переменную, которая передается на второй строке, как $ 1, $ 2, $ 3 и так далее.

Есть много других возможностей для использования mod_rewrite, чтобы пользователи могли видеть и взаимодействовать с полезными адресами, сохраняя при этом структуру файлов, что имеет смысл с развитием или развертывания точки зрения.

Установка и конфигурирование MySQL

Думаю что не стоит объяснять что такое MySQL  и для чего она нужна. Просто перейдем к установке.

Сейчас я установлю MySQL-сервера:

# yum install mysql-server

Добавлю данный сервис в автозагрузку мой ОС:

# /sbin/chkconfig mysqld on

Чтобы запустить MySQL:

# /etc/init.d/mysqld start

MySQL готов к использованию. Но можно внести некоторые изменения перед его запуском. Я не вижу смысла сейчас что либо править в файле конфигурации которая находится /etc/my.cnf.

После того как установили MySQL, крайне рекомендую использовать mysql_secure_installation, эта утилита поможет вам настроить безопасность в MySQL. В ходе настройки вас  попросят изменить пароль MySQL для пользователя root, так же удалить учетные записи всех пользователей, а так же удалить тестовые БД:

# mysql_secure_installation

Далее, я покажу как можно создать БД, но для этого нужно войти в MySQL:

# mysql -u root -p

После входа, можно уже приступать к работе, а именно создания БД:

mysql> create database test_db;
mysql> grant all on test_db.* to ’user_name’ identified by 'user_name_pass';

В данном примере, test_db — имя новой БД, user_name — это имя пользователя у которого пароль user_name_pass.

Чтобы выйти с  MySQL нужно использовать следующую команду:

mysql> quit

Apache и MySQL установлены, теперь вы готовы перейти к установке PHP. Чтобы сбросить пароль в MYSQL прочитайте:
Сброс пароля root в MySQL

Установка и настройка PHP

PHP — это скриптовый язык программирования. И необходим для работы наших веб сайтов.

Чтобы установить PHP нужно выполнить:

# yum install php php-pear

После установки, необходимо настроить или поправить конфигурационный файл php.ini. Все что я внесу в данный файл, хватит вам для начала чтобы начать использовать PHP.

Открываем файл и начнем редактирование:

# vim /etc/php.ini
[...]
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off
[...]

Если вам нужна поддержка MySQL в PHP, то вы должны установить php5-MySQL пакет с помощью следующей команды:

# yum install php-mysql

Установка phpmyadmin

Установка PhpMyAdmin в CentOS

На этом данная тема «Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora» завершена и сервер готов к использованию.

The post Установка Apache2 с PHP5 и MySQL + phpmyadmin для CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-apache2-s-php5-i-mysql-phpmyadmin-dlya-centos-redhat-fedora/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-vncserver-na-centos-redhat-fedora/ https://linux-notes.org/ustanovka-vncserver-na-centos-redhat-fedora/#comments Sat, 13 Sep 2014 00:23:48 +0000 http://linux-notes.org/?p=3279 Установка VNCserver на CentOS/RedHat/Fedora VNC используется для отображения сеанса X Windows на другом компьютере. В отличие от удаленного соединения X, X-сервер работает на удаленном компьютере, а не на локальной рабочей станции. Ваша рабочая станция (Linux или Windows) отображает только копию дисплея (реального или виртуального), запущенного на удаленной машине.Есть несколько способов настроить сервер VNC. Эта статья «Установка VNCserver […]

The post Установка VNCserver на CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>

Установка VNCserver на CentOS/RedHat/Fedora

VNC используется для отображения сеанса X Windows на другом компьютере. В отличие от удаленного соединения X, X-сервер работает на удаленном компьютере, а не на локальной рабочей станции. Ваша рабочая станция (Linux или Windows) отображает только копию дисплея (реального или виртуального), запущенного на удаленной машине.Есть несколько способов настроить сервер VNC. Эта статья «Установка VNCserver на CentOS/RedHat/Fedora» показывает, как можно настроить VNC сервер на примере CentOS.

1. Установка VNCserver на CentOS/RedHat/Fedora:

# yum install vnc-server

Можно еще сразу установить и VNC клиент, он не помешает и может пригодится вам в дальнейшем, для этого выполните:

# yum install vnc

Убедитесь, что установитt менеджер окон, чтобы получить полнофункциональный настольный компьютер с графическим интерфейсом. Вы можете использовать команду Yum groupinstall «GNOME Desktop Environment» для установки графического интерфейса — Gnome Desktop, так же можно установить и другие популярные окружения рабочего стола, например «KDE» и «XFCE». XFCE больше легкий, чем Gnome или KDE.

# yum groupinstall "GNOME Desktop Environment"

Если вы приверженец минимализма или просто проверяете работу то достаточно иметь  простой клиент XTerm:

# yum install xterm

Если вы используете CentOS 6, то выполните yum groupinstall Desktop чтобы установить графическую оболочку.

Если вы используете CentOS 5, то выполните yum groupinstall «GNOME Desktop Environment» чтобы установить графическую оболочку.

У меня будет создано 2 пользователя (captain, vncuser) и им будет разрешено подключаться к установленному серверу, по этому я создам их сейчас и мы продолжим настройку:

# su -
# useradd captain
# useradd vncuser

Установим сейчас пароли для пользователей:

# passwd captain
# passwd vncuser

Далее необходимо отредактировать соединение с сервером ( разрешить подключение именно указанным пользователям):

# vim  /etc/sysconfig/vncservers
VNCSERVERS="1:captain 2:vncuser "
VNCSERVERARGS[1]="-geometry 640x480"
VNCSERVERARGS[2]="-geometry 800x600"

Я указал разрешение экрана, если нужно. то измените на большее! Нужно для каждого пользователя отдельно создать пароль для входа на сервер, что мы сейчас и сделаем:

1. Для пользователя captain:

# su - captain
# vncpasswd

2. Для пользователя vncserver:

# su - vncserver
# vncpasswd

Чтобы убедиться что все нормально, выполним команду:

# cd .vnc && ls

Должен в папках ( у каждого из пользователей) появится файл под названием passwd. Если нет, значит что то сделали не так!

Добавим сервер VNC в автозагрузку ОС:

# /sbin/chkconfig vncserver on

Для того чтобы запустить или остановить сервер ВНЦ, используйте:

# /sbin/service vncserver start
# /sbin/service vncserver stop

Нужно еще добавить для каждого пользователя скрипт запуска Х-в:

# vim /home/captain/.vnc/xstartup
# vim /home/vncuser/.vnc/xstartup
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

Можно просто перейти в директорию /home/your_user_name/.vnc/ и скачать готовый скрипт, чтобы не писать его вручную ( мне кажется, так проще будет):

# wget  http://linux-notes.org/wp-content/uploads/files/vnc_server/centos/xstartup

Выставим права 777 для данного файла ( у меня вроде бы не работало без этого, мучался и искал долго ошибку тупую):

# chmod 777 xstartup

Если установлен IPtables, то нужно  добавить некоторые правила:

# cat /etc/sysconfig/iptables
[...]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 5901:5902,6001:6002 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
[...]

После чего перезапускаем ипитаблес:

# /sbin/service iptables restart

На этом все, теперь нужно только запустить сервер:

# /sbin/service vncserver restart

Чтобы проверить работает ли все нормально, то перейдите в браузер и откройте:
http://your_IPadress:5801 — для пользователя 1
http://your_IPadress:5802 — для пользователя 2
и так далее.

Можно скачать ( установить) клиент для VNC, например, если вы используете Windows, то этот клиент называется — UltraVNC. Для centos, я установил в самом начале. В программе вводим IP:port. Для примера , покажу как у меня:

Пользователь captain будет запущен если ввести:
178.62.44.69:5901

После чего попросят ввести пароль.

Пользователь vncuser будет запущен если ввести:
178.62.44.69:5902

После чего тоже попросят ввести пароль.

ПРИМЕЧАНИЕ! Если долго не использовать графическую оболочку ( когда вы подключились уже), то она заблокируется. Решение только одно- это перезапустить сам сервер и подключится к нему заново!

Настройка VNC зашифрования через SSH туннель

Вы будете подключать через SSH туннель. Вы должны быть подключены по SSH для пользователя на компьютере. Для этого примера, пользователь captain. Это имя пользователя учетной записи должно существовать на машине и должен быть установлен пароль или ключ доступа SSH. Система имена пользователей и пароли Linux и VNC не обязаны быть

идентичными и 'не' автоматически синхронизируются.
# vim /etc/sysconfig/vncservers
VNCSERVERS="1:captain 2:vncuser"
VNCSERVERARGS[1]="-geometry 640x480 -localhost"
VNCSERVERARGS[1]="-geometry 800x600 -localhost"

Перезапускаем ВНЦ сервер:

# service vncserver restart

Проверяем, только запускаем на другом компьютере (машине) и тестируем сервер с ВНЦ:

# vncviewer -via captain@178.62.44.69 localhost:1
# vncviewer -via vncuser@178.62.44.69 localhost:2

Установка и настройка удаленного доступа через vnc-ltsp-config

Для включения удаленного доступа для входа через VNC-клиента к системе Centos. Когда VNC-клиент подключается к одному из настроенных портов, пользователь будет дано экран входа. Сессия  не будет постоянной. Когда пользователь выходит из системы, сеанс завершается.
Нужно подключить репозиторий EPEL  и потом уже выполнять команду:

# yum install xinetd vnc-ltsp-config
# /sbin/chkconfig xinetd on
# /sbin/chkconfig vncts on
# /sbin/service xinetd restart

Подредактируем настройки GDM:

# sudo vim /etc/gdm/custom.conf
[...]
[security]
"DisallowTCP=false"
[...]
"Enable=true"

Это добавит возможность получить следующие основанные сеансовые соединение по умолчанию для VNC-клиента:

параметры соединений сессий vnc-client

параметры соединений сессий vnc-client

Если вам не нравится вышеуказанные значения по умолчанию, просто изменить /etc/xinetd.d/vncts по мере необходимости. Основное преимущество использования установки VNC-LTSP-конфигурации является сокращение использования системных ресурсов по сравнению со стандартом «для настройки каждого пользователя «. Недостатком установки VNC-LTSP-конфигурации является то, что * любой * пользователь с возможность захода вероятно, будет иметь возможность войти в систему через VNC-клиента с полным графическим интерфейсом, если не будут приняты меры, чтобы ограничить этот тип доступа.

 Настройка 2-х соединений консольных сессий

x11vnc является способ просмотра удаленно и взаимодействовать с реальными X дисплеев (т.е. дисплей, соответствующий физическому монитора, клавиатуры и мыши) с любой VNC Viewer. Таким образом, он играет роль для Unix / X11, что WinVNC играет для Windows.

x11vnc  с опцией adhoc 

Установим мы его сейчас.

# cd /usr/local/src
# wget wget http://dag.wieers.com/rpm/packages/x11vnc/x11vnc-0.9.3-1.el5.rf.i386.rpm

Устанавливаем только что созданный пакет:

# yum install x11vnc-0.9.3-1.el5.rf.i386.rpm

Запускаем процесс x11vnc на хосте к VNC-клиенту:

# x11vnc -nopw -display: 0.0

Затем подключите (без пароля) через VNC-клиент к IP / имя хоста и порт отметил командой x11vnc. По умолчанию, x11vnc позволит соединения от всех интерфейсов. Настройки брандмауэра на основе хоста возможно, должны быть изменены.

Вы можете совместить это с SSH туннелирования:

# ssh -C -t -L 5900:localhost:5900 [remote ip] 'x11vnc -usepw -localhost -display :0'

Вот и все! Моя статья «Установка VNCserver на CentOS/RedHat/Fedora» подошла к завершению, надеюсь все понятно было как разложил, если нет, то пишите и спрашивайте. Спасибо за использование http://linux-notes.org

The post Установка VNCserver на CentOS/RedHat/Fedora first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-vncserver-na-centos-redhat-fedora/feed/ 3
Page_c76a3fcf https://linux-notes.org/ustanovka-ejabberd-na-redhat-centos-fedora/ https://linux-notes.org/ustanovka-ejabberd-na-redhat-centos-fedora/#comments Thu, 14 Aug 2014 16:06:38 +0000 http://linux-notes.org/?p=3155 Установка ejabberd на RedHat/CentOS/Fedora Хотелось бы рассказать в своей новой статье «Установка ejabberd на RedHat/CentOS/Fedora» как я устанавливал XMPP сервер на примере ejabberd2 в моей ОС — CentOS. ejabberd это сервер Jabber / XMPP для обмена мгновенными сообщениями который выпускается под лицензией GPLv2 (Free и Open Source), написанная на Erlang / OTP. Среди других особенностей, ejabberd — это его кросс-платформенность, отказоустойчивая, кластеризованный и […]

The post Установка ejabberd на RedHat/CentOS/Fedora first appeared on linux-notes.org.]]>

Установка ejabberd на RedHat/CentOS/Fedora

Хотелось бы рассказать в своей новой статье «Установка ejabberd на RedHat/CentOS/Fedora» как я устанавливал XMPP сервер на примере ejabberd2 в моей ОС — CentOS.

ejabberd это сервер Jabber / XMPP для обмена мгновенными сообщениями который выпускается под лицензией GPLv2 (Free и Open Source), написанная на Erlang / OTP. Среди других особенностей, ejabberd — это его кросс-платформенность, отказоустойчивая, кластеризованный и модульный.

1. Установка ejabberd на CentOS.

Я буду устанавливать ejabberd yum командой, но для этого нужно подключить репозиторий EPEL:
Как включить EPEL репозиторий на CentOS 

После того как подключили, выполняем команду:

# sudo yum install ejabberd

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

2. Настройка ejabberd на CentOS.

Сейчас мы немного поправим файл конфигурации:

# sudo vim /etc/ejabberd/ejabberd.cfg
%% линия 91, к ней нужно добавить наше доменное имя.
%% я буду использовать свой Ип адрес, а вы смотрите сами.
%%%. ================
%%%' SERVED HOSTNAMES
%% hosts: Domains served by ejabberd.
%% You can define one or several, for example:
%% {hosts, ["example.net", "example.com", "example.org"]}.
%%
{hosts, ["localhost","78.140.189.243 "]}.

Сохраняем файл. позже мы его немного поправим еще.

Пришло время запустить сервер:

# sudo service ejabberd start

Добавим наш сервис в автозагрузку ( если есть необходимость):

# chkconfig ejabberd on

Нужно нам создать юзера для дальнейшего использования, делается это вот так:

# ejabberdctl register your_username your_host your_password

У меня это будет выглядеть вот так:

# ejabberdctl register admin 78.140.189.243  my_admin_pass

Снова открываем файл настроек и пропишем привилегии для данного пользователя:

# sudo vim /etc/ejabberd/ejabberd.cfg
%%%. ====================
%%%' ACCESS CONTROL LISTS

%%
%% The 'admin' ACL grants administrative privileges to XMPP accounts.
%% You can put here as many accounts as you want.
%%
%%{acl, admin, {user, "aleksey", "localhost"}}.
%%{acl, admin, {user, "ermine", "example.org"}}.
{acl, admin, {user, "admin", "78.140.189.243"}}.
%% если что поменяете ИП адрес на свой или на адрес вашего доменного имени.

Перезапускаем сервис:

# sudo service ejabberd restart

После чего должно все работать и после чего можно юзать веб интерфейс для этого:
http:// your_IP_or_domain:5280/your_user_name

Должно получится что то типа этого:
http://78.140.189.243:5280/admin

Вас попросят ввести ввести логин и пароль, которые мы с вами создали немного ранее. Далее, можно добавить нового пользователя, перейдя во вкладку Виртуальные хосты->Ваш хост ( у меня это ИП) -> Пользователи (Virtual hosts -> example.com -> Users).

ejabberd 2 на CentOS

ejabberd 2 на CentOS

На стороне клиента ( скачиваем например qutim, Gajim или что то др на ваш вкус) и вводим все необходимую информацию ( пароль, логин и доменное имя + пароль).

А на этом я завершаю тему «Установка ejabberd на RedHat/CentOS/Fedora», благодарю за использования моего сайта http://linux-notes.org

The post Установка ejabberd на RedHat/CentOS/Fedora first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-ejabberd-na-redhat-centos-fedora/feed/ 2
Page_c76a3fcf https://linux-notes.org/ustanovka-git-na-redhat-centos-fedora/ https://linux-notes.org/ustanovka-git-na-redhat-centos-fedora/#respond Sat, 02 Aug 2014 08:18:06 +0000 http://linux-notes.org/?p=2827 Установка GIT на RedHat/CentOS/Fedora Git является распределенной системой контроля версий cо свободным и открытым исходным кодом которая  предназначена для обработки небольших и крупных проектов. В своей теме «Установка GIT на RedHat/CentOS/Fedora» я хочу рассказать как установить и пользоваться GIT на CentOS. 1. Установка Git на RedHat/CentOS/Fedora: # yum install git Установить последнюю версию GIT можно выполнить по […]

The post Установка GIT на RedHat/CentOS/Fedora first appeared on linux-notes.org.]]>

Установка GIT на RedHat/CentOS/Fedora

Git является распределенной системой контроля версий cо свободным и открытым исходным кодом которая  предназначена для обработки небольших и крупных проектов. В своей теме «Установка GIT на RedHat/CentOS/Fedora» я хочу рассказать как установить и пользоваться GIT на CentOS.

1. Установка Git на RedHat/CentOS/Fedora:

# yum install git

Установить последнюю версию GIT можно выполнить по моей статье:

Установить последнюю версию GIT

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

2. Протестируем Git, загрузив программное обеспечение из Интернета:

# git clone --depth 1 git://git.sip-router.org/sip-router kamailio

Создадим новый репозиторий в командной строке, для этого нужно выполнить ряд команд.

1. Если вы хотите использовать Git через HTTP. 

Создадим папку в которой будет хранится все наши репозитории:

# mkdir /home/captain/GIT && cd mkdir /home/captain/GIT

Создадим файл:

# touch README.md

Собственно инициализируем сам git:

# git init

Добавляем файл в жит:

# git add README.md

Можно добавить комментарий к самому файлу:

# git commit -m "first commit"

Синхронизируем файлы с ПК и с сервером GIT (с вашим аккаунтом):

# git remote add origin https://github.com/SebastianUA/linux-notes.org.git
# git push -u origin master

Вас попросят ввести имя пользователя и пароль.

Проверить можно следующим образом:

# git remote add origin https://github.com/SebastianUA/linux-notes.org.git
# git push -u origin master

Вводим имя и пароль который мы создали выше.

2. Если вы хотите использовать Git через SSH. 

Создадим папку в которой будет хранится все наши репозитории:

# mkdir /home/captain/GIT && cd mkdir /home/captain/GIT

Создадим файл:

# touch README.md

Делаем инициализацию процесса:

# git init

Добавляем файл:

# git add README.md

Вставим комментарий о данном файле:

# git commit -m "first commit"

Подключаемся удаленно и загружаем файл на сервер:

# git remote add origin git@github.com:SebastianUA/linux-notes.org.git
# git push -u origin master

Вас попросят ввести имя пользователя и пароль.

Описываем ветку в github

Опция checkout позволяет выписывать уже существующие ветки с github, например:

$ git checkout -b dev origin/dev
$ git checkout -b my_branch_project origin/my_branch_project

 

Можно выполнить  это более надежным способом:

$ git checkout --track origin/production

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

$ git checkout -b my_branch_project
$ git pull origin my_branch_project

Первое что делаем — это создаем новую ветку.

Второе, заливаем в нее все изменения из ветки на github.

Создание новой ветки в локальном репозитории

Чтобы это сделать, выполните:

$ git checkout -b my_dev
Switched to a new branch 'my_dev'

Публикуем ее на github:

$ git push origin my_dev

 

Переключиться на другую ветку в git

Выполняем:

$ git checkout my_project_branch

Если ошибочно удалили файл, то его можно извлечь его следующим образом:

$ git checkout readme.txt

Посмотреть список веток

Опция branch  дает возможность просматривать список веток в локальном репозитории:

$ git branch
* my_dev
master

* — Показывает текущую ветку

На этом моя статья «Установка GIT на RedHat/CentOS/Fedora» подошла к завершению, спасибо что читаете мой сайт http://linux-notes.org и я надеюсь что Вам всем нравится как он сделан и как я пишу статьи.

The post Установка GIT на RedHat/CentOS/Fedora first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-git-na-redhat-centos-fedora/feed/ 0
Page_c76a3fcf https://linux-notes.org/ustanovka-i-ispol-zovanie-tcpdump/ https://linux-notes.org/ustanovka-i-ispol-zovanie-tcpdump/#respond Sat, 02 Aug 2014 07:56:11 +0000 http://linux-notes.org/?p=2949 Установка и использование tcpdump tcpdump — мощный анализатор командной строки  и Libpcap, портативная  библиотека для захвата сетевого трафика. Tcpdump выводит описание содержимого пакетов на сетевом интерфейсе, которые соответствуют логическое выражение. Он также может быть запущен с ключом  -w, который вызывает его, чтобы сохранить пакетные данные в файл для последующего анализа, и / или с  -r флагом, который […]

The post установка и использование tcpdump first appeared on linux-notes.org.]]>

Установка и использование tcpdump

tcpdump — мощный анализатор командной строки  и Libpcap, портативная  библиотека для захвата сетевого трафика. Tcpdump выводит описание содержимого пакетов на сетевом интерфейсе, которые соответствуют логическое выражение. Он также может быть запущен с ключом  -w, который вызывает его, чтобы сохранить пакетные данные в файл для последующего анализа, и / или с  -r флагом, который вызывает его для чтения из сохраненного файла пакета. С помощью  этой утилиты можно перехватывать и так же анализировать сетевой трафик который проходит через ПК на котором запущенна данная программа.

Хотелось бы поговорить в данной теме «установка и использование tcpdump» об установке tcpdump, а так же как им пользоваться и для чего он нужен.

С помощью tcpdump можно:

  • Можно делать отладку сетевых приложений.
  • Можно производить отладку сети или сетевого оборудования в целом.
описание tcpdump

описание tcpdump

Чтобы установить tcpdump на debian/ubuntu/linux mint нужно выполнить:

# sudo apt-get install tcpdump

Для того чтобы установить tcpdump на RedHat/CentOS/Fedora используйте:

# sudo yum  install tcpdump

Для того чтобы установить tcpdump на MacOS используйте.

Подключаем (устанавливаем) HOMEBREW.

# brew install tcpdump

Использование tcpdump.

Чтобы проверить работает ли у нас tcpdump можно выполнить команду:

# tcpdump -i eth0 port 80

Существует довольно много ключей для использования самой утилиты tcpdump, приведу список распространенных:

основные ключи для использования tcpdump

основные ключи для использования tcpdump

Если нужно узнать какими пакетами обменивается 21 сервера ( например your_server_1 и your_server_2), то для этого служит команда:

# tcpdump host your_server_1 and your_server_2

Если нужно отслеживать только исходящие пакеты из хоста, то выполните:

# tcpdump src host your_server

Если нужно отслеживать только входящие пакеты из хоста, то выполните:

# tcpdump dst host your_server

Так же можно прослушивать исходящие или входящие пакеты с сервера и по определенному порту для этого просто добавьте порт который нужно прослушивать ( в основном используется 80, 8080).

См. список интерфейсов, по которым tcpdumt можете слушать:

# tcpdump -D

Слушать  интерфейс eth0:

# tcpdump -i eth0

Слушать на любом доступном интерфейсе (Требуется ядро Linux версии 2.2 или выше):

# tcpdump -i any

Вывод всего на экран (все что выполняется программой):

# tcpdump -v

Вывод много чего на экран (все что выполняется программой):

# tcpdump -vv

Вывод очень много всего на экран (все что выполняется программой):

# tcpdump -vvv

Выводить не сильно много информации когда идет захват пакетов (не как стандартный):

# tcpdump -q

Ограничить захват пакетов до 100:

# tcpdump -c 100

Записать все данные (перехваченные пакеты)  в файл с именем capture.cap:

# tcpdump -w capture.cap

Записать все данные (перехваченные пакеты)  в файл с именем capture.cap и вывести на экран в режиме реального времени:

# tcpdump -v -w capture.cap

Вывод пакетов с файла capture.cap:

# tcpdump -r capture.cap

Вывод пакетов с файла capture.cap используя максимально много информации:

# tcpdump -vvv -r capture.cap

Вывод IP и порты вместо доменов идет захват пакетов:

# tcpdump -n

Захват любых пакетов , где хост назначения — 192.138.1.1. Вывод ИП и порты на экран:

# tcpdump -n dst host 192.138.1.1

Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:

# tcpdump -n src host 192.138.1.1

Захват любых пакетов c хоста 192.138.1.1. Вывод ИП и порты на экран:

# tcpdump -n host 192.138.1.1

Захват пакетов где сеть 192.138.1.0/24. Вывод ИП и порты на экран:

# tcpdump -n dst net 192.138.1.0/24

Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:

# tcpdump -n src net 192.138.1.0/24

Захват пакетов с сети 192.138.1.0/24. Вывод ИП и порты на экран:

# tcpdump -n net 192.138.1.0/24

Захват пакетов с порта  23. Вывод ИП и порты на экран:

# tcpdump -n dst port 23

Захват пакетов с портов 1 по 1023. Вывод ИП и порты на экран:

# tcpdump -n dst portrange 1-1023

Захватывать только TCP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:

# tcpdump -n tcp dst portrange 1-1023

Захватывать только UDP пакеты где destination на портах 1 по 1023. Вывод ИП и порты на экран:

# tcpdump -n udp dst portrange 1-1023

Захват пакетов с  destination где ИП 192.138.1.1 и destination порт которого 23. Вывод на экран:

# tcpdump -n "dst host 192.138.1.1 and dst port 23"

Захват пакетов с  destination где ИП 192.138.1.1 и destination по портам 80 или 443. Выводим на экран:

# tcpdump -n "dst host 192.138.1.1 and (dst port 80 or dst port 443)"

Захват любых ICMP пакетов:

# tcpdump -v icmp

Захват любых ARP пакетов:

# tcpdump -v arp

Захват любых ICMP или ARP пакетов:

# tcpdump -v "icmp or arp"

Захват любых пакетов которые broadcast или multicast:

# tcpdump -n "broadcast or multicast"

Захват больших пакетов (500 байт)  а не стандартных 68б:

# tcpdump -s 500

Захват всех байт данных в пакете:

# tcpdump -s 0

Просмотр «тяжелых пакетов»:

#  tcpdump -nnvvXSs 1514

Захват пакетов ICMP с ping и pong:

# tcpdump -nnvXSs 0 -c2 icmp

Вывод без многих вариантов:

# tcpdump -nS

Основные коммуникации (очень подробный режим), можно  увидеть хороший объем трафика, с многословием:

# tcpdump -nnvvS

Глубокий взгляд на трафик, добавляет -X для полезной нагрузки:

# tcpdump -nnvvXS

Просмотр тяжелого пакета и увеличивает snaplength, захватывая весь пакет:

# tcpdump -nnvvXSs 1514

Вы можете также фильтровать на основе определенных частей пакета, а также объединить несколько условий в группы. Это полезно при поиске только SYNs или РСТ, например, и последний для еще более расширенный изоляцией трафика.

Показать мне все URGENT (URG) пакеты:

# tcpdump 'tcp[13] & 32!=0'

Показать мне всеACKNOWLEDGE (ACK) пакеты:

# tcpdump 'tcp[13] & 16!=0'

Показать мне все PUSH (PSH) пакеты:

# tcpdump 'tcp[13] & 8!=0'

Показать мне все RESET (RST) пакеты:

# tcpdump 'tcp[13] & 4!=0'

Показать мне все SYNCHRONIZE (SYN) пакеты:

# tcpdump 'tcp[13] & 2!=0'

Показать мне все FINISH (FIN) пакеты:

# tcpdump 'tcp[13] & 1!=0'

Показать мне все SYNCHRONIZE/ACKNOWLEDGE (SYNACK) пакеты:

# tcpdump 'tcp[13]=18'

Захват TCP Flags используя tcpflags:

# tcpdump 'tcp[tcpflags] & & tcp-syn != 0'

Пакеты с RST и SYN флагами (проверка):

# tcpdump 'tcp[13] = 6'

Траффик с ‘Evil Bit'(проверка):

# tcpdump 'ip[6] & 128 != 0'

На этом я завершу свою статью «установка и использование tcpdump», надеюсь все ясно и понятно. Спасибо за использование моего интернет ресурса http://linux-notes.org

The post установка и использование tcpdump first appeared on linux-notes.org.]]>
https://linux-notes.org/ustanovka-i-ispol-zovanie-tcpdump/feed/ 0