httpd 설정과 httpd-ssl 설정 질문드립니다.

yoyosul의 이미지

얼마전 서버 cpu 부하로 인해 질문을 드렸었습니다.

사이트내의 모든 이미지를 CloudFlare에 걸어두었습니다. 헌데,크게 달라지지 않더라구요.
약 이틀정도 걸어두었습니다..캐시는 되고 있는데,이미지의 용량이 큰 사이트고 갯수도 많구요.

사이트의 특징중 사이트 전체를 https 로 사용하고 있다는점입니다. 그래서 혹 ssl 관련이나 httpd 관련 설정이 잘못된건 없을까 싶어서..
질문드립니다..

혹 몰라 Nikto 로 취약점을 분석하고 있습니다..
진행중 초기에 아래와 같은 구문이 출력되어서 osvdb.org 에서 검색해보니 이미지와 같은 문제가 있다고 나오는데..어찌해야 할지 모르겠습니다...
mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 - mod_ssl 2.8.7 and lower are vulnerable to a remote buffer overflow which may allow a remote shell (difficult to exploit). CVE-2002-0082, OSVDB-756.

+ PHP/5.2.17
+ Apache/2.2.21
+ mod_ssl/2.2.21
+ OpenSSL/0.9.8e-fips-rhel5

// httpd.conf //

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule dumpio_module modules/mod_dumpio.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule ident_module modules/mod_ident.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.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 asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule cgi_module modules/mod_cgi.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 imagemap_module modules/mod_imagemap.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 rewrite_module modules/mod_rewrite.so
LoadModule redurl_module      modules/mod_url.so
LoadModule php5_module        modules/libphp5.so
LoadModule ssl_module modules/mod_ssl.so
 
<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
 
<Directory "/usr/local/apache/htdocs">
 
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
 
</Directory>
 
LogLevel warn
 
<IfModule log_config_module>
 
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
 
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
 
</IfModule>
 
Include conf/extra/httpd-ssl.conf
 
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
 
<Directory "/home/*">
    AllowOverride All
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>
 
 
Alias /awstatsclasses "/usr/local/src/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/src/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/src/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/src/awstats/wwwroot/cgi-bin/"
 
<Directory "/usr/local/src/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

// httpd-ssl.conf //

Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
 
SSLPassPhraseDialog  builtin
SSLSessionCache        shmcb:/usr/local/apache/logs/ssl_scache(512000)
SSLSessionCacheTimeout  300
SSLMutex  file:/usr/local/apache/logs/ssl_mutex
 
<VirtualHost _default_:443>
 
DocumentRoot "적용디렉토리"
ServerName "적용 도메인"
ErrorLog /usr/local/apache/logs/ssl_error_log
TransferLog /usr/local/apache/logs/ssl_access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
 
 
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/apache/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
 
CustomLog /usr/local/apache/logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 
</VirtualHost>

MyAbby의 이미지

그 mod_ssl 취약점 경고가 왜 뜨는 건지 라면...

경고 그대로입니다. 사용 중인 mod_ssl 버전에 취약점이 있대요. 확인해 보니 apache 최신 버전은 2.4x고, mod_ssl은 2.8입니다.
무슨 리눅스 배포판에서 돌리는지는 모르겠지만, 패키지 매니저로 설치하셨다면 업데이트 한번 해주시거나, 직접 컴파일 하셨다면 최신버전으로 다시 컴파일 해주셔야겠어요.

배포판이 오래돼서 업데이트 바이너리가 안나오는 상황이라면 소스를 가져다 컴파일하거나 최신 배포판으로 업데이트하는 걸 권장합니다. 무시할 취약점은 아닌 것 같군요 (공격자가 shell command 할 수 있답니다)

x

(이하 사족)
음.. 이전 질문을 보기 귀찮지만, 성능에 관한 문제는요. deflate이나 gzip 모듈을 써서 이미지, 바이너리를 제외한 모든 텍스트 스트림(html, css, txt, php 등등) 스트림을 압축하는 방법이 있습니다.
트래픽과 cpu 점유를 동시에 낮출 수 있다고 합니다. 물론 요즘 나온 대부분의 브라우저가 지원하고(지원하지 않으면 그대로 보내는 설정도 있어요), 요즘 대부분 웹 서비스들은 다 압축해서 보냅니다.

