CentOS6 x64 – apache 1.3.x – mod_geoip 설치

httpd.conf 에 아래와 비슷한 내용이 먼저 들어 있어야 한다.

이유는 mod_geoip 설치시 마지막 LoadModule 라인을 인식하여 그 아래 LoadModule  mod_geoip 추가 한다.
라인이 없다면 스크립트 실패로 설치가 실패한다.

 

GeoIP를 yum 으로 설치한다.

 

이후 mod_geoip 를 설치한다.

 

httpd.conf 파일에 data 파일 위치를 선언하는 부분을 추가한다.

 

CentOS6에서 기본 설치를 이용했을때 일반적인 data파일 위치는 아래와 같다.
GeoIP : /usr/share/GeoIP
xt_geoip(iptables): /usr/share/xt_geoip
mod_geoip(apache): /var/lib/GeoIP
dat 파일은 매월 2~7일 사이에 maxmind.com 에서 바뀐부분을 새롭게 배포한다.

때문에 위 위치안의 GeoIP.dat 파일을 매월 초 갱신해 줘야 한다는 이야기가 된다.
갱신 없이 사용한다면 국가별 차단 등을 해놨을때 해당 국가여도 접속을 못하는 상황이 나올 수 있다.

그래서 아래와 같이 geoip_data_update.sh 스크립트를 만들어 매월 7일 정기적으로 실행 시켜 업데이트를 한다.

 

 

smartctl을 이용한 디스크이상 사전 탐지

smartctl 명령어는 하드디스크 롬에 기록되는 형태이다. 때문에 I/O 에러 발생때문에 write가 잠겨
/var/log/messages 상에 찍히지 않는 I/O에러를 검출하는 목적으로 사용할 수 있다.

CentOS 5/6 은 이미 탑재되어 있는 명령어 이지만 Centos 7의 경우 아래와 같이 명령어 추가를 한다.

 

명령어는 작동시간, 부팅횟수, 헤더, 온도, 배드카운터, CRC 에러등등 하드디스크의 모든 종합 정보를 볼수 있다.
클라우드 – 가상디스크는 지원하지 않는다.
일반디스크인데 정보 표기다 되지 않을경우 아래 명령어서 on  시켜줘야 할 수 있다.

 

1. 아래 명령어는 SMART 속성 정보만 표기 한다.

주요 해서 봐야 하는 부분은 아래와 같다.
HEAD spindle error   //   Spin_Retry_Count  (매우 높음) = 헤드가 재 작동을 시도한 횟수.
BAD sector  //   Offline_Uncorrectable  (높음) = 읽기/쓰기에 문제가 발생한 섹터 = 배드 섹터 발생
아래는 약간은 중요도가 떨어지지만 주요해서 봐야 한다.
UDMA_CRC_Error_Count   (낮음) = HDD인터페이스 전송 CRC 오류 (sata 케이블 오류의심)

위 에러중 HEAD 관련 카운트가 1개라도 나온경우 스핀들모터 혹은 리드헤드 쪽에 문제가 발생한것이다.
이는 즉시 데이터 백업 및 디스크 교체를 진행한다.

 

2. 누적된 에러 로그를 호출한다. ‘ㅅ’a

정상일경우 아무런 메세지도 표시되지 않는다. 메세지가 출력되는 경우 아래 상세 테스트를 진행한다.

 

 

3. 상세한 테스트를 한다. ( short 1~2분 소요 / long = 약 두시간 가량 소요 )

백그라운드 테스트가 진행되며 테스트간 off-line 모드가 되고 테스팅 시간은 약 108분 걸린다고 되어 있다.
smartctl -X 명령어로 long 테스트를 중지할 수 있다.

Status 값에 failure 가 떨어질경우 백업 및 디스크 교체를 한다.

CentOS6 php-4.3.11 with apache 2.4

먼저 아파치 2.4 및 DB는 사전에 서버 구축이 되어 있다는 가정하에 출발한다 ‘ㅅ’a
php 4.3 혹은 4.4.의 경우 배포툴을 까봤을때 apache 1.x 혹은 apache 2.0.x 와 호환되도록 되어 있다.

 

일반적인 웹서비스를 구성할수 있는 extension 을 포함한 설치 방법이다.

문제점은 아래와 같다. –

CentOS6에 포함된 openssl-1.0.1e , curl 버전 충돌 이난다. 그리고 apache MPM 정상인식 불가에 따른 configure 수정이 필요하다.
shutdown-patch 는 snmp 공격에 의해 error_log 가 난잡해지는것을 방지하는 패치이다

위 패치파일을 받아 패치를 한뒤에 컴파일을 진행한다.

–with-ldap 과 –with-imap 은 포함시 해결이 되지 않아 제거 하였다 ‘ㅅ’a
그다음 아파치 구동을 한다 ‘ㅅ’a

20160615_PicPick_164916

그렇다.. 이 테스트의 목적은 PHP-4.x 기반의 HTTP/2 구현이 주목적…
부가적으로 각종 웹, OS 취약점 등등이 패치된 구형 php가 구동 가능한 서버를 구축할 수 있다.

 

크롬에서의 HTTP/2 사용확인은  아래의 주소를 별도의 탭에 띄워두고 사이트 접속을 하면 현재 유지되는 커넥션의 정보를 확인할 수 있다.
chrome://net-internals/#http2
20160722_PicPick_140008

 

CVE-2016-2107 -취약점 Padding oracle , CVE-2016-2108 취약점 – Memory corruption ASN.1 encoder

아직 한국어 기사 혹은 취약점 공문 이런게 안떳지만..
https://www.openssl.org/news/vulnerabilities.html#y2016
openssl – Severity: High 즉 심각한 보안 취약점이 두개나 공개 되었다. ‘ㅅ’a

https://www.openssl.org/news/secadv/20160503.txt

이 공격에 대비하여 openssl 을 각각 1.0.1t 혹은 1.0.2h 로 업그레이드를 권고 하고 있다.

 

openssl 컴파일 설치 방법은 아래의 게시물 하단을 참조

CVE-2016-0800 취약점 – DROWN, CVE-2016-0702 취약점 – CacheBleed

 

Centos 5/6/7 버전에서 yum 을 이용한 openssl 을 설치 및 운용중인 경우 아래와 같이 yum으로 업데이트 하면 된다.

yum을 이용한 업데이트 이후에는 아래와 같은 명령어로 보안 취약점이 패치 되었는지 확인할 수 있다.

openssl 업데이트 후에는 아파치 재시작을 해야 적용되니 참고 ‘ㅅ’a
memory corruption 은 레드햇에서 찾아서 적용이 공식 사이트보다 하루 빨랐나보다 ‘ㅅ’a

 

PS. openssl 0.9.8 버전의 경우 AES – CBC cipher 가 없기 때문에 CVE-2016-2107 취약점은 패치가 없다.

php 에서 dbcon 작성 할때 localhost가 안먹을때.

서버에 APM 이 정상 설치가 되어 있으나

php 로 dbcon 을 할때 127.0.0.1은 먹고 localhost 로는 접속이 불가능할때가 있다.

 

먼저 mysql로 로그인을 하여 소켓 위치를 파악하자.

 

php.ini 파일에서 mysql.default_socket 을 일치시켜준다.

 

그다음 아파치나 php-fpm을 재시작 ‘ㅅ’a