HP iLO 사용기

서버 업그레이드를 진행하면서 새로 산 서버에 iLO (Integrated Lights Out)라는 기능이 있길래 좀 사용을 해봤는데, 확실히 세상이 진보해가고 있는게 느껴졌다.
간단하게 얘기하자면 서버 상태 확인 및 KVM 기능이 network를 통해서 이뤄질 수 있는 기능이고, 추가적으로 설치 CD 등을 원격으로 마운트할 수 있는 기능까지 있어서 유용하게 사용할 수 있을 것 같다.
BIOS 세팅하듯이 부팅 중에 iLO 관련 설정을 변경하면 되고, 설정 툴에서 IP 정보 및 ID/Password 등을 설정할 수 있다. 설정이 끝난 후 웹브라우져를 통해 iLO로 할당되어 있는 IP로 접속/로그인 하면 아래와 같은 화면들을 볼 수 있다.
아래 이미지는 서버 내에 온도 센서 정보들이고…
ilo-temperature-status
Continue reading HP iLO 사용기

해킹이 의심되는 파일들 발견…

흠 그동안 관리를 잘 안했더니, 확실히 여러가지 문제들이 생긴 것 같다. 서버 이전 전에 왠만한 문제들은 해결하고 가는게 좋을 것 같아서 파일들을 좀 살펴봤는데, 변조된 파일로 보이는 파일들이 많이 보인다. 대강 아래와 같은 식의 요상한 데이터가 덮어씌워져 있는데…

문자열을 \\xHEX 형식으로 치환해놔서 그냥 보기에는 어떤 내용인지를 쉽게 알아볼 수가 없고, pattern matching 해서 찾아내기에도 드럽게 해놨다. -_- 나뿐 놈들…
도대체 어떤 코드를 넣어놨나 궁금해서 아래 코드를 이용해서 눈으로 볼 수 있는 형태로 치환해봤는데…
Continue reading 해킹이 의심되는 파일들 발견…

AirComix server와 encoding 문제…

홈서버가 잠시 터졌던 관계로… 불편함에 AirComix server를 php 기반 서버로 전환했는데, 이후 열리지 않는 zip archive들이 발견되었다.
처음에는 pecl:zip 문제인 줄 알고, PEAR:archive_zip 등을 사용하도록 코드를 업데이트 해야하나하는 고민을 했었지만 디버깅을 해보니 그런 큰 문제는 아니었다.

대게 단순한 문제였는데… “햏”같은 uhc/utf-8 등에는 정의되어 있지만, euc-kr에는 정의되지 않는 글자들이 사용된 경우 AirComix server가 오동작하는 문제!

단순히 handler.php에서 $source_encoding = “euc-kr”로 되어 있는걸 $source_encoding = “cp949″로 바꿔주면 잘 동작하는 것을 확인했다.
게임을 줄였더니 확실히 뭔가 생산적이 되는 것 같다.
덧: 예전에 인코딩이랑 캐릭터셋 관련해서 삽질도 많이하고 공부도 많이했는데, 덕분에 이래저래 도움이 많이 되는 것 같다. 오늘의 일기 끝!

홈 네트워크 구성 계획…

iPad2를 구매하면서 (좀 된 이야기지만) 베어본 PC를 하나 조립해서 AirVideo/AirComix 서버를 구성했다.
처음 고려했던 베어본은 Zotac Zbox이었지만, HDD를 2.5인치 밖에 지원하지 않아서 다른 제품을 찾아 헤메이다 결국 Shuttl SH61R4에 I3 processor로 낙찰…
Continue reading 홈 네트워크 구성 계획…

요 며칠 삽질기 -_-! with Exim

어째 요새 관리해야할 서버가 늘어버렸네요. (전 언픽스 하나로 족한데 ㅠ.ㅠ) 하여튼!! 요 며칠 사이 gentoo + exim + procmail + spf + srs + clamav + bogofilter + dovecot 를 시도해봤습니다.
사실 계속 제가 맡아서 할 게 아니라 길어야 일 년 정도 만져줄 서버기 때문에 젠투가 아닌 다른 배포판을 생각했었는데, spf 와 srs 를 지원할 수 있도록 하면서 기본으로 제공되는 패키지를 이용할 수 있는 조합이 몇 가지 되질 않더군요. exim 에서 spf 와 srs 는 experimental 로 되어 있기 때문에 바이너리 배포판에선 기본으로 적용이 되어 있질 않고, postfix + milter 조합에서는 srs 를 제공할 수 없기 때문에 남은 선택은 sendmail + milter 조합 밖에 없는데 sendmail 을 사용하기는 싫었거든요.
하여튼! exim 에 procmail 을 붙이는 방법은 아래와 같습니다.
procmail:
driver = accept
transport = procmail
domains = +local_domains
check_local_user
# emulate OR with "if exists"-expansion
require_files = /usr/bin/procmail
no_verify
no_expn

router 파트의 localuser: 룰 앞에 위와 같은 코드를 추가하고
procmail:
driver = pipe
path = "/bin:/usr/bin:/usr/local/bin"
command = "/usr/bin/procmail"
return_path_add
delivery_date_add
envelope_to_add

transpotes 에 router 에서 정의한 procmail transpote 를 정의해 주면 되죠. procmail 을 이용한 스팸 필터야 예전부터 잘 사용해오던 게 있으니 그걸 사용하면 됐구요.
그 다음은 smtp 설정!! 기본으로 /etc/exim/auth_conf.sub 란 파일이 있길래 그냥 자동으로 smtp 인증 설정이 되어있는줄 알았는데 smtp 인증을 사용하려면 저 안에 있는 내용을 /etc/exim/exim.conf 에 추가해줘야합니다.
plain:
driver = plaintext
public_name = PLAIN
server_condition = "${if pam{$2:$3}{1}{0}}"
 
login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = "${if pam{$1:${sg{$2}{:}{::}}}{1}{0}}"

그 내용은 위와 같았구요. 하지만 여기서 또 문제가 발생! 예전 시스템이 오래 전에 설치된 것이었는지 비밀번호 암호화를 md5 로 사용하질 않고 있었는데, /etc/pam.d/system-auth 에서 md5 를 제거함으로써 다른 데몬들에선 문제가 해결됐지만 exim 의 stmp 에서만 인증 실패가 나오는겁니다. -_-!
참고로 smtp auth 가 어떤 과정으로 이뤄지는지는 아래 인용된 내용을 참고하세요. 테스트할 때 알아두면 편합니다.

$ telnet localhost 25
EHLO localhost
AUTH LOGIN
base64로인코딩한아이디
base64로인코딩한비밀번호

여담이지만 smtps 나 pop3, imaps 를 꼭 사용하세요. 위에서 처럼 비밀번호가 그냥 넘어갑니다. 패킷이 악의적인 라우터를 지날 경우 아이디/비밀번호가 줄줄 셀 수 있습니다.
하여튼 비굴하게 saslauthd 를 사용해서 우회시켜봤지만 요놈도 마찬가지로 인증 실패 -_-! 아예 다 안되면 모르겠는데 우리 사랑스런 dovecot 은 로그인이 아주! 잘 됩니다. exim 만 나쁜 놈이란 거죠.
saslauthd 라거나 pwcheck 같이 다른 곳에서 잘 사용도 안되는 데몬을 띄우는 게 좀 꺼림찍했는데 잘됐다 싶어서 dovecot-auth 를 활용해봤습니다. dovecot-auth 를 활용하려면 아래와 같이 dovecot.conf 파일을 수정해줘야 합니다.
auth default {
mechanisms = plain login
passdb pam {
args = "*"
}
userdb passwd {
}
user = root
 
socket listen {
client {
path = /var/run/dovecot/auth-client
mode = 0666
}
}
}

그리고 위에 써있는 auth-client 소켓을 이용해서 로그인하도록 exim.conf 를 고쳐줍시다.
login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client

이제 끝!! 드디어 smtp 인증이 정상적으로 되기 시작합니다. 휴;;
뭐 대강 다 됐는데, 한 가지 아쉬운 점이라면 .forward 나 alias 를 이용할 경우 procmail 을 거치지 않기 떄문에 스팸 필터링이 안되는 것 정도? 이건 어떻게 해야할 지 별로 답이 안나오네요.
그렇다고 bogofilter, clamav 등이 다 procmail 에서 호출되는데 이걸 spamassassin + clamd 조합으로 새로 설정하긴 완전 귀찮고 (사실 어떻게 하는지도 모르고) 약간 쀍입니다.
그 외에 mailman 과 관련된 삽질이 조금 더 있었고, seliunx 가 적용되어 있는 CentOS 랑 관련된 것도 있었는데 또 언제 시간날 때 관련된 것들을 포스팅해봐야겠습니다.
사실 요새 포스팅 하고 싶은 내용은 많은데 내용이 길어져서 귀차니즘이 발동해버렸네요.