В этом репозитории все самое необходимое для запуска полноценного сайта на CMS Ghost
-
Docker сам настраивает iptables, поэтому UFW не влияет на контейнеры Docker
-
sudo ufw reset
-
sudo ufw default deny incoming
-
sudo ufw default allow outgoing
-
sudo ufw allow 2509/tcp
-
sudo ufw enable -
sudo ufw reload
-
sudo ufw status verbose
-
-
-
sudo iptables -F DOCKER-USER; sudo ip6tables -F DOCKER-USER;
-
sudo iptables -I DOCKER-USER -m state --state RELATED,ESTABLISHED -j ACCEPT; sudo ip6tables -I DOCKER-USER -m state --state RELATED,ESTABLISHED -j ACCEPT;
-
# Определяем основной сетевой интерфейс OUT_IF=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++){if($i=="dev"){print $(i+1)}}}'); sudo iptables -A DOCKER-USER -o $OUT_IF -j ACCEPT; sudo ip6tables -A DOCKER-USER -o $OUT_IF -j ACCEPT;
-
Добавляем правила в цепочку DOCKER-USER (разрешаем доступ к серверу только с IP Cloudflare из переменной CLOUDFLARE_IPS внутри файла .env)
CLOUDFLARE_IPS=$(grep '^CLOUDFLARE_IPS=' .env | cut -d '"' -f2); for ip in $CLOUDFLARE_IPS; do if [[ "$ip" =~ : ]]; then sudo ip6tables -A DOCKER-USER -p tcp -m multiport --dports 80,443 -s $ip -j ACCEPT sudo ip6tables -A DOCKER-USER -p udp --dport 443 -s $ip -j ACCEPT else sudo iptables -A DOCKER-USER -p tcp -m multiport --dports 80,443 -s $ip -j ACCEPT sudo iptables -A DOCKER-USER -p udp --dport 443 -s $ip -j ACCEPT fi done; sudo iptables -A DOCKER-USER -j DROP; sudo ip6tables -A DOCKER-USER -j DROP; # Проверяем правила цепочки DOCKER-USER sudo iptables -L DOCKER-USER -n -v; sudo ip6tables -L DOCKER-USER -n -v;

