부품을 구매할 일이 있어서 환율을 보고 있는데 계속 오르기만 하는군요. 네이버에서 환율이 오른 기록을 보니 달러화가 15일간 거의 쉬지 않고 올랐네요. 그래프의 추이로 봐도 6개월동안 급등하고 있습니다.
나라가 다 죽어가도 대기업들의 수출이 쑥쑥 늘어나서 자신들에게 안겨다 줄 비자금만 그리고 있는 것일까요? 환율이 오르도록 조장했다가, 마치 불을 질렀는데 예상 외로 불이 번지자 그걸 어떻게든 덮어 보려는 듯이 달러를 풀어서 외환 보유고만 급속도로 줄어들고 말았죠. 지금 이 분위기로 봐서는 당분간 달러가 계속 오를 듯 하네요.
기름값이 어떻게 안 오르고 있는지 그 메커니즘이 조금 신기할 따름입니다.
역으로 얘기하면 제 애드센스 수입이 늘어나기는 하겠지만 어차피 물가도 같이 오를테니 결국은 제 월급이 역으로 줄어드는 효과만 나타나겠죠.

이래서는 언제쯤 부품 구입할 시기를 잡아야 할지..

'업무' 카테고리의 다른 글

IoT 진행 방향과 애플 와치  (0) 2015.04.10

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
슬슬 일을 시작할 때라서 관련된 Datasheet를 보고 있습니다.

데이터시트란걸 처음 접한건 대학교 3학년때 마이크로프로세서 실험 수업을 들으면서 PIC의 데이터시트를 처음 접하게 되었습니다. 필요한 정보는 데이터시트에 다 있으니 데이터시트 보는 것이 아주 중요하다는 교수님 말씀이 그 때 왠지 귀에 담게 되더군요.

일을 하면서 접하는 데이터 시트는 참으로 딱딱하지만 실은 공대인의 연예편지라는 느낌이 든달까요? 수줍게 자신의 스펙을 늘어놓으면서도 실은 정작 중요한 얘기는 빼먹거나 대강 설명해놓거나 틀린 경우가 종종 있어요. 그래서 데이터 시트를 잘 쓰는 회사의 부품이 호감이 간달까요... 데이터시트의 기본적인 틀은 비슷하다고 해도 회사마다 쓰는 방법이 다르거든요.

데이터시트란 하드웨어에 있어서 칩, 부품, 모듈, 보드 등의 특성, 쓰는 법, 인풋, 아웃풋, 담고 있는 것 들을 설명해놓은 것이지요. 처음에는 이게 뭔가 싶기도 하고 천페이지가 넘는 데이터시트를 보면 눈앞이 가물가물해지기도 합니다만 실제로는 양이 많은 데이터 시트는 다 읽을 필요도 없고 별 내용이 없는 경우도 많지요.

이번 프로젝트를 하게 되면 이번에도 꽤나 데이터시트 좀 읽어야 하고, 라이브러리 추출해서 캐드 업체에 넘겨서 풋프린트를 만들어야 하죠. 만약 보드가 안되면 죽어라도 데이터시트를 파면서 고쳐야 한답니다. 하드웨어 작업은 데이터 시트에서 시작해서 데이터 시트로 끝나죠. 부트로더도 거의 데이터 시트에 의존적이예요. 커널도 사실 많은 부분을 의존하죠. 그래서 하드웨어를 한다는건 칩에서 커널, 그리고 드라이버까지를 일컫는 경우가 많고 그걸 기반으로 기능을 구현하는걸 소프트웨어라고 하죠.

아직 부트로더와 커널은 공부중이고, 드라이버는 아직 손도 못대고 있습니다만 결국 하드웨어로써 살아남으려면 이걸 정복해야겠구나라고 생각하고 있답니다.

조금 낯선 이야기죠?


위의 파일은 지금 제가 보고 있는 데이터시트예요. 어크로뱃 리더가 필요하답니다. 이걸 보면 여러분은 어떤 감정이 드시는지?

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
http://www.eetkorea.com/

위의 주소는 전자엔지니어 주소입니다. 사업자등록증이 있으면 전자엔지니어를 무료로 구독할 수 있습니다. 물론 웹으로도 볼 수 있습니다만 봉투에 담겨서 날아오는 얄팍한 종이책은 오프라인과는 비교할 수가 없죠.

전자엔지니어와 인연을 맺은지 거의 한 3년이 다 되어갑니다. 이전에 다니던 회사에서 정기 구독을 신청했는데 꽤 자주 날아오더군요. 지금도 정확히 어느 주기로 날아오는지는 기억하지 못합니다만 잊을만하면 때 맞춰서 날아오더군요.

처음에는 일이 바빠서 다 읽지 못하고 구석에 쌓아두기만 했습니다. 하지만 어느순간부터 여여유를 찾게되고 그 때부터 읽어보기 시작했는데 꽤나 흥미로운 내용들이 많이 있습니다. 물론 기술 선전도 많고, 광고도 많이 들어있고, 광고 형태의 글도 많이 들어있지만 그래도 시장 동향과 트랜드, 미래의 발전상 같은 것들을 공짜로 때맞춰 읽을 수 있다는 건 크나큰 매력이죠. 게다가 재가 개발하는 내용과 관련되는 것들도 종종 보이는데, 글로벌한 상황 등을 읽고 있으면 굉장한 도움이 된답니다.

대만 Computex에 가봤더니 글로벌 소스(global sources)에 엄청난 미녀분들이 계셔서 놀랐는데 나중에 알고보니 글로벌 소스가 전자엔지니어더라구요.

정기적으로 재구독시기가 되면 신청서가 다시 날아오고 볼펜으로 다시 기입해서 팩스로 보내면 게속 재구독할 수 있습니다. 회사에 다니는 한은 계속 볼수 있는거죠.

내용 자체는 소프트웨어적으로 심화된 내용은 거의 없고, 하드웨어적인 내용과, 칩내용. 임베디드 내용, 기타 솔루션 등 하드웨어쪽에 치우친 이야기를 다루고 있습니다만 그렇다고 할지라도 전체적인 흐림을 읽을 수 있는 좋은 기회라고 생각합니다.

당신도 개발자라면 정기구독해서 여유가 있을 때, 화장실 갈 때 읽어보면 어떨까요? 

'업무 > 기타' 카테고리의 다른 글

복잡한 돌비 라이센스  (0) 2009.11.17
데이터시트란?  (2) 2008.09.08
MiniPCI to PCI Adaptor  (4) 2008.08.05
디지키에서 2008년 카탈로그가 왔군요.  (2) 2008.07.22
블루투스에 대한 간단한 정리  (0) 2008.05.09

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,

vsftpd 설정하기

업무/Linux 2008. 8. 22. 18:01
ftp 서버로 오랫동안 지켜오던 Proftpd의 자리를 누군가 빼앗으려 한다. 그 분은 proftpd의 문제점을 모두 보완하고, 속도, 성능, 보안을 향상시켜 더욱 강력하게 만들어 졌다. 그분이 바로 금번 리뷰에서 소개할 vsftpd 이다. 이름에서부터 알 수 있듯 Very Secure FTP 서버이다. 이 프로그램은 배포사이트에서 최상급 형용사(most, fastest)를 사용하여 자랑할 만큼 자신 있게 말하는 부분이 속도와 보안성이다. 

   Probably the most secure and fastest FTP server for UNIX-like systems.

 최신버전인 2.0.3으로 업그래이드 되면서 많은 버그들이 고쳐졌으며, 특히 SSL 쪽 버그를 많이 고쳤다고 한다. 금번 리뷰에서는 vsftpd를 설치해서 운영하면서 장, 단점을 살펴보도록 하겠다.

  먼저 공식 웹사이트에서 소스를 다운로드 받는다.

  vsftpd-2.0.3.tar.gz 파일의 용량은 겨우 150K에 불과하다. 압축을 풀고, 모든 프로그램의 설치과정에 있었던 컴파일 환경설정과정인 configure 과정은 vsftpd는 없다. 바로 컴파일 한 다음 , 설치하면 된다.


tar xvfz vsftpd-2.0.3.tar.gz

cd vsftpd-2.0.3

make && make install


  컴파일을 성공적으로 마쳤다면, 설치가 될 것이다. 설치된 파일을 찾아보면 겨우 /usr/local/sbin/vsftpd 라는 것을 알 수 있다.


  그런 다음 설정파일 샘플을 복사한다. 아래는 install 명령어를 사용하여 소스디렉토리의 vsftpd.conf 파일을 /etc/vsftpd.conf 파일으로 복사하며, 퍼미션을 600으로 변경한다.

install -m 600 vsftpd.conf /etc/vsftpd.conf


  FTP서버를 xinetd모드로 운영하기 위해 xinetd.d/vsftpd 파일을 /etc/xinetd.d/vsftpd 으로 복사하며, 퍼미션을 600으로 변경한다.

install -m 600 xinetd.d/vsftpd /etc/xinetd.d/vsftpd


  마지막으로 pam인증을 하기위해 pam 설정파일을 복사해 준다. 이 파일을 복사해 주지 않으면, 접속은 되지만, 정확한 id와 비밀번호를 넣었음에도 로그인 실패라고 나오며, 별도 로그는 남지 않음에 주의하기 바란다.

cp RedHat/vsftpd.pam  /etc/pam.d/vsftpd


  이렇게 설치를 했다면, 이제 설정파일(/etc/vsftpd.conf)을 수정해야 한다. vsftpd의 운영방법은 크게 standalone으로 독자적인 데몬을 이용하여 서버를 운영하는 방법과, xinetd의 도움을 받아 운용하는 방법이 있다. FTP서버가 파일서버용도가 아니라면, 꼭 떠있을 필요는 없기에 xinetd모드로 설정하겠다. 하지만, 꼭 standalone모드로 돌려야 한다면, 간단하게 /etc/vsftpd.conf 파일에서 listen=YES 으로 하고, xinetd에 등록된 vsftp를 ntsysv등의 유틸리티로 내려주고 xinetd를 재 시작해주고, /usr/local/sbin/vsftpd & 이렇게 데몬을 띄워주면 운영가능하다. 이제 xinetd모드로 설정하는 법을 알아 보도록 하자.

  먼저 xinetd설정파일(/etc/xinetd.d/vsftpd)을 확인한다.

위 설정파일은 위 설치과정에서 소스파일 디렉토리에서 복사한 파일이다. 보다 자세한 설정을 하길 원한다면, xinetd 매뉴얼을 참고하길 바란다.

  ntsysv 명령으로 서버 시작시 자동 시작하게 설정한다.


이렇게 설정하고, xinetd를 재 시작한다.


이렇게 하면, 21번 포트로 접속을 받아들일 준비가 된다. 마지막으로 설정파일을 수정하여 일반적인 ftp 서버에 맞게 맞추어 보겠다.

위 설정파일은 기본적으로 ftp 서버를 운영하기 위한 설정이다.


  무명접속을 허용하지 않으며(anonymous_enable=NO), 서버의계정 접속을 허용하며(local_enable=YES), 디렉토리에 접근시 메시지를 보여주며(dirmessage_enable=YES), xferlog를 /var/log/vsftpd.log에 기록하며(xferlog_enable=YES, xferlog_file=/var/log/vsftpd.log), 기본적으로 모든 사용자 접속을 허용하며(userlist_enable=NO), pam인증에 사용될 서비스파일은 vsftpd라는 파일이라고 지정(pam_service_name=vsftpd)하였다. 이젠 접속해 보도록 하겠다.

지금까지 ftp 서버를 설치과정과, 기본적으로 운영할 수 있게 설정하는 과정에 대해서 알아 봤다. 이제 어떤점이 좋은지 알아 보도록 하겠다.


  설치과정에서 보았듯이 실행파일의 용량이 작다. 다음은 proftpd 1.2.10버전과 비교한 자료이다.

proftpd는 408KByte이며, vsftpd는 88KByte이다. 약 1/5배이다.


  설정파일이 간단하며 직관적이다.

항  목

Proftpd

vsftpd

