[Уроци] Nginx (Anti DDoS) и други уроци

PHP, MySQL, Javascript, XHTML и др.
Потребителски аватар

Автор на темата
V.A.L.V.E WEB DEV
Потребител
Потребител
Мнения: 337
Регистриран: 18 дек 2016, 22:48
Се отблагодари: 53 пъти
Получена благодарност: 41 пъти
Години: 25

[Уроци] Nginx (Anti DDoS) и други уроци

Мнение от V.A.L.V.E WEB DEV » 24 яну 2019, 21:21

Здравейте, днешно време всеки втори се прави на "хахор" "хакер" "макер" "шмекер" и прочие, във този урок ще ви обесня как можете да защитите сайта си от атаки тип DDoS атаки и от къде да си закупите най-евтино домейн.

Разходи:
6 евро в Paypal или 12,50лв в дебината ви карта (VISA или Master Card) (заради таксата от банката към транзакциите 50ст.)

Действия:

1. Закупуваме си домейн от ТУК цените са сравително ниски (домейн .info = 3 евро)
2. Закупуваме си VPS (Virtual Private Server ) или на наш език казано ВПС от ТУК
(цените са в долари но 3.35 долара са почти 3 евро без няколко цента)
3. Когато купувате VPS-а изберете локация "London" според мен тя е най-добрата тъй като другата най-близка локация е на 100км по-далеч от Лондон и България
(това че сайта ви е в Лондон не пречи, сайта ви пак ще зарежда бързо)
4. Избираме (поне по мое предпочитание и урок) операционна система Ubuntu (версия 16 или 18)
5. След около 1-2 часа ще получите данните си на е-майл за вход и парола във вашият VPS.
6. Изтеглете тази програма Bitvise SSH Client от ТУК
7. Отворете Bitvise SSH напишете IP адреса който сте получили в е-майла и на Username въведете потребителското име което сте получили по принцип е root но има хостинг компании който дават други имена.
8. След това кликнете на бутона "Connect" и ще ви пита дали желаете да приемете сертификата кливате "accept"
9. Отваря ви "Terminal" прозорец същинско приличащ на "CMD"
10. Копирайте командата която ще ви напиша поставете я и натиснете бутона Enter
apt-get install update ; apt-get install upgrade
11. Може да ви иска разрешение за ъпдейт или ъпгрейд като е нужно да натиснет е бутона Y и бутон Enter
12. След като свърши с инсталацията пишете следната команда
apt-get install nginx ; sudo apt-get install php-fpm php-mysql ; apt-get install mysql-server ; apt-get install phpmyadmin

Напишете в терминала sudo nano /etc/php/7.0/fpm/php.ini намерете настройката ;cgi.fix_pathinfo и я сменете на тази cgi.fix_pathinfo=0

Отворете терминала и напишете командата sudo systemctl restart php7.0-fpm

Когато инсталацията стигне до mysql-server Ще ви иска парола, желателно е да напишете паролата с която влизате във вашият VPS, същото е и за phpmyadmin там въвеждате същата парола която сте въвели в mysql-server ЗАДЪЛЖИТЕЛНО

След като и 3-те инсталации завършат пишете следното в прозорчето "Terminal"
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Напишете след това команда sudo nano /etc/nginx/sites-available/default
Изтриите всичко от файла и сложете този код

Код: Избери всички

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /usr/share/nginx/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name 127.0.0.1;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
ЗАМЕНЕТЕ 127.0.0.1 със името на вашият домейн или ако нямате такъв с IP–то на VPS–а ви


За да запазите файла натиснете CTRL+O после бутона Enter след това CTRL+X
След това напишете в терминала systemctl restart nginx

После отваряте сайта от където закупихте домейна (сайта който съм сложил най-отгоре) и кликвате горе в дясно да се логнете, след като се логнете кликвате пак горе в дясно на вашето потребителско име и избирате меню "Domain Managment"
След това като скролнете малко надолу ще видите вашият домейн, кликнете в дясно на бутон Details
Срещу меню "DNS RECORDS" ще видите малък бутон Edit кликнете на него и ще ви се отворят всички записи на домейна, скролвате малко по-надолу и ще видите записите, изтривате всички A записи НО не и TXT записите, след което скролвате малко по-нагоре и във формата където пише "Here you can configure custom DNS records for your domain." пишете следното
Type - A record ( Тук не бутате)
Host ( Тук не бутате)
Answer - (Тук въвеждате IP адреса на вашият VPS)
и кликвате на бутона Add

