카테고리 Archives: linux

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

 

memcache 설치 및 session.cache 운용

memcached 는 서버의 메모리를 할당해서 사용할수 있는 데몬의 일종이다.

파일캐시, 쿼리캐시, 세션캐시 등을 할 수 있으나 파일 캐시, 쿼리캐시는 최근에 사용되는 자체 데몬의 캐시가 오히려 더 효율적이기 때문에 사용치 않는다.

때문에 여기서는 세션캐시 부분만을 설명할 예정이다.

1. 설치

pecl, phpize, php-config 경로는 자신의 php 경로에 맞게 수정되어야 한다 ‘ㅅ’a

 

2. 실행 및 데몬 자동 실행 등록

 

3. php.ini 설정 ( session 은 기존 설정값 변경 / 다른 부분은 추가. ) ( php 7.0 – memecahe을 포함 한다 )

 

설정 후 아파치를 재시작 하거나 php-fpm 일경우 php 을 재시작 하면 적용이 된다.
용량이나 포트등은 /etc/sysconfig/memcached 에서 설정할 수 있다.
기본 설정인 32M 의 경우 약 25000개의 세션을 버티는거 같다 = =a

 

4. 주의 사항.
일반적으로 문제가 생기지는 않으나 그누보드4 & 5 의 경우에 문제가 발생한다.
common.php 파일부분에 수정을 가해야만 정상동작 할 수 있다.

그누보드5

그누보드4

물론 위에서 설명한 php.ini 설정을 하지 못했다면 더 어려워지겠다 =3=a

 

일반적인 /tmp 를 사용하거나 그누보드처럼 자체 폴더에 세션을 생성 하는 방법은 그 폴더에 32000여개의 파일이상이 생성이 될경우 사이트 속도가 매우 느려질 수 있다. ( 10초이상 걸릴 수도 있다. )
즉 사이트가 대형화가 된 경우의 속도 저하를 방지 한다.

그누보드의 경우 각 접속 뿐만 아니라 각 게시물의 xx번 읽음 체크를 위해 세션을 이용하기도 하기 때문에 이 느려지는시점은 본인 생각보다 빨리 올 수 있다.

 

운영중인 memcached 의 자원 관리를 위해 memcache.php 를 운용해서 확인할 수 있다.
https://github.com/lagged/memcache.php

CentOS7 – proftpd 설정.

RHEL 7, CentOS 7 에서 epel 레포지트리 추가 후 proftpd 설치를 할경우.

기존 버전과 틀리게 proftpd-1.3.5b 가 설치된다. (CentOS6은 proftpd-1.3.3g)

 

문제는 conf 파일이 호환 되지 않아서 ‘ㅅ’a 기존 잘운영하건 conf를 복사해서 붙여넣을 경우 작동하지 않는다.

그래서 그냥.. 설정값  ‘ㅅ’a 업데이트 (그냥 무리없이 쓸수 있는 설정이다. 당연히 어나니머스 ftp는 사용 안함)

기존과 틀려진 부분은 기존에 Certificate 와 Key 를 구분하여 받아 들였는데 pure-ftpd 처럼 한파일로 받는다.
TLS 설정을 안한경우 TLSEngine off 로 한다.

FTP용 인증서 발급 방법은 TLS통신을 위한 Public Certificate 발급&갱신을 확인 한당 ‘ㅅ’a

open-DKIM 설치

Open-dkim 은 서버에 설치되어 운영 되고 발송되는 메일의 스팸처리 확률을 낮추어 주는 메일 익스텐션 이라고 보면 된다.
사이트를 운영하면서 구글에 대량메일을 보내려면 필수 적이라고 보면 된다.

회원 가입 축하메일등의 짜잘한 부분 말고 ‘ㅅ’a
뭐 안내라든가 그런거 수천통씩 보내야 할때.. 국내에서는 kisarbl 에 화이트IP를 등록하는 방법으로
보내지지만 구글한텐 안통하기 때문에 구글에서 제안한 opendkim을 서버에 설치해서 해결 하는것이다.

 

여기서는 CentOS6 + Sendmail 에 적용 하는 방법을 나열함. ‘ㅅ’a

 

open-DKIM 은 epel 레포지트리에 포함 되어 있어서 yum 으로 설치 할수 있다.

설치는 벌써 끝. ‘ㅅ’a

 

근데 open-DKIM은 설정이 어렵다 ‘ㅅ’a
폴더를 만들고.

그다음 DKIM 키를 생성한다.

 

이후 생성한 DKIM 정보를 아래 파일들에 삽입해야 한다 ‘ㅅ’a
/etc/opendkim/KeyTable (키테이블이 사용할 DKIM key를 선언.)

/etc/opendkim/SigningTable (사용할 메일주소와 키테이블을 매칭한다.)

/etc/opendkim/TrustedHosts 이파일은 sendmail 메일의 access.db 와 기능이 설정법 및 기능이 같다.
즉 DKIM사이닝을 해줄 IP 및 사이닝을 사용할 도메인을 추가한다.

 

이후에 아래 명령어로 생성된 DKIM 값을 발췌해서.

DNS 서버의 zone 파일에서 아래와 같이 TXT 값을 삽입한다. – 괄호랑 주석은 제거한다. ‘ㅅ’a

 

/etc/opendkim.conf 을 아래와 같이 수정한다.

 

그후 서비스 시작 및 init.d에 등록.

 


 

자 이제 sendmail 에 open-DKIM 연결고리만 만들어 주면 된다 ‘ㅅ’b
/etc/mail/sendmail.mc 파일에 아래와 같은 내용을 삽입한다.

그후에 적용 및 sendmail 재시작.

 

그후에 메일 발송 테스트를 해서 메일 헤더에 DKIM-Signature 부분이 삽입이 되었는지 확인한다 ‘ㅅ’b
구글 메일로 메일을 발송하고 아래와 같이 확인한다.