standalone운용

ServerType  standalone

listen=YES

무명접속허용

<Anonymous  > ~~~~ </Anonymous>

anonymous_enable=NO

전송속도제한

TransferRate APPE,RETR,STOR,STOU 100.0:152428800

anon_max_rate=100

chroot home directory

DefaultRoot  ~

chroot_local_user=YES


위 표는 proftpd와 vsftpd 설정파일의 일부이다. vsftpd의 설정파일이 보다 직관적이며, 쉽게 설정할 수 있음을 알 수 있다.


  기본적으로 ascii 모드로 파일 전송을 막을 수 있다. 이 설정은 아주 유용하게 사용된다. PC에서 ftp 클라이언트로 알ftp, wsftp 등 ftp 전용 클라이언트를 사용하지 않고, 인터넷익스플러로를 사용한다면, 서버에 텍스트파일을 올리고 받으면 파일의 마지막 "CRLF"문자가 "LF"로 변하여 올라간다. 그 파일을 다시 PC로 받았을때 곤란한 경우가 생긴다. 근본적으로 ascii 모드의 사용을 차단하므로 이런 경우를 막을 수 있다. 나는 보안, 빠른 속도, 안정성 보다는 이면이 마음에 들어 vsftpd를 처음 사용하게 되었다. 설정항목은 다음과 같다.

ascii_download_enable = NO
ascii_upload_enable = NO


  SSL 을 사용한 보안 통신이 가능하다. 이는 ftp 취약점인 스누핑이나 스푸핑에 id와 password같은 중요정보가 노출된다는 점이 보완되며, 중요한 데이터를 보호 할 수 있다. 그렇지만, 아직 일반화 되지않았기 때문에 ftp서버는 SSL을 사용하지 않는 일반적인 형태로 운영해야 할 것 같다.

 

  vsftpd는 보안뿐만 아니리 뛰어난 성능을 자랑한다.

  위 그래프는 대형 사이트에서 1600접속 까지 지속적이며, 안정적이게 운영된다는 것을 강조하기위해배포 사이트에 올라온 그래프이다. 한 서버에서 저렇게 많은 접속자를 처리한다는 것은, 안정성, 성능을 신뢰 할 수 있을 듯 하다.


 다음은 이 vsftpd를 사용하는 커다란 ftp 사이트들이다.

ftp.redhat.com, ftp.suse.com, ftp.debian.org, ftp.openbsd.org, ftp.freebsd.org, ftp.gnu.org, ftp.gnome.org, ftp.kde.org, ftp.kernel.org, rpmfind.net, ftp.linux.org.uk, ftp.gimp.org, ftp-stud.fht-esslingen.de, gd.tuwien.ac.at, ftp.sunet.se, ftp.ximian.com, ftp.engardelinux.org, ftp.sunsite.org.uk, ftp.isc.org...


 vsftpd는 GPL라이센스를 따르는 아주 훌륭한 FTP서버이다. 단지 아쉬운 점은 가볍게 만들기 위해  mysql과의 연동과 같은 유용한 기능들이 빠져있다. 그만큼 성능이 우수하니 대 만족이다.


참고사이트 : vsftpd.beasts.org

참고서적 : 리눅스 서버관리 실무 바이블 ( 수퍼유저코리아, 박성수)

test OS : Fedora Core 2 (Kernel 2.6.10)

작성자 수퍼유저코리아 정우영 (doly@superuser.co.kr)

저작권 : 본 문서는 파일형식(pdf)을 바꾸지 않는 한 자유롭게 배포 가능합니다


WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

사진에 나와있는 보드는 miniPCI 인터페이스를 PCI 인터페이스로 바꿔주는 보드입니다. miniPCI가 PCI 2.2 규격을 준수하기 때문에 가능한 것인데요 문제는 국내에서는 팔지 않는군요. 해외 판매 가격은 대략 2만원이 조금 넘는데.. 카드로라도 긁어서 사야할 모양입니다. 단 배송료는? ㅠㅠ 이번 일을 하는데 필요할 것 같아서요. 일반 데스크탑 PC에는 miniPCI 슬롯이 없기 때문이죠.

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
Digikey에서 2008년 카탈로그가 무려 2600페이지의 두께로 왔습니다. 때가 되면 늘 오긴 하지만 그 두께에는 아직도 적응이 되지를 않는군요.

디지키에서 늘 물건을 사는건 아닙니다. 디지키의 물건은 꽤나 비싼편이거든요. 시간만 있으면 싸게 살 수 있는 방법이 있지만 문제는 시간이 없을 때가 되겠지요. 부품의 풋프린트가 있어야 캐드 작업을 할 수 있는데 부품을 확보하지도 못한 상태에서 캐드를 내보낼 수가 없으니 시간이 급하면 어쩔 수 없이 사곤 합니다.

뭐 그리고 때로는 디지키에서 밖에 못구할 물건도 가끔은 있거든요. 오래된 부품들은 회사 자체에서도 재고가 없고 재생산 계획이 밀려있을 경우 시장에도 재고가 없는 일이 있는데 그런 경우 종종 디지키에서 부품을 사곤 합니다.

또 카탈로그를 보고 특성표에 따라 부품을 고를 수 있다는 것도 꽤나 편리한 일이지요. 검색이라는 그 대상과 범주를 알 때는 명확하게 할 수 있지만 모를때는 꽤나 애매하죠. 자신이 뭘 모르는지 모르니까요. 하지만 카탈로그는 자신이 뭘 모르는지 알게 해줍니다. 특히 종이 카탈로그는 뒤적뒤적 하면서 은근히 쇼핑의 재미도 맛볼 수 있지요.

곧 올해에도 프로젝트가 시작합니다. 보드를 만들어야 할일이 앞으로 제법 있어요. 이번에도 부품수급하는데 꽤나 애를 먹긴하겠지만 어쩔 수 없지요. 그래서 디지키도 올해는 한 번 적극 이용해볼 생각입니다.

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
페도라 코어 6에서 고정 아이피를 잡아줘야 하는데  ifcfg-eth0의 설정을 잡아주고 나서 핑은 되지만 파이어폭스가 동작을 안하더군요.

엄청 고민을 하고 있었는데 결론은 DNS서버 아이피를 잡아주지 않았던 것이 문제였어요.

시스템 -> 관리 -> 네트워크의 DNS탭에서 DNS의 주소를 디폴트 게이트웨이 즉 라우터(공유기)의 주소로 잡아주니까 되네요.

먼가 하나 해결되니 기분이 좋군요.

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,

1. 서비스 확인

# ps -aux | grep ftp

root    2485    0.0    0.1    4304    480    ?    Ss    10:02    0:00    /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

와 같이 ftp 서비스가 실행되고 있어야 합니다.


2. ftp 접근 권한 확인

/etc/hosts.deny와 /etc/hosts.allow에서 알맞게 설정해 주세요.


/etc/hosts.deny의 ALL:ALL을 제거 하거나

/etc/hosts.allow에서 in.ftpd : IP 또는 vsftpd: IP를 적어주거나 둘중에 하나를 하면 됩니다.

참고로 저는

/etc/hosts.deny의 ALL:ALL을 #(주석)처리 했습니다


3. 서비스 재시작(/etc/rc.d/init.d/xinetd restart 명령은 안됨)

# /etc/rc.d/init.d/vsftpd restart


참고사항

1. ftp login 시 root 접근 제한

/etc/vsftpd/ftpusers 의 접근 제한 목록에 root가 포함되어 있으면  root로 login이 안됨

보안상의 이유로 root의 접속을 막아 놓는게 좋음


2. /etc/vsftpd/vsftpd.conf 의 주요 설정
# anonymous 사용자의 접속 허용 여부 (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)

# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list 에 지정한다.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES


Telnet 설정 및 root 계정 허용하기

①telnet 설치

telnet은 기본적으로 standalone 타입 데몬이 아닌 xinetd 타입 데몬(xinetd 데몬에 종속되는 것을 의미하며 xinetd 데몬이 죽으면 telnet 데몬도 같이 죽음)이다.


- 먼저 telnet이 설치되어 있는 있는지 확인, telnet-server가 설치되어 있지 않으면 /etc/xinetd.d/telnet 파일이 존재하지 않는다.

# rpm -qa telnet-server


- 쉘에 아무것도 나타나지 않으면 설치되지 않은 것, yum을 이용하여 설치

# yum -y install telnet-server


②telnet 설정

설정 파일: /etc/xinetd.d/telnet


- vi 에디터로 연 후 disable=yes를 disable=no로 바꾸어 주고 저장

# vi /etc/xinet.d/telnet

# service xinetd restart


③root 계정으로 telnet 접속 설정

설정 파일: /etc/securetty


[중요]: /etc/securetty 파일은 시스템 관리자가 시스템에 로그인할 수 있는 안전한 터미널에 대한 정보가 저장되어 있다. 보안을 위해서 일반적으로 가상콘솔이 설정되어 있다.  /etc/securetty 파일을 다른 이름을 바꾸거나 삭제하면 된다. console, vc/1 ~ 11, tty1 ~ 11이 적용 됨

# mv /etc/securetty /etc/securetty.old


환경: Redhat Linux 9.0, Fedora Core 4


FTP서버 vsftpd 설치와 운영 (한글로그 패치 포함)
글쓴이 :
좋은진호 (2003년 10월 09일 오전 02:54) 읽은수: 5,839 [ 네트워크 # 트랙백(0) 인쇄용 페이지 본문 email로 보내기 ]
네트워크 작성자 : 좋은진호(truefeel, http://coffeenix.net/)
작성일 : 2003.10.01(수)
수정일 : 2004.01.08(목), chroot_list_enable 글 추가

이 글은 7월에 썼던 'vsftpd에서 한글파일로그와 lastlog 로긴확인하기'를 기초로 작성하였다.

1. vsftpd FTP 서버에 대해

vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)

* 지원 및 테스트된 OS

- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX

* 주요 기능

- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...

2. vsftpd 설치

※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.

http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.

-------------------------------------------------------------
# tar xvfz vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0
-------------------------------------------------------------

한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의

str_replace_unprintable(p_str, '?');

를 다음처럼 주석 처리한다.

/* str_replace_unprintable(p_str, '?'); */

또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서

#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.

-------------------------------------------------------------
# make
# make install (vsftpd 데몬, man page, xinetd 용 설정 파일 설치)
# cp vsftpd.conf /etc (환경설정 파일 복사)
# chmod 600 /etc/vsftpd.conf
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd (PAM 설정 파일 복사)
-------------------------------------------------------------

/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.

pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)

-------------------------------------------------------------
# FTP 접속을 허용하지 않을 ID를 등록한다.
# /etc/passwd를 참조해서 설치할 서버의 환경에 맞게 등록
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
smmsp
xfs
gdm
mysql
-------------------------------------------------------------

3. vsftpd.conf 의 주요 설정

-------------------------------------------------------------
# anonymous 사용자의 접속 허용 여부 (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
# ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)
# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에
# 지정한다.
# chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라.
#
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

# -------------------------------------------------------------------
# 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다.
# ※ 중요한 설정은 굵은 글씨로 표시
# -------------------------------------------------------------------

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES

# 사용자가 자신의 home directory를 벗어나지 못하도록 설정
chroot_local_user=YES

# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO
#
#  - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음
#   그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김
#  - vsftpd 스타일 로그 예
#
#  Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1"
#  Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3"
#  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리
#  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0

# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함
#
# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3

# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21
-------------------------------------------------------------

필요한 설정이 끝났으면 xinetd를 재실행한다.

-------------------------------------------------------------
# /etc/rc.d/init.d/xinetd restart
-------------------------------------------------------------

4. 문제 해결

1) ftpwho 같은 명령은 있나?
  또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?

 ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.

 # ps -ef|grep vsftpd
 # fuser -v ftp/tcp

 vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.

2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?

 vsftpd는 출력할 수 없다고 판단하는
 ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
 따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.

3) 사용자가 홈디렉토리를 못 벗어나게 하고 싶는데?

