среда, 12 декабря 2018 г.

WEB-сервер lighttpd на CentOS7

WEB-сервер lighttpd на CentOS7

Lighttpd – легковесный web-сервер, простая альтернатива Apache.

Установка сервера:
# yum install lighttpd
Дополнительно установим сетевые уитилиты:
# yum install net-tools

Конфигурационный файл сервера - /etc/lighttpd/lighttpd.conf
Перво-наперво необходимо указать серверу что он будет слушать. Для этого редактируем файл:
# nano /etc/lighttpd/lighttpd.conf
Меняем закомментированную строку
#server.bind = "localhost"
на:
server.bind = "0.0.0.0"

Запуск сервера осуществляется командой:
# systemctl start lighttpd
Добавляем в автозагрузку:
# systemctl enable lighttpd
Проверяем, слушается ли порт:
# netstat -ltupn | grep lighttpd
tcp    0   0 0.0.0.0:80   0.0.0.0:*    LISTEN  1359/lighttpd
В браузере при обращении к IP сервера должны увидеть его стартовую страницу:

HTML документы сайта лежат в директории: /var/www/lighttpd/

Для использования php и mysql (mariadb) на сайте выполняем их установку:

Установка MariaDB.
# yum install mysql mariadb-server
Добавляем скрипт автозапуска и стартуем
# systemctl enable mariadb.service
# systemctl start  mariadb.service
Задаем пароль root для сервера MySQL
# mysql_secure_installation
Сначала вводим на первый вопрос просто <Enter>, затем на следующих вопросах вводим пароль и его подтверждение. На остальные вопросы отвечаем ДА (y)

Сервер lighttpd работает с php через fastcgi.
Установка php и сервера fastcgi, через которого будет происходить запуск команд php от web-сервера выполняется так:
# yum install php php-mysql
# yum install lighttpd-fastcgi
Настраиваем модуль fastcgi в lighttpd.
Для этого сначала определяемся, где лежит php-cgi
# which php-cgi
/usr/local/bin/php-cgi
Этот путь к исполняемому файлу нам понадобиться в дальнейшем.
Открываем конфигурационный файл fastcgi.conf
# nano /etc/lighttpd/conf.d/fastcgi.conf
Проверяем, что строка подключения модуля на месте:
server.modules += ( "mod_fastcgi" )
Вставляем конфигурацию fastcgi, где используем найденный ранее путь к php-cgi в переменной «bin-path». Остальное не меняем.
fastcgi.server = ( ".php" => ((
                     "bin-path" => "/usr/local/bin/php-cgi",
                     "socket" => "/tmp/php.socket",
                     "max-procs" => 1,
                     "bin-environment" => (
                       "PHP_FCGI_CHILDREN" => "16",
                       "PHP_FCGI_MAX_REQUESTS" => "10000"
                     ),
                     "broken-scriptfilename" => "enable"
                 )))
Теперь добавляем файл конфигурации сервера fastcgi в конфиг сервера lighttpd.
# nano /etc/lighttpd/modules.conf
Раскоментируем строчку касающейся включения модуля fastcgi.conf в следующем блоке:
##
## FastCGI (mod_fastcgi)
##
include "conf.d/fastcgi.conf"
Рестартуем сервер: 
# systemctl restart lighttpd
Для проверки поддержки php в lighttpd создаем тестовый файл:
# nano /var/www/lighttpd/info.php
вписываем туда
<?php
phpinfo();
?>
И проверяем обратившись к этому файлу через браузер, что страница описания функций php открывается. Обращаем внимание, что поддержка MySQL присутствует (есть блок MySQL и блок PDO MySQL). Если используется версия php 7, то блока MySQL может и не быть.




вторник, 11 декабря 2018 г.

Установка SNMP агента на сервер Linux CentOS7

Установка SNMP агента на сервер Linux CentOS7

Необходимость установки SNMP агента на сервер Linux может быть вызвана необходимостью мониторить сервер путем SNMP опросов.

