Loading...

웹 DOS 공격 막기

문제? 특정 IP에서 너무 많은 접속이 일어난다?? 비정상적인것 같은데... 어떻게 해결을 할까? DOS공격인것 같은데.. 해결책! 1. iptables 를 이용한 방법 iptables를 이용하시는것이 근본적이고 효과적 이다. iptables의 connlimit 모듈을 이용한다. iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 -j DROP 한 IP에서 50개의 연결이 있으면 그 IP를 차단한다.!! 영원히~~ flush 시키기 전까지는.. 캑.ㅠㅠ 2. mod_dosevasive 모듈 사용. 아파치에 올려서 사용하고, 일반적으로 많이 알려져 있지만, 문제점은, 접속자가 많은 사이트에 올려두면, 서버가 견디지 못해 아..

압축전송

력을 버퍼링하는 ob_start()에 대해서 팁텍에서도 여러번 논의가 있었던 것으로 기억합니다. 특히 ob_start("ob_gzhandler"); 를 이용하면 테이터를 gzip 압축을 해서 훨씬 빨라질거라는 이야기도 있었고... 저역시 ob_start("ob_gzhandler"); 해주고 압축이 잘되고 있다고 믿어왔습니다. 근데 우연히 http://www.whatsmyip.org/mod_gzip_test/ 에서 테스트를 해보니까 압축이 안되어있다고 나오더군요. 한참을 뒤지다가 Apache/1 에서는 별도로 mod_gzip을 설정해야한다는 사실을 알았습니다. 화일을 다운로드하고 설정하는 방법은 http://schroepl.net/projekte/mod_gzip/install.htm 에 자세히 나와있습니다..

아파치 보안

완벽한 보안은 없다고 생각한다. 흔히 말해 해킹과 보안을 창과 방패라고 비유하는 것과 같이 해커가 찌른 창을 한번 막았다고 해서 영원히 막을 수는 없다. 해커는 항상 새롭고 다양한 창을 가지고 또 찌를 것인데 항상 같은 낡은 방패를 사용하여 똑같은 방어만 한다면 완벽한 방어는 절대 이루어질 수 없을 것이다. 웹 호스팅 서버의 경우 평균적으로 한 대의 서버로 작게는 백여 개의 도메인부터 시작하여 많게는 200여 개 정도의 도메인을 관리하는데 해킹을 당했을 경우에는 호스팅 서버에서 관리되는 업체들, 즉 200여개의 홈페이지가 한 번에 모두 피해를 입을 수가 있기 때문에 그 피해는 더욱 크다고 할 수 있다. 이번 시간에는 이런 시스템의 피해를 사전에 예방할 수 있는 보안 측면에서 시스템 관리자로서 해야 하는 ..

아파치 로그 자동백업

0. 내가 원하는 것? 아파치에서는 로그를 자동으로 깔끔하게 로테이트 시키지 않는다. 로테이트도 날짜가 엉망이라 알아보기 힘들다. 그래서 난 날짜별로 로그를 모으기 위해 다음 쉘스크립트를 만들었다. 1. 설명 : cron의 힘을 빌려!! 매일 00시00분에 위 쉘스크립을 실행시키면, 어제날짜를 구한 다음 기존로그를 어제 날짜로 옮기고, 아파치를 재 시작한다. 그리고 로그는 gzip으로 압축해서 보관하면.. 효율적으로 로그 보관할 수 있다. 2. 압축된 로그 볼때? zcat 파이명 3. 쉘프로그램 소스 (/root/log_rotate.sh) #!/bin/bash ## 로그 자동 로테이터 ## crontab : 00 00 * * * su - root -c '/root/log_rotate.sh >& /dev/..

아파치 로그

httpd.conf LogFormat "ip:\"%a\" port:\"%p\" bytes:\"%B\" inbytes:\"%I\" outbytes:\"%O\" protocol:\"%H\" method:\"%m\" host:\"%{Host}i\" file:\"%f\" uri:\"%U%q\" status:\"%>s\" phpsessid:\"%{PHPSESSID}C\" useragent:\"%{User-Agent}i\" referer:\"%{Referer}i\" responsetime:\"%D\" datetime:\"%{%F %T}t\"" shjsqllog CustomLog "| /usr/sbin/cronolog /var/log/apache2/default/%Y/%m_%d_access_log" shjsqllog..