След което отваряте програмата Bitvise SSH И се свързвате със вашият VPS

И отваряте папка /usr/share/nginx/html там ще намерите файл index.html изтривате го и си качвате сайта.

Как да вляза в phpmyadmin?

Отворете терминала и напишете следната команда

sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html/
След като напишете командата отворете следният линк в браузъра си: http://vashiqtsait.com/phpmyadmin
влизате с потребителското име на VPS-а примерно root и паролата която написахте когато инсталирахте phpmyadmin
Ето и примерни данни за да свържете сайта ви към датабазата (примерно имате config.php и там трябва да въведете данните за връзка с базата данни)
host 'localhost'
user 'root'
password '1234'


Как да променя линк на phpmyadmin? (препоръчтително е да го направите)

1. Напишете в терминала команда cd /usr/share/nginx/html
2. Напишете след това sudo mv phpmyadmin nothingtosee
На мястото на nothingtosee пишете новото име на папката примерно: adminphp
След като го направите вече ще отваяте phpmyadmin с линк : http://vashiqtsait.com/adminphp/


НИКОГА! Не използвайте apache2 за да си държите сайта, независимо че някой хостинг компании имат защити няма да ви помогне против някой вид атаки.

Защита против Slowloris ТУК

Ако имате въпорси, можете да пишете в темата.

Копирането на материала само ако на източник пише: Автор V.A.L.V.E

Ще пишем 2-ма човека от екипа ни, уроци в темата свързани с Nginx V.A.L.V.E и Jaxxin
Последна промяна от V.A.L.V.E WEB DEV на 05 окт 2019, 20:23, променено общо 4 пъти.

Потребителски аватар

Автор на темата
V.A.L.V.E WEB DEV
Потребител
Потребител
Мнения: 337
Регистриран: 18 дек 2016, 22:48
Се отблагодари: 53 пъти
Получена благодарност: 41 пъти
Години: 25

[Урок] Как да си направим сайта защитен (Anti DDoS)

Мнение от V.A.L.V.E WEB DEV » 25 яну 2019, 15:55

Урок #1
Как да инсталираме форум PHPBB на Nginx

Тъй като Nginx няма модул mod rewrite, трябва да се правят настройките на виртуал хоста, след 4 часа търсене и тестове намерих лесен начин.

Начин на инсталация:
Влизате във папка /etc/nginx/sites-available Правите си копие на файла default
Отваряте файла default изтривате всичко и слагате този код

Код: Избери всички

server {
	#listen 80;
	server_name sait.com;

	root /usr/share/nginx/html/forum;

	location / {
		# phpBB uses index.htm
		index index.php index.html index.htm;
		try_files $uri $uri/ @rewriteapp;
	}

	location @rewriteapp {
		rewrite ^(.*)$ /app.php/$1 last;
	}

	# Deny access to internal phpbb files.
	location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|(?<!ext/)phpbb|store|vendor) {
		deny all;
		# deny was ignored before 0.8.40 for connections over IPv6.
		# Use internal directive to prohibit access on older versions.
		internal;
	}

	# Pass the php scripts to fastcgi server specified in upstream declaration.
	location ~ \.php(/|$) {
		# Unmodified fastcgi_params from nginx distribution.
		include fastcgi_params;
		# Necessary for php.
		fastcgi_split_path_info ^(.+\.php)(/.*)$;
		fastcgi_param PATH_INFO $fastcgi_path_info;
		fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
		fastcgi_param DOCUMENT_ROOT $realpath_root;
		try_files $uri $uri/ /app.php$is_args$args;
		fastcgi_pass php;
	}

	# Correctly pass scripts for installer
	location /install/ {
		# phpBB uses index.htm
		try_files $uri $uri/ @rewrite_installapp;

		# Pass the php scripts to fastcgi server specified in upstream declaration.
		location ~ \.php(/|$) {
			# Unmodified fastcgi_params from nginx distribution.
			include fastcgi_params;
			# Necessary for php.
			fastcgi_split_path_info ^(.+\.php)(/.*)$;
			fastcgi_param PATH_INFO $fastcgi_path_info;
			fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
			fastcgi_param DOCUMENT_ROOT $realpath_root;
			try_files $uri $uri/ /install/app.php$is_args$args;
			fastcgi_pass php;
		}
	}

	location @rewrite_installapp {
		rewrite ^(.*)$ /install/app.php/$1 last;
	}

	# Deny access to version control system directories.
	location ~ /\.svn|/\.git {
		deny all;
		internal;
	}
}

