Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:apache_http_server_centos_6

Apache HTTP Server CentOS 6

Der Apache HTTP Server ist ein Open Source Webserver und der seit 1996 am meisten im Internet eingesetzte Webserver weltweit. Der freie und quell offenen Webserver wird von der Apache Software Foundation kostenlos zur Verfügung gestellt und als das Hauptprojekte weiterentwickelt.

Installation

Zur Installation des Apache HTTP Servers wird nachfolgendes Paket benötigt:

  • httpd - ist im base-Repository von CentOS enthalten

installiert werden.

Mit nachfolgendem Befehl, wird das Pakete httpd installiert:

# yum install httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.halifax.rwth-aachen.de
 * extras: ftp.halifax.rwth-aachen.de
 * updates: ftp.halifax.rwth-aachen.de
base                                                     | 3.7 kB     00:00     
extras                                                   | 3.0 kB     00:00     
updates                                                  | 3.5 kB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.2.15-5.el6.centos set to be updated
--> Processing Dependency: httpd-tools = 2.2.15-5.el6.centos for package: httpd-2.2.15-5.el6.centos.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-5.el6.centos.x86_64
--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-5.el6.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-5.el6.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-5.el6.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-3.el6_0.1 set to be updated
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 set to be updated
---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 set to be updated
---> Package httpd-tools.x86_64 0:2.2.15-5.el6.centos set to be updated
---> Package mailcap.noarch 0:2.1.31-1.1.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch         Version                   Repository     Size
================================================================================
Installing:
 httpd               x86_64       2.2.15-5.el6.centos       base          811 k
Installing for dependencies:
 apr                 x86_64       1.3.9-3.el6_0.1           updates       124 k
 apr-util            x86_64       1.3.9-3.el6_0.1           updates        87 k
 apr-util-ldap       x86_64       1.3.9-3.el6_0.1           updates        15 k
 httpd-tools         x86_64       2.2.15-5.el6.centos       base           68 k
 mailcap             noarch       2.1.31-1.1.el6            base           27 k

Transaction Summary
================================================================================
Install       6 Package(s)
Upgrade       0 Package(s)

Total download size: 1.1 M
Installed size: 3.6 M
Is this ok [y/N]: y       
Downloading Packages:
(1/6): apr-1.3.9-3.el6_0.1.x86_64.rpm                    | 124 kB     00:00     
(2/6): apr-util-1.3.9-3.el6_0.1.x86_64.rpm               |  87 kB     00:00     
(3/6): apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm          |  15 kB     00:00     
(4/6): httpd-2.2.15-5.el6.centos.x86_64.rpm              | 811 kB     00:00     
(5/6): httpd-tools-2.2.15-5.el6.centos.x86_64.rpm        |  68 kB     00:00     
(6/6): mailcap-2.1.31-1.1.el6.noarch.rpm                 |  27 kB     00:00     
--------------------------------------------------------------------------------
Total                                           616 kB/s | 1.1 MB     00:01     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : apr-1.3.9-3.el6_0.1.x86_64                               1/6 
  Installing     : apr-util-1.3.9-3.el6_0.1.x86_64                          2/6 
  Installing     : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                     3/6 
  Installing     : httpd-tools-2.2.15-5.el6.centos.x86_64                   4/6 
  Installing     : mailcap-2.1.31-1.1.el6.noarch                            5/6 
  Installing     : httpd-2.2.15-5.el6.centos.x86_64                         6/6 

Installed:
  httpd.x86_64 0:2.2.15-5.el6.centos                                            

Dependency Installed:
  apr.x86_64 0:1.3.9-3.el6_0.1                                                  
  apr-util.x86_64 0:1.3.9-3.el6_0.1                                             
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1                                        
  httpd-tools.x86_64 0:2.2.15-5.el6.centos                                      
  mailcap.noarch 0:2.1.31-1.1.el6                                               

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket httpd installiert wurden.