Установка необходимых пакетов:
# yum install net-snmp net-snmp-utils

Для надежности лучше забэкапировать конфигурационный файл по умолчанию snmpd:
# cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig

Редактируем текущий конфигурационный файл:
# nano /etc/snmp/snmpd.conf
Например:
syslocation NNovgorod,ul.Vitebskaya,100
syscontact Root <root@localhost>

# First, map the "community name" into a "security name"
#          sec.name    source            community
com2sec    local       localhost         public
com2sec    nolocal     10.10.15.0/24     public

# Second, map the "security name" into a "group name":
#        groupName    securityModel    securityName
group    rwgroup      v2c              local
group    rogroup      v2c              nolocal
group    rwgroup      v1               local
group    rogroup      v1               nolocal

# Third, create a view for us to let the group have rights to:
#       name          incl/excl   subtree             mask(optional)
view    all             included        .1              80

# Finally, grant the groups access to the view:
#      group   context sec.model  sec.level prefix  read write notif
access rwgroup   ""      any       noauth   exact   all  all   all
access rogroup   ""      any       noauth   exact   all  none  none

Здесь сначала устанавливается правило работы с community в различных сетях. Из сети 10.10.15.0/24 сервер можно будет опросить с помощью community «Public»
Затем описывается какая версия SNMP будет использоваться. В данном случае разрешена и 1ая и вторая версия SNMP
Следующим шагом описывается какое дерево OID можно просматривать. В данном случае – все дерево (.1)
На финальном шаге определяются группы доступа для просмотра

Добавляем сервис snmpd в автозагрузку:
# systemctl enable snmpd.service
Запускаем сервис snmpd
# systemctl start snmpd

Изменяем уровень журналирования демона snmpd:
# nano /etc/sysconfig/snmpd
Содержимое файла приводим к виду:
# snmpd command line options
# '-f' is implicitly added by snmpd systemd unit file
OPTIONS="-LS0-4d"

Перезапускаем сервис:
# systemctl restart snmpd.service

Все. Теперь сервер можно опрашивать.
Например опросить самого себя командой:
# snmpwalk -v2c -c public localhost system

понедельник, 10 декабря 2018 г.

Установка WebDAV в Apache на CentOS 7

Установка WebDAV в Apache на CentOS 7

WebDAV (Web-based Distributed Authoring and Versioning) - это расширение протокола HTTP, позволяющее пользователю управлять файлами на WEB-сервере.
В CentOS7 при установке Apache это расширение устанавливается по умолчанию.
Проверить это можно командой «httpd -M | grep fs» . Вывод должен быть таким:
# httpd -M | grep fs
dav_fs_module (shared)

Создадим директорию для файлов, которые будут доступны по протоколу WebDAV и дадим ей права:
# mkdir /var/www/webdav
# chown -R apache:apache /var/www/webdav
# chmod -R 755 /var/www/webdav

Создаем пользователя, который будет подключаться к ресурсу:
# htdigest -c "/etc/httpd/wduser.passwd" DAV-upload dev
Adding password for dev in realm DAV-upload.
New password: <вводим пароль, например 12345>
Re-type new password: <вводим пароль еще раз, например 12345>
Здесь DAV-upload это признак пользователя, который будет использоваться далее в настройках.
dev – имя пользователя
12345 – это пароль

