카테고리 Archives: linux

CentOS 6.x 업데이트가 되지 않을때.

yum 을 이용해서 centos 는 쉽게 업데이트가 가능하다.

정말 간단하지 않은가 =ㅅ=a

 

CentOS 6.2 에서 yum 을 이용한 업데이트시 아래와 같이 에러가 발생하였다.

헐키 – -a 그러면서 업데이트가 안된다.

사유는 mahatari 가 보안 관련 이슈 때문에 삭제 / 대규모업데이트 가 된듯 하다.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/6.3_Technical_Notes/matahari.html

 

그리하여 아래와 같이 삭제를 한뒤에 업데이트 한다.

mahatari 파이썬으로 만들어진 내부서비스 감시툴이다.

쓰는 사람이 있다면 업데이트 이후 재설치를 하시면 되겠다.(저는 쓰지 않습니다 ‘ㅅ’a)

CVE-2015-0204 취약점 – FREAK Attack

개요
-프랑스 국립 연구소(INRIA) 및 MS社에서는 SSL을 통해 강제로 취약한 RSA로 다운 그레이드 시킬 수 있는 취약점을 발견
※ CVE-2015-0204 : OpenSSL s3_clnt.c의 ssl3_get_key exchange 함수에서 발생하는 취약점으로 공격자가 MITM(Man In The Middle Attack)을 통해 512비트 RSA로 다운 그레이드 시켜 정보를 유출시킬 수 있는 취약점

해당 시스템
-영향을 받는 시스템
-Openssl 0.9.8 대 0.9.8zd 이전 버전
-Openssl 1.0.0 대 1.0.0p 이전 버전
-Openssl 1.0.1 대 1.0.1k 이전 버전

취약점 확인절차
-(시스템 운영자) 시스템 측면 취약점 확인
-아래의 명령어를 입력하여 취약점 유무 확인
-openssl  s_client  -connect  [web site명 입력]:433  -cipher EXPORT

 

1. 정상

2. 취약점 노출 화면 (CERTIFICATE 코드가 보인다.)

 

