# Proxy Servers (Squid) #### Reverse Proxy на PfSense > Reverse Proxy Server: Peers -> Edit -> Web Servers > > ![](https://i.imgur.com/Jb0Ug9q.png) > > Настраиваем 2 сервера > > > ![](https://i.imgur.com/jms2R1e.png) Настроить мапинг > Reverse Proxy Server: Mappings -> Edit -> Mappings > > > ![](https://i.imgur.com/bZGgRlU.png) Добавить строчку в System -> Advanced -> System Tunnable > net.inet.ip.portrange.reservedhigh | PORT-RANGE for SQUID REVERSE PROXY > > ![](https://i.imgur.com/9siXJgu.png) Основные настройки Squid Reverse Proxy > > ![](https://i.imgur.com/6w7et6X.png) Проверить, не стоят ли галочки в Interfaces -> WAN > > ![](https://i.imgur.com/x80BPsz.png) #### Reverse Proxy на nginx > В PfSense -> System -> Advanced > Указать TCP Port, который отличается от 443 > > ![](https://i.imgur.com/7Cuu4D0.png) Настроить проброс портов > NAT -> Port Forwarding > > ![](https://i.imgur.com/cdSSW0l.png) > > > ![](https://i.imgur.com/Zk0aZpv.png) Теперь возможно подключиться с хост-машины к WAN PfSense, далее перенаправит в nginx reverse proxy > После подключения по ssh > `cd /etc/nginx/sites-available/` > `nano web-1.conf` > > Вставить конфигурацию, чтобы nginx перенаправлял запросы в необходимый бэкенд > > > server { > > listen 80; > > server_name web-1.hackeru.tech; > > access_log /var/log/nginx/mirea.tech-access.log; > > error_log /var/log/nginx/mirea.tech-error.log; > > location / { > > proxy_pass http://172.16.12.201; > > proxy_set_header Host $host; > > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > proxy_set_header X-Real-IP $remote_addr; > > } > > } > > `cd /etc/nginx/sites-available/` > `nano web-1.conf` > > > server { > > listen 80; > > server_name web-2.hackeru.tech; > > access_log /var/log/nginx/mirea.tech-access.log; > > error_log /var/log/nginx/mirea.tech-error.log; > > location / { > > proxy_pass http://172.16.12.202; > > proxy_set_header Host $host; > > proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; > > proxy_set_header X-Real-IP $remote_addr; > > } > > } > > Ренейм > > mv web-1.conf 001-web-1.conf > > mv web-2.conf 002-web-2.conf > > mv default.conf 999-default.conf > > cd …/sites-enabled/ > Удаляем существующие ссылки > rm default > > Создаем ссылки на все новые конфиги > ln -s /etc/nginx/sites-available/001-web-1.conf ./ > ln -s /etc/nginx/sites-available/002-web-2.conf ./ > ln -s /etc/nginx/sites-available/999-defaul.conf ./ > > Необходимо расскоментировать строчку server_names_hash_bucket_size 64; в файле nginx.conf > Проверить конфиг, можно командой nginx -t > > systemctl restart nginx #### Добавление TLS к ресурсам, с помощью PfSense > System -> Certificate Manager -> Certificates > > ![](https://i.imgur.com/m8ZOZBD.png) > > > ![](https://i.imgur.com/NNjyl79.png) Скачать ключ и серт, передать на машину nginx reverse proxy > `scp -r /root/Downloads/* root@172.16.12.250:/root/` > > Дальше законектиться к машине > > `mkdir /etc/nginx/ssl` > `mv /root/* /etc/nginx/ssl` > > `cd /etc/nginx/sites-available/` > `nano 001-web-1-ssl.conf` > `nano 002-web-2-ssl.conf` > `nano 999-default-ssl.conf` Далее, добавить символьные ссылки на новые конфиги, предварительно удалив старые: > cd …/sites-enabled/ > rm * > > ln -s /etc/nginx/sites-available/001-web-1-ssl.conf ./ > ln -s /etc/nginx/sites-available/002-web-2-ssl.conf ./ > ln -s /etc/nginx/sites-available/999-defaul-ssl.conf ./ > > Проверяем конфиг командой nginx -t > Скорее всего, он ругнется на то, что не сформирован сертификат diffi-helman для обмена симметричнымы ключами. Создадим его: > openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096 > > systemctl restart nginx ###### tags: `Information Security Systems`