Архив за год 2018

Бэкап в облако mega.nz из консоли CentOS 7

При всём множестве облачных сервисов для хранения данных, лишь немногие позволяют обеспечить синхронизацию данных только в консольном режиме без привлечения GUI. Из того, что я нашёл и опробовал — Яндекс.Диск и MEGA.NZ.

Яндекс.Диск очень хорошо документирован, но единственный его недостаток — всего 10 Гб на бесплатном тарифе.
Mega.NZ также очень неплохо документирован, имеет консольную версию и предоставляет целых 50 Гб на бесплатном тарифе. Его консольный клиент называется MEGAcmd. Процесс его установки и настройки в CentOS 7 описан в этом посте.

Сразу оговорка. Все прелести сервиса (50 Гб и неограниченный трафик) доступны только тем, кто регистрировался на нём сразу после его запуска. Сейчас его монетизировали и оставили только 15 Гб. Кроме того, есть квота трафика на скачивание, на загрузку квоты нет. В принципе, если использовать сервис чисто для бэкапа и скачивать архивы оттуда только по необходимости, то сервис вполне можно использовать и на бесплатном аккаунте. В крайнем случае, Pro-аккаунт стоит совсем недорого.
  1. Переходим на страницу MEGAcmd, выбираем свой дистрибутив Linux и скачиваем готовый пакет для него. Я ставлю на CentOS 7 — выбираем CentOS 7.0 и скачиваем пакет. Прямой ссылки на него нет.
  2. Перемещаем любым доступным способом полученный пакет на сервер, например WinSCP
  3. Переходим в каталог, куда поместили пакет и устанавливаем его:
    yum install /home/megacmd-CentOS_7.x86_64.rpm
  4. Подключаем megacmd к сервису командой 
    mega-login <ваш_логин> <ваш_пароль>

    Логин и пароль указываем от заранее созданной учётной записи. Если её нет, то перед выполнением вышеуказанной команды создайте новую учётку.

  5. После успешного подключения к учётке (если не выскочило ошибок, значит всё ОК), можете проверить что всё работает командой
    mega-ls

    Она выведет список каталогов в облаке (если они там есть). Подключение автоматически восстанавливается после перезагрузки сервера. Для отключения от учётной записи используйте команду 

    mega-logout
  6. На сервере создаём каталог для синхронизации
    mkdir /mega
  7. Предположим, что в облаке у нас есть синхронизируемый каталог /linux_test и мы хотим синхронизировать его с локальным каталогом /mega. Тогда команда для выполнения синхронизации будет такой: 
    mega-sync /mega/ /linux_test/

    После этого локальный каталог /mega будет непрерывно синхронизироваться с облаком. После перезагрузки сервера все параметры синхронизации восстанавливаются и нет необходимости повторно давать эту команду.

  8. Для просмотра синхронизируемых каталогов нужно выполнить команду mega-sync без параметров
  9. Для прекращения синхронизации определённого каталога сначала даём команду mega-sync без параметров и смотрим его ID. Предположим, синхронизируемый в нашем примере каталог /mega имеет ID = 0. Тогда для прекращения его синхронизации команда будет такой: 
    mega-sync -d 0

    Также можно выполнить эту команду не с ID, а с именем локального каталога: 

    mega-sync -d /mega/
Это лишь основной функционал консольного клиента mega.nz. В реальности он обладает гораздо более широкими возможностями.
 

Настраиваем Apache. Защита от F5.

Нажав клавишу F5 в окне браузера и удерживая ее в течении нескольких минут вы можете устроить легкую DDOS атаку на сайт. Функциональная клавиша F5 дает команду браузеру перезагрузить страницу.

Если вы ее нажали и удерживаете длительное время, то ваш компьютер пытается загрузить ее (страницу) много и много раз, чем создает нагрузку на сервер в виде множественных запросов. А так как возможности любого сервера не безграничны, то от переизбытка «чувств» запросов он может перестать работать.
Зависнет сервер или нет зависит от технических характеристик и настроек самого сервера, сайта и используемой CMS. В этой статье я опишу как правильно настроить вэб-сервер Apache2 чтобы даже самый скромный сервер VDS с 512 МБ памяти справлялся с большим количеством запросов, в том числе вызванных клавишей F5.

 

Подготовка к настройке сервера

Определим какой модуль MPM использует Apache2. Для CentOS это выглядит так:

# httpd -V | grep MPM

Получаем ответ:

 
Server MPM:     Prefork
 -D APACHE_MPM_DIR="server/mpm/prefork"

