2009년 12월 31일 목요일

FreeBSD를 토렌트 다운로더로 활용하기. transmission-daemon

유닉스/리눅스/MacOS 에서 사용하는 대표적인 토렌트 클라이언트 Transmission.

집에서 자원이 남아서 외롭게(?) 놀고 있는 FreeBSD 서버가 있다면 토렌트를 다운로드 하도록 일을 시킬 수 있습니다.

원격으로 ssh를 통해서 텍스트 기반의 명령을 수행하는 방법도 있습니다. 하지만 GUI가 여러모로 훨씬 편리합니다.


이 그림처럼 클라이언트의 설정을 변경할 수도 있고, 토렌트 정보 파일(?)을 쉽게 보낼 수도 있습니다.



포트를 통하여 transmission-daemon을 설치합니다.

# cd /usr/ports/net-p2p/transmission-daemon/ && make install clean


transmission-daemon 원격 연결에 관련 된 설정을 자신이 원하는 환경으로 수정합니다.

다운로드 디렉토리 같은 경우는 FTP나 samba에서 받을 수 있도록 심볼릭 링크를 활용하면 편리합니다.

# vi /usr/local/etc/transmission/home/settings.json
"download-dir": "\/usr\/local\/etc\/transmission\/home\/Downloads", # 기본 다운로드 위치입니다.
"rpc-enabled": true, # true로 설정시 원격 연결을 사용합니다.
"rpc-password": "fdsalksjdfkaslfdhio", # 원격 연결 비밀번호 입니다.
"rpc-port": 5555, # 원격 연결 포트 입니다.
"rpc-username": "username", # 원격 연결할 아이디 입니다.
"rpc-whitelist": "192.168.1.2", # 원격 연결을 허용하는 클라이언트의 IP주소 입니다.
"rpc-whitelist-enabled": true, # true로 설정히 원격 연결에 대하여 IP 인증으로 연결 제한을 사용합니다. 접근하는 장소가 일정하지 않다면 false 로 설정해야합니다.


rc.conf 파일에 아래의 한줄을 추가하여 transmission-daemon 이 사용이 가능하도록 설정합니다.

# vi /etc/local/rc.conf
transmission_enable="YES"


transmission을 실행합니다. 서버의 준비는 끝났습니다. 이제 윈도용 클라이언트를 설치합니다.

# /usr/local/etc/rc.d/transmission start


다음 웹사이트에서 원격 제어 툴을 제공합니다. 감사히도 윈도/리눅스/맥을 지원합니다.

http://code.google.com/p/transmisson-remote-gui


다운로드 받아서 설치 후 실행하면 접근할 호스트의 IP와 포트와 아이디 패스워드 등을 묻습니다. settings.json 파일의 내용을 참고하여 설정 후 OK 를 클릭하면 연결이 완료됩니다.


IE(Internet Explorer) 강국. 한국이 변화하고 있다.

인터넷을 사용하시는 초보, 전문가를 불문하고 모든 분들께서 한번쯤은 불만을 느껴보셨을 것입니다. (아니면 말고...)

보안 경고, 프로그램 설치, 보안 모듈 설치, 런처 설치, 다운로더 설치, 방화벽 설치, 기타 등등 설치 설치 설치

그리고 설치에 대한 설명은 초보자의 입장에서는 이해하기 어려운 글들로 이루어져있습니다.

아무튼 '예, 아니오'를 선택해야 하는데 당연히 '아니오'를 선택하면 더 이상 진행이 불가능합니다.

사용자는 무엇이 설치되었는지에 대해서는 별로 궁금하지 않으며, 서비스를 이용하기 위해서 당연히 '예'를 선택하게 되며, '예' 버튼이 당연시되며 지속적으로 길들여지게 되었습니다.

만일 수상한 프로그램이 설치된다고 하더라도, '예' 버튼에 길들여진 사용자는 별 의문없이 '예'를 선택하는 사태가 발생하기도 합니다. 혹은 더 이상 '예, 아니오'를 묻지않고 자동으로 설치되기도 합니다.

제 자신도 윈도98을 사용하던 시절에는 그랬습니다. -_- 덕분에 블루스크린도 지겹도록 봤습니다.

그리고 악성 프로그램은 PC를 마음대로 제어 가능한 상태로 설치되어버리며, 개인정보 유출과 악의적인 목적으로 PC를 이용하기도 합니다.


이 문제를 만들어낸 장본인 MS에서도 위험하다고 인정하고, 더 이상 개발하지 않는 구시대의 유물인 ActiveX입니다.

개발되지도 않는 소프트웨어를 계속 사용하면, 언젠가 일어날 큰 잠재적 보안성 위험이 될 것입니다.



하지만, 최근 들어서 몇몇 국내의 대형 포털 사이트들도 ActiveX 설치없이 서비스를 원활히 이용할 수 있도록 변화하고 있습니다.

대용량 첨부파일 전송, 동영상 스트리밍, 글 작성 등 모든 기능을 이용할 수 있습니다.

덕분에 Internet Explorer 외의 훨씬 성능이 좋은 다른 브라우저로 원활한 서비스가 가능했습니다.

(감격...ㅠㅠ 해외에서는 한국이 기이할정도로 신기하다고 생각을 한다고 합니다.)

개선이 된 대형 포털 사이트들은 뿐만아니라 웹표준에도 빠른 대응을 시작하고 있습니다.

도전을 시도하는 용기있는 한 업체 덕분에 눈치를 보던 경쟁업체들의 사람들도 따라서 움직이는 모양입니다.



그러나 온라인게임과 금융거래는 움직일 생각이 전혀 없는 것 같습니다.


수입되어 들어온 해외의 온라인 게임들도 뜯어고쳐서 ActiveX로만 실행되게 만들어버립니다. (원래는 그냥 실행파일로 실행되는 상태였었다고 합니다.)

