try this but too much restriction, probaly gonna use this safety in the future though
This commit is contained in:
@@ -31,7 +31,7 @@ data:
|
|||||||
$http_upgrade $connection_upgrade {\n\t\tdefault upgrade;\n '' close;\n\t}\n\n\tgeoip2
|
$http_upgrade $connection_upgrade {\n\t\tdefault upgrade;\n '' close;\n\t}\n\n\tgeoip2
|
||||||
/data/dbip-country-lite-2026-01.mmdb{\n\t\t$geoip2_data_country_iso_code country
|
/data/dbip-country-lite-2026-01.mmdb{\n\t\t$geoip2_data_country_iso_code country
|
||||||
iso_code;\n\t $geoip2_data_city_name city names en;\n\t $geoip2_data_country_name
|
iso_code;\n\t $geoip2_data_city_name city names en;\n\t $geoip2_data_country_name
|
||||||
country names en;\n\t}\n \n\tmap $geoip2_data_country_iso_code::$ssl_client_verify
|
country names en;\n\t}\n \n\tmap $geoip2_data_country_iso_code:$ssl_client_verify
|
||||||
$allowed_country {\n\t\tdefault no;\n\t\tFR\tyes; # Allow France\n\t\tGB\tyes;
|
$allowed_country {\n\t\tdefault no;\n\t\tFR\tyes; # Allow France\n\t\tGB\tyes;
|
||||||
# Allow UK\n \"~:SUCCESS$\" yes; # Allow anyone with a valid
|
# Allow UK\n \"~:SUCCESS$\" yes; # Allow anyone with a valid
|
||||||
certificate (regardless of country)\n #NL yes; # Allow netherland\n\t\t#IN\tyes;
|
certificate (regardless of country)\n #NL yes; # Allow netherland\n\t\t#IN\tyes;
|
||||||
|
|||||||
+1
-1
@@ -64,7 +64,7 @@ http {
|
|||||||
$geoip2_data_country_name country names en;
|
$geoip2_data_country_name country names en;
|
||||||
}
|
}
|
||||||
|
|
||||||
map $geoip2_data_country_iso_code::$ssl_client_verify $allowed_country {
|
map $geoip2_data_country_iso_code:$ssl_client_verify $allowed_country {
|
||||||
default no;
|
default no;
|
||||||
FR yes; # Allow France
|
FR yes; # Allow France
|
||||||
GB yes; # Allow UK
|
GB yes; # Allow UK
|
||||||
|
|||||||
@@ -9,14 +9,19 @@ upstream ${name_site}_backend {
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
server_name ${name_site}.tryton.geeraert.eu www.${name_site}.tryton.geeraert.eu;
|
server_name ${name_site}.tryton.geeraert.eu www.${name_site}.tryton.geeraert.eu;
|
||||||
if ($allowed_country = no) {
|
# if ($allowed_country = no) {
|
||||||
return 444; # Forbidden
|
# return 444; # Forbidden
|
||||||
# Or use 'return 444;' to close the connection without a response
|
# # Or use 'return 444;' to close the connection without a response
|
||||||
# The 444 Status: If you want to save bandwidth and "ghost" attackers, use return 444;. It drops the connection immediately without even sending a "Forbidden" header.
|
# # The 444 Status: If you want to save bandwidth and "ghost" attackers, use return 444;. It drops the connection immediately without even sending a "Forbidden" header.
|
||||||
}
|
# }
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
|
if ($allowed_country = yes) {
|
||||||
|
|
||||||
proxy_pass %{ if proxy_pass_https}https%{else}http%{ endif }://${name_site}_backend;
|
proxy_pass %{ if proxy_pass_https}https%{else}http%{ endif }://${name_site}_backend;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
${extra-value-location}
|
${extra-value-location}
|
||||||
@@ -33,6 +38,16 @@ server {
|
|||||||
proxy_pass %{ if proxy_pass_https}https%{else}http%{ endif }://${name_site}_backend;
|
proxy_pass %{ if proxy_pass_https}https%{else}http%{ endif }://${name_site}_backend;
|
||||||
}
|
}
|
||||||
%{ endif }
|
%{ endif }
|
||||||
|
|
||||||
|
if ($ssl_client_verify != "SUCCESS") {
|
||||||
|
# Not UK AND no valid cert? Blocked.
|
||||||
|
return 403;
|
||||||
|
}
|
||||||
|
|
||||||
|
# 3. If NOT from UK but HAS cert, let them in.
|
||||||
|
proxy_pass %{ if proxy_pass_https}https%{else}http%{ endif }://${name_site}_backend;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
location /.well-known/acme-challenge/ {
|
location /.well-known/acme-challenge/ {
|
||||||
root /var/www/certbot;
|
root /var/www/certbot;
|
||||||
@@ -69,7 +84,7 @@ server {
|
|||||||
ssl_certificate_key /etc/nginx/ssl/live/tryton.geeraert.eu/privkey.pem;
|
ssl_certificate_key /etc/nginx/ssl/live/tryton.geeraert.eu/privkey.pem;
|
||||||
|
|
||||||
# Client Certificate Config
|
# Client Certificate Config
|
||||||
ssl_client_certificate /etc/nginx/certs/MyPrivateCA.crt;
|
ssl_trusted_certificate /etc/nginx/certs/MyPrivateCA.crt;
|
||||||
ssl_verify_client optional; # 'optional' so we can check the result manually
|
ssl_verify_client optional; # 'optional' so we can check the result manually
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user