Добавляем виртуальный хост к серверу Apache, который будет обслуживать созданную папку webdav. Для этого создаем файл конфигурации webdav.conf и наполняем его содержимым:
# nano /etc/httpd/conf.d/webdav.conf
Вставляем описание хоста:
Listen 0.0.0.0:8080
DavLockDB /var/www/DavLock
<VirtualHost *:8080>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/webdav/
    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined
    Alias /webdav /var/www/webdav
    <Directory /var/www/webdav>
        DAV On
        AllowOverride All
        Order allow,deny
        allow from all
        AuthType Digest
        AuthName DAV-upload
        AuthUserFile "/etc/httpd/wduser.passwd"
        AuthDigestProvider file
        Require valid-user
        Options Indexes MultiViews
        IndexOptions Charset=UTF-8 FancyIndexing HTMLTable VersionSort NameWidth=350 FoldersFirst IgnoreCase SuppressDescription
        IndexOrderDefault Descending Name
        IndexIgnore *~ favicon.ico *.bat *.sh* ~$* Thumbs.db
        IndexStyleSheet "http://localhost/style.css"
    </Directory>
</VirtualHost> 
Для WebDAV важно, что бы вся папка /var/www/ принадлежала пользователю apache, поэтому выполняем:
# chown -R apache:apache /var/www/

Рестартуем сервер
# systemctl restart httpd

Не забываем открыть порт 8080 в файрволле:
Для iptables:
# nano /etc/sysconfig/iptables
Добавляем строку:
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
Рестартуем сервис:
# service iptables save
# service iptables restart

Для тестирования WEbDAV устанавливаем утилиту - клиента WebDav - cadaver
# yum --enablerepo=epel install cadaver
Проверяем работу WebDav с помощью cadaver
Подключение к ресурсу WebDev:
# cadaver http://10.10.49.162:8080/webdav/
Authentication required for webdav on server `10.10.49.162':
Username: dev
Password: <вводим пароль 12345>
dav:/webdav/>
Увидев это приглашение понимаем, что подключение прошло успешно.
Тестовая заливка файла:
> put /var/www/html/network2.html
Uploading /var/www/html/network2.html to `/webdav/network2.html':
Progress: [=============================>] 100,0% of 2364 bytes succeeded.
Просмотр содержимого каталога:
> ls
Listing collection `/webdav/': succeeded.
        network2.html                       2364  дек  1 19:45
        test.txt                              26  ноя 18 08:06
Скачивание файла:
> get test.txt
Downloading `/webdav/test.txt' to test.txt:
Progress: [=============================>] 100,0% of 26 bytes succeeded.
Удаление файла:
> delete test.txt
Deleting `test.txt': succeeded.
Выход из клиента:
> exit
Connection to `10.10.49.162' closed.


Ресурс WebDAV можно подключить в ОС Windows как сетевой диск.
Первый вариант (самый легкий):
"Мой компьютер" – кнопка "Подключить сетевой диск"
В поле "Папка" вводим наш URL http://10.10.49.162:8080/webdav/, отмечаем все галочки. Затем будет запрошен логин и пароль. После чего подключением можно пользоваться.
Второй вариант.
Подключаем сетевой диск в Windows из командной строки так:
C:\Users\rossyp>net use N: http://10.10.49.162:8080/webdav/
Введите имя пользователя для '10.10.49.162': dev
Введите пароль для 10.10.49.162:
Команда выполнена успешно.
Отключаем сетевой диск:
C:\Users\rossyp>net use N: /DELETE
N: успешно удален.
Третий вариант.
С помощью программы Cyberduck (https://cyberduck.io/ ) работать с ресурсом можно без проблем. В поле «Сервер» вводим URL, затем вводим логин и пароль и с ресурсом можно работать. Очередь загрузки / выгрузки показывается в удобном окне:

ПРИМЕЧАНИЯ:
1.
Для добавления хранилищу красивости просмотра через WEB-интерфейс можно в корне создать файл "HEADER.html", содержимое которого будет выводиться над листингом, и файл "README.html", содержимое которого будет выводиться под листингом.
Файл style.css применяется в конфигурации для подкачки стиля оформления страниц.
2.
Для решения проблемы работы с большими файлами через WebDAV в Windows необходимо исправить одну переменную в реестре:
Запускаем редактор реестра:
>regedit
Ищем ветку:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Исправляем параметр FileSizeLimitInBytes на ffffffff
По умолчанию здесь -  2faf080