온라인게임 업체는 자사의 홈페이지의 페이지뷰 횟수를 늘리기 위한 목적이 클 것이라고 합니다.

광고 수익... 광고는 게임 시작시에나 종료시 나타나도 괜찮지 않을까 생각해봅니다.


금융거래는 끝까지 웃기지도 않는 보안 프로그램을 설치하는 ActiveX를 고집합니다. '한국인터넷진흥원이 ActiveX를 표준으로 지정했다'는 글을 어디선가 본 듯도 합니다.



대형 포털 사이트들은 이미 움직였습니다.

시간이 더 지나면 ActiveX를 고집하는 사람들도 무엇이 옳은지 판단하게 될 것이라고 생각합니다.


2009년 12월 28일 월요일

웹브라우저의 선택

웹서핑 속도에 불만이 쌓여가면서, 브라우저를 바꿔 본 제 경험을 글로 남겨봅니다.

이 글은 제 컴퓨터 사양을 기준으로 쓴 글입니다.

컴퓨터가 아에 못쓸정도는 아닙니다. 웹서핑, 음악, 동영상 재생 능력은 갖추고 있습니다.


프로세서: Pentium IV 2.66Ghz Northwood

메모리: 1GB + 512MB / PC3200

비디오: ATi Radeon HD3450 AGP




Internet Explorer 6

메모리 사용량이 낮기에 프로그램 자체는 가볍지만 브라우징이 매우 느리고 보안에 취약하며, 웹표준 무시.


Internet Explorer 8

메모리 사용량은 많이 무거워졌으나, 브라우징 속도와 웹표준과 보안성이 상당히 개선되었음.

하지만, 날이 갈수록 현저히 느려짐 orz. 파일 다운로더는 아직도 변함없이 형편없음.

윈도 로그온 계정을 새로 만들던지 OS를 재설치하면 다시 빠른 속도로 돌아옴.

인터넷 캐시, 히스토리 등 삭제해보고 난리를 쳤지만 다른 방법은 없는 듯.


FireFox3

항상 일정하고 평균적인 쾌적한 브라우징 속도를 보여줌. 메모리 사용량 많이 무거움. 실행속도 느림.

특별한 기능이 필요하다면, 많은 플러그인의 지원이 매우 큰 장점.


Google Chrome

메모리 사용량이 가장 무겁지만, 미칠듯한 실행속도와 브라우징 속도를 보여줌. 속도 하나는 정말 최고...

구닥다리 시스템에서는 오히려 전체적으로 IE6보다 느린 속도를 보여주기도 함.

펜티엄2에서도 테스트 했습니다. -_-


Opera 10 - 현재 사용중. 사용기간 짧아서 잘 모름.

메모리 사용량이 낮으며, 크롬 만큼은 아니지만 빠른 브라우징 속도를 보여주고 있음.

펜티엄2 구닥다리 시스템에서도 괜찮은 브라우징 속도를 보여주는 훌륭한 가벼움을 보여줌.

사용자의 편의성을 위한 북마크 동기화 등의 간단하면서도 알찬 기능을 기본적으로 제공.

특별한 기능이 필요하다면 파이어폭스의 플러그인과 비슷한 개념의 위젯을 추가할 수 있는 듯...



지금은 오페라에 정착할 생각입니다. 엑티브엑스 때문에 어쩔 수 없이 서브로 IE8을 사용해야겠습니다.

처음에는 북마크 관리가 귀찮아서 오페라 링크 기능을 보고 오페라의 사용을 시작했는데, 매우 편리합니다.

실행을 해보니 브라우저가 지체되지 않고 가볍고 부드럽게 실행됩니다.

사용하다보니 브라우징 속도가 매우 빠르다고 느꼈습니다. 웹페이지의 움직임도 부드럽습니다.


완성도가 매우 높은 것 같습니다.


2009년 12월 24일 목요일

USB부팅이 가능한 Google Chrome OS

구글 크롬 OS를 USB 메모리로 부팅이 가능하도록 제공하고 있습니다.
배포 사이트: http://chromeos.hexxeh.net

두개의 압축파일의 내용입니다. 디스크 이미지와 이동식 디스크에 기록하는 S/W 입니다.


Diskimager 를 실행하고 ChuromeOS-Cherry.img 의 경로를 선택 후 Write 버튼을 클릭하면 됩니다.


배포 사이트에서 직접 다운로드하면 많이 느려서 Torrent 를 제공하고 있습니다.
torrent 사용법: http://4444.textcube.com/77
느려도 별 문제 없으시면 배포사이트에서 직접 다운로드하셔도 됩니다.



위의 다운로드의 사용에 어려움이 있으신 분들을 위하여, 글쓴이 본인이 제공하는 디스크 이미지 다운로드 링크입니다.
서버에 별 문제가 없다면 계속 유지하겠습니다.
ftp://konata.kr/ChromeOS-Cherry.tar.gz


구형 노트북에서 테스트해보겠습니다.
USB부팅이 불가능한 노트북이기 때문에, Plop Boot manager 를 이용하여 USB부팅을 시도했습니다.



인터넷이 연결된다면 바로 구글 계정으로 로그인이 가능합니다.
... 저는 불가능했습니다. PCMCIA 랜카드가 동작을 하지 않습니다. 인터넷이 안됩니다!!!
인터넷 연결이 안된다면, 계정 / 패스워드: facepunch / facepunch 로 로그인가능하다고 합니다만..
저는 퍼런 화면에 마우스 커서만 나오고 더 이상 진행이 안되는군요... 구형하드웨어의 한계...
과감히 전원 버튼을 누르니... 3초도 안걸려서 종료되었습니다.

넷북을 위해서 만들어졌기 때문에 당연한 결과라고 생각됩니다.

그래서 이번에는 별로 기대는 안하고 지금 글을 쓰는 데스크탑에서 테스트 해봤습니다.