# If running php as fastcgi, specify php upstream.
upstream php {
	server unix:/var/run/php/php7.2-fpm.sock;
}
Пишете в терминала командата systemctl restart nginx

Задължително!
1. Сменете в файла sait.com със името на вашият домейн или ако нямате такъв с IP–то на VPS–а ви
2. Където пише /usr/share/nginx/html/forum можете да промените САМО forum със друго найменование ако искате папката където ще инсталирате форума да се казва по друг начин, примерно мой колега реши че не иска папката му да се казва forum а community и в таквъ случай смени кода да стане ето така: /usr/share/nginx/html/community
3. Правите си папка във /usr/share/nginx/html/ примерно с име forum и качвате файловете на форума
4. Отваряте терминала и пишете chmod -R 777 /usr/share/nginx/html/forum
5. Отваряте vashiqtsait.com/forum/install и инсталирате.
6. След като приключите инсталацияте отварят папка /usr/share/nginx/html/forum давате десен бутон на файла config.php и сменяте правата от 777 на 644
7. Влизате в папка /etc/nginx/sites-available изтривате default файла и слагате вашият оригиналният на който по-рано направихте копие
8. Отваряте терминала и пишете systemctl restart nginx

Потребителски аватар

Jaxxin OXD
Потребител
Потребител
Мнения: 10
Регистриран: 16 яну 2019, 23:30
Местоположение: Breda
Получена благодарност: 4 пъти
Контакти:

[Урок] Как да си направим сайта защитен (Anti DDoS)

Мнение от Jaxxin OXD » 25 яну 2019, 23:00

Урок #2

Как да активираме модула за SSL в nginx


След инсталация на nginx по подразбиране вашият модул за SSL не е активен, както и някой др.
Позволяването на SSL модула става много лесно.

1. Създавате файл с името на вашият домейн в папка /etc/nginx/conf.d файлът трябва да завършва на .conf
Пример: example.com.conf
2. Отваряте файла, който токущо създадохте. Няма значение каква програма използвате стига да е текстов редактор.
3. Въвеждате следния код:

Код: Избери всички

server {
    listen              443 ssl default_server;
    listen              [::]:443 ssl default_server ;
    server_name         example.com www.example.com;
    root                /var/www/example.com;
    }
След като въведете кода във файла, който създадохте променете server_name и root с вашият домейн и пътят към сайта ви.
4. Щом вече сте въвели всички данни напишете nginx -t , за да проверите дали сте спазили синтаксиса
5. Ако всичко е точно въвеждате командата nginx -s reload

Потребителски аватар

hackera457 СОТА
Модератор
Модератор
Мнения: 677
Регистриран: 01 ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 90 пъти
Години: 25
Контакти:

[Урок] Как да си направим сайта защитен (Anti DDoS)

Мнение от hackera457 СОТА » 26 яну 2019, 00:17

Сравнително добра защита може и да се постигне чрез подходящи IPTables правила. Не знам защо толкова не се споменава тази мощна защитна стена по Linux базирани системи, която ако се разучи може да спре едно 99% от DDOS атаките, жалко е че на повечето български хостинги им куца тази защита или не инвестират на хора, който да я изградят.
ngix е сравнително лек и доста добра алтернатива на смотания apache, също така е хубаво да се направят лимити на порт 80 /който се позва от уеб сървърите/, другото което трябва да направите е с IPTables да ограничите достъпа до MySQL сървъра само за вашето IP и локалното IP и евентуално CS сървърите, които ще ползват достъпа до MySQL. Идеята е да не може всеки да прави connection към MySQL сървъра

С две думи - като ползвате IPTables дропвате целия входен трафик (INPUT) и вече започвате да се отваряте нужните портове както и да ограничите заявките давам пример (прости ограничения на Web сървъра и MySQL сървъра):

Код: Избери всички

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -I INPUT -p tcp --syn --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 6 --connlimit-mask 24 -j DROP

iptables -I INPUT -p tcp --syn --dport 3306 -j DROP
iptables -I INPUT -p tcp --syn --dport 3306 -s 127.0.0.1 -m state --state NEW -j ACCEPT
Това е пример за ориентир, не значи че трябва да го ползвате :D
Отделно си има решения за повечето атаки, които един хахор може да направи, но както се казва - хванете попрочетете за iptables, прочете различните видове атаки и сами си изградете защитата.
Моите плъгини

Код: Избери всички

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


Потребителски аватар

BaKuGan. nFL
Потребител
Потребител
Мнения: 192
Регистриран: 27 окт 2018, 20:11
Местоположение: New York
Се отблагодари: 50 пъти
Получена благодарност: 2 пъти
Години: 24
Контакти:

[Урок] Как да си направим сайта защитен (Anti DDoS)

Мнение от BaKuGan. nFL » 05 апр 2019, 00:45

Искам да попитам безплатният домейн може ли да се защити щом хоста е платен???
nFL-Cs.InFo Ела и се забавлявай
Изображение

Потребителски аватар

Gaming-Error
Потребител
Потребител
Мнения: 20
Регистриран: 27 мар 2019, 20:33
Се отблагодари: 8 пъти
Получена благодарност: 1 път

[Урок] Как да си направим сайта защитен (Anti DDoS)

Мнение от Gaming-Error » 05 апр 2019, 19:24

Разбира се че става. Можеш да закупиш и за защитиш :)

Потребителски аватар

Автор на темата
V.A.L.V.E WEB DEV
Потребител
Потребител
Мнения: 337
Регистриран: 18 дек 2016, 22:48
Се отблагодари: 53 пъти
Получена благодарност: 41 пъти
Години: 25

[Уроци] Nginx (Anti DDoS) и други уроци

Мнение от V.A.L.V.E WEB DEV » 05 окт 2019, 03:00

Урок #3
Как да си направим кеширащ сървър - Nginx Reverse Proxy + Apache2
Изображение


За какво служи Nginx Reverse Proxy, как точно работи и как се настройва.

Прокси сървъра на Nginx HTTPS е посредническа прокси услуга, която приема клиентска заявка, предава я на Apache уеб сървъра и впоследствие доставя отговора на Apache сървъра обратно на клиента.

Един път след като сме заредили уеб сайт, който използва Nginx Reverse Proxy остава кеширана версия на сайта и при следващо влизане, nginx proxy използва кешираната версия, така заявката стига само до nginx но не и до apache уеб сървъра, освен ако няма промяна по самият уеб сайт.
Предимства от използването на Nginx Reverse Proxy
Load Balancing: Прокси сървъра Nginx, може да извърши балансиране на натоварването, което спомага за равномерното разпределение на клиентските заявки.

Повишена сигурност: Прокси сървър на Nginx, също действа като защита на вашият Apache сървър. Конфигурирането на прокси сървър гарантира, че самоличността на Apache сървъра остава неизвестен, като конфигурация, настройки, php модули, директиви и прочие.

По-добра производителност: Известно е, че Nginx, постига по-добри резултати при доставянето на статично съдържание и анализиране на URL адреси.
Инсталация
Нека сега отворим нашата VPS машина (Виртуална машина) и следваме стъпките описани по-долу, като изписваме команда по команда във нашият терминал (черният прозорец за команди)

1. apt-get install apache2
Тази команда инсталира apache2 уеб сървър на ВПС-а

2.apt-get install php7.2 php7.2-mysql libapache2-mod-php7.2
Тази команда инсталира интерпретатор или по-точно казано php и още няколко модула.
По подразбиране apache слуша порт 80. Трябва да конфигурираме apache да работи на порт 8080 за нашата настройка на прокси, тъй като порт 80 ще бъде използван от nginx по-късно.
3. Пишем в терминала командата sudo nano /etc/apache2/ports.conf
Намираме на 5-ти ред Listen:80 Сменяме го на Listen:8080
Използваме комбинация на клавиатурата ctrl+o след това пишем y и натискаме enter и ctrl+z да запазим и излезем от файла

4. Пишем команда в терминала sudo nano /etc/apache2/sites-available/000-default.conf
Отваря ни default виртуал хост файла който е за apache2
Търсим в него <VirtualHost *:80> и го променяме на <VirtualHost *:8080>
Използваме комбинация на клавиатурата ctrl+o след това пишем y и натискаме enter и ctrl+z да запазим и излезем от файла

5. Пускаме тези 2 команди една след друга (първата команда прави тест на конфигурацията, втората рестартира апаче системно)
apachectl configtest
systemctl restart apache2

6. Пишем команда в терминала
cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php

Точно и ясно както я виждате 2-та реда ги копирате от урока и го пишете, тази команда ще ви създаде файл с име Info.php във главната директория на apache2 където трябва да са файловете на уеб сайта със код чрез който ще проверим дали apache2 работи коректно.

7. Да речем че IP-то на вашият VPS е : 1.1.1.1
Отворете браузъра си и напишете http://1.1.1.1/info.php
Ако ви зареди страничка, това означава че apache2 работи коректно със настройките който направихме по-горе.

8. Сега е време да отворим отново терминала и да напишем командата apt-get install nginx тя ще инсталира nginx

9.След инсталацията на Nginx пишем команда sudo nano /etc/nginx/nginx.conf
Малко по-долу във файла ще видите следното
Изображение
Премахнете # символа както съм го направил на картинката.
След последният ред на който пише
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Правите един ред разстояние и слагате този код:

Код: Избери всички

# Proxy Cache Settings
        proxy_cache_path /var/cache levels=1:2 keys_zone=reverse_cache:60m inactive=90m max_size=1000m;
Използваме комбинация на клавиатурата ctrl+o след това пишем y и натискаме enter и ctrl+z да запазим и излезем от файла.

Директорията на прокси кеша се намира във /var/cache не е желателно там да се пипа ако си нямате на хабер.

10. Пишем в терминала команда /etc/nginx/sites-available и натискаме ентар

11. Пишем в терминала команда touch reverse.conf
Добаяме следният код вътре:

Код: Избери всички

server {
    listen 80;

    # Site Directory same in the apache virtualhost configuration
    root /var/www/html; 
    index index.php index.html index.htm;

    # Domain
    server_name www.reverse.com reverse.com;

    location / {
        try_files $uri $uri/ /index.php;
    }


    # Reverse Proxy and Proxy Cache Configuration
    location ~ \.php$ {
 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;

        # Cache configuration
        proxy_cache reverse_cache;
        proxy_cache_valid 3s;
        proxy_no_cache $cookie_PHPSESSID;
        proxy_cache_bypass $cookie_PHPSESSID;
        proxy_cache_key "$scheme$host$request_uri";
        add_header X-Cache $upstream_cache_status;
    }

    # Enable Cache the file 30 days
    location ~* .(jpg|png|gif|jpeg|css|mp3|wav|swf|mov|doc|pdf|xls|ppt|docx|pptx|xlsx)$ {
        proxy_cache_valid 200 120m;
        expires 30d;
        proxy_cache reverse_cache;
        access_log off;
    }

    # Disable Cache for the file type html, json
    location ~* .(?:manifest|appcache|html?|xml|json)$ {
        expires -1;
    }

    location ~ /\.ht {
        deny all;
    }
}

Като преди да го запазим, вътре ще редактираме следните неща:

Код: Избери всички

# Domain
    server_name www.reverse.com reverse.com;
Тук изтриваме www.reverse.com и reverse.com и го правим така
server_name 1.1.1.1 (слагате тук вашето IP или домейн)

Код: Избери всички

proxy_pass http://127.0.0.1:8080;
Тук сменяме IP адреса със този на VPS-а

Използваме комбинация на клавиатурата ctrl+o след това пишем y и натискаме enter и ctrl+z да запазим и излезем от файла.


12. Отваряме терминала и пишем командата
ln -s /etc/nginx/sites-available/reverse.conf /etc/nginx/sites-enabled/
13. Пишем нова команда
nginx -t
14. Пишем и последна команда
systemctl restart nginx

За да проверите дали всичко работи, напишете в терминала командата
curl -I 1.1.1.1 (като смените 1.1.1.1 с IP адреса на VPS-а или домейн името)
и трябва да получите следният резултат:

Код: Избери всички

HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 04 Oct 2019 23:54:19 GMT
Content-Type: text/html
Content-Length: 10918
Last-Modified: Fri, 04 Oct 2019 22:03:48 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "5d97c1c4-2aa6"
Expires: Fri, 04 Oct 2019 23:54:18 GMT
Cache-Control: no-cache
Accept-Ranges: bytes
Ако виждате Cache-Control: no-cache означава че вече имате инсталиран и правилно структуриран Nginx Reverse Proxy кеширащ сървър.

Забранявам копирането на уроците ни където и да било, без мое изрично позволение, ако това не бъде спазено, определено ще ни накарате да спрем със уроците, уважавайте труда ни, всички уроци са лично тествани от нас, като сме взели гайдове от различни уеб сайтове и сме смесили няколко гайда на едно, всичко това ни отнема време и лични ресурси.

Потребителски аватар

HDS
Потребител
Потребител
Мнения: 22
Регистриран: 02 юли 2019, 22:19
Се отблагодари: 10 пъти
Получена благодарност: 1 път

[Уроци] Nginx (Anti DDoS) и други уроци

Мнение от HDS » 05 окт 2019, 12:48

Добра е темата, само да попитам, защо да си купуваме vps, при положение, че можем да си купим домейн и уеб хост от superhosting за цена от сорта на 200 лева на година, когато има промоция, разбира се.
Да плюсовете са много, но минусите са прекалено много, когато сами си хоствате web сайта.

Потребителски аватар

Автор на темата
V.A.L.V.E WEB DEV
Потребител
Потребител
Мнения: 337
Регистриран: 18 дек 2016, 22:48
Се отблагодари: 53 пъти
Получена благодарност: 41 пъти
Години: 25

[Уроци] Nginx (Anti DDoS) и други уроци

Мнение от V.A.L.V.E WEB DEV » 05 окт 2019, 13:33

HDS написа:
05 окт 2019, 12:48
Добра е темата, само да попитам, защо да си купуваме vps, при положение, че можем да си купим домейн и уеб хост от superhosting за цена от сорта на 200 лева на година, когато има промоция, разбира се.
Да плюсовете са много, но минусите са прекалено много, когато сами си хоствате web сайта.
Здравейте,

При Виртуалните машини имате неограничен достъп до функции. Можете да си инсталирате по желание уеб сървър което е едно от малките предимства на ВПС-ите, а при споделеният хостинг функциите и набора от инструменти са ограничени.

Поздрави.

Добавено преди 27 минути 36 секунди:
Урок #3.1
HTTP/2
Към по-горният урок, реших че ще е редно да добавя и по-нова версия на HTTP


Каква е целта на HTTP/2

Основната му цел е да подобри цялостното представянето на уеб сайта ви оптимизирайки работата на HTTP протокола или накратко по-оптимизиран и по-сигурен уеб
Изображение
Както виждаме на изображението, HTTP/1.1 зарежда всеки ресурс от уеб сървъра (като изображение, javascript или .css) един по един, а HTTP/2 Зарежда всички ресурси на едно, което спестява време т.н Load time и вашият уеб сайт зарежда по-бързо, което е едно голямо предимство.

Начин на инсталация
1.Изписваме командите 1 по 1 във прозореца (терминал)

sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/apache2 sudo apt update

2.За да стартираме HTTP/2 модула, отваряме терминала и пишем команда
sudo a2enmod http2