/etc/vsftpd.conf에 다음을 추가하면, 모든 사용자는 자신의 홈디렉토리만 접근할 수 있다.

chroot_local_user=YES

또한 특정 사용자로만 제한을 하고 싶다면 다음과 같이 한다. /etc/vsftpd.chroot_list에는 제한할
사용자 ID를 한줄에 하나씩 나열하면 된다.

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

주의할 것은 chroot_local_user=YES와 chroot_list_enable=YES를 함께 사용할 경우에는
/etc/vsftpd.chroot_list에 포함된 사용자 ID만 제한없이 홈디렉토리를 벗어날 수 있다.
즉, 반대로 작용한다.

standalone으로 FTP서버가 동작중이면 재실행 필요. standalone에 대해서는 6)번에서.

4) root로 접속할 수는 없나?

 가능하면 root 접속은 허용하지 않기를 바란다.
 /etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.

5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.

 /etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
 여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.

 Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd

6) standalone으로 운영하고 싶다.
  (즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)

 /etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
 xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.

 레드햇의 경우 /etc/rc.d/init.d/xinetd restart

 이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)

 # /usr/local/sbin/vsftpd &

7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)

 * xinetd를 이용하는 경우

  /etc/service 에 'ftp2  11121/tcp' 한 줄을 추가한다.
  그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
  service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.

 * standalone으로 운영하는 경우

  /etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.

 바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)

8) 업로드 파일 크기를 제한하는 방법은 없나요? 이를테면 5MB이상의 파일은 업로드 못한다든지.

현재 1.2.1버전까지 vsftpd 자체에 설정하는 방법은 없습니다.

5. 참고할만한 문서

* vsftpd 1.2.0 설치 문서
 
ftp://vsftpd.beasts.org/users/cevans/untar/vsftpd-1.2.0/INSTALL
* vsftpd.conf man page
* vsftpd에서 한글파일로그와 lastlog 로긴확인하기 (좋은진호)
 
http://coffeenix.net/board_view.php?bd_code=4
* vsftpd에서 전송속도 제한 (bandwidth limit) (좋은진호)
 
http://coffeenix.net/board_view.php?bd_code=21
<  커널 컴파일 | SSH 다중 세션 종료 스크립트  >


1. /etc/xinetd.d/telnet 설정

# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no    <- yes를 no로 바꾼다.
}


2. 서비스 재시작

# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]


1. 설치 확인
# rpm -qa | grep tftp

2. 설치
# yum install tftp
# yum install tftp-server

3. /etc/xinetd.d/tftp 설정
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no    <- yes를 no로 변경
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

-s /tftpboot 에서 -s 옵션은 다른 디렉토리로의 이동 금지 옵션
                           -c 옵션은 새로운 화일 생성 가능(default는 새로운 화일 생성 금지, 같은 이름의 화일이 있으면 upload 가능)

4. 서비스 재시작
# service xinetd restart

5. 동작 확인
# netstat -al | grep tftp
udp        0      0 *:tftp                      *:*

6. /tftpboot 디렉토리 확인
# cd /tftpboot
tftp 접속을 하면 /tftpboot 디렉토리가 홈디렉토리임


1.Default Gateway 설정 파일

파일 이름 : /etc/sysconfig/network

NETWORKING=yes
: 통신이 되도록 지원할 것인가의 여부(yes or no)

HOSTNAME=proneer.co.kr
: 서버의 호스트네임(Hostname)을 설정

GATEWAYDEV=eth0
: Default Gateway 장치명

GATEWAY=192.168.0.1
: 시스템 전체의 Default Gateway(각 interface에서 따로 gateway를 설정하면 그것이 우선)

FORWARD_IPV4=no
: 시스템이 라우터 역할을 할 것인지 여부, 패킷 포워딩을 수행할 경우는 yes 그렇지 않을 경우는 no 설정


2.Network Interface Card(NIC) 설정 파일

파일 이름 : /etc/sysconfig/network-scripts/ifcfg-ethx
: ifcfg-eth의 x는 0부터 시스템에 설치되어 있는 NIC 숫자 만큼 늘어난다.

DEVICE=eth0
: 네트워크 디바이스의 장치명, 리눅스는 ethx로 네트워크 디바이스 장치명이 정해져 있음

BOOTPROTO=static
: NIC에 IP를 Dynamic으로 설정할 것인지 아니면 Static으로 설정할 것인지 정함(dhcp = 유동 IP 설정으로 DHCP Server를 통하여 IP 설정, static = 고정 IP 설정으로 관리자가 IP를 직접 입력)

IPADDR=192.168.0.2
: eth0에 IP 주소를 설정

BROADCAST=192.168.0.255
: Broadcast 주소를 설정

NETMASK=255.255.255.0
: Netmask 값을 설정

NETWORK=192.168.0.0
: 해당 네트워크의 Network ID 설정

ONBOOT=yes
: 해당 NIC를 시스템이 부팅할 때 활성화할지 여부(yes or no)

USERCTL=no
: 해당 NIC를 root를 제외한 사용자가 On/Off 가능하게 할지 여부(yes or no)

GATEWAY=192.168.0.1
: 해당 NIC의 Default Gateway를 설정한다. /etc/sysconfig/network 파일에서 설정한 gateway 보다 우선한다.


3.DNS 설정 파일

파일 이름 : /etc/resolv.conf

search nameserver.or.kr
: 호스트네임만 지정했을 경우 뒤에 자동으로 chosun.ac.kr를 붙임

nameserver 168.126.63.1
: 네임서버의 IP를 지정, 네임서버의 지정 개수는 제한이 없고 응답이 없을 경우 다음에 지정한 네임서버를 사용


중요 : 변경된 정보를 적용하기 위하여 시스템을 재부팅하거나 아래와 같은 명령을 사용
: /etc/rc.d/init.d/network restart       or     /etc/init.d/network restart


linux IP Setting Methods


Run Level Process
0 시스템의 Shutdown,halt.
1 1인 관리자 모드(Single 모드).
2 멀티유저 로컬 프로세서 데몬.NFS
3 멀티유저 리모트 프로세서 데몬 (일반적인 상태).
4 싱글유저 스테이트 (root만 접속가능) 단 root 화일 시스템만 보임.
5 X 로그인
6 리부팅(reboot).