다행히도 인터넷이 가능한 상태였기에 로그인 가능했으며, 제공하는 서비스를 이용할 수 있었습니다.
하지만, 이 구닥다리 시스템의 그래픽 카드, 사운드 카드를 인식하지 못하여...
슬로우 모션과 정적을 느껴야했습니다.

구글이니 당연하겠지만... 제대로 사용이 가능해지면 정말 괜찮은 OS가 될 것이라고 생각합니다.
부팅속도, 종료속도 모두 환상적이며, 정말 심플합니다.
로그온 하자마자 바로 웹브라우저이며, 복잡한 설정이 전혀 없습니다.

넷북을 구입하여 그 자리에서 바로 전원을 켜고 바로 사용한다. 라는 느낌입니다.

대한항공 CF 패러디

늘 작은 일만 주어진다고 여기는 그대에게...

크리스마스에 솔로들을 위한 노래

3번째 곡 진노의 날 강추합니다.


2009년 12월 23일 수요일

FreeBSD7 OpenVPN 설치 및 PF NAT 인터넷 공유

회사 혹은 기타 모임 등의 내부에서 인터넷을 사용하다보면 간혹 의미없이 포트를 막아놓은 경우가 있습니다.
예를 들어 SSH, FTP 클라이언트 등을 막아놓아서 불편한 경우입니다.

경유지를 이용하여 해결할 수 있습니다. 아... 참고로 게임도 할 수 있습니다. (ㅋㅋ?!)
하지만, OpenVPN은 이런 용도를 위해서 만들어진 S/W는 아닙니다.
원래는 보안성이 높은 가상 사설망을 만들기 위해서, 생산적인 목적을 위해서 만들어진 S/W 임을 밝혀둡니다.

-----------------------------------------------------------------------------------
서버 설정

OpenVPN을 설치합니다.
# cd /usr/ports/security/openvpn
# make install clean


OpenVPN 의 서버와 클라이언트간의 인증을 위한 준비를 합니다.
필요한 예제 파일들을 임의의 위치에 복사하고 스크립트 파일들에게 실행권한을 줍니다.
# cp -r /usr/local/share/doc/openvpn/easy-rsa /root/
# cd /root/easy-rsa
# chmod +x *


아래를 참고하여 국가, 단체명 등등.. 편한대로 수정합니다.
# vi vars
[code]
export KEY_COUNTRY=KO
export KEY_PROVINCE="NA"
export KEY_CITY=Seoul
export KEY_ORG="OpenVPN-TEST"
export KEY_EMAIL="me@myhost.mydomain"
[/code]


중간에 틀리면 생성된 keys 디렉토리를 삭제하고 여기서부터 진행하면 됩니다.
# sh
# . vars
# ./clean-all
# ./build-ca


중간에 묻는 메시지 중에서 common name 을 server 로 합니다.
# ./build-key-server server


중간에 묻는 메시지 중에서 common name 을 client1, client2, client3 으로 합니다.
필요한 클라이언트 수에 따라서 여러개 더 만들 수 있습니다.
# ./build-key client1
# ./build-key client2
# ./build-key client3


keys 디렉토리를 복사하거나 심볼릭 링크를 걸어줍니다.
# mkdir /usr/local/etc/openvpn/
# ln -s /root/easy-rsa/keys /usr/local/etc/openvpn/


OpenVPN의 설정 예제의 사본을 만들고 아래의 내용을 참고하여 수정합니다.
# cp /usr/local/share/doc/openvpn/sample-config-files/server.conf /usr/local/etc/openvpn/openvpn.conf
# vi /usr/local/etc/openvpn/openvpn.conf

[code]
# 제한을 받지 않는, 사용이 가능한 포트로 변경합니다.
port 8000

# 포트를 제한하는 인터넷 환경이라면 보통 UDP가 사용이 불가능할 수 있으므로 TCP로 변경합니다.
proto tcp
;proto udp
;dev tap
dev tun

# 위에서 만든 인증서 파일들의 위치입니다.
ca /usr/local/etc/openvpn/keys/ca.crt
cert /usr/local/etc/openvpn/keys/server.crt
key /usr/local/etc/openvpn/keys/server.key
dh /usr/local/etc/openvpn/keys/dh1024.pem

 

# VPN 서버를 게이트웨이로 지정하여, 모든 패킷이 통과하도록 합니다.

push "redirect-gateway"
[/code]

부팅시 OpenVPN이 실행될 수 있도록 rc.conf 파일에 아래의 내용을 추가합니다.

# vi /etc/rc.conf
[code]
openvpn_enable="YES"
[/code]

OpenVPN을 실행합니다.
# /usr/local/etc/rc.d/openvpn start


------------------------------------------------------------------------------------
윈도 클라이언트 연결

OpenVPN을 다운로드하고 설치합니다.
http://www.openvpn.net/index.php/open-source/downloads.html

서버에서 만든 ca.crt / client1.crt / client1.key 파일을 C:\Program Files\OpenVPN\config 의 위치에 복사합니다.
C:\Program Files\OpenVPN\sample-config\client.ovpn 파일도 위와 동일한 위치에 복사합니다.


client.ovpn 파일을 메모장이나 기타 텍스트 에디터로 열어서, 아래의 내용을 참고하여 수정합니다.
[code]
# 서버와 동일한 설정 TCP로 변경합니다.
proto tcp
;proto udp

# 서버의 IP 주소 혹은 도메인으로 변경합니다. 포트번호도 서버와 같게 변경합니다.
remote 123.123.123.1 8000

# 위에서 복사한 파일들의 경로를 적습니다.
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client0.crt"
key "C:\\Program Files\\OpenVPN\\config\\client0.key"
[/code]

바탕화면의 OpenVPN GUI를 실행하고, 생겨난 트레이 아이콘을 우측 클릭하여 Connect 를 클릭합니다.
연결 시도중에는 아이콘이 노란색으로 표시되며, 연결이 되면 아이콘이 녹색으로 표시됩니다.
만일 연결이 안된다면 아이콘을 우측 클릭하여 View Log 메뉴를 통해 원인을 알 수 있습니다.


-------------------------------------------------------------------------------
PF(Packet Filter) 설치를 통한 인터넷 공유

위에까지 완료했다면 보안성이 우수한 가상사설망으로서의 연결은 가능한 상태가 됩니다.
하지만, 인터넷은 불가능한 상태입니다. 인터넷을 가능하도록 하기 위해서 서버에 PF를 설치합니다.

커널 설정 파일(예제파일: GENERIC)에 아래의 내용을 추가하고, 컴파일합니다.
커널 컴파일 방법은 이곳에 있습니다. http://4444.textcube.com/2
[code]
# Firewall support
device          pf
device          pflog
device          pfsync

options         ALTQ
options         ALTQ_CBQ
options         ALTQ_RED
options         ALTQ_RIO
options         ALTQ_HFSC
options         ALTQ_PRIQ
[/code]


PF를 설정합니다.
# vi /etc/pf.conf
[code]
# 외부연결이 되어있는 이더넷 인터페이스 이름을 넣습니다.
ext_if="eth0"

# OpenVPN 의 인터페이스 설정입니다.
vpn_if="tun0"
vpn_network="10.8.0.0/24"

# OpenVPN 을 NAT로 사용할 수 있도록 합니다.
nat on $ext_if from $vpn_network to any -> ($ext_if)

# 8000 포트로 열려있는 OpenVPN 의 접근을 허용합니다. 그 이상은 잘 모릅니다.
# UDP를 사용한다면, tcp를 udp로 수정해야합니다.
pass in on $ext_if proto tcp from any to port 8000 keep state
pass quick on $vpn_if

# 접근을 허용하는 인바운드 포트입니다. 저의 경우 SSH FTP WWW를 열어두었습니다.
pass in on $ext_if proto tcp to ($ext_if) port ssh
pass in on $ext_if proto tcp to ($ext_if) port ftp
pass in on $ext_if proto tcp to ($ext_if) port www
[/code]

뭔지는 모르지만 패킷을 포워딩 시키는 비슷한 뭐시기를 추가합니다.
# vi /etc/sysctl.conf
[code]
net.inet.ip.forwarding=1
[/code]

PF를 rc.conf에 추가합니다.
# vi /etc/rc.conf
[code]
pf_enable="YES"
[/code]


재부팅하면 완료됩니다.
# reboot

클라이언트에서 접속을 시도해봅니다.

2009년 12월 20일 일요일

AjaXplorer 쉽고 단순하고 편리하고 한글을 지원하는 설치형 웹하드

쉽고 단순하고 편리하고 한글을 지원하는 설치형 웹하드 프로그램 AjaXplorer 를 소개합니다.

-Windows 탐색기 같은 느낌을 주는 드래그 & 드롭이 가능한 편리한 관리
(음원 미리듣기, 이미지 미리보기, 썸네일 등)
-한번에 다수의 파일 업로드 지원
-사용자에 따라서 열람 권한 부여 가능(Read & Write)
-한국어 공식 지원... 감격 ㅠ.ㅠ
-클라이언트 설치 필요없음. 웹브라우저로 즉시 사용.
-친구나 지인들간에 단순한 파일전송 용도로 적합.


서버는 FreeBSD 7.2-RELEASE, Apache2.2, PHP5.2.11 이 설치 된 환경입니다.
AjaXplorer는 Unix, Linux, MacOS, Windows 모두를 지원한다고 합니다.
또한, MySQL 과 같은 DB서버가 없어도 사용이 가능합니다.


압축을 풀고 conf.php 파일을 아래의 내용을 참고하여 기본언어, 파일 이름의 길이를 수정합니다.
/AjaXplorer-2.5.4/server/conf/conf.php
[code]
$default_language="kr"

$max_caracteres=100;
[/code]

AjaXplorer-2.5.4 디렉토리의 퍼미션을 변경합니다.
# chmod -R 707 AjaXplorer-2.5.4
또는 아래의 방법으로...
# chown -R www:www AjaXplorer-2.5.4


로케일 관련 경고를 출력하지만, 무시하고 click here to continue to AjaXplorer 를 클릭합니다.

버튼 이것저것 눌러보시면, 사용방법을 쉽게 익히실 수 있습니다. 기존의 admin 계정의 패스워드는 꼭 변경하시기 바랍니다.



업로드 할 수 있는 파일의 최대 사이즈 설정은 아래를 내용을 참조하여 php.ini 를 넉넉하게 설정합니다.
[code]
#스크립트의 동작 시간 제한
max_execution_time = 14400

#데이터의 입력 시간 제한
max_input_time = 14400

#받아들이는 최대 데이터 사이즈 제한. upload_max_filesize 보다 크게 수정합니다.
post_max_size = 4294967296

#PHP가 작업을 수행하는 임시 디렉토리. FreeBSD의 기본값은 /var/tmp/
#대용량 파일을 업로드하기 위해서 큰 파티션의 디렉토리로 수정한다.
upload_tmp_dir = /usr/phptmp/

#업로드 파일의 최대 사이즈 제한
upload_max_filesize = 2147483648

#데이터가 쓰래기로 처리되어 청소되는 시간
session.gc_maxlifetime = 14400
[/code]

/AjaXplorer/server/conf/config.php 파일도 수정합니다.
[code]
#업로드하는 한개의 파일에 대하여 최대 사이즈를 제한합니다.
$upload_max_size_per_file = 2147483648;

#한번에 업로드할 수 있는 파일의 최대 사이즈를 제한합니다.
$upload_max_size_total = 2147483648;
[/code]

