Крон запускает программы, не веб-сайты, таким образом, необходимо обеспечить путь на диске к программе командной строки или сценарию. У Вас, кажется, есть Сценарий PHP, таким образом, у Вас есть много альтернатив:
Обеспечьте путь к интерпретатору CLI PHP и передайте свой сценарий как аргумент:
php /home/username/root_directory/filename.php
... или:
/usr/bin/php /home/username/root_directory/filename.php
Создайте сценарий оболочки PHP:
/home/username/filename.sh
... где filename.sh имеет "x" разрешение и похож:
#!/usr/bin/php
Создайте сценарий оболочки удара:
/home/username/filename.sh
... где filename.sh имеет "x" разрешение и похож:
#!/bin/sh
php /home/username/root_directory/filename.php
... или:
#!/bin/sh
/usr/bin/php /home/username/root_directory/filename.php
Запустите приложение, которое может говорить HTTP:
wget http://example.com/filename.php
You will probably need to get a full-on commercial web filter for a job like this - unless you want to go fairly deep into rolling your own ICAP stuff like @Richard Keller appears to be suggesting. I work for Smoothwall who produce a filter which does the job - if it's really all you need it for (ie no other filtering) namecheck me with the sales guys and we can licence appropriately. In the interests of fairness there are competing products which also have this feature - youtube uses it too.
As per the Squid FAQ:
Squid.conf ACLs
Header modification via Squid ACLs is limited to удаление заголовка или замена совпадающего заголовка константой string.
Другими словами, вы не сможете добавлять произвольные заголовки запросов, просто используя ACL Squid. ACL Squid ограничивают вас удалением существующих заголовков или заменой существующих заголовков, но не позволяют добавлять новые заголовки. Единственный способ добавить новые заголовки - использовать ICAP-сервер вместе с Squid. Для получения дополнительной информации см. Раздел ICAP в Squid FAQ.
Using squid, you will:
Apparently can be done with ICAP
Server: http://icap-server.sourceforge.net/irml.html
The client is in squid3: http://ftp.meisei-u.ac.jp/mirror/squid/squid-3.0-RELEASENOTES.html#ss4.1
Config from above: (squid.conf)
icap_enable on
icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request
icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response
icap_class class_req service_req
icap_class class_resp service_resp
icap_access class_req allow all
icap_access class_resp allow all
Then configure the server to determine whether to modify the header or not based on destination domain:
????+
Profit? Can't figure out how to write the rules that would do this.. maybe you'll would have more luck.
Таким образом, вы можете сделать это с помощью комбинации веб-прокси и сервера ICAP. Я больше всего знаком с Squid Proxy и GreasySpoon для ICAP. Я использую Squid v3.2.1 и GreasySpoon 1.0.8.
В любом случае, настройте Squid для работы в качестве стандартного кеша. Вот пример конфигурации. Для получения дополнительных сведений о правильной настройке squid ознакомьтесь с обширной документацией. Раздел, который вас интересует по этому вопросу, - это # Конфигурации ICAP
внизу.
cache_effective_user squid
cache_effective_group squid
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 81 # http - public
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny blocksites
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 transparent
# Leave coredumps in the first cache dir
core dump_dir /var/cache/squid
# ICAP Configurations
icap_enable on
icap_preview_enable on
icap_service service_req reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
adaptation_access service_req allow all
icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
adaptation_access service_resp allow all
Обратите внимание, что сервер ICAP, который я использовал, находился на том же хосте, что и прокси-сервер squid, поэтому я использовал 127.0.0.1. Если ваш прокси-сервер и ICAP находятся на разных хостах, не забудьте поменять шлейф на IP или имя сервера другого сервера.
Это простая часть.
Опять же, я использую теперь несуществующий ICAP-сервер "Greasy Spoon". Я обнаружил, что это очень просто, и сделал то, что хотел, с минимальной головной болью. Кроме того, хотя доступны другие параметры, я использую возможности подключаемого модуля Java.
В случае GreasySpoon я просто создал небольшой сценарий Java (не javascript, хотя это возможно со многими серверами ICAP), нацеленный на HTTP-запрос и добавил необходимый заголовок (обратите внимание, что первые комментарии предоставляют метаданные серверу GS. Возможно, не нужны для других):
Можете ли вы с новым Squid 3.3, который поддерживает команду request_header_add. Я использовал для этого CentOS.
Мой Squid.conf:
acl CONNECT method CONNECT
visible_hostname MySERVER.local
acl local src 192.168.0.0/24
http_access allow local
ssl_bump client-first all
always_direct allow all
http_port 3128 ssl_bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/usr/local/squid/etc/cert.pem
request_header_add X-GoogApps-Allowed-Domains "mycompany.com" all
cache_dir ufs /usr/local/squid/var/cache 8192 32 256
Вам нужно сгенерировать SSL-сертификаты с помощью openSSL:
openssl req -new -newkey rsa:1024 -days 36500 -nodes -x509 -keyout /usr/local/squid/etc/cert.pem -out /usr/local/squid/etc/cert.pem
А если пользователи не могут просматривать ошибки в браузерах, установите его как root доверять на каждом компьютере или добавить в Active Directory (в этом может помочь Google).
openssl x509 -in /usr/local/squid/etc/cert.pem -outform DER -out /usr/local/squid/etc/cert.der
Использование Squid для добавления пользовательского заголовка очень сложно. Я попытался, но потерпел неудачу, однако нашел другое решение для блокировки учетной записи пользователя, используя следующий метод:
В небольшом организация Я думаю, что прокси Burp лучше, и это то, что мы сейчас используем.
in / 2013/09 / block-access-to-consumer-gmail-accounts-but-allow-google-apps /Я думаю, что в небольшой организации прокси Burp лучше, и это то, что мы сейчас используем.
in / 2013/09 / block-access-to-consumer-gmail-accounts-but-allow-google-apps /Я думаю, что в небольшой организации прокси Burp лучше, и это то, что мы сейчас используем.