OS X Server logt alleen 127.0.0.1 na update
17 september 2015 - 20:41   
geplaatst door: Sjors
Ik heb Server.app vandaag bijgewerkt naar de nieuwste versie 5.0.3 vanochtend. Na de update logt Apache alleen nog maar 127.0.0.1 in plaats van het Remote IP address. Kennelijk is er bij de update automatisch een proxy server in Apache ingesteld want als ik de server herstart en tijdens de herstart een website aanroep zie ik onderstaande tekst in beeld. Op de website van Apple wordt voor Server 5.0.3 aangegeven dat Apache is aangepast m.b.t. DdOS aanvallen. Mogelijk is dat die proxy server of load balancer instelling dus. Mijn IP filter in .htaccess werkt nu ook niet meer hierdoor.

http://prod.lists.apple.com/archives/security-announce/2015/Sep/msg00004.html

Weet iemand hoe ik dat weer kan herstellen?

Logging instellingen in httpd_server_app.conf:


<IfModule log_config_module>
   #
   # The following directives define some format nicknames for use with
   # a CustomLog directive (see below).
   #
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
   LogFormat "%h %l %u %t \"%r\" %>s %b" common
   LogFormat "%v %h %l %u %t \"%r\" %>s %b" commonvhost

   #X-Forwarded headers except for the last ',' delimited value can contain injected text.
   SetEnvIf X-Forwarded-For "\s*([^,]*$)" last-x-forwarded-for=$1
   SetEnvIf X-Forwarded-Host "\s*([^,]*$)" last-x-forwarded-host=$1
   SetEnvIf last-x-forwarded-host "\s*(.+)" forwarded

   LogFormat "%{last-x-forwarded-host}e %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedp$
   LogFormat "%{last-x-forwarded-host}e %l %u %t \"%r\" %>s %b" commonproxy
   LogFormat "%{last-x-forwarded-host}e %{last-x-forwarded-for}e %l %u %t \"%r\" %>s %b" commonvhostproxy
   LogFormat "%{last-x-forwarded-host}e %{last-x-forwarded-for}e %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{$

   <IfModule logio_module>
     # You need to enable mod_logio.c to use %I and %O
     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
     LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinediovhost
   </IfModule>

   #
   # The location and format of the access logfile (Common Logfile Format).
   # If you do not define any access logfiles within a <VirtualHost>
   # container, they will be logged here.  Contrariwise, if you *do*
   # define per-<VirtualHost> access logfiles, transactions will be
   # logged therein and *not* in this file.
   #
   CustomLog "/var/log/apache2/access_log" common env=!forwarded
   CustomLog "/var/log/apache2/access_log" commonproxy env=forwarded

   #
   # If you prefer a logfile with access, agent, and referer information
   # (Combined Logfile Format) you can use the following directive.
   #
   #CustomLog "/private/var/log/apache2/access_log" combined
</IfModule>

OS X Server logt alleen 127.0.0.1 na update
18 september 2015 - 10:16    reactie #1
geplaatst door: ICTvoordeZaak
Hoewel ik dit probleem niet ken, is mijn eerste advies bij problemen met Server altijd om DNS te controleren. DNS is de achilleshiel voor het functioneren van MacOSX server. Controleer dus in ieder geval eerst dat zowel forward als reverse lookup voor de server werken.
Full-service Mac ICT beheer en Consultancy, VOIP en professioneel WIFI. www.ictvoordezaak.nl
OS X Server logt alleen 127.0.0.1 na update
18 september 2015 - 12:33    reactie #2
geplaatst door: Sjors
Ik heb de DNS records verwijderd, de map 'Library/Server/Web' met inhoud en het bestand /var/db/.ServerSetupDone. Daarna een herstart en de DNS records (inclusief reverse map) en de websites opnieuw ingesteld via de Server.app. Ook dan geeft het access_log nog steeds alle records weer met 127.0.0.1. Alleen Apple zelf komt er met eigen IP adres in als ik de Server.app start.

www.domeinnaam.nl 127.0.0.1 - - [18/Sep/2015:12:26:17 +0200] "GET /wp-content/uploads/2015/06/modelspoor-blog-3.jpg HTTP/1.1" 200 958047 "https://www.google.nl/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36"
www.domeinnaam.nl 17.151.40.77 - - [18/Sep/2015:12:13:10 +0200] "GET / HTTP/1.1" 302 177 "-" "Mozilla/5.0"

Aanvulling:

Aanzetten van onderstaande module in httpd_server_app.conf zorgt ervoor dat in .htaccess aangebrachte rewrite regels op basis van IP adressen weer werken en PHP code wel het remote IP address oppikt. In access_log is nog wel alleen 127.0.0.1 te zien maar voor nu is het werkbaar.

LoadModule remoteip_module libexec/apache2/mod_remoteip.so

Instellingen in het bestand /Library/Server/Web/Config/Proxy/apache_serviceproxy.conf zijn waarschijnlijk debet aan het probleem. Iemand die weet hoe je de Apache Proxy moet configureren zodat remote IP geforward wordt?

Volgens mij begin ik langzaam aan te snappen hoe het werkt. Proxy vangt requests op van bezoeker (remote IP) (Port 80) en haalt de gevraagde inhoud op bij httpd (afwijkend Port nummer) en serveert die in de browser. Omdat access_log alleen requests logt die door de Proxy wordt doorgegeven is dat IP adres in de logs (127.0.0.1). En met de module remoteip_module wordt het remote IP via de Proxy naar de httpd server gestuurd. Zit ik in de goede richting?

(Bewerkt door Sjors om 19:06, 18-09-2015)