종료방법
#init 0
#telinit 0
#shutdown -i0 -g0 -y (일반적인종료)
#shutdown -h 종료후 halt 상태로
#shutdown -r 리부팅.
#init s  싱글상태로 전환
#reboot  (리부팅)

NetWork Configuration
#ifconfig -a    -인터페이스 점검.
( ping telnet traceroite nslookup dmesg netstat -nr )

/etc/init.d/network restart  (start,stop)

1. 호스트네임,게이트웨이설정.
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localhost
GATEWAYDEY=eth0
GATEWAY=192.168.1.1


2. 네트웍 인터페이스 설정.
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none (dhcp)
BROADCAST=192.168.1.255
IPADDR=192.168.1.5
NETMASK=255.255.0.0
omBOOT=yes

3.DNS서버주소
/etc/resolv.conf
search servername.org
nameserver 192.168.1.1
nameserver 192.168.1.5

4.호스트alies
/etc/hosts
127.0.0.1             localhost.host          localhost
192.168.1.5          localhost

5.호스트명선행처리
/etc/host.conf
order     hosts,bind

# /etc/nologin  접속금지 메세지 설정 (존재하면 접속 불가)
접속이 금지됩니다. 담에 다시 접속해 주세요.

#free - 사용중인 메모리양
/etc/issue.net 파일 (telnet login 시에 보여지는 파일)
/etc/motd 파일 (login 후에 환영메세지)

/proc/sys/net/ipv4/icmp_echo_ignore_all 
1            <- (ping 응답 안하게 설정, default 0 )
 
※ 리눅스에서의 네트워크 장치 이름

    랜카드 장착시 -> '/dev/eth0'  ,  '/dev/eth1'  ,  ...


☆ Gateway , Router
※ 게이트웨이 를 별도로 추가시
    # route  add  default  gw  <게이트웨이 주소>  dev  <장치 이름>
    예)  # route  add  default  gw  192.168.184.254  dev  eth0

☆ Net Mask  &  Class
- 넷마스크 : 네트워크의 규모를 등급별로 결정함.
- C 클래스 : 256개의 IP주소 사용가능
                 예)  네트워크 주소 : 192 . 168 . 184 . 0
                       넷마스크 주소 : 255 . 255 . 255 . 0
- B 클래스 : 65536개의 IP주소 사용가능 ( 2^16 )
                 예)  네트워크 주소 : 192 . 168 . 0 . 0
                       넷마스크 주소 : 255 . 255 . 0 . 0
- A 클래스 : 2^24 개의 IP주소 사용가능
                 예)  네트워크 주소 : 192 . 0 . 0 . 0
                       넷마스크 주소 : 255 . 0 . 0 . 0
※ 설치 가능한 컴퓨터 갯수
    네트워크 주소, 브로드 캐스트 주소, 게이트 웨이 주소 3개를 제외한
    갯수의 컴퓨터를 네트워크 내부에 설치할 수 있다. (C클래스의 경우 256-3 = 253대)

☆ DNS 서버 주소
- URL을 해당 컴퓨터의 IP주소로 변환해주는 서버 컴퓨터의 주소
- 설정 파일  :  /etc/resolv.conf
                   ------------------------------------
                    ........
                    Default  Server : *****                       // DNS 제공자
                    nameserver < ***.***.***.*** >         // 해당 DNS 서버 IP
                    ........
                    ------------------------------------

☆ 네트워크 관련 명령어
ⓐ # system-config-network
    - 네트워크 연결방식을 DHCP 클라이언트 또는 고정 IP 주소를 사용할지 결정
    - IP 주소 , 서브넷 마스크 , 게이트웨이 정보
    - DNS 정보
    - 네트워크 카드 드라이버 설정 , 장치 (eth0) 설정
ⓑ # system-config-network-tui
    - Text User Interface  :  네트워크 설정의 텍스트 모드
ⓒ # service  network  restart
    - 네트워크 설정 변경후 변경 내용을 시스템에 적용 (네트워크 서비스 재시작)
ⓓ # ifconfig < 장치 이름 >
    - 해당 장치의 IP 주소 설정 정보를 출력
ⓔ # nslookup
    - DNS 서버작동 테스트
ⓕ # ping
    - 네트워크에 응답 테스트

☆ 네트워크 설정 변경 관련 파일
 /etc/sysconfig/network                                 // 기본 정보
 /etc/sysconfig/network-scripts/ifcfg-eth0       // eth0 에대한 정보 몽창..
/etc/resolv.conf                                            // DNS 서버정보 및 호스트 이름 정보

☆ 네트워크 카드 교체
- 실제로 네트워크 카드에 문제가 발생시 적용시킬수 있다.
1. 네트워크 카드를 제거.
2. 네트워크 카드를 새로 장착.
3. root 로 부팅~
4. # system-config-network
5. "하드웨어" 탭  →  'eth0' 지우기
                       [새로만들기]  →  하드웨어 타입 'Ethernet' 선택
                       →  <네트워크 아답터 설정 창>  →  아답터 'AMD PCnet32' 선택
6. "장치" 탭  →  [새로만들기]  →  '이더넷 연결' 선택  →  'AMD PCnet32' 선택
                       →  <네트워크 셋팅 설정 창>  →  '정적으로 설정된 IP 주소들' 선택
                       →  네트워크 정보 입력
7. "DNS" 탭  →  DNS 주소 확인
8. 완료 (창닫기 or  메뉴 [파일]-[끝내기] 선택)
9. # service  network  restart            // 서비스 재시작
10. # ping  www.google.co.kr          //  응답확인
11. # ifconfig  eth0                          //  네트워크 설정 확인

☆ 네트워크 설정 - Text Mode
# vi  /etc/sysconfig/network         // 확인
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
   다음 사항을 수정한다.
   ----------------------------------------------------
   ..............
   NETMASK = *** . *** . *** . ***              // 넷마스크
   IPADDR = *** . *** . *** . ***                  // IP 주소
   ..............
   GATEWAY = *** . *** . *** . ***             // 게이트 웨이 주소
   ..............
   ----------------------------------------------------
