《白帽子講WEB安全》學習筆記之第15章 web server配置安全

來源:互聯網
上載者:User

標籤:安全 白帽子

第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配置安全

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.