Как настроить файл Apache server / crontab / bash для разрешения доступа в определенное время в течение дня и / или с указанных c IP-адресов? - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь выполнить упражнение, данное моим инструктором. Нам было поручено настроить VirtualHost, к которому можно получить доступ mon-fri / 1-5. Кроме того, мы должны разрешить доступ к сайту с IP "XX.XX.XX.XXX" в любое время.

Текущий crontab:

* 13 * * 1-5 root apachectl start
* 17 * * 1-5 root apachectl stop
* * * * * root ./bash

Bash file:

currIP=$(hostname -I)
case "$currIP" in
        *XX.XX.XX.XXX*)
              ???????
;;
esac

Может кто-нибудь объяснить мне, как я собираюсь обслуживать этот сайт по IP, не предоставляя его всем сразу?

Спасибо!

1 Ответ

0 голосов
/ 13 марта 2020

Допустим, это ваш файл конфигурации.

/etc/apache2/httpd.conf

Запустите эти команды:

sudo cp /etc/apache2/httpd.conf all.conf
sudo cp /etc/apache2/httpd.conf restricted.conf

Теперь создайте этот скрипт где-нибудь в вашей системе:

#!/bin/bash

[[ "$1" = "all" ]] && { ln -s --force /etc/apache2/all.conf /etc/apache2/httpd.conf ;}
[[ "$1" = "restricted" ]] && { ln -s --force /etc/apache2/restricted.conf /etc/apache2/httpd.conf ;}
sudo systemctl restart httpd

И добавьте к нему разрешения на выполнение:

sudo chmod +x /path/to/your/script.sh

Теперь измените / etc / apache2 / limited.conf для фильтрации запросов по IP. Вы можете найти информацию об этом здесь: https://httpd.apache.org/docs/2.4/es/mod/mod_authz_core.html#require

Теперь установите root cron как:

sudo crontab -e

И там добавьте это:

* 13 * * 1-5 /path/to/your/script.sh "all"
* 17 * * 1-5 /path/to/your/script.sh "restricted"

И будь счастлив!

...