###### tags: `Reverse-Proxy` `WAF`
https://hackmd.io/@sadykovildar/r13ib1pjw
# Reverse-proxy


Освобождаем под nginx 443/80, прописывая 5443 вместо 443 под pfsense

Прокидываем порты снаружи на реверс прокси:

Web15,16:
`apt install nginx -y`
Web15:

Web16:

Reverse-proxy:
`cd /etc/nginx/`
Символическая ссылка (ссылается на другой конфиг)

X-Forwarded-For - перенаправление
Reverse-proxy:
`nano /etc/nginx/sites-available/web15`

Аналогично web16
Делаем символическую ссылку в текущую директорию:
> root@Reverse-proxy:/etc/nginx/sites-enabled# ln -s /etc/nginx/sites-available/web15 ./
Аналогично ссылку на 16 делаем.
Расскоментим server_names_hash_bucket_size:

Тестим конфигурацию:
nginx -t
В случае обращение ни к web 15,16 делаем ссылку чтобы перенаправлялось на дефолтную страницу:
> root@Reverse-proxy:/etc/nginx/sites-enabled# ln -s /etc/nginx/sites-available/default ./
`service nginx restart`


Реверс прокси работает.
**WAF ModSecurity**
```
sudo apt install libmodsecurity3
git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/
cd /usr/local/src/ModSecurity/
sudo git submodule init
sudo git submodule update
sudo ./build.sh
sudo ./configure
sudo make -j4
sudo make install
git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/
cd /usr/local/src/nginx/nginx-xxxx/
sudo apt build-dep nginx
sudo apt install uuid-dev
sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx
sudo make modules
sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/
sudo nano /etc/nginx/nginx.conf
Там внутри:
load_module modules/ngx_http_modsecurity_module.so;
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
sudo mkdir /etc/nginx/modsec/
sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf
sudo nano /etc/nginx/modsec/modsecurity.conf
SecRuleEngine DetectionOnly
SecRuleEngine On
sudo vim /etc/nginx/modsec/main.conf
Include /etc/nginx/modsec/modsecurity.conf
sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/
```
https://www.tecmint.com/install-modsecurity-nginx-debian-ubuntu/