2009년 12월 17일 목요일

2009년 12월 16일 수요일

FreeBSD7 cacti 기능!! linux memory usage 사용하기

linux - memory usage가 마음에 드는데, 유닉스인 FreeBSD에서는 작동하지 않는다.
하지만, 따로 추가적인 작업을 해주면 리눅스처럼 사용이 가능하다.

리눅스 에뮬레이터를 설치하고, 아래의 내용을 추가한다.
# cd /usr/ports/emulators/linux_base-fc4 && make install clean
# vi /etc/rc.conf
[code]
linux_enable="YES"
[/code]

fstab에 아래의 내용을 추가한다. 오타나면 부팅 불능의 사태가 발생할 수 있다!! 협박아님!! 진짜!!
# vi /etc/fstab
[code]
linproc /compat/linux/proc linprocfs rw 0 0
[/code]

cacti의 스크립트를 수정한다.
# vi /usr/local/share/cacti/scripts
[code]
#!/usr/bin/perl

$mem = `cat /compat/linux/proc/meminfo | grep -w "$ARGV[0]"`;
$mem =~ s/($ARGV[0].*\s)(.*[0-9])( kB)//;

print $2;
[/code]

# reboot


FreeBSD 7 시스템 사용량 통계를 그래프로 출력. rrdtool. cacti.

CPU, 메모리 사용량, 네트워크 트래픽 등을 기록하여, 그래프로 쉽게 출력해주는 cacti.
설치해두면 언젠가 시스템을 모니터링 해야할때가 오면 쓸모가 많습니다.



기본적으로 MySQL, Apache, PHP는 설치되어 있어야합니다. 제 블로그에 있습니다.
기준은 FreeBSD 7.2, Apache 2.2, PHP5, MySQL 5.1 UTF-8 입니다.
PHP5 설치 옵션 중에 net-snmp support 부분이 있을것입니다. 체크해주세요. (관련이 있는지는 잘 모름)

일단 cacti를 설치하도록 합니다. 의존성에 의해서 net-snmpd와 rrdtool이 함께 설치됩니다.
# cd /usr/ports/net-mgmt/cacti && make install clean


MySQL의 DB와 계정을 셋팅합니다.
# mysqladmin --user=root -p create cacti
# mysql -u root -p
mysql> GRANT ALL ON cacti.* TO cacti at localhost IDENTIFIED BY 'passwd'; FLUSH PRIVILEGES;
mysql> quit;
# mysql -u cacti -p passwd < /usr/local/share/cacti/cacti.sql


cacti의 DB연결을, 위에서 세팅한 DB에 맞게 수정합니다.
# vi /usr/local/share/cacti/include/config.php
[code]
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "passwd";
$database_port = "3306";
[/code]

crontab을 수정하여 아래의 내용을 추가합니다.
# vi /etc/crontab
[code]
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
[/code]

net-snmpd의 접근할 계정을 만들어줍니다.
# net-snmp-config  --create-snmpv3-user -ro
계정명 엔터, 패스워드 엔터, 빈칸으로 엔터


웹에서 접근이 가능하도록 링크를 만들어줍니다. 아파치 2.2 기준.
(링크하는 방법에 마음에 들지 않는다면, httpd.conf에 Alias를 추가해도 된다.)
# ln -s /usr/local/share/cacti /usr/local/www/apache22/data/cacti


필요한 데몬들을 활성화합니다.
# vi /etc/rc.conf
[code]
snmpd_enable="YES"
snmptrapd_enable="YES"
[/code]
# /etc/rc.d/cron restart
# /usr/local/etc/rc.d/snmpd start
# /usr/local/etc/rc.d/snmptrapd start

웹브라우저로 cacti에 접근하여 로그인. 초기 계정과 비밀번호는 admin / admin
http://호스트IP/cacti

cacti는 익숙해지려면, 잠시 혼란스러울 수 있습니다.
(죄송합니다... 제 수준으로는 제대로 설명을 못하겠습니다.)
좌측의 Devices 메뉴 클릭 후 Localhost 로 들어가서 노랗게 표시한 곳을 수정하고 저장한다.
SNMP 유저네임과 패스워드는 아까 net-snmp-config 툴로 만든 계정이다.
앗!!! 깜박하고 표시를 안해두었다!! 계정 밑의 SNMP Privacy Protocol은 None으로 한다!!


스크롤을 내려 하단에 보면 모니터을 원하는 장치를 추가할 수 있다.
SNMP를 설정했기 때문에 ucd/net snmp를 이용해서 모니터링해도 된다.

나의 경우는 기본적으로 있던 목록들을 전부 삭제하고, 아래의 4개를 추가했다.
ucd/net load average
ucd/net cpu usage
linux memory usage
snmp - interface statistics
추가했으면 좌측 상단메뉴의 new graphs를 클릭하여 모니터링을 원하는 장치들의 그래프를 만들어준다.
완료했으면 죄측 상단의 graphs 라는 큰 메뉴를 클릭하면 그래프가 5분 단위로 갱신되고 있다.





linux - memory usage가 마음에 드는데, 유닉스인 FreeBSD에서는 작동하지 않는다.
하지만, 따로 추가적인 작업을 해주면 리눅스처럼 사용이 가능하다.


리눅스 에뮬레이터를 설치하고, 아래의 내용을 추가한다.
# cd /usr/ports/emulators/linux_base-fc4 && make install clean
# vi /etc/rc.conf
[code]
linux_enable="YES"
[/code]


fstab에 아래의 내용을 추가한다. 오타나면 부팅 불능의 사태가 발생할 수 있다!! 협박아님!! 진짜!!
# vi /etc/fstab
[code]
linproc /compat/linux/proc linprocfs rw 0 0
[/code]


cacti의 스크립트를 수정한다.
# vi /usr/local/share/cacti/scripts
[code]
#!/usr/bin/perl

