정태영

어제 하드를 새로 갈았고, 전체적으로 설정을 새로 했습니다. 캬캬캭 크게 달라진 점은 다음과 같습니다.

  1. 아파치를 peruser 모드로 변경
  2. 메일 서버를 postfix 기반에서 exim 기반으로 변경
  3. 하드 디스크를 36+18GB 에서 72+36GB 로 변경
  4. tomcat 버젼을 6.x 로 업데이트

exim 에 smtp auth 를 설정하는데, /etc/pam.d/smtp 를 안만들어뒀다가 12시간 동안 고생을 했네요. -_-; 별 것도 아닌게 쀍!

하튼! 대강 업데이트 완료~! 두두두둥!

update: mpm peruser 때문에 fastcgi 들이 제대로 동작하지 않는다. ㅠ.ㅠ trac 이랑 관련해서는 apache apache 권한으로 돌리게 하는 것으로 해결이 됐지만 이거 뭔가 방법을 찾아봐야겠다.

정태영

xfs_repair 를 시도한 이후에도 파일시스템의 문제가 깨끗이 해결되지 않고 있다. 처음 설치할 때에 비해 추가로 설치한 것들이 많아졌고, 사용자들도 많아졌기 때문에 여유 공간이 1GB 가 안되는 상태로 몇 달째 버티고 있었는데, 이제는 정말 하드를 추가해야할 시기가 아닐까 싶다.

결국 오늘 히타치 73GB 10,000rpm 하드 디스크를 새로 주문했고, vmware 상에서 gentoo 를 새로 빌드하고 있다. (뭐 예전껄 그대로 복사해도 문제는 되지 않겠지만, 그냥 왠지 다시 빌드하고 싶어져서…) 이것저것 설정을 새로 하고, 이래저래 만질 걸 생각하면 벌써부터 골머리가 아프지만 신경쓸 부분이 조금 더 줄어들거라는 점에서 위안이…

한 6개월에서 1년 정도를 더 버틴 다음에 새 서버를 사고 싶었는데 결국 또 마이너 업데이트로 버티게 되는구나 ㅠ.ㅠ

정태영

Linux 2.6.17 - 2.6.24.1 사이 버젼을 사용하시는 경우라면 아주 시급한 패치가 되겠네요. vmsplice 의 버그를 이용한 exploit 으로 이 exploit 을 이용하면 로컬 유져가 root 로 권한 상승할 수 있습니다.

exploit 소스는 구글에서 linux vmsplice exploit 정도로 검색하면 쉽게 구할 수 있고, gentoo 의 경우 2.6.23-r7 에서 패치가 되었다고 합니다.

자자 다들 귀찮고 떨리더라도 –;; 커널 업데이트를!!

aqua@unfix ~/tmp $ ./a.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] mmap: 0×0 .. 0×1000
[+] page: 0×0
[+] page: 0×20
[+] mmap: 0×4000 .. 0×5000
[+] page: 0×4000
[+] page: 0×4020
[+] mmap: 0×1000 .. 0×2000
[+] page: 0×1000
[+] mmap: 0xb7da8000 .. 0xb7dda000
[-] vmsplice: Bad address

이제 언픽스는 안전해요. -_-!

정태영

현재 unfix 서버에는 apache + mod_fcgid 환경에서 fastcgi 를 지원하고 있다. 그런데 fastcgi 를 적용시킨 후 가끔 apache 가 먹통이 되는 현상이 생겨버렸다.

대부분의 apache 프로세스가 D state 를 가지게 되면서 더 이상 프로세스를 만들어내지 못하게 되서 요청을 처리하지 못하게 되는 것 같은데, D state 는 Uninterruptible sleep 을 의미하므로 fastcgi 프로세스에서 interrupt 를 disable 시킨채로 sleep 상태에 들어가서 이런 문제가 생기는 것으로 보인다.

그렇다고 하루종일 아파치가 정상적으로 동작하고 있나를 확인할 수는 없기에 스크립트를 하나 작성해봤다.

BASH:
  1. #!/bin/sh
  2.  
  3. cnt=0;
  4. for x in `ps -C apache2 -o stat|grep D`;do
  5.     let cnt++;
  6. done
  7.  
  8. if [ $cnt -ge 10 ];then
  9.     kill -HUP `cat /var/run/apache2.pid`
  10. fi

sort 와 uniq 를 이용해서 숫자를 셀 수도 있지만 정상적인 경우에 D stat 를 가지는 프로세스가 존재하지 않으므로 for 를 이용하기로 했다. 꺄아! 과연 효과는 -_-! 두둥!

정태영

아시는 분은 다 알고 계실 듯 하지만 추석 연휴 동안 unfix 서버의 아파치를 1.3 tree 에서 2.3 tree 로 버젼 업 했습니다.

몇 달 전쯤부터 gentoo 의 패키지관리 시스템인 portage 에서 apache 1.3 tree 를 위한 지원이 하나 둘 빠지기 시작했고, 급기야 1.3 버젼대가 아예 제거되버리는 일이 있었습니다. 1.3 tree 는 이미 안정화가 될만큼 된 상태고 거의 버젼업이 이루어지지 않기에 큰 문제가 되지 않았으나 모든 아파치 모듈들에 대해서 1.3 버젼에 대한 지원이 없어졌기 때문에 해당되는 모듈들을 업데이트를 하려면 대규모 수작업을 통해야만 하는 문제가 생기더군요. -_-;

근데 제가 apache 를 그냥 곱게 사용하는 것도 아니고, 몇 가지 패치를 넣어서 사용하고 있었기 때문에 2.3 tree 로의 업데이트는 마음의 준비가 필요했습니다. 더 끌어봐야 좋을 것도 없고, 며칠 전 포스트에서 밝힌대로 apache2 의 mod_autoindex 를 새로 해킹한 뒤! 가볍게 버젼 업!!

사실 작업은 30분이면 충분히 이루어질 줄 알았습니다. 근데 왠걸!!! apache-1.3 버젼대에선 <virtualhost myip> 식으로 적어놓아도 별 문제가 생기질 않았는데 apache-2.3 버젼대에선 :80 이라고 포트를 정확히 명시해주지 않는 이상 ssl 설정과 부딪히더군요. -_-; 하지만 이쯤이야 후훗! 가볍게 설정을 고친 후 아파치를 재시동하니 허억;;;

dev-lang/php 를 apache2 플래그를 빼먹은 채로 빌드하는 바람에 모듈이 생성되지 않았습니다. -_-;; 그 날따라 php 를 빌드하는게 어찌나 길게 느껴지던지... 삐질;;

여기까지 해서 아파치 + 여러가지 아파치 모듈과 관련해선 문제를 해결할 수 있었습니다만, 문제는 여기서 끝이 아니더군요. 갑자기 java 관련된 것들이 무슨 incompatible version 어쩌구저쩌구 에러를 일으키며 tomcat 이 시동되는 것을 막기 시작했습니다. (이때부터 좀 마가 꼈어요.)

하나 둘 다시 빌드를 해봤지만, 문제가 해결되는 것 같다가도 다시 미궁에 빠져버리더라구요;; 결국! dev-java 카테고리에 있는 모든 패키지들을 제거했다가 다시 설치하는 것을 통해 이 문제도 해결 -_-v

뭐 그 후로도 phpmyadmin 업데이트 후에 설정파일을 예전것 그대로 썼다가 여러가지 404 페이지를 겪기도 하고 ... 하튼 제가 안쓰는 것들에 대해서도 좀 꼼꼼히 체크할 필요를 느꼈습니다. (이런거 확인하시면 혼자 알고 계시지 말고 메일로 좀 보내주세요. ㅠ_ㅠ)

하여튼 생고생 끝에! 이제는 apache, php, mysql, tomcat, ruby 등등이 다시 최신으로 업데이트됐습니다!! 키킥 언픽스 화이팅~!

정태영

젠투에서 아파치 1.3.x 를 제외시킨 뒤 업데이트에 큰 불편을 느끼고 있는 이유로 추석맞이 apache upgrade 를 준비 중에 있습니다. (사실 mod_fastcgi 도 gentoo 에서 더 이상 유지되지 않고 있습니다.)

unfix 에서 사용 중인 apache 에는 제 mod_autoindex 핵과 mod_highlight 등을 사용하고 있는데, mod_highlight 는 한동안 disable 되더라도 별다른 문제가 없을 것 같고 mod_autoindex 관련 hack 만 아파치 2.2.x 에 맞게 포팅하면 될 것 같습니다.

헛! 근데 apache 2.2.6 소스를 열어보니 Charset 관련된 코드가 있네요. 하지만 다른 곳에 이미 설치되어 있는 apache-2.2.2 를 가지고 테스트를 해보니 옵션을 찾지 못합니다. httpd 문서에서도 관련 옵션을 찾아볼 수가 없구요. 이상한 마음에 Change Log 를 뒤져보니 2.2.6 에서 추가된 기능이네요. :)

2.0.23 부터 HTMLTable 이란 옵션을 통해 Table 로 파일 리스트를 뿌려줄 수 있고, IndexStyleSheet 를 이용하면 css 지정까지 가능하니, table 에 클래스만 지정해주면 거의 문제 없이 apache 2.2 트리로 옮겨갈 수 있겠네요. -_-; 이럴 줄 알았으면 진즉에 업데이트를 할 걸 -_ㅜ;;

정태영

rss 들을 보다가 국내 사이트들의 구글 페이지 랭크 순위 를 확인할 수 있는 사이트를 찾았습니다.

mytears.org 가 579 위~ b.mytears.org 가 581 위를 차지하고 있네요. 둘 다 페이지 랭크는 5를 기록하고 있습니다. 참고로 578 위는 nmindplus님, 580 위는 deute님 입니다. 578 위부터 581 위까지 모두 unfix 유져네요. ㅋㅋ

그 외에도 언픽스 유져 중에 순위권이신 분들로 082님 (562), standardmag.org (306), forum.standardmag.org (308) 가 있습니다. 캬캭 높은 순위를 받지는 못했지만, 그래도 순위 안에 들어있다는게 너무 기쁘네요. 언픽스 만세!!