Отлично, у нас Server MPM: Prefork

Настройка Apache, что бы не было проблем с жором памяти

В CentOS надо отредактировать файл /etc/httpd/conf/httpd.conf.
Который по-умолчанию может иметь следующее содержание:

    StartServers          8
    MinSpareServers       5
    MaxSpareServers      20
    ServerLimit         256
    MaxClients          200
    MaxRequestsPerChild 4000

Краткое описание параметров модуля Apache MPM Prefork

StartServers — число дочерних процессов, создаваемых при запуске сервера.
MinSpareServers — минимальное число неиспользуемых (запасных) дочерних процессов сервера, ожидающих потенциальные запросы.
MaxSpareServers — максимальное число запасных процессов, ожидающих потенциальные запросы. Если это число будет превышено, лишние процессы будут убиты.
MaxClients — самый важный параметр модуля MPM prefork, устанавливает верхний предел количества одновременно активных процессов. Именно от него зависит потребление памяти. Его значение перекрывает значение предыдущих параметров.
ServerLimit обычно равен MaxClients.
MaxRequestsPerChild — как часто сервер перерабатывает процессы, убивая старые и начиная (запуская) новые. Полезен при утечках памяти Apache и его библиотек.
KeepAlive — обеспечивает долгоживущие сессии HTTP, позволяющие отправлять несколько запросов через одно и то же соединение. Полезно включить, если страницы содержат много изображений. Но если используете NGINX как проксисервер, то оставьте значение OFF.

Рекомендую прочесть:  CentOS: проверка состояния жестких дисков и RAID контроллера на серверах HP

Самый важный параметр = MaxClients, он как раз и говорит о количестве одновременных процессов вебсервера Apache.

Как узнать значение MaxClients

Определить его значение не сложно. Расчет значения приведу для сервера с размером оперативной памяти 512 МБ. Решаем, что отдаем для ресурсов Apache 50% оперативной памяти, то есть в нашем случае 256 МБ.
Определяем сколько памяти отжирает один процесс:

# ps -ylC httpd | awk '{x += $8;y += 1} END {print "Average Proccess Size (MB): "x/((y-1)*1024)}'

Получаем следующие значения:

 
Average Proccess Size (MB): 21.5185

Получается, что в среднем один процесс Apache потребляет 21 МБ. Соответственно в отведенном объеме 256 МБ мы можем запустить 12 процессов.
Исправим файл конфигурации под новое значение:

    StartServers          3
    MinSpareServers       3
    MaxSpareServers       9
    ServerLimit         256
    MaxClients           12
    MaxRequestsPerChild 3000

Остальные параметры поправил исходя из рекомендаций в интернете для сервера с ОЗУ 512 МБ.
После внесения изменений в файл конфигурации не забудьте перезагрузить Appache:

# service httpd restart

Создание SWAP файла Linux

Создание SWAP файла

  1. Создаем файл необходимого размера для swap области, где /home/swap-tmp — это имя и путь файла, а count=1024K его размер, в данном случае — 1024 Мб):
    dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    На экране получим:

    [user@localhost user]#sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K
    1048576+0 записей считано
    1048576+0 записей написано
    скопировано 1073741824 байта (1,1 GB), 137,509 c, 7,8 MB/c
  2. Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
    mkswap /home/swap-tmp

    После окончания операции на экране появится:

    [user@localhost user]# sudo mkswap /home/swap-tmp
    Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
    без метки, UUID=54c60583-e61a-483a-a15c-2f1be966db85
  3. Следующим шагом активируем только что созданный SWAP файл:
    swapon /home/swap-tmp

    Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:

    cat /proc/swaps
  4. После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла fstab строку /home/swap-tmp swap swap defaults 0 0:
    echo "/home/swap-tmp swap swap defaults 0 0" | sudo tee -a /etc/fstab

    Тоже самое действие но добовление через UUID, который присваивается в пункте 2:

    # echo «UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0» | sudo tee -a /etc/fstab

Удаление SWAP файла

  1. Просматриваем все объекты, которые используются для размещения виртуальной памяти
    # cat /proc/swaps

    Выбираем ненужный.

  2. Деактивируем, для примера, созданный выше SWAP файл:
    # sudo swapoff /home/swap-tmp
  3. Удаляем SWAP файл:
    # sudo rm /home/swap-tmp

Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:

# sudo gedit /etc/fstab

В нем удаляем строчку монтирования SWAP файла.

Редактирование размера SWAP файла

