標籤:安全 白帽子
第15章 web server配置安全15.1 apache安全
在linux部署安裝web Server時候一定主要要使用“最小許可權原則”。盡量不要使用root部署。
15.2 nginx安全
Nginx 安全配置指南技術手冊 PDF 下載
免費在http://linux.linuxidc.com/
使用者名稱與密碼都是www.linuxidc.com
具體下載目錄在 /pub/伺服器相關教程/Nginx/Nginx 安全配置指南技術手冊/
參考資料:http://my.oschina.net/jsan/blog/125838
15.3 Jboss遠程命令執行
15.4 Tomcat遠程命令執行
安裝Tomcat後初始化配置
當Tomcat完成安裝後你首先要做的事情如下:
首次安裝完成後立即刪除webapps下面的所有代碼
rm -rf /srv/apache-tomcat/webapps/*
注釋或刪除tomcat-users.xml 所有使用者權限,看上去如下:
# cat conf/tomcat-users.xml
<?xml version=‘1.0‘ encoding=‘utf-8‘?><tomcat-users></tomcat-users>
隱藏Tomcat版本資訊
vim $CATALINA_HOME/conf/server.xml
<Connector port="80"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="8192" minSpareThreads="64" maxSpareThreads="128" acceptCount="128" enableLookups="false" server="Neo App Srv 1.0"/>
結果:
# curl -I http://localhost:8080/HTTP/1.1 400 Bad RequestTransfer-Encoding: chunkedDate: Thu, 20 Oct 2011 09:51:55 GMTConnection: closeServer: Neo App Srv 1.0
伺服器資訊已經被改為Server: Neo App Srv 1.0
啟動使用者與連接埠
不要使用root使用者啟動tomcat,Java程式與C程式不同。nginx,httpd使用root使用者啟動守護80連接埠,子進程/線程會通過setuid(),setgid()兩個函數切換到普通使用者。即父進程所有者是root使用者,子進程與多線程所有者是一個非root使用者,這個使用者沒有shell,無法通過ssh與控制台登陸系統,Java 的JVM 是與系統無關的,是建立在OS之上的,你使用什麼使用者啟動Tomcat,那麽Tomcat 就會繼承該所有者的許可權。
這造成了一個問題,Linux系統小於1024的連接埠只有root可以使用,這也是為什麼Tomcat預設連接埠是8080。如果你想使用80連接埠只能使用root啟動Tomcat。這有帶來了很多安全問題。
解決方案是建立一個不同使用者,如:
groupadd -g 80 daemon
adduser -o --home /daemon --shell /sbin/nologin--uid 80 --gid 80 -c "Web Server" daemon
注意 /sbin/nologin , 意味著該使用者不能登入,同時我也沒有給它指定密碼,這個使用者只能用於啟動tomcat
chown daemon:daemon -R /srv/*
su - daemon -c"/srv/apache-tomcat/bin/startup.sh"
接下來解決80連接埠問題, 思路就是80去調用8080,或者映射連接埠。
下面是影射方案,80 跳轉 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -jREDIRECT --to-port 8080
取消跳轉
iptables -t nat -D PREROUTING -p tcp --dport 80 -jREDIRECT --to-port 8080
查看規則
iptables -t nat -L
另一個就是從80請求去調用8080的方案
這個方案可以在 Tomcat前段增加反向 Proxy,例如:Nginx,Apache,Squid,Varnish或者F5, Array這類裝置等等
應用程式安全
關閉war自動部署 unpackWARs="false"autoDeploy="false"。防止被植入木馬等惡意程式
應用程式部署與tomcat啟動,不能使用同一個使用者。
我的tomcat 安裝在 /srv目錄下,Tomcat啟動使用者為daemon; 應用程式放在/www目錄下www所有者是www使用者。這樣的目的是一旦tomcat被植入web shell程式,它將不能建立或編輯/www目錄下面的任何內容。
adduser --home /www -c "Web Application"www
JSESSIONID
修改 Cookie 變數 JSESSIONID, 這個cookie 是用於維持Session關係。建議你改為PHPSESSID。
15.5 Http Parameter Pollution
提交兩個相同的參數,不同的伺服器會有不同的處理。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/88/76/wKioL1f4-fXhU3PrAAI8C1cED3M649.jpg" title="155.jpg" alt="wKioL1f4-fXhU3PrAAI8C1cED3M649.jpg" />
本文出自 “夢朝思夕” 部落格,請務必保留此出處http://qiangmzsx.blog.51cto.com/2052549/1859565
《白帽子講WEB安全》學習筆記之第15章 web server配置安全