āϞāĻŋāύāĻžāĻ•ā§āϏ⧇ āĻĄāĻ•āĻžāϰ āϏāĻš letsencrypt āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āĻŸā§‡āϰ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻžāĻĒā§āϤāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āφāĻŽāĻŋ āϏāĻŽā§āĻĒā§āϰāϤāĻŋ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āφāĻŽāĻžāϕ⧇ āφāĻŦāĻžāϰ āϏāĻŦāĻ•āĻŋāϛ⧁ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āφāĻŽāĻŋ āϏāĻžāχāϟāϟāĻŋāϕ⧇ https āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏāϝ⧋āĻ—ā§āϝ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ letsencrypt āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰāϗ⧁āϞāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻāĻŦāĻ‚ āĻĒ⧁āύāĻ°ā§āύāĻŦā§€āĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰāĻŋ⧎ āĻāϟāĻŋ āĻĻ⧁āϟāĻŋ āĻĄāĻ•āĻžāϰ āχāĻŽā§‡āϜ nginx-proxy āĻāĻŦāĻ‚ nginx-proxy-companion āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ°ā§āϜāύ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāϟāĻŋ āĻĄāĻ•āĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāĻ•āĻž, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ SSL āϏāĻžāĻ°ā§āϟāĻŋāĻĢāĻŋāϕ⧇āϟāĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ CentOS 7.

āφāĻŽāĻŋ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻŋ āϝ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āϕ⧇āύāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, āĻāϟāĻŋ āϕ⧀ āĻĻā§āĻŦāĻžāϰāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇, fail2ban āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āχāĻ¤ā§āϝāĻžāĻĻāĻŋāĨ¤

āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻžāϕ⧇ āĻĄāĻ•āĻžāϰ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

  1. āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻžāϕ⧇ āύāĻŋāĻ°ā§āĻ­āϰāϤāĻžāϗ⧁āϞāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ āϏāĻ‚āϝ⧋āĻ—
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. āϤāĻžāϰāĻĒāϰ āĻĄāĻ•āĻžāϰ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇ āĻĄāĻ•āĻžāϰ āϝ⧋āĻ— āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ āϚāĻžāϞāĻžāύ
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. āϏ⧁āĻĄā§‹ āĻ›āĻžāĻĄāĻŧāĻž āĻĄāĻ•āĻžāϰ āϚāĻžāϞāĻžāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻ•āĻžāϰ āĻ—ā§āϰ⧁āĻĒ⧇ āĻāĻ•āϜāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ
    $ usermod -aG docker user

āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āϧāĻžāĻĒ āĻšāϞ āĻĄāĻ•āĻžāϰ-āĻ•āĻŽā§āĻĒā§‹āϜ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻžāĨ¤ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϟāĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āωāĻĒāĻžāϝāĻŧ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āφāĻŽāĻŋ āĻĒāĻŋāĻĒ āĻŽā§āϝāĻžāύ⧇āϜāĻžāϰ āĻāĻŦāĻ‚ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ⧇āύāϭ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āϰāĻŋ, āϝāĻžāϤ⧇ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĒā§āϝāĻžāϕ⧇āϜāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāϟāĻŋ āφāϟāϕ⧇ āύāĻž āϝāĻžāϝāĻŧāĨ¤

  1. āĻĒāĻŋāĻĒ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ
    $ sudo yum install python-pip
  2. virtualenv āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ
    $ pip install virtualenv
  3. āĻāϰ āĻĒāϰ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻĒā§āϝāĻžāϕ⧇āϜ āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϏāĻŦāĻ•āĻŋāϛ⧁ āϏāĻš āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰāϟāĻŋāϕ⧇ ve āĻŦāϞāĻž āĻšāĻŦ⧇āĨ¤
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤
    $ source ve/bin/activate
  5. āφāĻĒāύāĻŋ āĻĄāĻ•āĻžāϰ-āĻ•āĻŽā§āĻĒā§‹āϜ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤
    pip install docker-compose

    āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϗ⧁āϞāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰāϕ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ, āφāϏ⧁āύ āĻāĻ•āϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϤ⧈āϰāĻŋ āĻ•āϰāĻŋāĨ¤ āĻŦā§āϰāĻŋāϜ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤

    $ docker network create network

    āĻāϰ āĻĒāϰ⧇, āφāĻĒāύāĻžāϕ⧇ āĻĄāĻ•āĻžāϰ-āĻ•āĻŽā§āĻĒā§‹āϜ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻĒā§āϰāĻ•ā§āϏāĻŋāϟāĻŋ āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻĨāĻžāĻ•āĻŦ⧇, āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϏāĻžāχāϟāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ⧇ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻŽāĻŋ āĻĄā§‹āĻŽā§‡āχāύ āύāĻžāĻŽ example.com āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ

    $ mkdir proxy
    $ mkdir test
    $ touch proxy/docker-compose.yml
    $ touch test/docker-compose.yml

    āϏāĻžāĻŽāĻ—ā§āϰ⧀ proxy/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
      nginx-proxy:
        container_name: nginx-proxy
        image: jwilder/nginx-proxy
        ports:
          - 80:80
          - 443:443
        volumes:
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/tmp/docker.sock:ro
    
      nginx-proxy-letsencrypt:
        container_name: nginx-proxy-letsencrypt
        image: jrcs/letsencrypt-nginx-proxy-companion
        volumes: 
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    volumes:
      certs:
      vhost.d:
      html:

    āĻĒāϰāĻŋāĻŦ⧇āĻļ āϏ⧂āϚāĻ• NGINX_PROXY_CONTAINER āĻĒā§āϰāĻ•ā§āϏāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĻ⧇āĻ–āϤ⧇ letsencrypt āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ /etc/nginx/certs /etc/nginx/vhost.d āĻāĻŦāĻ‚ /usr/share/nginx/html āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ āωāĻ­āϝāĻŧ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāĻž āφāĻŦāĻļā§āϝāĻ•āĨ¤ letsencrypt āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ 80 āĻāĻŦāĻ‚ 443 āωāĻ­āϝāĻŧ āĻĒā§‹āĻ°ā§āĻŸā§‡ āωāĻĒāϞāĻŦā§āϧ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤

    āϏāĻžāĻŽāĻ—ā§āϰ⧀ test/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
    
      nginx:
        container_name: nginx
        image: nginx:latest
        environment:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - LETSENCRYPT_EMAIL=admin@example.com

    āĻāĻ–āĻžāύ⧇, āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āϝāĻžāϤ⧇ āĻĒā§āϰāĻ•ā§āϏāĻŋ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ…āύ⧁āϰ⧋āϧāϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϏāĻ āĻŋāĻ• āĻĄā§‹āĻŽā§‡āύ āύāĻžāĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ⧇āϰ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇āĨ¤

    āĻāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĄāĻ•āĻžāϰ-āĻ•āĻŽā§āĻĒā§‹āϜ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻ…āĻŦāĻļ⧇āώ

    $ cd proxy
    $ docker-compose up -d
    $ cd ../test
    $ docker-compose up -d

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster