Как многие тут могут знать, при установке 3X-UI теперь сразу же на ваш IP ставятся сертификаты от Let’s Encrypt, автоматически создается скрипт в crontab о его периодическом продлении (работает это только на 80 порту).
23 15 *** “/root/ .acme.sh”/acme.sh --cron --home “/root/ .acme.sh” > /dev/null
Для более качественной маскировки сервера рекомендуется запросы на 80 порт перенаправлять на сайт маскировки, чтобы при попытке анализа DPI получил ответ как буд-то от реального сайта. Это можно сделать при примерно вот такой (ниже) настройке правил в nftables, но тут же встает проблема, что тогда запросы и от Let’s Encrypt будут пересылаться и сертификат не продлится.
Как эту проблему решить лучше всего? В теории либо какое то правило на отключение форвардинга через && к скрипту в кронтабе добавить и с ; в конце на включение добавить (я не знаю, как правильно прописать и нужно ли при этом что-то еще учитывать, тк тут не так просто как с ufw allow deny правилами) либо какое-то исключение в конфиге ниже сделать (не знаю какое).
nft
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
tcp dport 22 accept # SSH
tcp dport 80 accept # HTTP (для DNAT)
tcp dport 443 accept # VLESS
}
chain forward {
type filter hook forward priority 0; policy drop;
ct state established,related accept
ip daddr 192.168.1.100 accept # замените на IP сайта
}
chain output {
type filter hook output priority 0; policy accept
}
}
table ip nat {
chain prerouting {
type nat hook prerouting priority -100; policy accept;
tcp dport 80 dnat to 192.168.1.100 # замените на IP сайта
}
chain postrouting {
type nat hook postrouting priority 100; policy accept;
ip daddr 192.168.1.100 masquerade # замените на IP сайта
}
}