$mem = `cat /compat/linux/proc/meminfo | grep -w "$ARGV[0]"`;
$mem =~ s/($ARGV[0].*\s)(.*[0-9])( kB)//;

print $2;
[/code]

# reboot

참고 사이트: http://blog.pages.kr/151

2009년 12월 15일 화요일

강철의 연금술사 FA (리메이크) 36화 Torrent + 자막

Fairy Tail(페어리 테일) 10화 Torrent + 자막



점점 재밌군요... ㅎ

Gentoo Linux stage3 설치 - 업데이트!!

minimal 디스크 이미지를 레코딩한 CD를 사용하여 부팅하였습니다.

아무런 옵션없이 부팅하면 하드웨어 스캔중에 정지하는 사태가 발생할 경우, livecd의 부팅옵션을 다음과 같이 실행하면 해결됩니다.
boot: gentoo nodetect
 
부팅이 완료된 후 네트워크부터 잡아줍니다. nodetect 부팅옵션을 사용하지 않으셨다면, 별도의 작업을 필요로 하지 않고 바로 사용이 가능할 것입니다.
저의 경우에는 RTL8139 랜카드가 PCMCIA 슬롯을 사용하기 때문에, 추가적인 모듈이 필요합니다.
livecd ~ # modprobe yenta_socket
livecd ~ # modprobe 8139too

젠투를 설치할 파티션을 준비합니다. 편리한 UI를 제공하는 cfdisk를 사용하시면 수월합니다.
본인의 경우에는 /boot 32MB(hda1, bootable), swap 256MB(hda2), / 10000MB(hda3) 정도로 잡았습니다.
파티셔닝이 완료되면 파티션을 ext2 혹은 ext3로 선택하여 포멧하고, 스왑도 잡아줍니다.
livecd ~ # cfdisk
livecd ~ # mkfs.ext2 /dev/hda1
livecd ~ # mkfs.ext3 /dev/hda3
livecd ~ # mkswap /dev/hda2
livecd ~ # swapon /dev/hda2

파티션 설정과 포멧이 완료되면, 사용이 가능하도록 마운트합니다.
livecd ~ # mount /dev/hda3 /mnt/gentoo
livecd ~ # mkdir /mnt/gentoo/boot
livecd ~ # mount /dev/hda1 /mnt/gentoo/boot

젠투의 기본 베이스가 되는, stage3를 다운로드하여 하드에 풀어줍니다.
livecd ~ # cd /mnt/gentoo
livecd gentoo # tar vfxj stage3-i686-20091201.tar.bz2

proc를 마운트합니다.
livecd gentoo # mount -t proc proc /mnt/gentoo/proc

미러 서버를 빠른 곳으로 설정합니다. 국내의 빠른 미러를 선택하세요.
(서버에 문제가 있는 듯 합니다. 아래의 수동작업을 이용하세요.)
livecd gentoo # mirrorselect -i -o > /mnt/gentoo/etc/make.conf

※ 수동으로 작업할 경우: 자신의 환경에 맞게 설정하셔야합니다.
rm /mnt/gentoo/etc/make.conf
cp /usr/share/portage/config/make.conf.example /mnt/gentoo/etc/make.conf

vi /mnt/gentoo/etc/make.conf
[code]
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium2 -O2 -pipe"
CXXFLAGE="${CFLAGS}"
GENTOO_MIRRORS="http://ftp.daum.net/gentoo"
SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage"
[/code]

chroot를 이용하여 /mnt/gentoo를 /로 바꿔서 설치를 진행합니다.
livecd gentoo # cp /etc/resolv.conf /mnt/gentoo/etc/
livecd gentoo # chroot /mnt/gentoo /bin/bash
livecd / # env-update
livecd / # source /etc/profile
 
시간과 지역정보를 설정합니다.
livecd / # nano /etc/conf.d/clock
[code]
CLOCK="local"
TIMEZONE="Asia/Seoul"
[/code]

livecd / # date MMDDHHMMYYYY (월 일 시 분 년)

젠투의 장점이자 단점이며 특징(?)인 portage를 다운로드합니다.
livecd / # emerge --sync

준비해두었던 디스크를 부팅시에 자동으로 마운트 되도록 자신에게 맞게 포인트를 설정합니다.
livecd / # nano /etc/fstab
[code]
/dev/hda1________/boot________ext2________noatime________1 2
/dev/hda3________/____________ext3________noatime________0 1
/dev/hda2________none________swap_______sw____________0 0
[/code]

커널을 설치합니다. 설정이 두렵거나(?) 필요없다고 생각하시면 그냥 EXIT 로 넘어가시면 됩니다.
시스템에 따라 상당히 긴 시간을 필요로합니다.
livecd / # emerge -k sys-kernel/gentoo-sources
livecd / # emerge -k genkernel
livecd / # genkernel all --menuconfig

기본적으로 필요한 꾸러미를 설치해보도록 합니다.
livecd / # emerge dhcpcd
livecd / # emerge syslog-ng
livecd / # emerge vixie-cron
livecd / # rc-update add syslog-ng default
livecd / # rc-update add vixie-cron default

root 계정의 패스워드를 설정하고, 일반 사용자 계정을 추가합니다.
livecd / # passwd
livecd / # adduser USERNAME -m -g wheel
livecd / # passwd USERNAME

로케일과 호스트이름을 설정합니다.
livecd / # echo ko_KR.UTF-8 UTF-8 >> /etc/locale.gen
livecd / # nano /etc/conf.d/hostname
[code]
HOSTNAME="sun"
[/code]

부트로더 Grub 설치 및 설정 후 재부팅
livecd / # emerge grub
livecd / # grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
livecd / # nano /boot/grub/grub.conf
[code]
default 0
timeout 10

