HTTP μλ΅ ν€λμ
Serverνλ(μ: Apache/2.4, WebSphere Application Server/8.5)λ₯Ό ν΅ν΄ μλ²μ μ’ λ₯μ λ²μ μ΄ λ ΈμΆλλ κ²μ λ°©μ§νλ λ°©λ²μ μ 리ν©λλ€. μλ¨μ IBM HTTP Server(IHS)μ λ·λ¨μ WebSphere(WAS) μμͺ½ λͺ¨λμ μ€μ μ΄ νμν©λλ€.
0. λ°°κ²½ λ° μμΈ (Context)
μλ²μ ꡬ체μ μΈ λ²μ μ λ³΄κ° λ ΈμΆλλ©΄, ν΄μ»€λ ν΄λΉ λ²μ μ μλ €μ§ μ·¨μ½μ (CVE)μ μ°Ύμ λ§μΆ€ν 곡격μ μλν μ μμ΅λλ€. λ°λΌμ 보μ λͺ¨λ² μ¬λ‘(Best Practice)μμλ μλ² μ 보λ₯Ό μ¨κΈ°κ±°λ μ΅μνν κ²μ κΆκ³ ν©λλ€.
Test Environment
- OS: CentOS 7.2
- Web Server: IBM HTTP Server (Apache κΈ°λ°)
- WAS: WebSphere Application Server v8.5
1. IBM HTTP Server (Web Server) μ€μ
κ°μ₯ μλ¨μμ μμ²μ λ°λ μΉ μλ²μ μ€μ μ λ³κ²½ν©λλ€. httpd.conf νμΌμ μλ μ§μμ΄λ₯Ό μΆκ°νκ±°λ μμ ν©λλ€.
μ€μ λ΄μ© (httpd.conf)
# 1. μλ² μ 보 μ΅μν (Apache/x.y.z -> Apache)
ServerTokens Prod
# 2. μλ¬ νμ΄μ§ νλ¨(Footer)μ μλ² μ 보 μ¨κΉ
ServerSignature Off
# 3. Server ν€λ μ체λ₯Ό μλ΅μμ μ κ±° (IHS μ μ© κΈ°λ₯, κ°λ₯ν κ²½μ° κΆμ₯)
AddServerHeader Off
AddServerHeader Offλ νμ€ Apacheμλ μκ³ IBM HTTP Serverμλ§ μ‘΄μ¬νλ μ§μμ΄μΌ μ μμ΅λλ€. μ μ© ν Syntax Errorκ° λλ€λ©΄ ServerTokens ProdκΉμ§λ§ μ μ©νμμμ€.
2. WebSphere (WAS) μ€μ
WASκ° μ§μ ν΄λΌμ΄μΈνΈμκ² μλ΅μ μ€ λ λΆλ ν€λλ₯Ό μ μ΄ν©λλ€. WAS v8.5.0.2 μ΄μλΆν°λ κΈ°λ³Έ λμμ΄ λ³κ²½λμμΌλ, λͺ μμ μΌλ‘ μ μ΄νκΈ° μν΄ HTTP μ μ‘ μ±λ(Transport Channel) μ€μ μ μμ ν©λλ€.
μ€μ κ²½λ‘
μλ² > WebSphere Application Server > [μλ²λͺ
] > μΉ μ»¨ν
μ΄λ μ€μ > μΉ μ»¨ν
μ΄λ μ μ‘ μ²΄μΈ > WCInboundDefault > HTTP μΈλ°μ΄λ μ±λ (HTTP_2) > μ¬μ©μ μ μ νΉμ± (Custom properties)
μ£Όμ μμ± (ν 1)
μν©μ λ§μΆ° μλ λ κ°μ§ μμ± μ€ νλλ₯Ό μ ννμ¬ μ μ©ν©λλ€.
| μμ± μ΄λ¦ (Name) | μ€λͺ λ° κΆμ₯ κ° |
|---|---|
| RemoveServerHeader |
κ°: true Server ν€λ μ체λ₯Ό μμ μμ ν©λλ€. κ°μ₯ κ°λ ₯ν 보μ μ€μ μ λλ€. |
| ServerHeaderValue |
κ°: (μμμ λ¬Έμμ΄) κΈ°λ³Έκ°μΈ "WebSphere Application Server..." λμ μ¬μ©μκ° μ§μ ν λ¬Έμμ΄(μ: "AppServer")λ‘ μΉνν©λλ€. |
μ μ‘ μ±λ μ€μ μΈμλ,
μΉ μ»¨ν
μ΄λ > μ¬μ©μ μ μ νΉμ±μμ com.ibm.ws.webcontainer.disableServerHeader κ°μ trueλ‘ μ€μ νλ λ°©λ²λ μ‘΄μ¬ν©λλ€. (μ΅μ λ²μ μμ κΆμ₯)
3. κ²μ¦ (Verification)
IHSμ WASλ₯Ό λͺ¨λ μ¬κΈ°λν ν, curl λͺ
λ Ήμ΄λ‘ μλ΅ ν€λλ₯Ό νμΈν©λλ€.
# ν€λ νμΈ
curl -I http://localhost/
# [Before]
HTTP/1.1 200 OK
Server: IBM_HTTP_Server/8.5 ...
...
# [After]
HTTP/1.1 200 OK
# Server ν€λκ° μμ μκ±°λ "Apache" λλ μ§μ ν κ°μΌλ‘ νμλ¨
...
Next Step:
ν€λ μ¨κΉ μ²λ¦¬κ° μλ£λμμ΅λλ€. λ€μμΌλ‘λ HTTP λ©μλ(PUT, DELETE, TRACE) μ°¨λ¨ μ€μ μ ν΅ν΄ λΆνμν μμ²μ λ§λ μΉ μλ² κ°ν μμ
μ μ§νν΄ λ³΄μμμ€.