# rpm -qil httpd
Name        : httpd                        Relocations: (not relocatable)
Version     : 2.2.15                            Vendor: CentOS
Release     : 5.el6.centos                  Build Date: Thu 07 Jul 2011 12:31:46 PM CEST
Install Date: Thu 27 Oct 2011 11:05:46 AM CEST      Build Host: c6b6.bsys.dev.centos.org
Group       : System Environment/Daemons    Source RPM: httpd-2.2.15-5.el6.centos.src.rpm
Size        : 3057369                          License: ASL 2.0
Signature   : RSA/8, Thu 07 Jul 2011 01:50:26 PM CEST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/logs
/etc/httpd/modules
/etc/httpd/run
/etc/logrotate.d/httpd
/etc/rc.d/init.d/httpd
/etc/sysconfig/httpd
/usr/lib64/httpd
/usr/lib64/httpd/modules
/usr/lib64/httpd/modules/mod_actions.so
/usr/lib64/httpd/modules/mod_alias.so
/usr/lib64/httpd/modules/mod_asis.so
/usr/lib64/httpd/modules/mod_auth_basic.so
/usr/lib64/httpd/modules/mod_auth_digest.so
/usr/lib64/httpd/modules/mod_authn_alias.so
/usr/lib64/httpd/modules/mod_authn_anon.so
/usr/lib64/httpd/modules/mod_authn_dbd.so
/usr/lib64/httpd/modules/mod_authn_dbm.so
/usr/lib64/httpd/modules/mod_authn_default.so
/usr/lib64/httpd/modules/mod_authn_file.so
/usr/lib64/httpd/modules/mod_authnz_ldap.so
/usr/lib64/httpd/modules/mod_authz_dbm.so
/usr/lib64/httpd/modules/mod_authz_default.so
/usr/lib64/httpd/modules/mod_authz_groupfile.so
/usr/lib64/httpd/modules/mod_authz_host.so
/usr/lib64/httpd/modules/mod_authz_owner.so
/usr/lib64/httpd/modules/mod_authz_user.so
/usr/lib64/httpd/modules/mod_autoindex.so
/usr/lib64/httpd/modules/mod_cache.so
/usr/lib64/httpd/modules/mod_cern_meta.so
/usr/lib64/httpd/modules/mod_cgi.so
/usr/lib64/httpd/modules/mod_cgid.so
/usr/lib64/httpd/modules/mod_dav.so
/usr/lib64/httpd/modules/mod_dav_fs.so
/usr/lib64/httpd/modules/mod_dbd.so
/usr/lib64/httpd/modules/mod_deflate.so
/usr/lib64/httpd/modules/mod_dir.so
/usr/lib64/httpd/modules/mod_disk_cache.so
/usr/lib64/httpd/modules/mod_dumpio.so
/usr/lib64/httpd/modules/mod_env.so
/usr/lib64/httpd/modules/mod_expires.so
/usr/lib64/httpd/modules/mod_ext_filter.so
/usr/lib64/httpd/modules/mod_filter.so
/usr/lib64/httpd/modules/mod_headers.so
/usr/lib64/httpd/modules/mod_ident.so
/usr/lib64/httpd/modules/mod_include.so
/usr/lib64/httpd/modules/mod_info.so
/usr/lib64/httpd/modules/mod_ldap.so
/usr/lib64/httpd/modules/mod_log_config.so
/usr/lib64/httpd/modules/mod_log_forensic.so
/usr/lib64/httpd/modules/mod_logio.so
/usr/lib64/httpd/modules/mod_mime.so
/usr/lib64/httpd/modules/mod_mime_magic.so
/usr/lib64/httpd/modules/mod_negotiation.so
/usr/lib64/httpd/modules/mod_proxy.so
/usr/lib64/httpd/modules/mod_proxy_ajp.so
/usr/lib64/httpd/modules/mod_proxy_balancer.so
/usr/lib64/httpd/modules/mod_proxy_connect.so
/usr/lib64/httpd/modules/mod_proxy_ftp.so
/usr/lib64/httpd/modules/mod_proxy_http.so
/usr/lib64/httpd/modules/mod_proxy_scgi.so
/usr/lib64/httpd/modules/mod_reqtimeout.so
/usr/lib64/httpd/modules/mod_rewrite.so
/usr/lib64/httpd/modules/mod_setenvif.so
/usr/lib64/httpd/modules/mod_speling.so
/usr/lib64/httpd/modules/mod_status.so
/usr/lib64/httpd/modules/mod_substitute.so
/usr/lib64/httpd/modules/mod_suexec.so
/usr/lib64/httpd/modules/mod_unique_id.so
/usr/lib64/httpd/modules/mod_userdir.so
/usr/lib64/httpd/modules/mod_usertrack.so
/usr/lib64/httpd/modules/mod_version.so
/usr/lib64/httpd/modules/mod_vhost_alias.so
/usr/sbin/apachectl
/usr/sbin/htcacheclean
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
/usr/sbin/httxt2dbm
/usr/sbin/rotatelogs
/usr/sbin/suexec
/usr/share/doc/httpd-2.2.15
/usr/share/doc/httpd-2.2.15/ABOUT_APACHE
/usr/share/doc/httpd-2.2.15/CHANGES
/usr/share/doc/httpd-2.2.15/LICENSE
/usr/share/doc/httpd-2.2.15/NOTICE
/usr/share/doc/httpd-2.2.15/README
/usr/share/doc/httpd-2.2.15/VERSIONING
/usr/share/man/man8/apachectl.8.gz
/usr/share/man/man8/htcacheclean.8.gz
/usr/share/man/man8/httpd.8.gz
/usr/share/man/man8/rotatelogs.8.gz
/usr/share/man/man8/suexec.8.gz
/var/cache/mod_proxy
/var/lib/dav
/var/log/httpd
/var/run/httpd
/var/www
/var/www/cgi-bin
/var/www/error
/var/www/error/HTTP_BAD_GATEWAY.html.var
/var/www/error/HTTP_BAD_REQUEST.html.var
/var/www/error/HTTP_FORBIDDEN.html.var
/var/www/error/HTTP_GONE.html.var
/var/www/error/HTTP_INTERNAL_SERVER_ERROR.html.var
/var/www/error/HTTP_LENGTH_REQUIRED.html.var
/var/www/error/HTTP_METHOD_NOT_ALLOWED.html.var
/var/www/error/HTTP_NOT_FOUND.html.var
/var/www/error/HTTP_NOT_IMPLEMENTED.html.var
/var/www/error/HTTP_PRECONDITION_FAILED.html.var
/var/www/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
/var/www/error/HTTP_REQUEST_TIME_OUT.html.var
/var/www/error/HTTP_REQUEST_URI_TOO_LARGE.html.var
/var/www/error/HTTP_SERVICE_UNAVAILABLE.html.var
/var/www/error/HTTP_UNAUTHORIZED.html.var
/var/www/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
/var/www/error/HTTP_VARIANT_ALSO_VARIES.html.var
/var/www/error/README
/var/www/error/contact.html.var
/var/www/error/include
/var/www/error/include/bottom.html
/var/www/error/include/spacer.html
/var/www/error/include/top.html
/var/www/error/noindex.html
/var/www/html
/var/www/icons
/var/www/icons/README
/var/www/icons/README.html
/var/www/icons/a.gif
/var/www/icons/a.png
/var/www/icons/alert.black.gif
/var/www/icons/alert.black.png
/var/www/icons/alert.red.gif
/var/www/icons/alert.red.png
/var/www/icons/apache_pb.gif
/var/www/icons/apache_pb.png
/var/www/icons/apache_pb2.gif
/var/www/icons/apache_pb2.png
/var/www/icons/apache_pb2_ani.gif
/var/www/icons/back.gif
/var/www/icons/back.png
/var/www/icons/ball.gray.gif
/var/www/icons/ball.gray.png
/var/www/icons/ball.red.gif
/var/www/icons/ball.red.png
/var/www/icons/binary.gif
/var/www/icons/binary.png
/var/www/icons/binhex.gif
/var/www/icons/binhex.png
/var/www/icons/blank.gif
/var/www/icons/blank.png
/var/www/icons/bomb.gif
/var/www/icons/bomb.png
/var/www/icons/box1.gif
/var/www/icons/box1.png
/var/www/icons/box2.gif
/var/www/icons/box2.png
/var/www/icons/broken.gif
/var/www/icons/broken.png
/var/www/icons/burst.gif
/var/www/icons/burst.png
/var/www/icons/c.gif
/var/www/icons/c.png
/var/www/icons/comp.blue.gif
/var/www/icons/comp.blue.png
/var/www/icons/comp.gray.gif
/var/www/icons/comp.gray.png
/var/www/icons/compressed.gif
/var/www/icons/compressed.png
/var/www/icons/continued.gif
/var/www/icons/continued.png
/var/www/icons/dir.gif
/var/www/icons/dir.png
/var/www/icons/diskimg.gif
/var/www/icons/diskimg.png
/var/www/icons/down.gif
/var/www/icons/down.png
/var/www/icons/dvi.gif
/var/www/icons/dvi.png
/var/www/icons/f.gif
/var/www/icons/f.png
/var/www/icons/folder.gif
/var/www/icons/folder.open.gif
/var/www/icons/folder.open.png
/var/www/icons/folder.png
/var/www/icons/folder.sec.gif
/var/www/icons/folder.sec.png
/var/www/icons/forward.gif
/var/www/icons/forward.png
/var/www/icons/generic.gif
/var/www/icons/generic.png
/var/www/icons/generic.red.gif
/var/www/icons/generic.red.png
/var/www/icons/generic.sec.gif
/var/www/icons/generic.sec.png
/var/www/icons/hand.right.gif
/var/www/icons/hand.right.png
/var/www/icons/hand.up.gif
/var/www/icons/hand.up.png
/var/www/icons/icon.sheet.gif
/var/www/icons/icon.sheet.png
/var/www/icons/image1.gif
/var/www/icons/image1.png
/var/www/icons/image2.gif
/var/www/icons/image2.png
/var/www/icons/image3.gif
/var/www/icons/image3.png
/var/www/icons/index.gif
/var/www/icons/index.png
/var/www/icons/layout.gif
/var/www/icons/layout.png
/var/www/icons/left.gif
/var/www/icons/left.png
/var/www/icons/link.gif
/var/www/icons/link.png
/var/www/icons/movie.gif
/var/www/icons/movie.png
/var/www/icons/p.gif
/var/www/icons/p.png
/var/www/icons/patch.gif
/var/www/icons/patch.png
/var/www/icons/pdf.gif
/var/www/icons/pdf.png
/var/www/icons/pie0.gif
/var/www/icons/pie0.png
/var/www/icons/pie1.gif
/var/www/icons/pie1.png
/var/www/icons/pie2.gif
/var/www/icons/pie2.png
/var/www/icons/pie3.gif
/var/www/icons/pie3.png
/var/www/icons/pie4.gif
/var/www/icons/pie4.png
/var/www/icons/pie5.gif
/var/www/icons/pie5.png
/var/www/icons/pie6.gif
/var/www/icons/pie6.png
/var/www/icons/pie7.gif
/var/www/icons/pie7.png
/var/www/icons/pie8.gif
/var/www/icons/pie8.png
/var/www/icons/portal.gif
/var/www/icons/portal.png
/var/www/icons/poweredby.png
/var/www/icons/ps.gif
/var/www/icons/ps.png
/var/www/icons/quill.gif
/var/www/icons/quill.png
/var/www/icons/right.gif
/var/www/icons/right.png
/var/www/icons/screw1.gif
/var/www/icons/screw1.png
/var/www/icons/screw2.gif
/var/www/icons/screw2.png
/var/www/icons/script.gif
/var/www/icons/script.png
/var/www/icons/small
/var/www/icons/small/back.gif
/var/www/icons/small/back.png
/var/www/icons/small/binary.gif
/var/www/icons/small/binary.png
/var/www/icons/small/binhex.gif
/var/www/icons/small/binhex.png
/var/www/icons/small/blank.gif
/var/www/icons/small/blank.png
/var/www/icons/small/broken.gif
/var/www/icons/small/broken.png
/var/www/icons/small/burst.gif
/var/www/icons/small/burst.png
/var/www/icons/small/comp1.gif
/var/www/icons/small/comp1.png
/var/www/icons/small/comp2.gif
/var/www/icons/small/comp2.png
/var/www/icons/small/compressed.gif
/var/www/icons/small/compressed.png
/var/www/icons/small/continued.gif
/var/www/icons/small/continued.png
/var/www/icons/small/dir.gif
/var/www/icons/small/dir.png
/var/www/icons/small/dir2.gif
/var/www/icons/small/dir2.png
/var/www/icons/small/doc.gif
/var/www/icons/small/doc.png
/var/www/icons/small/forward.gif
/var/www/icons/small/forward.png
/var/www/icons/small/generic.gif
/var/www/icons/small/generic.png
/var/www/icons/small/generic2.gif
/var/www/icons/small/generic2.png
/var/www/icons/small/generic3.gif
/var/www/icons/small/generic3.png
/var/www/icons/small/image.gif
/var/www/icons/small/image.png
/var/www/icons/small/image2.gif
/var/www/icons/small/image2.png
/var/www/icons/small/index.gif
/var/www/icons/small/index.png
/var/www/icons/small/key.gif
/var/www/icons/small/key.png
/var/www/icons/small/movie.gif
/var/www/icons/small/movie.png
/var/www/icons/small/patch.gif
/var/www/icons/small/patch.png
/var/www/icons/small/ps.gif
/var/www/icons/small/ps.png
/var/www/icons/small/rainbow.gif
/var/www/icons/small/rainbow.png
/var/www/icons/small/sound.gif
/var/www/icons/small/sound.png
/var/www/icons/small/sound2.gif
/var/www/icons/small/sound2.png
/var/www/icons/small/tar.gif
/var/www/icons/small/tar.png
/var/www/icons/small/text.gif
/var/www/icons/small/text.png
/var/www/icons/small/transfer.gif
/var/www/icons/small/transfer.png
/var/www/icons/small/unknown.gif
/var/www/icons/small/unknown.png
/var/www/icons/small/uu.gif
/var/www/icons/small/uu.png
/var/www/icons/sound1.gif
/var/www/icons/sound1.png
/var/www/icons/sound2.gif
/var/www/icons/sound2.png
/var/www/icons/sphere1.gif
/var/www/icons/sphere1.png
/var/www/icons/sphere2.gif
/var/www/icons/sphere2.png
/var/www/icons/tar.gif
/var/www/icons/tar.png
/var/www/icons/tex.gif
/var/www/icons/tex.png
/var/www/icons/text.gif
/var/www/icons/text.png
/var/www/icons/transfer.gif
/var/www/icons/transfer.png
/var/www/icons/unknown.gif
/var/www/icons/unknown.png
/var/www/icons/up.gif
/var/www/icons/up.png
/var/www/icons/uu.gif
/var/www/icons/uu.png
/var/www/icons/uuencoded.gif
/var/www/icons/uuencoded.png
/var/www/icons/world1.gif
/var/www/icons/world1.png
/var/www/icons/world2.gif
/var/www/icons/world2.png

Dienst/Deamon-Start einrichten

Um einen Apache HTTP Server, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# chkconfig httpd on

Eine Überprüfung, ob beim Neustart des Server der httpd-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# chkconfig --list | grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

iptables Regel

Damit der Apache HTTP Server auch erreichbar ist und nicht die Web-Anfragen vom Paketfilter iptables blockiert werden, muss nachfolgende Regel zum iptables-Regelwerk hinzugefügt werden.

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     1562 1266K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5       39  1248 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 987 packets, 169K bytes)
num   pkts bytes target     prot opt in     out     source               destination

Nachfolgender Befehl, fügt folgende iptables-Regel dem iptables-Regelwerk nach der Position 5 hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A INPUT -p tcp --dport 80 -j ACCEPT

und hier die Befehle:

# iptables -I INPUT 5 -p tcp --dport 80 -j ACCEPT

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -L -nv --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       70  5752 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
6        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 5 packets, 692 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Die neue Zeile ist an Position 5 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Port Forwarding

Falls sich der Apache HTTP Server NICHT auf dem Server befinden sollte, welcher z.B. die offizielle IP-Adresse verwaltet und auf diesem Server, welche die offizielle IP-Adresse inne hat, kein Apache HTTP Server läuft, können auf z.B. Port 80 ankommende TCP/IP-Pakete mit Hilfe von iptables-Regeln auf einen anderen Server umgeleitet werden.

Beispiel:

  • Alle Anfragen kommen auf dem Server 192.168.0.1 auf Port 80 an
  • Alle Anfragen sollen auf den Server 192.168.0.100 auf Port 80 - weitergeleitet werden!

Nachfolgende Regel muss dazu auf dem Server, welche die IP-Adresse 192.168.0.1 inne hat, zum iptables-Regelwerk hinzugefügt werden. Das Ergänzen erfolgt in der iptables-Kette:

  • nat

Um die aktuellen iptables-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:

# iptables -t nat -L -nv --line-numbers
Chain PREROUTING (policy ACCEPT 1216 packets, 118K bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 372 packets, 25706 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      790 59392 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 238 packets, 17722 bytes)
num   pkts bytes target     prot opt in     out     source               destination

:!: WICHTIG - Bei der MASQUERADE-Regel darf NICHT das Interface enthalten sein, an dessen geFORWARDED wird !!!

Nachfolgender Befehl, fügen folgende iptables-Regel dem iptables-Regelwerk hinzu, ohne das der Paketfilter angehalten werden muss:

  • -A PREROUTING -t nat -d 192.168.0.1 -p tcp --dport 80 -j DNAT --to-dest 192.168.0.100:80

und hier der Befehl:

# iptables -A PREROUTING -t nat -d 192.168.0.1 -p tcp --dport 80 -j DNAT --to-dest 192.168.0.100:80

Ein erneute Abfrage des iptables-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:

# iptables -t nat -L -nv --line-numbers
Chain PREROUTING (policy ACCEPT 1216 packets, 118K bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      110  6600 DNAT       tcp  --  *      *       0.0.0.0/0            192.168.0.1         tcp dpt:80 to:192.168.0.100:80  

Chain POSTROUTING (policy ACCEPT 372 packets, 25706 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      790 59392 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 238 packets, 17722 bytes)
num   pkts bytes target     prot opt in     out     source               destination

:!: WICHTIG - Bei der MASQUERADE-Regel darf NICHT das Interface enthalten sein, an dessen geFORWARDED wird !!!

Die neue Zeile ist an Position 1 (PREROUTING) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):

...
1      110  6600 DNAT       tcp  --  *      *       0.0.0.0/0            192.168.0.1         tcp dpt:80 to:192.168.0.100:80
...

Um diese iptables-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:

# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

Erster Start

Falls alle voranstehenden Schritte wie beschrieben durchgeführt wurden, Installation, iptables usw., sollte dem ersten Start nichts im Wege stehen und dies mit nachfolgendem Befehl durchgeführt werden:

# service httpd start
Starting httpd:                                            [  OK  ]

Webserver Überprüfung

Ob der Apache HTTP Server, sprich der httpd-Dienst/Deamon auch tatsächlich als Hintergrundprozess läuft, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt, erfolgen - es kommt auf die zweite Zeile an!):

# ps auxwwwf | grep httpd
root      6131  0.0  0.0 103148   824 pts/0    S+   11:21   0:00                      \_ grep httpd
root      6117  0.0  0.3 178656  3884 ?        Ss   11:21   0:00 /usr/sbin/httpd
apache    6119  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6120  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6121  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6122  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6123  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6124  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6125  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd
apache    6126  0.0  0.2 178656  2516 ?        S    11:21   0:00  \_ /usr/sbin/httpd

Eine weitere Überprüfung, ob der erste Start erfolgreich war, kann durch Einsicht der LOG-Dateien

  • /var/log/httpd/error_log

durchgeführt werden.

Ausgabe der LOG-Datei /var/log/httpd/error mit nachfolgendem Befehl, die Ausgabe sollte wie nachfolgend dargestellt aussehen:

# cat /var/log/httpd/error_log 
[Thu Oct 27 11:21:10 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Oct 27 11:21:10 2011] [notice] Digest: generating secret for digest authentication ...
[Thu Oct 27 11:21:10 2011] [notice] Digest: done
[Thu Oct 27 11:21:10 2011] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations

Interface Überprüfung

Ob und an welchen Interface der Apache HTTP Server „lauscht“, bzw. Web-Anfragen beantwortet, kann mit nachfolgendem Befehl überprüft werden:

# netstat -tulpen | grep httpd
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      0          12438      6117/httpd

Erster Browser-Aufruf

Wenn der Start des Apache HTTP Server erfolgreich durchgeführt wurde, kann die Abfrage mittels eines Browsers erfolgen, wie im nachfolgenden Bild dargestellt:

Screenshot-Apache HTTP Server Test Page powered by CentOS - Mozilla Firefox

Basis-Konfiguration

Standardmäßig kann ein Apache HTTP Server ohne weitere Konfigurationsschritte betrieben werden. Allerdings sollten einige Anpassungen sinnvollerweise durchgeführt werden.

Folgende Änderungen sollten (je nach Bedarf und Einsatzzweck des Apache HTTP Server) an der Konfigurationsdatei

  • /etc/httpd/conf/httpd.conf

durchgeführt werden:

Nachfolgend Auszüge aus der Konfigurationsdatei /etc/httpd/conf/httpd.conf, welche abgeändert wurden (nur relevante Ausschnitte):

...
# Tachtler
# default: ServerTokens OS
ServerTokens Prod
...
# Tachtler
# default: KeepAlive Off
KeepAlive On
...
# Tachtler
# Only required moduls should be loaded
 
LoadModule auth_basic_module modules/mod_auth_basic.so
# LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
# LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
# LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
# LoadModule env_module modules/mod_env.so
# LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
# LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
# LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
# LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
# LoadModule actions_module modules/mod_actions.so
# LoadModule speling_module modules/mod_speling.so
# LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
# LoadModule substitute_module modules/mod_substitute.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
# LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
# LoadModule cache_module modules/mod_cache.so
# LoadModule suexec_module modules/mod_suexec.so
# LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
# LoadModule version_module modules/mod_version.so
...
# Tachtler
# default: #ExtendedStatus On
ExtendedStatus On
...
# Tachtler
# default: ServerAdmin root@localhost
ServerAdmin webmaster@tachtler.net
...
# Tachtler
# default: #ServerName www.example.com:80
ServerName tachtler.net:80
...
# Tachtler
# default: DirectoryIndex index.html index.html.var
DirectoryIndex index.html
...
# Tachtler
# default: ServerSignature On
ServerSignature Off
...
# Tachtler
# default: LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority de en ca cs da el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
...
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
#       Tachtler
#       default: LanguagePriority en es de fr
        LanguagePriority de en es fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
 
# Tachtler - enable all ErrorDocument entrys -
# default: disabled
    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
    ErrorDocument 410 /error/HTTP_GONE.html.var
    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
 
</IfModule>
</IfModule>
...
# Tachtler - default is DISABLED -
<Location /server-status>
    SetHandler server-status
    Order deny,allow
#    Deny from all
#    Allow from .example.com
</Location>    
...
# Tachtler - default is DISABLED -
<Location /server-info>
    SetHandler server-info
    Order deny,allow
#    Deny from all
#    Allow from .example.com
</Location>
...
# Tachtler
# LDAPs extended configuration, using a self-signed-certificate 
<IfModule mod_authnz_ldap.c>
        LDAPTrustedGlobalCert CA_BASE64 /etc/pki/tls/certs/ca-bundle.trust.crt
        LDAPVerifyServerCert Off