# service  network  restart

☆ 네트워크 설정 - Command Mode
# ifconfig  eth0  <IP 주소>  netmask  <넷마스크>  broadcast  <브로드캐스트 주소>  up
# route  add  -net  <네트워크 주소>  netmask  <넷마스크>  eth0
# route  add  default  gw  <게이트웨이 주소>  dev  eth0
# vi /etc/resolv.conf          // DNS 설정
# service  network  restart

※  인터넷이 잘 안될때 , DNS 서버 고장을 의심해보자

ⓐ DNS 서버 작동 확인하기
    # nslookup
    > server                     // 사용중인 DNS 서버 주소확인,  "Default server :" 이후에 나오는 주소가 DNS주소
    > www.google.co.kr
       ;; connection timed out; no servers could be reached
        위와 같은 에러 메시지가 나온다면 DNS 서버가 고장나거나, DNS 서버의 주소가 잘못된것.

ⓑ 다른 컴퓨터에서 DNS 주소 따오기
     windows 인경우 : cmd 창에서 'nslookup' 명령으로 DNS 주소 획득~
     linux 인 경우 :  위 ⓐ방법으로 확인

ⓒ 가져온 DNS 주소 확인하기
    # nslookup
    > server  <새로운 DNS 주소>
    > www.google.co.kr               // DNS 서버 작동 확인

ⓓ 정상 작동하는 DNS 주소 적용하기
    # vi  /etc/resolv.conf               // 'nameserver' 부분 수정



VS FTP 설정 파일


/etc/vsftp.conf


listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

ascii_upload_enable=YES
ascii_download_enable=YES

chroot_local_user=YES

ls_recurse_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key


.bash_profile

##### LANGUAGE SECTION #####
#export LANG="ko_KR.eucKR"
#export LC_ALL="ko_KR.eucKR"

##### PROMPT TYPE EDIT SECTION #####
PS1='^[[44;1;36m [ ${USER}@lab4 ] ^[[44;1;33m${PWD} ^[[0m \n^[[44;1;33m ^[[44;1;36m#  ^[[0m  '

#####  dir COLOR EDIT SECTION  #####
#eval "`/usr/bin/dircolors -b ~/.dir_colors`"

#####  ALIAS SECTION  #####
alias ss='. ~/.bash_profile'
alias vi='/usr/bin/vim -T ansi'
alias ls='ls -CFh --color=always'
alias ll='ls -alh -F --color=always'
alias la='ls -alh -F --color=always'
alias dir='/bin/ls -alhF --color=always | more'
alias f='/usr/bin/finger'
alias ff='f;w'
alias cls='clear'

#####  PROMPT EDIT SECTION  #####
echo
echo "     ^[[44;1;36m    $(date)     ^[[0m"
echo
echo "^[[0m^[[1;32m $(w) ^[[0m"
echo



.vimrc

set magic
set noshowcmd
set fileencoding=korea

set nowrap
set shiftwidth=3
set tabstop=3
set nowritebackup
set showmode
"set hardtabs=3
set nobackup
set nocompatible
set background=dark
set number
set ruler

syntax on

hi Comment          ctermfg=Gray guifg=#80a0ff
hi Constant         ctermfg=Magenta guifg=#ffa0a0
hi Special          ctermfg=Magenta guifg=Orange
hi Identifier       ctermfg=LightGreen guifg=#40ffff
hi Statement        ctermfg=Cyan guifg=#ffff60 gui=bold
hi PreProc          ctermfg=green guifg=#ff80ff
hi Type             ctermfg=Yellow guifg=#60ff60 gui=bold
hi Ignore           ctermfg=Black guifg=bg

au BufNewFile,BufReadPost *.c,*.h,*.pc,*.ec     set cindent shiftwidth=2
au BufNewFile,BufReadPost *.java        set cindent shiftwidth=2
au BufNewFile,BufReadPost *.cpp,*.cc    set cindent shiftwidth=2
au BufNewFile,BufReadPost *.jsp         set cindent shiftwidth=2
au BufNewFile,BufReadPost *.phtml       set cindent shiftwidth=2
au BufNewFile,BufReadPost *.pl          set cindent shiftwidth=2
au BufNewFile,BufReadPost *.html                                set cindent shiftwidth=2
au BufNewFile,BufReadPost *.tcl                                 set cindent shiftwidth=2
au BufNewFile,BufReadPost *.php                                 set cindent shiftwidth=2
au BufNewFile,BufReadPost *.tex                                 set autoindent



.dir_colors

# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.

# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.

# Below, there should be one TERM entry for each termtype that is colorizable
TERM linux
TERM linux-c
TERM mach-color
TERM console
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM dtterm
TERM xterm
TERM xterm-color
TERM xterm-debian
TERM rxvt
TERM screen
TERM screen-w
TERM vt100

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00   # global default, although everything should be something.
FILE 00  # normal file
DIR 08;36   # directory
LINK 01;36  # symbolic link.  (If you set this to 'target' instead of a
            # numerical value, the color is as for the file pointed to.)
FIFO 40;33  # pipe
SOCK 01;35  # socket
DOOR 01;35  # door
BLK 40;33;01   # block device driver
CHR 40;33;01   # character device driver
ORPHAN 40;31;01 # symlink to nonexistent file

# This is for files with execute permission:
EXEC 01;32

#program-source file
.cpp  01;31
.h    01;31
.c    08;33
.java 01;33
.out  08;32
.html 01;35
.htm   01;35
.cgi   01;35
.shtml 01;35

.bash_profile   01;31
.bashrc        01;31
.vim           01;31
.svim       01;31
.vimrc         01;31
.vimrc         02;31
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')

# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32

.tar 01;31 # archives or compressed (bright red)
.tgz 01;31
.arj 01;31
.taz 01;31
.lzh 01;31
.zip 01;31
.z   01;31
.Z   01;31
.gz  01;31
.bz2 01;31
.deb 01;31
.rpm 01;31
.jar 01;31

# image formats
.jpg 01;35
.jpeg 01;35
.png 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.pgm 01;35
.ppm 01;35
.tga 01;35
.xbm 01;35
.xpm 01;35
.tif 01;35
.tiff 01;35
.mpg 01;35
.mpeg 01;35
.avi 01;35
.fli 01;35
.gl 01;35
.dl 01;35
.xcf 01;35
.xwd 01;35

# audio formats
.ogg 01;35
.mp3 01;35
.OGG 01;35
.MP3 01;35



'업무 > Linux' 카테고리의 다른 글

vsftpd 설정하기  (0) 2008.08.22
Fedora Core 6에서 고정 IP 잡기  (2) 2008.07.10
Linux IP 설정 파일들  (0) 2008.07.08
Linux에서 path 잡는다고 삽질했습니다.  (0) 2008.05.19
27일자 임베디드 리눅스 교육 자료  (0) 2008.03.27

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
> [root@localhost ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.1.218   localhost

192.168.1.218   localhost
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomain

[root@localhost ~]# cat /etc/resolv.conf
nameserver 192.168.1.1

[root@localhost ~]# cat /etc/host.conf
order hosts,bind

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:13:D4:54:FF:FD
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
IPADDR=192.168.1.218
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes



WRITTEN BY
가별이
내가 천사의 말 한다 해도

,
##이 시리즈는 앞으로 연재 되는 시리즈입니다.##

자아 당신 앞에 조립 업체에서 갓 조립해 나온 따끈 따끈한 보드가 있습니다. 자아~ 이 보드를 어떻게 하는 게 좋을까요? 전원부터 일단 꽂아서 동작을 확인하시겠다구요? 그것도 좋은 생각이긴 하지만 말리고 싶습니다. 물론 되는 경우도 많기는 합니다만 연기를 뿜어올리거나 불꽃이 튀거나 이상한 냄새가 나거나 아무런 동작도 안되거나 둘중 하나니까요.

지금부터 저의 경험으로 새로 나온 보드를 체크하는 순서와 방법을 가르쳐 드리겠습니다. 간단하니 따라해보세요.


1. 새로 나온 보드를 육안으로 살펴서 빠진 부품이 없는지 확인한다.
방금 조립된 보드가 무조건 잘 되었다는 그런 믿음은 버리세요. 부품이 빠져있는 경우가 의외로 많습니다. 이는 조립 업체의 실수일 수도 있지만 미처 부품을 챙겨주지 못한 당신의 잘못일 수도 있습니다. 육안으로 천천히 검사하면서 빠진 부품이 있는지 없는지 확인하세요. 챙기지 않고 넘어갔다가 낭패를 보는 경우가 많답니다.

2. 부품의 핀번호와 극성을 확인하세요.
칩의 1번 핀에는 보통 점이 찍혀있거나 파여있거나 하는 특별한 표식이 있습니다. 보드 상의 Silk 즉 실크로 표기된 1번핀과 맞는지 확인하세요. 이정도는 간단하게 하시겠지요? 그게 끝나면 탄탈 캐패시터와 다이오드의 극성을 확인하시길 바랍니다. 이 극성 확인에 있어서 특히 마이너스 전원이 그 보드에 있다면 특히 유의해서 확인하시길 바랍니다. 마이너스 전원은 그라운드와 전원사이에 극성이 뒤집어져서 연결되어야 하거든요. 끝나면 LED를 점검합시다. LED를 주의깊게 들여다보면 안에 동그란 것이 보이는 경우가 많은데 보통 그 쪽이 마이너스 극입니다.

3. 그라운드와의 쇼트를 확인합시다.
그라운드가 하나만 있는 것은 아니란 것을 아실겁니다. 보통 디지털 그라운드와 아날로그 그라운드로 분리되고 각 각 또 노이즈를 억제하고 격리시키기 위해 수 많은 그라운드가 존재하죠. 이걸 유의하면서 그라운드와 전원간에 쇼트랄 확인합시다. 테스트용 보드라면 테스트 포인트 즉 TP를 각 전원과 그라운드 별로 만들어 둔다면 굉장히 신속하게 체크할 수 있습니다. 특히 그라운드용 TP는 오실로스코프를 사용할 때 접지 시키기 위해서 2.54 피치 헤더를 박을 수 있도록 해둡시다.

4. 전원간의 쇼트를 확인합시다.
전원 끼리도 쇼트가 날 수 있습니다. 뭣이? 그러겠지만 모종의 이유로 전원끼리 쇼트가 날 수 있답니다. 황당하죠? 하지만 어쩌겠어요. 확인을 해야지요.

5. 핀 간의 쇼트를 확인합시다.
이건 육안으로 검사하는 겁니다. 리드 타입 칩의 경우 종종 납 방울이 튀거나 해서 다리끼리 쇼트나는 경우가 있습니다. 육안으로 확인합시다.


자 여기 까지 왔으면 거의 중요한 것은 끝났습니다. 이제 전원을 넣어보도록 합시다. 전원을 넣을 때는 언제나 잡아 뺄 수 있도록 주의하시구요. 당연히 어뎁터 전압과 전류도 체크해줘야 합니다. 전류는 설계단계에서 이미 소모 전류를 예측하고 있으시겠죠?

쇼트는 그래도 언젠가는 한번씩 뭔가의 이유로 나서 태워먹습니다. 이걸 방지하는 방법은 조금 비싸지만 SMD 타입의 퓨즈를 보드의 전원잭 바로 뒤에 달아주시면 퓨즈 하나 태워먹는 걸로 보드의 수명을 건질 수 있습니다. 그리고 전원 LED를 달아주면 눈으로 동작 여부를 확인할 수 있으니 반드시 디버깅 및 상태확인용으로 달도록 합시다.

'업무 > 하드웨어 설계 및 검증' 카테고리의 다른 글

보드가 자꾸 리부팅이 된다면  (0) 2009.05.29
antipad(anti-pad)  (0) 2008.10.23
A Guide to Memory Timing  (2) 2008.10.08

WRITTEN BY
가별이
내가 천사의 말 한다 해도

,