3. След като сме стартирали модул (както в т.2) е задължително да рестартираме Apache2 уеб сървъра за да влязат в сила новите настройки.
Използаме команда:
sudo systemctl restart apache2

Ако използвате SSL сертификат

Влизате във папка /etc/apache2/sites-enabled/

Отваряте си SSL файла и под
<VirtualHost *.443> слагате
Protocols h2 http:/1.1

Отново отваряте терминала и рестартирате Apache2 уеб сървъра.

Потребителски аватар

Jaxxin OXD
Потребител
Потребител
Мнения: 10
Регистриран: 16 яну 2019, 23:30
Местоположение: Breda
Получена благодарност: 4 пъти
Контакти:

[Уроци] Nginx (Anti DDoS) и други уроци

Мнение от Jaxxin OXD » 05 окт 2019, 18:21

Урок #4
Инсталация на Naxsi - Nginx Anti XSS & SQL Injection
Изображение
За какво служи Naxsi
Технически това е nginx модул.Този модул по подразбиране чете малък подмножество от прости (и четими) правила, съдържащи 99% от известните модели, участващи в уязвимостите на уебсайта. Например, <, | drop (от сорта на drop database) и т.н


След като някой от тези знаци или изрази съвпада с входящи HTTP заявки, NAXSI ще увеличи злонамерената оценка на тази заявка. Той създава резултати за SQL инжекционни атаки, скриптове на различни сайтове и т.н. Така че ако резултатът на заявката е повече от определен праг, NAXSI ще блокира заявката.
Начин на инсталация
Следвайте командите описани по-долу и ги въвеждайте 1 по 1 !!!
apt update
apt upgrade
Инсталирайте необходимите добавки с команда:

apt install libpcre3-dev libssl-dev unzip build-essential daemon libxml2-dev libxslt1-dev libgd-dev libgeoip-dev

- Пишем в терминала ( конзолата за команди)
cd /
и натискаме ентър

- Пишем в терминала
wget https://github.com/nbs-system/naxsi/archive/master.zip
- Пишем в терминала
unzip master.zip
- Пишем в терминала
mkdir -p /var/lib/nginx/{body,fastcgi}
 ! Съобщение от: Jaxxin
За начало копирайте основните правила на Naxsi, naxsi_core.rules в конфигурационната директория на Nginx. Основните правила са това, което прави основата на WAF.
- Пишем в терминала
cp ~/naxsi-master/naxsi_config/naxsi_core.rules /etc/nginx/

- Пишем в терминала
 sudo nano /etc/nginx/nginx.conf 
Тази команда ще отвори конфигурационния файл на nginx

Точно под
worker_connections 1024; }
Добавете

http { include mime.types; include /etc/nginx/naxsi_core.rules; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; sendfile on; keepalive_timeout 65; server {

Натискаме клавиатурната комбинация ctrl+O

- Изписваме в терминала командата
nginx -t
Ще видим грешка, че ни липсва GeoIP модула за Nginx

Инсталация на GeoIP модул за Nginx:

- Отваряме терминала и пишем
curl -s https://nginx.org/keys/nginx_signing.key | sudo apt-key add
- Отваряме терминала и пишем
sudo echo -e "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx\n deb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -cs` nginx" > /etc/apt/sources.list.d/nginx.list
- Отваряме терминала и пишем, следващите команди 1 по 1
sudo apt-get update
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx-module-geoip
 ! Съобщение от: Jaxxin
След инсталацията на nginx-module-geoip Ще ви пита дали да промени nginx.conf Натискате N и ентър (ако натиснете Y) ще ви презапише целият nginx.conf което не е желателно въобще!
- Отваряме терминала и пишем

echo 'load_module "modules/ngx_http_geoip_module.so;' | sudo tee /etc/nginx/modules-enabled/50-mod-http-upload.conf

- Отваряме терминала и пишем
systemctl start nginx
Изчакваме 10-20 секунди, тъй като на модула му трябва време да зареди и да рестартира nginx. Отваряме терминала и тестваме дали всичко работи с командата
systemctl status nginx
Това, което ще видите след изпълнението на командата, би трябвало да изглежда така:
Изображение

Отговори

Върни се в “Уеб Програмиране”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост