如何設定apache可以讓他更安全?



贊助商連結


bigmichael
2005-06-16, 12:42 PM
我用windows 架了一台web server
上面灌 apache for windows的版本

我只要讓外面的人能看到我的網站,網站上沒有任何的php或asp的程式,
是純html的網站。

除了流覽網站以外的功能全部關閉,並且把它設定成超級安全。
包括
防止盜連...等

apache的預設值的設定我把它頡取下來如下:


ServerType standalone
ServerRoot "C:/AppServ/Apache"
PidFile logs/httpd.pid
ScoreBoardFile logs/apache_runtime_status
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MaxRequestsPerChild 0
ThreadsPerChild 50
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php4_module C:/AppServ/php/sapi/php4apache.dll
ClearModuleList
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_isapi.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_php4.c
AddModule mod_so.c
AddModule mod_setenvif.c
ExtendedStatus On
Port 80
ServerName localhost
DocumentRoot "C:/AppServ/www"
<Directory />
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
</Directory>
<Directory "C:/AppServ/www">

Options -Indexes

AllowOverride All
Order allow,deny
Allow from all
</Directory>

<IfModule mod_userdir.c>
UserDir "C:/AppServ/www/users/"
</IfModule>



<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php index.php3
</IfModule>

AccessFileName .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>

UseCanonicalName off

<IfModule mod_mime.c>
TypesConfig conf/mime.types
</IfModule>

DefaultType text/plain

<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>

HostnameLookups Off

ErrorLog logs/error.log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/access.log combined

ServerSignature On

<IfModule mod_alias.c>

Alias /icons/ "C:/AppServ/Apache/icons/"

<Directory "C:/AppServ/Apache/icons">

</Directory>


ScriptAlias /cgi-bin/ "C:/AppServ/www/cgi-bin/"

<Directory "C:/AppServ/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

</IfModule>

<IfModule mod_autoindex.c>


IndexOptions FancyIndexing


AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon /icons/unknown.gif

ReadmeName README
HeaderName HEADER

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>

<IfModule mod_mime.c>


AddType application/x-tar .tgz


AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz

AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cs .cz .cs
AddLanguage ru .ru
AddLanguage zh-TW .zh-tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8

<IfModule mod_negotiation.c>
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps

AddHandler cgi-script .cgi .pl

AddType text/html .shtml
AddHandler server-parsed .shtml

</IfModule>

<IfModule mod_setenvif.c>

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

</IfModule>


請問要怎摸改。
才能達到更安全的要求呢?

謝謝^^

贊助商連結


阿 土
2005-06-16, 12:58 PM
1.不需要列出那麼長吧 , 很多預設值可以省略

2.OS 的安全性也需注意 , 若你打算長期的把 Server 運作下去
建議你 OS 考慮 Linux / FreeBSD
Windows 跑 PHP , 個人並不建議

3.使用mod_security加強Apache的安全性
http://bbs.nsfocus.net/index.php?act=ST&f=7&t=166797

bigmichael
2005-06-16, 02:06 PM
感謝阿土伯的回答。
我一直是linux的愛用者,
我也用了好幾年,
我的站也是用linux架了三年多
一直都沒事,
但是最近一直被攻擊,上個月我有七次是半夜跑回公司去處理SERVER
因為被搞掛了
我的LINUX主機是用REDHAT7.2
架的,
因為工作非常繁忙沒有時間去研究,
如何更新corno及ap的漏洞修補(因為這要花許多時間),
想想一個月七次是半夜跑回公司去處理,我想這誰都受不了。
於是我,改用,windwos server
因為有微軟這個大公司,會一直更新,上網就可以更新系統的漏洞,
所以我才改用windwos的。

至於我為什摸把apache的預設值copy出來問問題?
因為我知道apache的設定全部是文字,
它可以做許多的限制及安全的設定,
但是小弟不才,涉列不多,不太會設定。

一般的user只是把它灌起來,別人能看到你的網站就ok
但是這是錯誤的,因為沒有再安全上的設定,
別人真的要入侵或搞你的站,這下就一定完但。

這也就是我問這估問題的原因

再次感謝阿土伯的回答^^

肛恩啊^^

linux_xp
2005-06-17, 06:59 PM
其實現在的 Linux ,和 5~6 年前的 redhat 7 已經差很多了

比方說,最近興起的套件更新程式 yum ,apt

要更新系統嗎?

簡單,只要打一行指令
程式自動幫你把系統內所有套件,更新到和遠端伺服器同步:

yum update -y

輕鬆又愜意
如果再寫入 cron 排程中的話
比方固定週六凌晨自動進行更新,更新完自動 reboot 或 重啟服務
那就根本不用去理server了,放著幾個月不管,也能照常運作


【教學】Fedora 如何自動更新系統 (update) (http://www.pczone.com.tw/showthread.php?t=131455&highlight=yum
)

:D