Действия по редактирование объема SWAP файла сводятся к удалению уже созданного файла SWAP и созданию нового файла требуемого размера. То есть нужно сначало сделать пункт 3, а после пункт 2.

Полезные команды для CentOS

  • Включает команду ifconfig
    yum install net-tools
  • srm — для надёжного удаления файлов и директорий

Создание и удаление SWAP файла

  1. Создаем файл необходимого размера для swap области, где /home/swap-tmp — это имя и путь файла, а count=1024K его размерв, в данном случае — 1024 Мб):
    # sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    [user@localhost user]#sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K

    1048576+0 записей считано
    1048576+0 записей написано
    скопировано 1073741824 байта (1,1 GB), 137,509 c, 7,8 MB/c
  2. Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
    # sudo mkswap /home/swap-tmp

    После окончания операции на экране появится:

    [user@localhost user]# sudo mkswap /home/swap-tmp
    Устанавливается пространство для свопинга версии 1, размер = 1073737 кБ
    без метки, UUID=54c60583-e61a-483a-a15c-2f1be966db85
  3. Следующим шагом активируем только что созданный SWAP файл:
    # sudo swapon /home/swap-tmp

    Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:

    # cat /proc/swaps
  4. После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла fstab строку /home/swap-tmp swap swap defaults 0 0:
    # echo «/home/swap-tmp swap swap defaults 0 0» | sudo tee -a /etc/fstab

    Тоже самое действие но добовление через UUID, который присваивается в пункте 2:

    # echo «UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0» | sudo tee -a /etc/fstab
3. Удаление SWAP файла
  1. Просматриваем все объекты, которые используются для размещения виртуальной памяти
    # cat /proc/swaps

    Выбираем ненужный.

  2. Деактивируем, для примера, созданный выше SWAP файл:
    # sudo swapoff /home/swap-tmp
  3. Удаляем SWAP файл:
    # sudo rm /home/swap-tmp

Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:

# sudo gedit /etc/fstab

В нем удаляем строчку монтирования SWAP файла.

4. Редактирование размера SWAP файла

Действия по редактирование объема SWAP файла сводятся к удалению уже созданного файла SWAP и созданию нового файла требуемого размера. То есть нужно сначала сделать пункт 3, а после пункт 2.

Источник

Восстановление данных с флешки/SD

Программа HDD Raw copy Tool. Для создания посекторной копии флешки/карты памяти — http://hddguru.com/software/HDD-Raw-Copy-Tool/

Программа TestDisk & PhotoRec. Для восстановления удаленных (потерянных) данных — http://www.cgsecurity.org/wiki/TestDisk_Download

Если программа выше не нашла ваши файлы попробуйте просканировать смонтированный образ этой бесплатной программой Recuva (ссылка на загрузку справа вверху страницы) — http://www.filehippo.com/download_recuva

Программа Virtual CloneDrive. Для монтирования образа .img — http://www.slysoft.com/en/download.html

Получение бесплатного SSL Сертификата от Certbot

Apache на CentOS / RHEL 7

устанавливать

Certbot упакован в EPEL (дополнительные пакеты для корпоративного Linux). Чтобы использовать Certbot, вы должны сначала включить репозиторий EPEL . В RHEL или Oracle Linux вы также должны включить дополнительный канал.

После этого вы можете установить Certbot, выполнив:

$ sudo yum install python2-certbot-apache

Плагины DNS Certbot также доступны для вашей системы, которые могут использоваться для автоматизации получения подстановочного сертификата с сервера ACMEv2 от Let’s Encrypt. Чтобы использовать один из этих плагинов, вы должны настроить DNS для домена, для которого вы хотите получить сертификат, с поставщиком DNS, для которого у Certbot есть плагин. Список этих плагинов и дополнительную информацию об их использовании можно найти здесь . Чтобы установить один из этих плагинов, запустите команду установки выше, но замените python2-certbot-apache именем плагина DNS, который вы хотите установить.

Начать

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

$ sudo certbot --apache

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

$ sudo certbot --apache certonly

Если вы хотите получить подстановочный сертификат, используя новый сервер ACMEv2 от Let’s Encrypt, вам также понадобится использовать один из плагинов DNS Certbot . Чтобы сделать это, убедитесь, что плагин для вашего провайдера DNS установлен с помощью приведенных выше инструкций и выполните команду, как показано ниже:

$ sudo certbot -a dns-plugin -i apache -d "* .example.com" -d example.com --server https://acme-v02.api.letsencrypt.org/directory

