| 제목 | 보안서버 APM셋팅 방법 | |||||
|---|---|---|---|---|---|---|
| 등록자 | admin | 등록일 | 2007.05.16 14:39:21 | 접속 | 89733 | |
| AS4 서버및 CentOS4.4 에서 설치 테스트. 프로그램 다운 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Apache] http://httpd.apache.org [MySQL] http://www.mysql.org ftp://ftp.sayclub.co.kr/pub/mysql/Downloads/MySQL-4.0/ [PHP] http://kr.php.net [zendoptimizer] http://www.zend.com http://downloads.zend.com/optimizer/ [Freetype] http://www.freetype.org [Gd] http://www.libgd.org/Main_Page [LibXml2] xmlsoft.org [OpenSSL] www.openssl.org/ [ModSSL] www.modssl.org/ [IMAP] ftp://ftp.cac.washington.edu/imap/ 준비한파일들 drwxr-xr-x 4 root root 4096 4월 26 17:33 ZendOptimizer-3.2.8-linux-glibc21-i386 -rw-r--r-- 1 suhan suhan 9731967 5월 14 13:04 ZendOptimizer-3.2.8-linux-glibc21-i386.tar.gz drwxr-xr-x 8 root root 4096 5월 14 14:36 apache_1.3.37 -rw-r--r-- 1 suhan suhan 2665370 5월 14 13:04 apache_1.3.37.tar.gz drwxr-xr-x 2 1000 1000 4096 5월 14 15:00 chkrootkit-0.47 -rw-r--r-- 1 root root 37791 5월 14 14:59 chkrootkit.tar.gz -rw-r--r-- 1 root root 133591 5월 14 14:50 cronolog-1.6.2.tar.gz drwxr-xr-x 9 root root 4096 5월 14 13:08 gd-2.0.34 -rw-r--r-- 1 suhan suhan 1273059 5월 14 13:04 gd-2.0.34.tar.gz drwxr-xr-x 10 root root 4096 5월 14 13:16 mod_ssl-2.8.28-1.3.37 -rw-r--r-- 1 suhan suhan 820417 5월 14 13:04 mod_ssl-2.8.28-1.3.37.tar.gz drwxr-xr-x 22 root root 4096 5월 14 13:12 openssl-0.9.8e -rw-r--r-- 1 suhan suhan 3341665 5월 14 13:04 openssl-0.9.8e.tar.gz drwxr-xr-x 18 1002 1002 4096 5월 14 14:31 php-5.2.2 -rw-r--r-- 1 suhan suhan 9201988 5월 14 13:04 php-5.2.2.tar.gz drwxr-xr-x 3 root root 4096 5월 14 14:50 rkhunter -rw-r--r-- 1 root root 126314 5월 14 14:50 rkhunter-1.2.8.tar.gz -rw-r--r-- 1 root root 252664 5월 14 14:50 webalizer-2.01-10-src.tar.bz2 사전작업 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ======= Gd설치 ======= ./configure --prefix=/usr/local/gd make;make install ====== LibXml2 설치 (필요시에만) ===== ./configure make ;make install ====== openssl 설치 ===== #tar xvzf openssl-0.9.8.tar.gz #cd openssl-0.9.8 #./config #make ; make install make install 시 /usr/local/ssl위치에 설치된다. ====== mod_ssl 설치 ===== mod_ssl이 컴파일 될 때 Apache 소스 코드 트리 내부로 컴파일되어야 한다. 따라서 Apache 코드에 대한 경로를 확인하고 이 경로를 Apache 옵션과 함께 --with-apache에 대한 값으로 사용한다. #tar xvzf mod_ssl-.2.8.23-1.3.37.tar.gz #cd mod_ssl-.2.8.23-1.3.37 #./configure --with-apache=/usr/local/src/apache_1.3.37 --with-ssl=/usr/local/ssl 1> MySql 설치 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # /usr/local/ 디렉에 Mysql 을 푼다. # tar zxvf mysql-standard-4.0.27-pc-linux-gnu-i686-glibc23.tar.gz # adduser mysql ==>mysql 계정필수 # ln -s mysql-standard-4.0.27-pc-linux-gnu-i686-glibc23 mysql # cd mysql # scripts/mysql_install_db --user=mysql # chown -R root . # chown -R mysql data # chgrp -R mysql . # /usr/local/mysql/bin/safe_mysqld & 2> 아파치 가설치. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ apache1.3.37/src/include/httpd.h 파일에 리눅스의 경우 HARD_SERVER_LIMIT 값이 256으로 기본 설정되어 있으며, 이 값은 서버가 수용할 수 있는 최대 접속을 의미한다. 이 값을 1280으로 설정한다. # cd /usr/local/src 소스디렉토리로 다시 이동 [root@wow src]# tar zxvf apache_1.3.37.tar.gz [root@wow src]# cd apache_1.3.37 [root@wow apache_1.3.37]# ./configure --prefix=/usr/local/apache 3> PHP설치. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # cd /usr/local/src/php-5.2.2 기본옵션 #./configure --with-mysql=/usr/local/mysql --with-apache=/usr/local/src/apache_1.3.37 --with-charset=euc_kr --with-gd=/usr/local/gd --with-language=korean --with-config-file-path=/usr/local/apache/conf --enable-shmop --with-track-debug --with-zlib --enable-track-vars --enable-calendar --prefix=/usr/local/php --enable-ftp --enable-sockets --enable-mailparse --enable-magic-quotes --enable-mbstring --with-zlib-dir=/usr/local/zlib --disable-debug --enable-track-vars=yes --with-xml --enable-sysvsem --enable-sysvshm --with-zlib-dir=/usr/lib --with-iconv --with-dom --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype # make # make test (생략가능) # make install libphp4.a 카피하기 [root@wow php-5.2.2]# cp /usr/local/src/apache_1.3.37/src/modules/php5/libmodphp5.a /usr/local/src/apache_1.3.37/src/modules/php5/libphp5.a 4> 아파치 본설치 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # cd /usr/local/src/apache_1.3.37 # SSL_BASE=/usr/local/src/openssl-0.9.8e ./configure --prefix=/usr/local/apache --activate-module=src/modules/php5/libphp5.a --enable-rule=SHARED_CORE --enable-module=ssl --enable-shared=ssl # make # make certificate # make install 인증서 설치후엔 # apachectl startssl 명령 이용구동 [root@wow apache_1.3.26]# vi /usr/local/apache/conf/httpd.conf AddType 을 검색해서 AddType application/x-tar .tgz 를 찾아 그아랫줄에 아래 두줄을 추가 AddType application/x-httpd-php .php .html .htm .inc AddType application/x-httpd-php-source .phps @php에서 사용할 확장자를 정의하는 곳입니다. 기본확장자추가 === DirectoryIndex index.html index.htm index.php SetEnvIfNoCase Request_URI ".(gif)|(jpg)|(js)|(css)|(png)|(swf)$" img CustomLog "|/usr/local/sbin/cronolog /home/ftpbackup/logs/%Y/%m/%d_access_log" common env=!img @cronolog 로 로그파일을 줄이는구문 설치는 # ./configure ; make ; make install 한다 ErrorLog /dev/null @에러로그를 줄인다. php.ini 파일을 만든다. [root@wow apache_1.3.26]# cp ../php-5.1.4/php.ini-dist /usr/local/apache/conf/php.ini allow_url_fopen = Off 반드시 수정: 5> ZendOptimizer 설치 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ # cd ZendOptimizer-2.5.7-linux-glibc21-i386 # ./install.sh 설명에 따라 셋팅설정. Zend php.ini 설치 디렉토리를 /usr/local/apache/conf/ 로 지정하세요.. php.ini는 적으면 안돼여... 6> http 환경설정... 웹튜닝.. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 아파치 튜닝법 KeepAliveTimeout =================== 클라이언트가 서버로 접속을 했을 경우 하나의 웹 서버 프로세스가 해당 웹 페이지의 여러 개체들의 전송을 새로운 프로세스를 생성하지 않고 지속적으로 접속을 유지하며 담당하며, 이 클라이언트의 요청에 대한 타임아웃에 대한 값이다. 기본 15초에서 30초로 증가. MaxKeepAliveRequests ======================== 웹 서버 프로세스가 지속적으로 접속을 유지하면서 처리할 수 있는 요청 개수이다. 100으로 설정되어 있으며, 10000으로 증가. StartServer, Min/MaxSpareServer ================================= 기본 설정은 5, 5, 10정도이며, 웹 서버가 Standalone 방식일 경우 새로운 접속 요청을 받으면 기존의 Spare Child Process를 포크하여 새로운 Child Process를 만들어내므로 기본적으로 Spare Process가 많을수록 폭주에 빨리 대처할 수 있다. StartServer 20, MinSpareServer 20, MaxSpareServer 40으로 증가. MaxRequestsPerChild ======================== 웹 서버 프로세스가 일정 횟수의 클라이언트 요청을 처리하고 종료되는 수치이며, 1000으로 증가. MaxClients =============== 동시에 실행될 수 있는 최대 프로세스 수를 제한하는 것이며, 기본 256으로 설정되어 있다. 이를 1024까지 증가. 로그파일 생성 ================= 이용자가 접속할 때마다 기록되는 access_log 파일의 경우 한번 접속당 약 85바이트가 증가하며, 접속량이 많을 경우 이 파일의 크기는 실제로 엄청나다. 이럴 경우 접속때마다 로그파일을 액세스하는데 상당한 시간과 부하가 걸리므로 로그 파일을 일정시간마다 초기화하여 항상 경량화 시켜 줄 필요가 있다. 아파치에서 제공하는 rotatelog를 이용. 7> 추가 셋팅 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ root@how-web webalizer]# ./configure --with-lang=korean --with-gdlib=/usr/local/gd/lib --with-gd=/usr/local/gd/include ~~~ ZZZ ~~~ZZZZ [root@how-web src]# make ~~~ZZZ [root@how-web src]# make install ~~~ZZZ /etc/profile 에 export LD_LIBRARY_PATH=/usr/local/gd/lib:LD_LIBRARY_PATH 를 추가해주면 됩니다. [root@www2 bin]# cat webalizer.sh #!/bin/sh dyear=`date +%Y` dmon=`date +%m` echo $dyear/${dmon}_eng_access webalizer -p -n www2.on-english.com -o /usr/local/apache/htdocs/weblog /backup/logs/${dyear}/${dmon}_eng_access 웹얼라이즈+크론로그 연동 되게 할땐. .이렇게하세요.. CronoLog 설치 1> 다운 받는다 http://www.cronolog.org/download/index.html 2> 다운 받은걸 /usr/loal/src/에 푼다 3> # ./configure ; make ; make install 한다 4> httpd.conf 파일 연다 SetEnvIfNoCase Request_URI ".(gif)|(jpg)|(js)|(css)|(png)$" img CustomLog "|/usr/local/sbin/cronolog /backup/logs/%Y/%m_access_log" common env=!img 두줄을 추가한다. 윗줄은 그림 이미지 로그등을 줄이는거 아랫줄에서 bakcup/logs 의 로그 파일 위치 설정은 알어서 하고 %Y/%m/%d %Y/%m_%d 등 디렉토리 구조를 어떻게 생기게 할지 결정해서 파일명을 정한다. %Y/%m_access_log 를 권장 (년도별 디렉토리가 생김) 5># /usr/local/apache/bin/apachectl restart 데몬 재시작 (# apachectl configtest 함해주는게 좋다.) 8> 보안셋팅 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ http://www.chkrootkit.org http://www.chkrootkit.org/download/ # make sense <= 설치 rkhunter 도 설치 iptable 셋팅 등등.. 8> https 셋팅 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 인증서 받은 파일은 apache/ssl/cert.pem apache/ssl/key.perm 으로 카피한후에 httpd.conf 에서 SSLCertificateFile SSLCertificateKeyFile 에서 경로를 지정해주고 # apachectl startssl 로 데몬을 띠운다. |
||||||
| ... 자료없음 ... | ||||||