splashimage=(0,0)/boot/grub/splash.xpm.gz
title=Gentoo Linux
root (hd0,0)
kernel /kernel-genkernel-x86-2.6.31-gentoo-r6 root=/dev/ram0 real_root=/dev/hda3
initrd /initramfs-genkernel-x86-2.6.31-gentoo-r6
[/code]

livecd / # etc-update
livecd / # exit
livecd gentoo # cd /
livecd / # umount /mnt/gentoo/boot
livecd / # umount /mnt/gentoo/proc
livecd / # umount /mnt/gentoo
livecd / # reboot



FreeBSD 7.2 웹서버(APM) 설치 = mysql51, apache22, php5, vsftpd

cvsup을 통하여 포트트리를 업데이트 받습니다.
FreeBSD 6-RELEASE 이후로는 cvsup과 같은 기능을 제공하는 csup이 기본적으로 제공됩니다.

# mkdir /root/etc/
# cp /usr/share/examples/cvsup/ports-supfile /root/etc/
# vi /root/etc/ports/ports-supfile ←
cvsup 서버의 URL을 빠른 곳으로 수정하시면 좋습니다.
# csup -L 2 /root/etc/ports-supfile

mysql을 설치 및 비밀번호 설정 후 문자셋을 확인합니다.

# cd /usr/ports/databases/mysql51-server/
# make install clean WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes BUILD_STATIC=yes

# cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
# vi /etc/rc.conf ← mysql_enable="YES" 한 줄 추가합니다.
# /usr/local/etc/rc.d/mysql-server start
# mysqladmin -u root password '비밀번호'
# mysql -u root -p
mysql> show variables like 'c%';


apache를 설치하고, 아래의 내용을 추가합니다.
# cd /usr/ports/www/apache22
# make install clean
# vi /usr/local/etc/apache22/httpd.conf
[code]
<FilesMatch "\.ph(p[2-6]?|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.htm$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>
[/code]

option은 mysql, apache module 등을 반드시 체크해야합니다. 필요에 따라 GD등도 추가하세요.
# cd /usr/ports/lang/php5-extensions
# make config
# make install clean
# cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
# vi /etc/rc.conf ←
apache22_enable="YES" 한줄 추가합니다.
# apachectl start

vsftpd을 설치하고, 아래의 내용을 추가합니다.
# cd /usr/ports/ftp/vsftpd
# make install clean
# vi /usr/local/etc/vsftpd.conf
[code]
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
listen="NO"
[/code]

inetd을 활용하여, 사용자의 요청에 의해 vsftpd 실행되도록 설정합니다.
# vi /etc/inetd.conf ← ftp stream tcp nowait root /usr/local/libexec/vsftpd vsftpd 한줄 추가합니다.
# vi /etc/rc.conf ← inetd_enable="YES" 한줄 추가합니다.
# /etc/rc.d/inetd start




2009년 12월 10일 목요일

Fairy Tail(페어리 테일) 9화 Torrent + 자막




서버 온라인/오프라인 상태 확인

호스트의 포트가 열리거나 닫힌 상태를 간단하게 확인할 수 있는 코드입니다.
직접 운영하는 FTP, 스트리밍 서버가 있을 때, 웹사이트에 게시하여 편리하게 사용할 수 있습니다.

4444.textcube.com 은 확인을 원하는 호스트의 IP 혹은 URL을 넣으시고, 80 은 포트번호입니다.

[code]
<?
$fp = fsockopen ("4444.textcube.com", 80, $errno, $errstr, 2);
if ($fp) {
    echo "온라인";
} else {
     echo "오프라인";
    }
    fclose ($fp);
?>
[/code]

Windows XP/Vista/7 자동 로그온

혼자 사용하는 PC 혹은 노트북의 경우 부팅할때마다 비밀번호 로그온이 귀찮으시다면,
비밀번호를 없애버리시면 됩니다. 비밀번호를 자동으로 사용하도록 설정하시면 됩니다.

관리자 계정을 비밀번호 없이 사용하신다면, 잠재적인 네트워크 보안성 문제를 지니게 됩니다.
자신의 PC가 크래킹(악성 해킹) 경유지가 된다거나... 바이러스 유포지가 될 수도 있는 것입니다.
물론, 인터넷 연결을 전혀 사용하지 않으신다면 별 문제 없습니다.

이 방법은 Windows XP 이후로 모든 Windows OS에 대해서 동일합니다.

커맨드 프롬프트를 실행합니다.


control userpasswords2 를 명령합니다.


"사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음"의 체크를 해제 후 확인을 클릭하시면, 자동으로 로그온을 원하는 계정을 묻습니다. 틀리지 않도록 정확히 입력하세요.



커맨드 프롬프트가 불편하시다면 "실행"을 이용하세요. 저도 자주 이용하고 있습니다.


FTP로 삭제불가능한 파일 삭제

자신의 홈페이지 계정에 존재하는 파일중에 일부가 간혹 삭제가 안되는 경우가 있습니다.
게시판이나 웹사이트 빌더 등의 설치 자동화 스크립트를 사용하였을때, 생성되는 파일들이 가끔 일으키는 문제이며, 이것은 당연히 일어날수도 있는 퍼미션 Onwer에 관계 된 문제입니다.

아래의 PHP 코드를 계정내에 업로드하여 웹브라우저로 실행하면 편리하게 삭제할 수 있습니다.

주의!! 계정내에 중요한 파일들을 꼭 확인 및 백업하고 실행하세요!!

제 컴퓨터에서 발견되어 어느분이 제작하셨는지는 모르겠지만...
제작자분께 감사드립니다.

[code]
<?
$directory = dirname(__FILENAME__);

//set_time_limit(300);
function RmDirR ($dirName) {
$d = dir ($dirName);
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (Is_Dir($dirName."/".$entry)) {
RmDirR($dirName."/".$entry);
echo ($dirName."/".$entry."<BR>");
} else {
if(!strstr($dirName."/".$entry,basename(__FILENAME__))) {
UnLink ($dirName."/".$entry);
}
echo ($dirName."/".$entry."<BR>");
}
}
}
$d->close();
RmDir ($dirName);
}