Вам нужно будет заменить dns-plugin именем плагина DNS, который вы хотите использовать. Вам также может потребоваться предоставить дополнительные флаги, такие как путь к вашим учетным данным API, как описано в документации для подключенного модуля DNS.

Чтобы узнать больше о том, как использовать Certbot, прочтите нашу документацию .

Автоматическое обновление

Certbot может быть настроен на автоматическое обновление сертификатов до истечения срока их действия. Так как сертификаты Let’s Encrypt длятся в течение 90 дней, рекомендуется воспользоваться этой функцией. Вы можете протестировать автоматическое обновление сертификатов, выполнив следующую команду:

$ sudo certbot renew --dry-run

Если это работает правильно, вы можете организовать автоматическое обновление, добавив задание cron или таймер systemd, который запускает следующее:

$ sudo certbot renew

Входим в планировщик

crontab -e

Я сделал обновление каждый месяц 16 числа в 00:00

0 0 16 * * certbot renew #Обновление SSL

Источник

Как настроить openfire на Centos 7

Openfire производим установку и настройку на системе CentOS 7.

Качаем openfire и устанавливаем

wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-4.2.3-1.x86_64.rpm
yum install ~/openfire-4.2.3-1.x86_64.rpm

Ставим mysql
yum install mariadb mariadb-server libldb.i686 krb5-workstation

Добавляем в автозагрузку и запускаем mysql и openfire


systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable openfire.service
systemctl start openfire.service

Создаем базу данных

mysql
> CREATE DАТАBASE openfire;
> GRANT ALL on openfire.* to 'openfire'@localhost IDENTIFIED BY 'your password';
> FLUSH PRIVILEGES;

меняем кодировку на utf8

> use openfire;
> alter database character set utf8;
> alter database collate utf8_general_ci;

Во время установки, когда будете выбирать драйвер MySQL укажите URL к базе вида:
jdbc:mysql://localhost:3306/openfire?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8

Если openfire уже установлен, то переконвертируйте базу в utf8, затем файле конфигурации openfire.xml допишите после jdbc:mysql://localhost:3306/openfire

?useUnicode=true&amp;characterEncoding=UTF-8&amp;characterSetResults=UTF-8

Здесь нужно ОБЯЗАТЕЛЬНО! заменить & на &amp; иначе вместо входа в админку увидите страницу установки openfire.

Открываем в браузере http://my_ip:9090/my_ip меняем на ip адрес сервера

Установка PPTP VPN-сервера на CentOs 7 для ленивых.

В заголовке данной статьи почётное место занимает словосочетание «… для ленивых». Спешу заверить читателя в том, что эти слова не носят оскорбительный характер.
Напротив, если Вы открыли и читаете данную статью, то лень — не Ваша подруга )

Как многие мои предыдущие статьи, желание написать данную статью родилось в моей голове спонтанно. Как говорили до нас и будут говорить после нас : «Желания должны исполняться» )
Сегодня я напишу о том, как надо поднимать сервер PPTP VPN под управлением CentOS 7.
«Этот баян» многократно описан и переписан на страницах рунета » — наверняка подумает в этом месте читатель и окажется прав )
Почему-то мне захотелось преподнести этот «баян» в своём представлении.

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

Для себя процесс правки конфигов Linux на удалённых серверах я облегчила установкой на локальном компьютере программы Bitvise SSH Client. Программа позволяет редактировать файлы, находящиеся на удалённой машине, в редакторе Notepad++. При этом не возникает никаких проблем с кодировками, нет необходимости многократно стучать по клавиатуре в консольном текстовом редакторе Linux, имеется возможность копи-пастить информацию кнопками мыши и сохранять её на удалённом компе.
При всех своих достоинствах, программа Bitvise SSH Client не спасет от ошибок начинающих линуксоидов: всегда что-то пойдёт «не так». Процесс поиска ошибки занимает порой довольно продолжительный период времени. К примеру, вчера на полу-часовую установку PPTP VPN под управлением CentOS 7 я потратила весь день (
Несмотря на то, что упомянутый процесс многократно описан системными администраторами в своих блогах, по-настоящему стоящих статей не так уж и много. К тому-же в процессе установки VPN-сервера возникают вопросы, ответы на которые получить не у кого. Учитывая тот факт, что данный сайт носит статус «форума», отныне и навсегда каждый желающий сможет получить ответ ЗДЕСЬ !

— Немного самонадеянно — пробежала мысль в моём правом полушарии
— Ну и пусть — оппонировало левое )
— Мне это нравится — подытожил мозг, но пора уже переходить к сути статьи ))