해결방안
-(시스템 운영자) 해당 취약점에 영향 받는 버전 사용자
-OpenSSL 1.0.2 버전으로 업그레이드(http://www.openssl.org/source/)
-버전 업그레이드가 어려운 경우, OpenSSL ‘RSA_EXPORT Cipher Suites’를 지원하거나 클라이언트로 ‘RSA_EXPORT suite’를 전송할 수 있는 모든 기능을 비활성화 시킬 것을 권장

[참고사이트]
1. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-0204
2. http://FreakAttack.com
3. https://mozilla.github.io/server-side-tls/ssl-config-generator/

출처 : http://www.krcert.or.kr/kor/data/secNoticeView.jsp?p_bulletin_writing_sequence=22573

————————————————————————————-

여튼 뭐 또 그렇단다 =ㅅ=a..

확인결과 yum update 가 아직 안나왔다.

때문에 extra/httpd-ssl.conf 파일중 SSLCipherSuite!EXPORT 추가를 해서 막는다.

 

ps. 2015 – 03 – 17 추가내용.

음 yum 이 나왔다.

 

설치 이후 체인지 로그에서 fix 가 된것을 확인할 수 있겠다.

 

umount 가 진행되지 않을 경우(device is busy)

umount 명령을 내렸을때

umount : device is busy

라는 에러가 발생하며 umount 가 안될때 사용할 수 있는 방법이다.

 

1. 먼저 해당 디바이스 사용자가 누구인지 확인.

 

2. 해당 마운트 지점을 사용하는 프로세스 kill

 

음~ 추가적으로  원격으로 작업할때는 일반적으로 자신도 user 로 붙어서 사용하기 마련인데.

만약 자신이 로그인한 아이디가 위의 /home 일경우 위 명령어로 프로세스 kill을 시키면

자신의 접속이 끊어지게 되겠다 ‘ㅅ’a

 

자신이 로그인한 계정의 home 디렉토리를 다른쪽으로 옴겨둔뒤에 umount 를 진행하자 ‘ㅅ’a

ps. 계정의 home 디렉토리를 수정하는 명령어.

 

mod_ruid2 의 사용.

mod_ruid2 는 suphp 와 같은 각 계정의 권한으로 실행되게 해주는 DSO 모듈이다.

suphp 는 DSO 가 아니고 apache 1.x 에서 동작하는데 이건 apache2 용이라고 보면 되겠다.

 

http://sourceforge.net/projects/mod-ruid

소스는 소스포지에서 & 설치는 매우 간단하다. ‘ㅅ’a

 

음 그냥 무난하고 설치도 빠르다. 그리고 설정도 간단하다.

 

엔드유져는 웹에서 생성한 파일을 ftp로 직접 수정을 할수 있고

퍼미션 변경등의 행위가 불필요 하기 때문에 매우 편리하다.

심지어 쉬운설치 를 지원하는 XE 혹은 wordpress 의 경우 Ftp 정보 입력없이 플러그인 이나

위젯 설치가 가능한 장점이 있다.

 

이보다 설정이 간단할수는 없지만 함정이 있다.

 

mod_security2 와 권한 문제로 충돌한다. 물론 apache 를 MPM_ITK 로 했을경우에도 충돌한다.

여기서 수 많은 삽질을 해보았다. 모드시큐리티는 해야하기 때문에 ‘ㅅ’a

아파치 8080포트 nginx 80 포트 로 리버스 프로시를 구성해서 nginx 에서 mod_security2 를 돌리고

프록시를 해서 아파치에서 웹서비스를 가동하는 방법 으로 구성은 했었지만 서비스 운용이

불가능하였다 (많은 문제가 있음 : nginx – mod_security2 가 안정적이지 않다.)

apache – apache(프록시)  를 구성해서 해결을 해볼수도 있겠다. 이건 시도하지 않았다.

다만 구성상 가능할것으로 판단 된다.

프록시를 한경우 mod_remoteip (아파치2.4 내장) 모듈로 프록시 되어온 실제 IP를 log로 남기는

작업을 별도로 할수 있다.

 

 

현재 어찌어찌 하여 하나의 아파치2.4 서버에 mod_ruid2 및 mod_security2 를 운영하고 있다.

현재 error_log에 문제가 발생하고 있지는 않지만 좀더 지켜본 뒤 정리해서 업데이트를 하도록 하겠다.

(안정화 테스트중…)

20150216_PicPick_163016

 

2015-11-10 추가 내용: ruid2 사용시 php.ini 의 session.gc_maxlifetime 에 의해 세션이 자동삭제가되지 않는 증상이 확인 되었고 이를 해결하기 위해 명령어를 주기적(cron등록)으로 실행하여 삭제를 합니다.
*- 세션처리를 file 형태가 아닌 memcached 등을 이용한경우 필요가 없음. -*

/tmp  <—— 세션 디렉토리 선언에 따라 변경할것.
-cmin +24  <—— 세션이 만들어진지 24분이 초과 한경우(필요시 변경)

사유: 폴더 안에 약 32000여개 이상의 파일이 만들어질 경우 해당 폴더에 접근하는 시간이 늦어질수 있음
(파티션종류에 따라 틀림) 즉 웹서버 성능저하가 올수 있음. 때문에 필히 필요한 부분 ‘ㅅ’a

쉘 스크립트의 중복실행 방지를 위해 PID 를 생성.

쉘을 단순 명령어 실행 코드로 짤수 있어서 나같은 초보자들도 쉽게 짤수 있는 프로그래밍

언어이도. 또한 서버 관리를 위해 필수 적으로 익혀야 하기도 하고..

 

그러다보니 양산되는 문제가 짜버린 쉘스크립트 코드가 너무 쉽게 만들어져 버리다 보니까.

중복실행이 되면 안되는 쉘스크립트가 중복실행이 되버릴 경우 심하면 서버 다운까지 간다.

예를 들면 백업이라던가.. awstat 체크 로직이라던가. 등등..

그렇다고 while 로 loop 로 너무 많은 쉘을 돌리는것도 문제이긴 하다.

 

그래서 쉘 스크립트를 싱행하기 전에 PID 파일을 생성하고 실행이 되도록 하고.

pid 파일이 있고 현재 프로세스가 실행중이라면 “이미 실행중’ 메세지가 나오도록 하고

pid만 덩그러니 존재 할경우 기존 pid를 삭제하고 실행 되도록 코드를 짜 보았다.

pid 파일은 해당 쉘의 위치와 동일 선상에 생성 되고 삭제되도록 되어 있다 ‘ㅅ’a

 

ps. 2016-07-21 실행된 pid가 너무 짧을 경우 프로세스 exist 체크에서 다른 프로세스를 검출 하는 경우가 나와서 살짝 업데이트를 했습니다.(4째줄..)


ps2. 2020-02-13 기존 스크립트 코드를 단순화 하고 trap 설정을 통해 상단 선언만 되도록 변경 했습니다.(아래)