LEXBLOG.org https://lexblog.org Информационный сайт Thu, 09 Jan 2020 14:40:20 +0000 ru-RU hourly 1 https://lexblog.org/wp-content/uploads/2019/09/logo_x-150x150.png LEXBLOG.org https://lexblog.org 32 32 Взлом сайта через внедрения шелла https://lexblog.org/vzlom-sajta-cherez-vnedreniya-shella/ https://lexblog.org/vzlom-sajta-cherez-vnedreniya-shella/#respond Thu, 09 Jan 2020 14:39:32 +0000 https://lexblog.org/?p=1140 Начнём с того что эта  возможность даёт нам полный доступ к сайту и файлам в целом. Принцип следующий: мы внедряем файл с шеллом в сайт при его обновлении или прочего.

Обо всём по порядку.

Для начала нужно получить сам шелл. Скачать его можно по ссылкам ниже:

MEGA | ANONFILE | YANDEX

Для запуска нужен python 2.7 . Для создание нашего шелла нужно запустить файл start.bat, и в папке output появится файл (название может быть другое):

Теперь нужно внедрить шелл в файлы сайта. На примере буду использовать инсталятор WordPress. Просто помещаем файл в любую папку (в нашем случае в папку wp-content) и файл переименуем в wp-index.php для отвлечения внимания:

Обратите внимание, что в папке с шеллом не должно быть файла .htaccess, иначе будет ошибка.

Шелл загружен. Теперь нам нужно узнать когда можем угнать сайт, то есть, когда кто-то поместит его в сеть и на сервере. Для этого нам поможет сервис blueclouddrive.com

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

Нажимаем Generate Token и переходим в раздел  Cloned site JavaScript:

Копируем код. Его нужно поместить в файл сайта, который открывается по умолчанию. Так как мы за пример взяли WordPress то этим файлом будет header.php темы.

Разместим мы его так, как показано ниже:

Сохраняем файл и предоставляем куда-то в общий доступ.

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

В пункте с «Clone site is at:» мы видим домен, где расположен сайт. (в нашем случае это localhost, так как мы проводим всё локально).

Переходим на домен жертвы и дописываем путь к шеллу. В нашем случае ссылка будет выглядеть так: http://localhost/wp-content/wp-index.php

Перед нами будет наш шшел. Логинимся с паролем «b374k»:

Перейдём в каталог выше, нажав на [..] и выбираем файл wp-config.php:

Теперь мы можем узнать данные доступа к базе:

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

На этом всё. 🙂

]]>
https://lexblog.org/vzlom-sajta-cherez-vnedreniya-shella/feed/ 0
85 фейков страниц популярных сайтов https://lexblog.org/85-fejkov-stranits-populyarnyh-sajtov/ https://lexblog.org/85-fejkov-stranits-populyarnyh-sajtov/#respond Sun, 05 Jan 2020 18:35:36 +0000 https://lexblog.org/?p=1136 85 фейков страниц популярных сайтов

 

В каждом проекте есть файл *.php в котором прописываем данные для сбора (вашу почту).

Скачать:

Telegram

Mega 

DiskYandex

Google Drive

 

]]>
https://lexblog.org/85-fejkov-stranits-populyarnyh-sajtov/feed/ 0
Установка Cinnamon GUI на CentOS 7 Linux https://lexblog.org/ustanovka-cinnamon-gui-na-centos-7-linux/ https://lexblog.org/ustanovka-cinnamon-gui-na-centos-7-linux/#respond Fri, 03 Jan 2020 15:51:57 +0000 https://lexblog.org/?p=1131 Сначала нам нужно настроить репозиторий EPEL, поскольку именно здесь мы будем устанавливать пакеты:

yum install epel-release -y

Затем нужно установить группу «Server with GUI», прежде чем продолжить. Обратите внимание, что это также установит GNOME, однако позже вы сможете перейти на Cinnamon:

yum groupinstall "Server with GUI" -y

Далее устанавливаем Cinnamon:

yum install cinnamon -y

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

systemctl get-default

Мы должны получить вывод «graphical.target«. Если мы получили «multi-user.target» то делаем следующее:

systemctl set-default graphical.target
systemctl isolate graphical.target

После чего перезагружаем систему.

 

]]>
https://lexblog.org/ustanovka-cinnamon-gui-na-centos-7-linux/feed/ 0
Статус сервера с помощью BASH https://lexblog.org/status-servera-s-pomoshhyu-bash/ https://lexblog.org/status-servera-s-pomoshhyu-bash/#respond Thu, 02 Jan 2020 10:49:48 +0000 https://lexblog.org/?p=1128 Скрипт проверки нагрузки load average:

#!/bin/bash
loadavg=`uptime | awk '{print $10+0}'`
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`
if [ "$thisloadavg" -ge "2" ]; then
echo "Busy - Load Average $loadavg ($thisloadavg) "
top -bn 1
else
echo "Okay - Load Average $loadavg ($thisloadavg) "
fi

Скрипт проверки статуса apache (centos):

#!/bin/bash
ps cax | grep httpd 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "HTTPD is running."
else
echo "HTTPD is not running."
fi

Если ubuntu, то:

#!/bin/bash
ps cax | grep apache2 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "HTTPD is running."
else
echo "HTTPD is not running."
fi

Таким образом можно проверять любые сервисы, например nginx:

#!/bin/bash
ps cax | grep nginx 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "NGINX is running."
else
echo "NGINX is not running."
fi

Или mysql:

#!/bin/bash
ps cax | grep mysql 2>/dev/null 1>/dev/null
if [ $? -eq 0 ]; then
echo "MYSQL is running."
else
echo "MYSQL is not running."
fi

По аналогичному скрипту можно настроить отправку уведомлений в telegram если к примеру load average высокое:

#!/bin/bash
loadavg=$(uptime | awk '{print $10+0}')
thisloadavg=$(echo $loadavg|awk -F \. '{print $1}')
if [ "$thisloadavg" -ge "2" ]
then
ID_USER=849489845
TOKEN_BOT=999999999:Afwe98yUw3kj-O-8NdwIOIwnp2452131
in=$(echo -e "HARD LOAD AVERAGE")
message=$in
curl -s -X POST "https://api.telegram.org/bot"$TOKEN_BOT"/sendMessage" -F chat_id=$ID_USER -F text="$message"
fi

Где, ID_USER — ВАШ ID
TOKEN_BOT — токен бота.

]]>
https://lexblog.org/status-servera-s-pomoshhyu-bash/feed/ 0
Progressive Web Apps для сайта https://lexblog.org/progressive-web-apps-dlya-sajta/ https://lexblog.org/progressive-web-apps-dlya-sajta/#respond Fri, 20 Dec 2019 02:12:00 +0000 https://lexblog.org/?p=1112 Progressive Web Apps или прогрессивное веб-приложение (англ. progressive web app) — гибрид сайта и приложения для мобильных устройств, простыми словами: это вэб-сайт, который построенный с использованием веб-технологий, но который взаимодействует с пользователем как приложение.

Для начала нужно создать иконку для сайта. С сегодняшними возможностями это не составит труда, например, можно воспользоваться сайтами thenounproject.com или www.ucraft.ru

Когда у Вас есть иконка сайта, нужно HTML кодом прикрепить её к сайту. Можно воспользоватся генератором: www.favicon-generator.org

Получим что-то типа этого:

<link rel="apple-touch-icon" sizes="57x57" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="60x60" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="72x72" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="76x76" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="114x114" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="120x120" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="144x144" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="152x152" href="/themes/img/ico/logo.png">
<link rel="apple-touch-icon" sizes="180x180" href="/themes/img/ico/logo.png">
<link rel="icon" type="image/png" sizes="192x192" href="/themes/img/ico/logo.png">
<link rel="icon" type="image/png" sizes="32x32" href="/themes/img/ico/logo.png">
<link rel="icon" type="image/png" sizes="96x96" href="/themes/img/ico/logo.png">
<link rel="icon" type="image/png" sizes="16x16" href="/themes/img/ico/logo.png">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/themes/img/ico/logo.png">
<meta name="theme-color" content="#ffffff">

Далее нужно прописать манифест, это такой файл, который содержит данные о сайте. Выглядит он следующим образом:

{
"name": "Web SITE",
"short_name": "Web NAME",
"description": "Web PAGE",
"lang": "en-EN",
"start_url": "/",
"display": "standalone",
"theme_color": "#FFFFFF",
"background_color": "#FFFFFF",

"icons": [
{
"src":"\/icons/logo-512.png",
"sizes": "512x512",
"type": "image\/png"
},
{
"src": "\/icons/icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/icons/icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/icons/icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/icons/icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

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

<link rel="manifest" href="/manifest.json">

Теперь нужно создать несколько файлов, чтобы подключить service worker, так как это одно из требований технологии PWA.

Создаём файл в корне под названием sw-toolbox.js и добавляем туда следующий код: ССЫЛКА

Создаём файл sw.js и записываем в него следующее:

'use strict';
importScripts('sw-toolbox.js');
toolbox.precache(["index.html","style/style.css"]);
toolbox.router.get('/images/*', toolbox.cacheFirst);
toolbox.router.get('/*', toolbox.networkFirst, {
networkTimeoutSeconds: 5
});

Проверьте, чтобы все пути к папке с изображениями, стилями были правильные!

Теперь подключаем наши файлы следующим кодом между тегами HEAD:

<script>
if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/sw.js').then(function(registration) {
      // Registration was successful
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }, function(err) {
      // registration failed :(
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}
</script>

Проверяем наш сайт открыв страницу в браузере. В адресной строке должен появится знак «+», а это значит что подключенная технология работает:

Возможности данной технологии широкие, с помощью её можно отправлять push-уведомления при выходе нового контента, запрашивать пользователя добавить сайт на главный экран.

Стоит отметить, что для самой популярной в мире CMS WordPress уже существует плагин, который довольно хорошо работает и подключает данную технологию: PWA for WP & AMP

]]>
https://lexblog.org/progressive-web-apps-dlya-sajta/feed/ 0
Отправка данных посетителя в telegram. https://lexblog.org/otpravka-dannyh-posetitelya-v-telegram/ https://lexblog.org/otpravka-dannyh-posetitelya-v-telegram/#respond Fri, 20 Dec 2019 01:41:26 +0000 https://lexblog.org/?p=1105 На днях пришла идея сделать скрипт, при открытии которого мне будут приходить уведомления в телеграмм с данными о посетителя сайта.

Само собой, всё будем писать на PHP.

На будет нужно следующее:

  1. IP адрес посетителя
  2. Язык браузера
  3. User Agents
  4. Операционная система
  5. Страна
  6. Город
  7. Компания, которой принадлежит IP
  8. Провайдер, которой принадлежит IP
  9. Координаты, по котором можно найти провайдера (широта\долгота)
  10. Ширина\Высота  экрана устройства.

И так, чтобы узнать IP нужен вот такой код:

<?php
echo $_SERVER["REMOTE_ADDR"];
?>

Чтобы узнать язык браузера, нам нужен следующий код:

<?php
echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
?>

Для получения user agents будем использовать следующий код:

<?php
echo $_SERVER['HTTP_USER_AGENT'] ;
?>

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

<?php
$firefox = "Firefox";
$opera = "Opera";
$chrome = "Chrome";
$explorer = "Internet Explorer";
$safari = "Safari";
$edit_b = "unknown";
$user_agent = $_SERVER["HTTP_USER_AGENT"];
if (strpos($user_agent, "Firefox") !== false) $osystem = "$firefox";
elseif (strpos($user_agent, "Opera") !== false) $osystem = "$opera";
elseif (strpos($user_agent, "Chrome") !== false) $osystem = "$chrome";
elseif (strpos($user_agent, "MSIE") !== false) $osystem = "$explorer";
elseif (strpos($user_agent, "Safari") !== false) $osystem = "$safari";
else $osystem = "$edit_b";
$win = "Windows";
$linux = "Linux";
$ios = "iOS";
$edit_b = "unknown";
$user_agent = getenv("HTTP_USER_AGENT");
if (strpos($user_agent, "Windows") !== false) $browser = "$win";
elseif (strpos($user_agent, "Linux") !== false) $browser = "$linux";
elseif (strpos($user_agent, "iOS") !== false) $browser = "$ios";
else $browser = "$edit_b";
echo "browser= $browser 
system= $osystem";
?>

Чтобы получить всё остальное, воспользуемся сервисом ipwhois.io. С помощью данного сервиса можно получить много чего интересного, как раз то что нам нужно. Изучив документацию, будем простым способом вытягивать нужную инфу через curl с помощью system. И так, вывести страну IP:

<?php
$contry = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.country'");
echo $contry ;
?>

Вывести город IP:

<?php
$city = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.city'");
echo $city ;
?>

Вывести компанию и провайдера, которым принадлежит IP:

<?php
$org = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.isp'");
$prov = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.org'");
echo "Компания: $org ";
echo "Провайдер: $prov ";
?>

Координаты, по котором можно найти провайдера (широта\долгота), получаем вот так:

<?php
$lat = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.latitude'");
$lon = system("curl -s 'http://free.ipwhois.io/json/$iphome?lang=ru' | jq '.longitude'");
echo " Широта: $lat <br />
Долгота: $lon ";
?>

А размеры экрана устройства можем получить так:

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
echo "Ширина экрана устройства: <b>". $_GET['width'] ."</b><br />\n";
echo "Высота экрана устройства: <b>". $_GET['height'] ."</b><br />\n";
} else {
echo "<script language='javascript'>\n";
echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
. "&width=\" + screen.width + \"&height=\" + screen.height;\n";
echo "</script>\n";
exit();
}
?>

Теперь, собираем всё полученные результаты в едино:

$write="\r\n<code>==========================================</code>
<b>ПОСЕТИТЕЛЬ </b>\r\n
<b>IP:</b> <code>$iphome</code>
<b>Язык браузера:</b><code>$lang</code>
<code>$lang_brow</code>
<code>$user_agents</code>
<b>OS:</b> <code>$os_version</code>
<b>Страна:</b> <code>$contry </code>
<b>Город:</b> <code>$city </code>
<b>Компания, которой принадлежит IP:</b> <code>$org</code>
<b>Провайдер, которой принадлежит IP:</b> <code>$prov</code>
<code>$AboutGuest->is_mobile $AboutGuest->mobile</code>
<b>Координаты, по котором можно найти провайдера:</b>
<b>Широта:</b> <code>$lat</code>
<b>Долгота:</b> <code>$lon</code>
<b>Ширина экрана устройства:</b><code> ". $_GET['width'] ."</code>
<b>Высота экрана устройства:</b><code> ". $_GET['height'] ."</code>
<code>==========================================</code>\r\n
";

Теперь нужно создать бота, получить токен и узнать наш ID. Создать бота можно через бота @BotFather, а узнать ID можно через бота @MyTelegramID_bot

Теперь, когда у нас есть токен и наш ID, пишем следующий код:

define('TELEGRAM_TOKEN', 'ТОКЕН БОТА');
define('TELEGRAM_CHATID', 'ВАШ ИД');
message_to_telegram("$write");
function message_to_telegram($text)
{
    $ch = curl_init();
    curl_setopt_array(
        $ch,
        array(
            CURLOPT_URL => 'https://api.telegram.org/bot' . TELEGRAM_TOKEN . '/sendMessage',
            CURLOPT_POST => TRUE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_TIMEOUT => 10,
            CURLOPT_POSTFIELDS => array(
                'chat_id' => TELEGRAM_CHATID,
                'text' => $text,
		'parse_mode' => 'HTML',
            ),
        )
    );
    curl_exec($ch);
}

Заменяем «ТОКЕН БОТА» на токен бота и «ВАШ ИД» на Ваш ID. Сохраняем всё в один файл и готово. Откройте данную страницу и проверьте, пришло ли сообщение от Вашего созданного бота.

Результат будет примерно такой:

Готовый скрипт можно сказать по ссылке 

]]>
https://lexblog.org/otpravka-dannyh-posetitelya-v-telegram/feed/ 0
Установка ngx_pagespeed для NGINX, VestaCP, CentOS 7 x64 https://lexblog.org/ustanovka-ngx_pagespeed-dlya-nginx-vestacp-centos-7-x64/ https://lexblog.org/ustanovka-ngx_pagespeed-dlya-nginx-vestacp-centos-7-x64/#respond Wed, 18 Dec 2019 13:18:13 +0000 https://lexblog.org/?p=1106 Переходим в папку nginx:

cd /usr/lib64/nginx

Создаём папку с модулями, если её нет:

mkdir modules

cd modules

Скачиваем модуль:

wget --no-cache https://www.mysterydata.com/wp-content/uploads/2019/11/ngx_pagespeed.zip

Расспаковываем и удаляем архив:

unzip ngx_pagespeed.zip
rm -rf ngx_pagespeed.zip

Создаём папку для кэша:

mkdir -p /var/ngx_pagespeed_cache
chown -R nginx:root /var/ngx_pagespeed_cache

Подключаем модуль. Редактируем конфиг nginx:

nano /etc/nginx/nginx.conf

И добавляем в начало строку:

load_module "modules/ngx_pagespeed.so";

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

nano /home/USER/conf/web/SITE.nginx.conf

Добавляем код:

#Pagespeed config
pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

Перезапускаем NGINX:

service nginx restart

Теперь модуль включен. Проверить можно запросом curl:

curl -I SITE.COM

Результат будет примерно:

HTTP/1.1 301 Moved Permanently
Server: nginx
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Keep-Alive: timeout=60
Location: https://mobil-plategy.com/
Date: Wed, 18 Dec 2019 13:15:32 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache
]]>
https://lexblog.org/ustanovka-ngx_pagespeed-dlya-nginx-vestacp-centos-7-x64/feed/ 0
Sngine https://lexblog.org/sngine/ https://lexblog.org/sngine/#respond Sun, 15 Dec 2019 13:03:53 +0000 https://lexblog.org/?p=1101 Sngine — Движок социальной сети (+ исходники приложений Android, IOS, Windows Phone)

Требования
Sngine требует Apache Server, PHP 5.5+ и MySQL для запуска
Перед установкой Sngine убедитесь, что расширения mysqli, mod_rewrite, cURL, intl включены на вашем сервере.

Скачать

]]>
https://lexblog.org/sngine/feed/ 0
Защита от ботов через htaccess https://lexblog.org/zashhita-ot-botov-cherez-htaccess/ https://lexblog.org/zashhita-ot-botov-cherez-htaccess/#respond Wed, 27 Nov 2019 00:30:05 +0000 https://lexblog.org/?p=1097 В файл htaccess Вашего файла пропишите следующий код:

#badbots
# Блокируем плохие боты
SetEnvIfNoCase User-Agent "Aboundex" bad_bot
SetEnvIfNoCase User-Agent "80legs" bad_bot
SetEnvIfNoCase User-Agent "360Spider" bad_bot
SetEnvIfNoCase User-Agent "^Java" bad_bot
SetEnvIfNoCase User-Agent "^Cogentbot" bad_bot
SetEnvIfNoCase User-Agent "^Alexibot" bad_bot
SetEnvIfNoCase User-Agent "^asterias" bad_bot
SetEnvIfNoCase User-Agent "^attach" bad_bot
SetEnvIfNoCase User-Agent "^BackDoorBot" bad_bot
SetEnvIfNoCase User-Agent "^BackWeb" bad_bot
SetEnvIfNoCase User-Agent "Bandit" bad_bot
SetEnvIfNoCase User-Agent "^BatchFTP" bad_bot
SetEnvIfNoCase User-Agent "^Bigfoot" bad_bot
SetEnvIfNoCase User-Agent "^Black.Hole" bad_bot
SetEnvIfNoCase User-Agent "^BlackWidow" bad_bot
SetEnvIfNoCase User-Agent "^BlowFish" bad_bot
SetEnvIfNoCase User-Agent "^BotALot" bad_bot
SetEnvIfNoCase User-Agent "Buddy" bad_bot
SetEnvIfNoCase User-Agent "^BuiltBotTough" bad_bot
SetEnvIfNoCase User-Agent "^Bullseye" bad_bot
SetEnvIfNoCase User-Agent "^BunnySlippers" bad_bot
SetEnvIfNoCase User-Agent "^Cegbfeieh" bad_bot
SetEnvIfNoCase User-Agent "^CheeseBot" bad_bot
SetEnvIfNoCase User-Agent "^CherryPicker" bad_bot
SetEnvIfNoCase User-Agent "^ChinaClaw" bad_bot
SetEnvIfNoCase User-Agent "Collector" bad_bot
SetEnvIfNoCase User-Agent "Copier" bad_bot
SetEnvIfNoCase User-Agent "^CopyRightCheck" bad_bot
SetEnvIfNoCase User-Agent "^cosmos" bad_bot
SetEnvIfNoCase User-Agent "^Crescent" bad_bot
SetEnvIfNoCase User-Agent "^Custo" bad_bot
SetEnvIfNoCase User-Agent "^AIBOT" bad_bot
SetEnvIfNoCase User-Agent "^DISCo" bad_bot
SetEnvIfNoCase User-Agent "^DIIbot" bad_bot
SetEnvIfNoCase User-Agent "^DittoSpyder" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Demon" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Devil" bad_bot
SetEnvIfNoCase User-Agent "^Download\ Wonder" bad_bot
SetEnvIfNoCase User-Agent "^dragonfly" bad_bot
SetEnvIfNoCase User-Agent "^Drip" bad_bot
SetEnvIfNoCase User-Agent "^eCatch" bad_bot
SetEnvIfNoCase User-Agent "^EasyDL" bad_bot
SetEnvIfNoCase User-Agent "^ebingbong" bad_bot
SetEnvIfNoCase User-Agent "^EirGrabber" bad_bot
SetEnvIfNoCase User-Agent "^EmailCollector" bad_bot
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot
SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot
SetEnvIfNoCase User-Agent "^EroCrawler" bad_bot
SetEnvIfNoCase User-Agent "^Exabot" bad_bot
SetEnvIfNoCase User-Agent "^Express\ WebPictures" bad_bot
SetEnvIfNoCase User-Agent "Extractor" bad_bot
SetEnvIfNoCase User-Agent "^EyeNetIE" bad_bot
SetEnvIfNoCase User-Agent "^Foobot" bad_bot
SetEnvIfNoCase User-Agent "^flunky" bad_bot
SetEnvIfNoCase User-Agent "^FrontPage" bad_bot
SetEnvIfNoCase User-Agent "^Go-Ahead-Got-It" bad_bot
SetEnvIfNoCase User-Agent "^gotit" bad_bot
SetEnvIfNoCase User-Agent "^GrabNet" bad_bot
SetEnvIfNoCase User-Agent "^Grafula" bad_bot
SetEnvIfNoCase User-Agent "^Harvest" bad_bot
SetEnvIfNoCase User-Agent "^hloader" bad_bot
SetEnvIfNoCase User-Agent "^HMView" bad_bot
SetEnvIfNoCase User-Agent "^HTTrack" bad_bot
SetEnvIfNoCase User-Agent "^humanlinks" bad_bot
SetEnvIfNoCase User-Agent "^IlseBot" bad_bot
SetEnvIfNoCase User-Agent "^Image\ Stripper" bad_bot
SetEnvIfNoCase User-Agent "^Image\ Sucker" bad_bot
SetEnvIfNoCase User-Agent "Indy\ Library" bad_bot
SetEnvIfNoCase User-Agent "^InfoNaviRobot" bad_bot
SetEnvIfNoCase User-Agent "^InfoTekies" bad_bot
SetEnvIfNoCase User-Agent "^Intelliseek" bad_bot
SetEnvIfNoCase User-Agent "^InterGET" bad_bot
SetEnvIfNoCase User-Agent "^Internet\ Ninja" bad_bot
SetEnvIfNoCase User-Agent "^Iria" bad_bot
SetEnvIfNoCase User-Agent "^Jakarta" bad_bot
SetEnvIfNoCase User-Agent "^JennyBot" bad_bot
SetEnvIfNoCase User-Agent "^JetCar" bad_bot
SetEnvIfNoCase User-Agent "^JOC" bad_bot
SetEnvIfNoCase User-Agent "^JustView" bad_bot
SetEnvIfNoCase User-Agent "^Jyxobot" bad_bot
SetEnvIfNoCase User-Agent "^Kenjin.Spider" bad_bot
SetEnvIfNoCase User-Agent "^Keyword.Density" bad_bot
SetEnvIfNoCase User-Agent "^larbin" bad_bot
SetEnvIfNoCase User-Agent "^LexiBot" bad_bot
SetEnvIfNoCase User-Agent "^lftp" bad_bot
SetEnvIfNoCase User-Agent "^libWeb/clsHTTP" bad_bot
SetEnvIfNoCase User-Agent "^likse" bad_bot
SetEnvIfNoCase User-Agent "^LinkextractorPro" bad_bot
SetEnvIfNoCase User-Agent "^LinkScan/8.1a.Unix" bad_bot
SetEnvIfNoCase User-Agent "^LNSpiderguy" bad_bot
SetEnvIfNoCase User-Agent "^LinkWalker" bad_bot
SetEnvIfNoCase User-Agent "^lwp-trivial" bad_bot
SetEnvIfNoCase User-Agent "^LWP::Simple" bad_bot
SetEnvIfNoCase User-Agent "^Magnet" bad_bot
SetEnvIfNoCase User-Agent "^Mag-Net" bad_bot
SetEnvIfNoCase User-Agent "^MarkWatch" bad_bot
SetEnvIfNoCase User-Agent "^Mass\ Downloader" bad_bot
SetEnvIfNoCase User-Agent "^Mata.Hari" bad_bot
SetEnvIfNoCase User-Agent "^Memo" bad_bot
SetEnvIfNoCase User-Agent "^Microsoft.URL" bad_bot
SetEnvIfNoCase User-Agent "^Microsoft\ URL\ Control" bad_bot
SetEnvIfNoCase User-Agent "^MIDown\ tool" bad_bot
SetEnvIfNoCase User-Agent "^MIIxpc" bad_bot
SetEnvIfNoCase User-Agent "^Mirror" bad_bot
SetEnvIfNoCase User-Agent "^Missigua\ Locator" bad_bot
SetEnvIfNoCase User-Agent "^Mister\ PiX" bad_bot
SetEnvIfNoCase User-Agent "^moget" bad_bot
SetEnvIfNoCase User-Agent "^Mozilla/3.Mozilla/2.01" bad_bot
SetEnvIfNoCase User-Agent "^Mozilla.*NEWT" bad_bot
SetEnvIfNoCase User-Agent "^NAMEPROTECT" bad_bot
SetEnvIfNoCase User-Agent "^Navroad" bad_bot
SetEnvIfNoCase User-Agent "^NearSite" bad_bot
SetEnvIfNoCase User-Agent "^NetAnts" bad_bot
SetEnvIfNoCase User-Agent "^Netcraft" bad_bot
SetEnvIfNoCase User-Agent "^NetMechanic" bad_bot
SetEnvIfNoCase User-Agent "^NetSpider" bad_bot
SetEnvIfNoCase User-Agent "^Net\ Vampire" bad_bot
SetEnvIfNoCase User-Agent "^NetZIP" bad_bot
SetEnvIfNoCase User-Agent "^NextGenSearchBot" bad_bot
SetEnvIfNoCase User-Agent "^NG" bad_bot
SetEnvIfNoCase User-Agent "^NICErsPRO" bad_bot
SetEnvIfNoCase User-Agent "^niki-bot" bad_bot
SetEnvIfNoCase User-Agent "^NimbleCrawler" bad_bot
SetEnvIfNoCase User-Agent "^Ninja" bad_bot
SetEnvIfNoCase User-Agent "^NPbot" bad_bot
SetEnvIfNoCase User-Agent "^Octopus" bad_bot
SetEnvIfNoCase User-Agent "^Offline\ Explorer" bad_bot
SetEnvIfNoCase User-Agent "^Offline\ Navigator" bad_bot
SetEnvIfNoCase User-Agent "^Openfind" bad_bot
SetEnvIfNoCase User-Agent "^OutfoxBot" bad_bot
SetEnvIfNoCase User-Agent "^PageGrabber" bad_bot
SetEnvIfNoCase User-Agent "^Papa\ Foto" bad_bot
SetEnvIfNoCase User-Agent "^pavuk" bad_bot
SetEnvIfNoCase User-Agent "^pcBrowser" bad_bot
SetEnvIfNoCase User-Agent "^PHP\ version\ tracker" bad_bot
SetEnvIfNoCase User-Agent "^Pockey" bad_bot
SetEnvIfNoCase User-Agent "^ProPowerBot/2.14" bad_bot
SetEnvIfNoCase User-Agent "^ProWebWalker" bad_bot
SetEnvIfNoCase User-Agent "^psbot" bad_bot
SetEnvIfNoCase User-Agent "^Pump" bad_bot
SetEnvIfNoCase User-Agent "^QueryN.Metasearch" bad_bot
SetEnvIfNoCase User-Agent "^RealDownload" bad_bot
SetEnvIfNoCase User-Agent "Reaper" bad_bot
SetEnvIfNoCase User-Agent "Recorder" bad_bot
SetEnvIfNoCase User-Agent "^ReGet" bad_bot
SetEnvIfNoCase User-Agent "^RepoMonkey" bad_bot
SetEnvIfNoCase User-Agent "^RMA" bad_bot
SetEnvIfNoCase User-Agent "Siphon" bad_bot
SetEnvIfNoCase User-Agent "^SiteSnagger" bad_bot
SetEnvIfNoCase User-Agent "^SlySearch" bad_bot
SetEnvIfNoCase User-Agent "^SmartDownload" bad_bot
SetEnvIfNoCase User-Agent "^Snake" bad_bot
SetEnvIfNoCase User-Agent "^Snapbot" bad_bot
SetEnvIfNoCase User-Agent "^Snoopy" bad_bot
SetEnvIfNoCase User-Agent "^sogou" bad_bot
SetEnvIfNoCase User-Agent "^SpaceBison" bad_bot
SetEnvIfNoCase User-Agent "^SpankBot" bad_bot
SetEnvIfNoCase User-Agent "^spanner" bad_bot
SetEnvIfNoCase User-Agent "^Sqworm" bad_bot
SetEnvIfNoCase User-Agent "Stripper" bad_bot
SetEnvIfNoCase User-Agent "Sucker" bad_bot
SetEnvIfNoCase User-Agent "^SuperBot" bad_bot
SetEnvIfNoCase User-Agent "^SuperHTTP" bad_bot
SetEnvIfNoCase User-Agent "^Surfbot" bad_bot
SetEnvIfNoCase User-Agent "^suzuran" bad_bot
SetEnvIfNoCase User-Agent "^Szukacz/1.4" bad_bot
SetEnvIfNoCase User-Agent "^tAkeOut" bad_bot
SetEnvIfNoCase User-Agent "^Teleport" bad_bot
SetEnvIfNoCase User-Agent "^Telesoft" bad_bot
SetEnvIfNoCase User-Agent "^TurnitinBot/1.5" bad_bot
SetEnvIfNoCase User-Agent "^The.Intraformant" bad_bot
SetEnvIfNoCase User-Agent "^TheNomad" bad_bot
SetEnvIfNoCase User-Agent "^TightTwatBot" bad_bot
SetEnvIfNoCase User-Agent "^Titan" bad_bot
SetEnvIfNoCase User-Agent "^True_Robot" bad_bot
SetEnvIfNoCase User-Agent "^turingos" bad_bot
SetEnvIfNoCase User-Agent "^TurnitinBot" bad_bot
SetEnvIfNoCase User-Agent "^URLy.Warning" bad_bot
SetEnvIfNoCase User-Agent "^Vacuum" bad_bot
SetEnvIfNoCase User-Agent "^VCI" bad_bot
SetEnvIfNoCase User-Agent "^VoidEYE" bad_bot
SetEnvIfNoCase User-Agent "^Web\ Image\ Collector" bad_bot
SetEnvIfNoCase User-Agent "^Web\ Sucker" bad_bot
SetEnvIfNoCase User-Agent "^WebAuto" bad_bot
SetEnvIfNoCase User-Agent "^WebBandit" bad_bot
SetEnvIfNoCase User-Agent "^Webclipping.com" bad_bot
SetEnvIfNoCase User-Agent "^WebCopier" bad_bot
SetEnvIfNoCase User-Agent "^WebEMailExtrac.*" bad_bot
SetEnvIfNoCase User-Agent "^WebEnhancer" bad_bot
SetEnvIfNoCase User-Agent "^WebFetch" bad_bot
SetEnvIfNoCase User-Agent "^WebGo\ IS" bad_bot
SetEnvIfNoCase User-Agent "^Web.Image.Collector" bad_bot
SetEnvIfNoCase User-Agent "^WebLeacher" bad_bot
SetEnvIfNoCase User-Agent "^WebmasterWorldForumBot" bad_bot
SetEnvIfNoCase User-Agent "^WebReaper" bad_bot
SetEnvIfNoCase User-Agent "^WebSauger" bad_bot
SetEnvIfNoCase User-Agent "^Website\ eXtractor" bad_bot
SetEnvIfNoCase User-Agent "^Website\ Quester" bad_bot
SetEnvIfNoCase User-Agent "^Webster" bad_bot
SetEnvIfNoCase User-Agent "^WebStripper" bad_bot
SetEnvIfNoCase User-Agent "^WebWhacker" bad_bot
SetEnvIfNoCase User-Agent "^WebZIP" bad_bot
SetEnvIfNoCase User-Agent "Whacker" bad_bot
SetEnvIfNoCase User-Agent "^Widow" bad_bot
SetEnvIfNoCase User-Agent "^WISENutbot" bad_bot
SetEnvIfNoCase User-Agent "^WWWOFFLE" bad_bot
SetEnvIfNoCase User-Agent "^WWW-Collector-E" bad_bot
SetEnvIfNoCase User-Agent "^Xaldon" bad_bot
SetEnvIfNoCase User-Agent "^Xenu" bad_bot
SetEnvIfNoCase User-Agent "^Zeus" bad_bot
SetEnvIfNoCase User-Agent "ZmEu" bad_bot
SetEnvIfNoCase User-Agent "^Zyborg" bad_bot

# Блокируем плохие сканеры
SetEnvIfNoCase User-Agent "Acunetix" bad_bot
SetEnvIfNoCase User-Agent "FHscan" bad_bot

# Блокируем ненужные поисковики
SetEnvIfNoCase User-Agent "Baiduspider" bad_bot

<Limit GET POST HEAD>
Order Allow,Deny
Allow from all

# Блокируем плохие IP
deny from 38.100.19.8/29
deny from 38.100.21.0/24
deny from 38.100.41.64/26
deny from 38.105.71.0/25
deny from 38.105.83.0/27
deny from 38.112.21.140/30
deny from 38.118.42.32/29
deny from 65.213.208.128/27
deny from 65.222.176.96/27
deny from 65.222.185.72/29
deny from 144.76.28.10

Deny from env=bad_bot
</Limit>
]]>
https://lexblog.org/zashhita-ot-botov-cherez-htaccess/feed/ 0
Смена версии PHP на VestaCP. Centos 7 https://lexblog.org/smena-versii-php-na-vestacp-centos-7/ https://lexblog.org/smena-versii-php-na-vestacp-centos-7/#respond Tue, 29 Oct 2019 15:40:10 +0000 https://lexblog.org/?p=1092 Сейчас по умолчанию VestaCP ставит версию PHP 7.4 по умолчанию.

Вернем версию PHP 5.6 для наших сайтов. Сперва заходим на сервер по ssh и выполняем команду:

yum update -y --enablerepo=remi-php56

Останавливаем apache:

service httpd stop

Удаляем активную версию командой:

yum -y remove php

Ставим PHP 5.6:

yum install php56-php 

yum install php56-php-pear php56-php-bcmath php56-php-pecl-jsond-devel php56-php-mysqlnd php56-php-gd php56-php-common php56-php-fpm php56-php-intl php56-php-cli php56-php php56-php-xml php56-php-opcache php56-php-pecl-apcu php56-php-pecl-jsond php56-php-pdo php56-php-gmp php56-php-process php56-php-pecl-imagick php56-php-devel php56-php-mbstring

Останавливаем старую службу PHP-FPM и запускаем новую:

service php-fpm stop 
service php56-php-fpm start 
service httpd restart

Создаём символическую ссылку на новый PHP, но сначала переименуем старый:

mv /usr/bin/php /usr/bin/php74

ln -s /usr/bin/php56 /usr/bin/php

Перезапускаем apache и проверяем версию PHP:

service httpd restart

php -v

Вывод:

[root@vps49459 ioncube]# php -v
PHP 5.6.40 (cli) (built: Oct 22 2019 09:23:49)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Учтите, что конфигурационный файл php будет теперь в другой папке: /opt/remi/php56/root/etc/php.ini

Так как например, если на нужно установить IonCube Loader — то для его подключения нужно редактировать его. Вы так же можете сделать символическую ссылку на /etc/php.ini

Удачи 🙂

]]>
https://lexblog.org/smena-versii-php-na-vestacp-centos-7/feed/ 0