</IfModule>
...
# Tachtler
# X-Frame-Options, Framebuster - Break out of frame and iframe
Header always append X-Frame-Options SAMEORIGIN
...

:!: HINWEIS - Falls ein self-signed-certificate bei der Implementierung des LDAP-Servers verwendet wurde sind nachfolgende Hinweise zu beachten

Es muss das self-signed-certificate dessen Erstellung, z.B. wie hier Beschrieben

durchgeführt wurde, an einem dem Apache HTTP Server lesbaren Ort im Dateisystem hinterlegt werden, hier z.B.

  • /etc/pki/openldap/certs/CAcert.pem

Nachfolgend muss der Apache HTTP Server diesem Zertifikat vertrauen und die Prüfung gegen ein sogenanntes root-Zertifikat muss deaktiviert werden, da es sich ja um ein self-signed-certificate handelt:

...
# Tachtler
# LDAPs extended configuration 
<IfModule mod_authnz_ldap.c>
        LDAPTrustedGlobalCert CA_BASE64 /etc/pki/openldap/certs/CAcert.pem
        LDAPVerifyServerCert Off
</IfModule>
...

Minimaler Server

Nach dem Start des Apache HTTP Server wird über die Konfigurationsdatei

  • /etc/httpd/conf.d/welcome.conf

geregelt, dass wenn keine Standard-Index-Datei im DocumentRoot-Verzeichnis, standardmäßig ist dies /var/www/html, sich befindet, ein „Fehler - 403 Forbidden erzeugt wird, doch anstelle der Standard-Fehlerseite wird hier die statische HTML-Seite

  • /var/www/error/noindex.html

angezeigt.

Um nun die Auslieferung einer HTML-Seite aus dem DocumentRoot, standardmäßig ist dies /var/www/html, und dadurch den Rückgabe-Wert 200 - OK zu erzeugen, kann nun z.B. diese „Willkommen-Seite“ mit nachfolgendem Befehl in das Standard DocumentRoot-Verzeichnis kopiert werden und gleichzeitig in eine gültige Index-Datei umbenannt werden:

# cp -a /var/www/error/noindex.html /var/www/html/index.html

Anschließend kann, wie empfohlen der komplette Inhalt der Konfigurationsdatei /etc/httpd/conf.d/welcome.conf auskommentiert werden, - oder - es kann eine einfach Umbenennung der Konfigurationsdatei mit nachfolgendem Befehl erfolgen, damit diese nicht mehr beim nächsten Start des Apache HTTP Server mit angezogen wird:

# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.orig

Anschließend kann der Apache HTTP Server mit nachfolgendem Befehl neu gestartet werden:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Ein Aufruf des Apache HTTP Server mit dem Standard-Host, hier z.B. http://tachtler.net, würde folgende Anzeige im Apache HTTP Server-Access-Log erzeugen und kann mit nachfolgendem Befehl zur Anzeige gebracht werden:

# tail -f /var/log/httpd/access_log 
192.168.0.50 - - [28/Oct/2011:13:04:55 +0200] "GET / HTTP/1.1" 403 5039 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20110412 CentOS/3.6.9-2.el6.centos Firefox/3.6.9"
192.168.0.50 - - [28/Oct/2011:13:04:59 +0200] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20110412 CentOS/3.6.9-2.el6.centos Firefox/3.6.9"
192.168.0.50 - - [28/Oct/2011:14:04:13 +0200] "GET / HTTP/1.1" 200 5039 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20110412 CentOS/3.6.9-2.el6.centos Firefox/3.6.9"
192.168.0.50 - - [28/Oct/2011:14:04:18 +0200] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20110412 CentOS/3.6.9-2.el6.centos Firefox/3.6.9"

:!: HIWNEIS - Nach dem Rückgabe-Code „GET / HTTP/1.1“ 403 5039, erscheint nun der Rückgabe-Code „GET / HTTP/1.1“ 200 5039 !!!

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/apache_http_server_centos_6.txt · Zuletzt geändert: 2013/05/16 22:15 von klaus