function checkdeldir ($dirName) {
$d = dir ($dirName);
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (Is_Dir($dirName."/".$entry)) {
echo ($dirName."/".$entry."<BR>");
} else {
echo ($dirName."/".$entry."<BR>");
flush();
}
}
}
$d->close();
flush();
//checkdeldir($dirName);
}


if($run=='ok'){
RmDirR($directory);
} else {
checkdeldir($directory);
}
?>
위 파일을 삭제합니다..
<A HREF="<?=$PHP_SELF."?run=ok"?>">OK</A>
[/code]

2009년 12월 5일 토요일

성검의 블랙스미스 10화 + 자막

토렌트 클라이언트로 다운로드하시면 됩니다.



토렌트 사용법: http://4444.textcube.com/77

에반게리온 패러디? Petit Eva? Puchi Eva? - Evangelion@School Torrent

신세기 에반게리온의 캐릭터와 설정들을 가지고 아기자기하게 만들어진 간단한(짤방?) 애니메이션입니다.
음성을 통한 대화가 없기 때문에 히라가나, 카타카나만 알아도 별 문제없이 보실 수 있을겁니다.




파일 무결성 검사 프로그램 MD5summer

ftp / p2p 혹은 기타 파일 전송 수단으로 파일을 복사하였을때, 간혹 파일이 깨지는 경우가 있다.
한번도 그런일이 없어서 필요없다고 생각한다면... 이 글은 안보셔도 됩니다. ㅠㅠ


나의 경우에는 OS가 담겨있는 ISO 디스크 이미지 파일을 USB 외장 디스크에 복사하였는데, 일부분이 정상적으로 사용이 불가능했었다. 전송중에 깨져버린것이다... 낭패였다... 네트워크로 다시 전송받기에는 엄청난 시간이... (상향 5Mbps)
컴퓨터 본체의 전면 USB포트가 좀 불량하긴 했다. -_- 이것이 원인일것이라 추측된다.
그 뒤로 전면 포트를 사용하지 않았다...

그리고 얼마전 TV방송이 녹화 된 동영상 파일을 다운로드하였는데...
아주 잠시였기는 하지만, 일부가 깨져서 볼 수 없었다... 결국 내용이 궁금하여 다시 다운로드 하였다.
국내 유료 웹디스크의 미숙한 이어받기 기능의 버그가 원인이라고 추측된다...

크래커가 불순한 목적으로 네트워크상의 파일을 변형시켜서 실행이 불가능하게 혹은 악성 프로그램(바이러스?)으로 만들어 피해를 입었다는 다른 사람의 경험담도 봤다.


위와 같은 문제들을 해결하기 위해서 해외에서는 MD5 hash checksum(명칭이...)을 하는 모양이다.
간단하게 말해서 파일이 신용이 안되는 경우에 원본과 일치하는지 검사를 하는 것이다.
해외의 P2P망에서 자료를 받으면 왠만해서는 md5 hash값을 같이 받을 수 있다.
편의성을 위하여 md5확장자가 달려있는 파일을 같이 받는 경우도 있다.

MD5summer 라는 간단하고 강력한 프로그램이 있다.
다운로드: http://sourceforge.net/projects/md5summer/

HashTab 이라는 프로그램도 있는데, 특징은 파일 속성창에 Hash 검사 탭을 하나 만들어준다.
취향에 맞는 프로그램이 좋은 것이다. 써보셔도 좋음!

검사하고 싶은 파일이 있는 디렉토리를 선택한다.
Create sums 를 클릭하면 md5의 값을 만들어준다.
Verify sums 를 클릭하면 MD5의 값을 비교하여 무결성 검사를 해준다.

Verify sums를 클릭하면 MD5 파일의 위치를 묻는다.

검사를 진행하고 있다.

2009년 12월 4일 금요일

Darker than Black 2기 - 유성의 제미니 9화 Torrent + 자막






비트토렌트 클라이언트를 이용하셔야 다운로드가 가능합니다.
클라이언트는 마이크로토렌트(μTorrent)를 추천합니다.

토렌트 사용법: http://4444.textcube.com/77

Fairy Tail 8화 Torrent + 자막



토렌트 클라이언트를 이용하셔야 다운로드가 가능합니다.
클라이언트는 μTorrent(마이크로 토렌트)를 추천합니다.

강철의 연금술사 리메이크 34화 Torrent + 자막

강수록 흥미가 깊어지는 스토리를 담고 있는 강철의 연금술사 리메이크입니다.
전(前)의 작품과는 내용이 완전히 달라지고 있습니다... 다른 내용이라고 하지만 그래도 둘 다 재밌군요.
지금의 리메이크가 원작의 내용이라고 하는군요...






비트토렌트 클라이언트를 이용하셔야 다운로드가 가능합니다.
클라이언트는 마이크로토렌트(μTorrent)를 추천합니다.

2009년 12월 3일 목요일

저사양 PC Windows 7 다음팟플레이어 DXVA 사용하기

다음팟플레이어는 국내최초의 DXVA 기능을 내장하고 있는 무료 멀티미디어 재생 프로그램이며,
KMP개발자분이 개발하였다고 알려져있습니다.

윈도7 설치 후 다음팟플레이어에서 H.264 코덱의 동영상이 버벅이는 현상이 일어났습니다.
알고보니 다음팟플레이어의 DXVA 관련 설정들이 윈도XP와 윈도7이 달랐던 것입니다.
제대로 설정 후에는 역시 부드럽게 잘 재생되었습니다.

참고로 제 시스템 스펙은 펜티엄4 노스우드입니다. 자세한 내용 → http://4444.textcube.com/101