아파치 2 최적화

웹 서비스의 성능 최적화는 웹서버에서의 튜닝과 웹 브라우져, 웹 콘텐츠 그리고 다른 시스템과의 관계 등을 동시에 다루어야 하지만 자바스크립트, 웹 그래픽, HTML, CSS 등의 최적화에 대한 것은 이 글에서 취급하지 않는다. 필자는 http://www.websiteoptimization.com/ 에서 그런 정보들을 얻을수 있었다. 이 글은 아파치 웹 서버의 최적화에 대해서만 다루고 있으므로, 그 외의 다른것들과 통합해서 웹 서비스 성능 개선 방안을 마련하는 것은 여러분의 몫이다. 아파치 성능 테스트 계획 테스트 환경 OS : Red Hat Enterprise Linux AS release 4 (Nahant) Kernel Version : 2.6.9-5.ELsmp CPU & Cache : 2 Xeon(T..

로그 제어하기

LogFormat과 CustomLog 지시어의 형식 아규먼트는 문자열이다. 이 문자열에 따라 요청을 로그파일에 기록한다. 문자열에는 로그파일에 그대로 복사되는 문자와 행바꿈과 탭을 나타내는 C의 "\n"과 "\t" 제어문자를 사용할 수 있다. 로그파일에 따옴표나 백슬래쉬를 쓰려면 앞에 반드시 백슬래쉬를 적어줘야 한다. 요청의 특징은 형식 문자열에 "%" 지시어를 사용하여 기록한다. 이 지시어는 로그파일에서 다음과 같이 변경된다. 형식 문자열 설명 %% 퍼센트 기호 (아파치 2.0.44 이후) %...a 원격 IP-주소 %...A (서버) IP-주소 %...B HTTP 헤더를 제외한 전송 바이트수. %...b HTTP 헤더를 제외한 전송 바이트수. CLF 형식과 같이 전송한 내용이 없는 경우 0 대신 '-..

Openssl 설치법

0. 뭐지? OpenSSL은 : SSL v2/v3와 TLS v1 프로토콜을 지원하는 범용 암호법 라이브러리이다. 대부분 리눅스 배포판에 기본 설치 되어 있음. 1. 개인키생성 1) 3DES 로 암호화(PassPhrase필요) openssl genrsa -des3 -out 키이름.key 1024 2) 암호화 하지 않음 openssl genrsa -out filename.key 1024 3) 기존 비밀키에 패스워드 추가 openssl rsa -in out 키이름.key -des3 -out 새로운키이름.key 4) 기존 비밀키에 패스워드 제거 openssl rsa -in 키이름.key -out 새로운키이름.key 2. CSR생성 (인증서 서명 요청을 위해 필요) openssl req -new -key 키이름...

mod_expire

Apache에서 이미지 캐싱 처리(mod_expires) 등록일:2007-07-05 10:49:14 by 좋은진호 apache에서는 mod_expires 모듈을 통해 Expires HTTP header 를 설정할 수 있다. 이를 통하여 클라이언트(웹페이지 방문자)에 캐싱되는 문서나 이미지들이 많아서 트래픽을 감소시킬 수 있다. 이미지 전용 서버나 이미지 디렉토리에 설정을 해두면 효과적이다. 이미지 서버에 지정한 다음 예를 보자. ExpiresActive On ExpiresDefault "access plus 1 month" # 제외할 디렉토리 ExpiresActive Off /usr/local/apache/bin/apxs -aic mod_expires.c - ExpiresActive On 지시자로 Exp..

mod_cband (apache 2.x) 다른거

Apache + mod-cband 설치하기!!! OS : CentOS 4.4 Server glibc-2.3.4-2.36 gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-8) ltmain.sh (GNU libtool) 1.5.6 (1.1220.2.95 2004/04/11 05:50:42) 준비할 것... - Apache-2.2.4 ( http://httpd.apache.org/ ) - mod-cband-0.9.7.5 ( http://cband.linux.pl/ ) => 위 버전은 2007.08.01 일 기준... 일단 mod-cband 는 Apache 2.x 에서 트래픽의 양과 속도를 제어할 수 있게 해주는 모듈이다. 상당히 간편한 설정방법과 나름 괜찮은 퍼포먼스를 보여주는듯 .. ..