Archive for February, 2005

정태영

방을 치우다가 고등학교 때 쓰던 다이어리를 발견했어… 예전에 메모해놨던 종이들을 빼서 버리려고 뒤적거리다 보니까 예전 친구들 이름이랑 전화번호들이 적혀있더라구… 사실 몇 명은 싸이월드 같은데서 찾아보려고 했었는데… 성이 기억이 안나서 -_-;; 실패했었는데 말야… 찾아보니까 다들 살아 있더라구 -_-!!!

고등학교 졸업하고 그동안 난 그대로 변하지 않고 있다고 생각했는데… 다들 정말 몰라보게 변했더라… 분명히 생일도 맞는 거 같고, 미니홈피 이름도 대강 걔네들이 쓸만한 그런 이름이었는데.. 사진을 보니까… 다들 너무 많이 변했거야… 다들 그대로일 줄 알았는데

다시 만나서 옛날 얘기하면 참 재밌을텐데…

정태영

생각없이 여기저기 떠돌아 다니다가 phpschool 에서 아래와 같은 자료를 발견했다.

http://akap.mireene.com/test/window3.htm

우선 눈에 들어오는 것은 f-prot 등의 리눅스에서 사용가능한 솔루션!! f-prot 은 perl 로 작성된 바이러스 스캐너이며, 개인적으로 사용하는 리눅스 웍스테이션에선 무료로 사용이 가능하다고 하니 이것도 한 번 적용시켜볼까 싶다.

procmail 에 쉽게 적용시킬 수 있도록 누군가가 만든 간단한 wrapper 링크 : http://www.zdo.com/articles/f-prot-wrapper.php

결과는 내일쯤 다시 :D

정태영

우선 게시판 스팸은 회원제로 바꿔버리면 반 이상은 해결할 수 있을거 같으니 제껴두고, procmail 룰 강화로 인해 필터링되지 않아야 할 메일이 필터링 되는 일이 있는지 체크할 겸 해서 로그를 남겨 지켜보는 중인데.. “광고” 라는 문구를 넣으면서도 필터링에서 피하기 위해 노력한 흔적들이 상당히 많이 보인다 -_-!!

  • 제목에 “(광고)” 란 단어를 넣긴 했지만.. base64 로 인코딩해서 보냄
  • 역시 제목에 “(광고)”란 단어를 넣긴 했지만.. quoted print 로 인코딩해서 보냄
  • &#unicode;&#unicode; 식의 방식을 사용.. “(광고)” 를 표현..

그 중 2번째와 세번째 같은 경우는 아예 인코딩된 글자 자체를 필터에 추가시키면 완벽하게 차단이 가능하지만, 문제는 첫번째 방식! base64 인코딩의 경우 7bit 단위로 잘라서.. 테이블을 이용 변환시켜버리기 때문에 “(광고)”라는 글자가 나오는 위치에 따라 결과가 많이 달라지기 때문에.. 필터링 못하는 경우도 생길 듯 하다.. base64 나 qprint 로 인코딩되서 오는 경우엔.. 오히려 어떤 charset 으로 표현된 글자인지를 알 수 있는 장점이 있으므로.. 저렇게 인코딩 해서 보내는게 나쁜건 아니지만.. 뭐 하튼 그렇다는 얘기…

최적의 솔루션이라면 디코딩을 한 후 유니코드로 변환해서 문자열 필터를 통과시키는 방법이겠지만.. 그럴려면 간단한 프로그램을 새로 짜야 하기 때문에, 귀찮은게지 -_-;; 또 제목이 전혀 인코딩되서 오지 않은 경우엔 어떤 언어인지 모르기 때문에 유니코드로 변환하는 도중에 예외 상황이 만들어지는 것도 문제고.. (사실 대강 끼워맞추기로 해결은 가능하지만)

그동안의 성과 보기 »

지금까지의 작은 노력만으로도 결과는 만족스럽다는 사실 :)

정태영

예전 서버를 사실 오늘 해지하려고 했었는데.. 그래도 무임승차하고 있던 사람들도.. 언제 해지한다는 사실 정도는 알아야 하지 않을까 싶어서.. (뭐 사실은 백업해두기 귀찮은거겠지..) 아파치에 설정되있던 virtual host 관련된 걸 다 정리하고, old.unfix.net 으로 접속하지 않으면.. old.unfix.net 으로 리다이렉션이 일어나게 바꿔버렸다. 시작페이지에는.. 나름대로의 안녕 메시지를 담아둔 채 :)

무임승차 관련된 유져들이 왜 생겨났는지를 얘기하자면 길지만.. 처음 서버호스팅을 같이 받던 친구가.. 이래저래 세팅해놓고 -_-;; 나한텐 관련된 내용을 말해주지 않는 상태로 그 친구가 내 서버에서 나갔으면서도 그냥 계정들이 계속 유지되고 있었던 듯 한데.. 어떻게 처리해야할 지를 몰라서 방치해뒀었다..