Прежде, чем начать установку PPTP VPN-сервера на CentOS 7, необходимо установить репозиторий и установить сетевые утилиты.

# yum install -y epel-release
# yum install -y mc
# yum install -y net-tools

Указанная выше установка файлового менеджера Midnight Commander никак не связана с процессом установки сервера PPTP VPN и не является обязательной.

Далее необходимо отключить Selinux.
Система принудительного контроля Selinux отключается правкой конфигурационного файла /etc/sysconfig/selinux

Код:
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled

Выше я упомянула, что вчерашний процесс установки сервера VPN занял у меня весь день. В течение дня я редактировала этот файл многократно: локально в Notepad++, удалённо в mcedit. К вечеру под влиянием настройки Linux во мне стали просыпаться экстрасенсорные возможности )
С самого начала статьи я обещала способ «для ленивых», поэтому сегодня — никаких «ковыряний» в конфигах не будет !
Сегодня — способ для ленивых ))
Я призываю читателя статьи отключить SeLinux, а также продолжить установку PPTP VPN сервера при помощи нескольких консольных команд. Команды можно «тупо копировать» при помощи манипулятора «мышь» из этой статьи, вставлять в консоль Bitvise SSH Client и нажимать клавишу «ENTER» на клавиатуре. К концу статьи на вашей CentOS 7 гарантированно, с наименьшими умственными, эмоциональными и физическими затратами будет стоять PPTP VPN сервер )
Отключаем SeLinux:

# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/sysconfig/selinux
# sed -i ‘s/\(^SELINUX=\).*/\SELINUX=disabled/’ /etc/selinux/config

После перезагрузки проверьте статус SELinux командой «sestatus», Вы должны увидеть следующий вывод:

SELinux status: disabled

Переходим к установке PPTP VPN сервера и добавлении его в автозагрузку:

# yum install -y ppp pptp pptpd pptp-setup
# chkconfig pptpd on

Далее настройка конфигов из консоли (копируем, вставляем и жмём «Enter») :
Файл /etc/pptpd.conf

cp /etc/pptpd.conf /etc/pptpd.conf.bak
cat >/etc/pptpd.conf<<EOF
option /etc/ppp/options.pptpd
logwtmp
localip 10.0.10.1
remoteip 10.0.10.2-254
EOF

Файл /etc/ppp/options.pptpd
Редактирование данного файла преследует собою цель — указание DNS серверов.
В примере ниже гугловские
ms-dns 8.8.8.8
ms-dns 8.8.4.4
можно заменить на свои.

Файл /etc/ppp/chap-secrets
Редактирование данного файла преследует собою цель — указание логина и пароля для подключения к PPTP VPN серверу.
В примере ниже «root» и «toor» можно заменить на свои.

cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
cat >/etc/ppp/chap-secrets<<EOF
root pptpd toor *
EOF

Файл /etc/sysctl.conf
Редактирование данного файла преследует собою цель — изменение значения «0» на «1» net.ipv4.ip_forward = 1.

Перечитываем конфигурацию.

sysctl -p

На этом установка и настройка VPN PPTP сервера закончена.

Осталось только «разобраться» с файерволлом.
Удаляем firewalld,

# systemctl stop firewalld
# systemctl disable firewalld

вместо него ставим IPTABLES:

# yum install iptables-services iptables

Включим автозапуск iptables:

# systemctl enable iptables
chmod +x /etc/rc.d/rc.local

Теперь процесс настройки IPTABLES подошёл к ответственному моменту — настройке конфигурации таблиц.
В рамках данной статьи, с целью не набивать себе «шишек» и не наживать лишних хлопот, я рекомендую отредактировать конфигурационный файл /etc/sysconfig/iptables в текстовом редакторе. Да, да, вопреки заявленному в начале статьи принципу отказа от использования текстовых редакторов, рекомендую сделать одно-единственное исключение ))

Код:
mcedit /etc/sysconfig/iptables

Истинные поклонники консоли вместо текстового редактора могут воспользоваться консольными командами:

echo «iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE» >> /etc/rc.d/rc.local
iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -o eth0 -j MASQUERADE

Это конец, сохраняем и перезапускаем всё: файерволл и сервер PPTP VPN.

service iptables save
service iptables restart
systemctl start pptpd

Проверяем,запущен ли pptp-сервер;

# ps ax | grep pptpd

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

# netstat -an | grep -i listen

Дополнительная команда для проверки статуса pptpd:

# systemctl status pptpd