첨부하신 설정에 압축하는 설정이 없어서 참고하시라 적어봅니다.

http://www.webperformance.com/library/reports/moddeflate/

yoyosul의 이미지

답변 감사드립니다..

현재 gzip 모듈를 사용중에 있습니다.

참 ..어느 한부분이 명확하게 문제가 드러나지 않으니.서버 (웹)증설얘기가 나오고 있는데, 분산처리를 한다고 해서 얼마나 나아질지도 미지수고,
원인을 찾지 못하고 증설한다고 뭐가 나아질지...

ps. 이전 게시물은 https://kldp.org/node/149366 이곳입니다..

김정균의 이미지

일단 apache는 직접 설치하신 것이네요. 그렇다면 apcahe version을 업데이트 하셔야 합니다. 해당 버전에 보안버그가 있는 것이 맞습니다.

openssl의 경우는 RPM을 그대로 사용하시는 것으로 보아서 크게 문제는 없을 듯 싶습니다.

그리고 이전에 profiling 한번 해 보시는 것이 좋겠다고 의견 드렸는데 해 보셨는지요? 현재 접근 방법으로는 증설 외에는 답이 없을 겁니다. 특히나 SSL 문제가 맞다면 이건 증설 외에는 답이 정말 없습니다. 하지만 접속이 많지 않다고 하신 것으로 보아서는 SSL 문제가 아닌듯 싶습니만.. /server-status를 이용해서 동시 connection이 얼마나 되는지 확인을 해 보세요. 세션이 많지 않은데도 불구하고 서버 부하가 저렇게 높다면 applicaton의 문제로 보아야 합니다.

yoyosul의 이미지

말씀해주신 profiling은 아직 진행하질 못했습니다.방문자가 하루 약 2만여명에 이미지가 주가 되는 사이트입니다..
SSL부분의 요청이 https로 요청,다운로드 라면 말씀해주신 증설이라는 부분을..

어떤부분을 어떻게 증설해야 할지도 모르겠습니다..또한, 이러한 문제를 그냥두고 증설하는것이 꺼림직합니다..

증설테스트를 몇일동안 할수 있다고 해서 고민중입니다..

다시 한번 말씀 감사드립니다. 조만간 말씀주신 부분을 다 해보고,다시 글 남기도록 하겠습니다.

추가: 현재 사이트내의 이미지와 같은 static resource는 cloudflare에 cdn 서비스를 이용하고 있습니다.(얼마 안됐습니다..)
증설시 https(본도메인)에서 http(서브도메인)으로 static resource를 요청하고 그것을 http 또는 https로 출력시키려 합니다.
(크로스도메인이 걸리는데 이부분을 서버상에서 설정이 가능한지도 모르겠습니다..)
(웹서버 1대를 더 추가하는..db는 사용량이 거의되지 않습니다..서버2대를 1대에서는 본서버(https)의 요청을 받아서 내보내는(http또는https) 서버로만 사용하려합니다..)

김정균의 이미지

음.. 처음이랑 환경도 좀 바뀐것 같고.. 처음에는 사용자 접근이 별로 없다는 말씀도 하셨는데 말이죠 ^^;

글로만 서비 사이트 성격을 이해하기가 쉽지 않네요. 조금 더 구체적을 물어보지요.

1. 초당 웹서버 한대의 로그 라인 수
2. 초당 php가 구동된 로그 수 (image를 cloudflare로 옮기셨다고 하셨는데 그럼 서버에서는 static service가 거의 없다는 얘기인지?)
3. mysql에 slow query log를 남기고 많이 남는 유형의 SQL query는?

일단 이정도 정보를 제공해 주시는 것이 좋을 것 같군요. 일단 1번은 웹서버 증설이 필요한 건지 아니면 다른 optimizing이 가능할 건지 여부 입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.