뭐 하튼 난 나름대로 할만큼 했다는 생각.. 알아서들 하라지.. 난 땅파서 서버임대료를 냈었던게 아니라구 -_-!!

정태영

내 서버를 사용하는 (내가 알고 연락가능한 사람들에 한해서) 사람들의 계정을 전부 새 서버로 옮기고, 네임서버를 바꿔달라고 요청까지 끝냈다.

예전 서버엔 redhat 7.3 을 사용해 왔는데, up2date 지원이 끊긴지도 좀 되고, fedora legacy 에서의 지원도 곧 끊길 예정인데다 3년 가까이된 하드웨어가 문제를 일으킬까봐 언제나 조마조마했으며, 임대서버라 하드웨어 업글 관련 비용에 압박이 너무 심했었다.

하지만 새 서버는 하드도 무상 as 5년짜리 맥스터 하드에 cpu 와 메모리도 빵빵하고 다달이 내야하는 돈이 대폭 줄어서 이래저래 부담이 많이 줄어들 듯 싶다 (서버비 한 번에 지른건 왜 잊어버리는거냐.. -_-!!)

예전 서버는 금요일 쯤에 해지 신청을 할 생각인데, 무임승차하고 있던 유져들을 어떻게 해야할지 모르겠다. 데이타들은 그냥 아카이브로 묶어서 딱 2달만 보관하고 있다가, 연락 없으면 지워버리면 되려나… 뭐 난 할만큼 했다고 생각하니까 -_-;;

하여튼 지금 보니까 나도 모르게 세팅된 계정들이랑 도메인이 상당히 많다. 내가 관리를 제대로 못했다는 반증일지도…

그건 그렇고 젠투로 새롭게 서버를 꾸미면서 예전 보다 스킬이 상당히 올라간 기분이다. postfix + procmail 등을 바닥부터 전부 세팅했고, procmail 에 유용한 룰(어제 자 포스트 참고) 들과 바이러스 필터링 등을 추가했다.

요즘 들어서는 From 주소만 있고 제목, 내용등이 없는 메일들이 오길래 그런 메일들을 필터링 하기 위한 rule 을 추가해줬다. 그 결과 하루에 300개 가까이 오던 스팸이 20개로 줄었다. 그나마도 그 중 10 개는 워드프레스에 코멘트 달렸다고 날라온 메일이고, procmail 로그를 지켜보고 있어봐도 걸리지 말아야 할 메일들이 걸린 경우는 아직까지 없는 듯 하다.

뭐 하튼 다 하고 나니까 뿌듯하고 기분이 상쾌하네 :)

정태영

procmail 관련 해서 검색을 하던 중 아래와 같은 글을 발견했다. 내 스팸 함에 들어있는 메일들과 정상적인 메일들을 대강 훑어보았더니 저 룰만 가지고도 꽤 많은 스팸을 차단 할 수 있겠다는 생각이 들었다.

http://www.itinside.net/tips/045.html

multipart/alternative 방식은 text/plain 과 text/html 이 두 가지를 모두 가지고 있는 방식인데, 스팸 메일러에서 multipart/alternative 라고 선언을 해놓고 text/plain 혹은 text/html 둘 중 한 가지 만을 가지는 요상한 메일들을 보내는 경우가 많다는 점을 이용하는 것! 정상적인 mta 를 사용해서 보낼 경우 저런 잘못된 형식의 메일은 존재하지 않을 것이기 때문에 그냥 스팸이라고 간주해도 문제가 없을 것 같다.

(둘 중 하나만 집어 넣을거면 처음부터 text/plain, text/html 로 해서 보내면 된다. 첨부파일이 있다면 multipart/alternative 가 아닌 multipart/mixed 를 사용해야 하고…)

바로 적용시켜놔봤는데 결과가 어떨지는 자고 일어나 보면 알 수 있지 않을지 ;)

p.s) 원본 사이트가 없어져서 rule 을 quote 해놓습니다. 링크도 webarchive 쪽으로…

# This anti-fake method is to detect the format is incorrect.
:0 HB
* ^Content-Type: *multipart/alternative
* !^Content-Type: *text/plain
{
LOG = “[Fake] “
:0
/dev/null
}

:0 EHB
* ^Content-Type: *multipart/alternative
* !^Content-Type: *text/html
{
LOG = “[Fake] “
:0
/dev/null
}

정태영

흐흐흐 내일 넣으러 가야지~! 꺄홋.. 오늘은 즐겁게 즐겁게.. 서버 안정성 테스트를 위해 -_-!! glibc 빌드 무한 룹을 걸어놓고 자야겠다 -_-;; 자고 일어나서도 문제없이 계속 컴파일하고 있으면.. 뭐 문제는 없는거겠지 꺄홋 :)

while [ 1 ];do
ebuild ./glibc-20040808-r1.ebuild install
if [ $? != 0 ];then
break;
fi

rm -rf /var/tmp/portage
done

테스트를 위해 걸어둔 사랑스런 커맨드 :)