Skip to content

KulikovSerhii/sites

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



GhostGhost



Запуск сайта на Ghost

В этом репозитории все самое необходимое для запуска полноценного сайта на CMS Ghost



Содержание

  1. Полезные ссылки
  2. Настройка Firewall



Полезные ссылки



Настройка Firewall

  1. Настройки UFW

    Docker сам настраивает iptables, поэтому UFW не влияет на контейнеры Docker

    • Сбросить текущие правила UFW

      sudo ufw reset
    • Заблокировать все входящие соединения по умолчанию

      sudo ufw default deny incoming
    • Разрешить все исходящие соединения по умолчанию

      sudo ufw default allow outgoing
    • Разрешить входящие подключения на порт 2509 TCP (например это SSH)

      sudo ufw allow 2509/tcp
    • Включить UFW с применением всех вышеуказанных правил

      sudo ufw enable
    • Перезагрузить правила UFW из конфигов и применить их заново

      sudo ufw reload
    • Проверить активность и правила UFW в подробном виде

      sudo ufw status verbose
  2. Настройки iptables для Docker

    • Packet filtering and firewalls

    • Очистить цепочку DOCKER-USER

      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;

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors