검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 보안
가끔 인터넷에 보면 소스가 공개된 오픈 소스 프로그램은 보안에 취약하다는 말이 돌곤 하는데 리눅스를 배워봤던 분들이라면 사실 정 반대라는 것을 알고 계실 겁니다. 저도 얼마 전에 어딘가의 블로그에서 그런 글을 본적이 있고요. 아래는 오픈 소스가 보안에 더 강하다는 것을 증명하는 사례입니다.

보안에 더 강한 오픈소스의 비밀은?
  비유하자면 집 벽의 개구멍을 발견할 꺼면 집 주변에 담벼락을 쳐놓고 혼자서 열심히 찾는 것보다 여러 사람을 초대해서 같이 찾는 것이 더 효율적이라고나 할까요?

백악관 홈피 책임지는 오픈소스 커뮤니티
  우왕. 백악관 홈페이지가 오픈 소스로 돌아가는 줄은 몰랐네요. 놀랍네.


2011/02/11 17:43 2011/02/11 17:43
Posted
Filed under 프로그램과 명령어/커맨드 라인 트릭
참조 원문 : How to handle files with strange names

  알파벳과 숫자가 아닌 문자나 공백이 포함된 파일명을 다루는 방법입니다. 마지막 방법을 제외하고는 크게 유용한 내용이 없는 것 같습니다.


1. 파일명에 공백 문자가 있는 경우
  크게 2가지 해결 방법이 있습니다. 첫 번째 방법은 이스케이프 문자로 공백을 표현하는 겁니다. 예를 들어 'ab cd'라는 이름의 파일이 있다면 'rm ab\ cd'라고 적으면 됩니다. 또는 ab로 시작하는 파일이나 디렉토리가 하나 뿐이라면 ab를 입력한 후 탭을 이용한 자동완성 기능으로 같은 결과를 얻을 수 있습니다.
$ ls
ab cd
$ rm ab\ cd
  두 번째 방법은 싱글 쿼트나 더블 쿼트를 사용하는 겁니다. 위와 같은 상황에서 아래의 명령어로 같은 결과를 얻을 수 있습니다.
$ rm "ab cd"    또는    $ rm 'ab cd'

2. 파일명이 -나 + 문자로 시작하는 경우
  프로그램의 옵션은 보통 -나 + 문자로 시작하는데 파일명 앞이 -, +로 시작할 경우 프로그램이 파일명을 옵션으로 착각하여 아래와 같은 상황에 발생합니다.
$ ls
-abc
$ rm -abc
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.
  우분투의 경우 이미 위에서 볼 수 있는 것처럼 메시지 안에 답이 나와 있습니다. 바로 현재 디렉토리를 명시적으로 적어주는 겁니다.
$ rm ./-abc
  또 다른 방법은 언제나 통하는 방법은 아니지만 대부분의 유닉스 프로그램에서 사용할 수 있는 방법으로 '--' 파라미터를 사용하는 겁니다. 이 파라미터는 "명령어의 플래그(옵션, 파라미터) 사용이 끝났다"라는 것을 명시적으로 프로그램에 알리는 겁니다. 따라서 -나 +를 문자 그대로의 의미로 사용할 수 있게 됩니다.
$ rm -- -abc

3. 파일명에 이스케이프가 존재하는 경우
  파일명에 이스케이프 문자가 존재하여 파일명이 제대로 표시되지 않는 경우가 있습니다.
$ ls
a?b
  언뜻 보면 파일명이 'a?b'인 것처럼 보이지만 사실 a와 b 사이에 있는 물음표는 이스케이프 문자 중 뉴 라인(\n)을 출력하지 못하여 깨져 나온 겁니다. 이런 상황에서 ls 명령어에 -b 옵션을 사용하면 이스케이프 문자를 백슬래시 형태로 출력시킬 수 있습니다.
$ ls -b
a\nb
  이렇게 출력된 파일명을 $'파일명' 형식으로 적으면 해당 파일을 제어할 수 있습니다. 참고로 $'문자열'은 배시에서 싱글 쿼트 안에 있는 문자열 중 백슬래시 형태로 적은 이스케이프를 실제 이스케이프로 치환하라는 의미입니다.
$ rm $'a\nb'

4. 파일명이 구제 불능일 경우
  파일명이 매우 복잡하거나 아예 깨진 경우 inode 값을 사용하는 방법이 있습니다. 먼저 'ls -il' 명령어로 파일의 inode를 확인합니다.
$ ls -il
total 9596
1572865 -rwxr--r-- 1 mirashi mirashi 9824181 2010-09-29 12:54 07 寧
  inode 값을 확인했다면 find 명령어를 응용하여 원하는 작업을 할 수 있습니다.
$ find . -inum 1572865 -exec mv {} fixed.mp3 \;
$ ls -il
total 9596
1572865 -rwxr--r-- 1 mirashi mirashi 9824181 2010-09-29 12:54 fixed.mp3
2010/12/15 13:57 2010/12/15 13:57
Posted
Filed under 프로그램과 명령어/관리와 유지보수
참조 원문 : Linux Backup Server: Remote Wakeup, Automatic Shutdown
관련 글 : HOWTO: Set your system up for Wake On LAN (WOL)

  WoL은 Wake on Lan의 약자로서 브로드캐스트를 통해 매직 패킷이라고 불리는 예약된 패킷을 보내 특정 MAC의 NIC를 사용하는 컴퓨터를 부팅시키는 기능입니다. 경우에 따라서는 상당히 유용하게 쓰일 수 있고 특히 우리나라의 경우 공유기가 많이 사용되는데 이 공유기에서 WoL을 지원(매직 패킷을 보내는 기능)하는 경우가 많습니다. 이걸 이용하면 외부에서 집의 공유기로 접속하여 내부 네트워크의 컴퓨터(보통 자신의 PC)를 부팅시킨 후 원격 데스크탑이나 기타 프로그램을 이용해 자신의 컴퓨터를 이용할 수 있습니다.

  먼저 BIOS에서 WoL을 지원해야 하는데 왠만한 구형이 아닌 이상은 대부분 지원을 하기 때문에 걱정은 없지만 기본적으로 기능이 활성화되어 있지 않다는 것이 문제입니다. 따라서 자신의 메인보드 매뉴얼을 참조하여 기능을 먼저 활성화시켜야 합니다.

  이제 리눅스에서 아래의 명렁어로 NIC의 WoL 기능을 사용할 수 있는지, 그리고 기능이 활성화되어 있는지 확인합니다. 참고로 실행에는 루트 권한이 필요합니다.
$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: d
  'Supports Wake-on'에서 g는 'Wake on MagicPacket'으로 이 NIC는 WoL 기능을 지원한다는 뜻입니다. 다음으로 'Wake-on'인데 d는 'Disabled'로 현재 비활성화된 상태입니다. 즉, NIC가 지원은 하지만 비활성화 상태입니다. 아래는 WoL 기능을 활성화시키고 확인하는 것을 보여주고 있습니다.
$ sudo ethtool -s eth0 wol g
$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: g
  'Supports Wake-on'과 'Wake-on'에 모두 g가 있으면 해당 PC를 대상으로 WoL을 사용할 준비가 완료된 겁니다. 아래의 명령어로 NIC의 MAC 주소를 알아냅니다.
$ ifconfig eth0 | grep -i hwaddr
eth0      Link encap:Ethernet  HWaddr 00:25:11:75:dc:91 
  이제 컴퓨터를 끈 후 같은 네트워크에 있는 다른 리눅스 머신에서 아래와 같이 명령어를 사용하면 WoL을 사용하여 컴퓨터를 부팅시킬 수 있습니다.
$ wakeonlan -p 8 00:25:11:75:dc:91
  '-p 8' 옵션은 매직 패킷을 UDP 포트 8번으로 보내라는 옵션입니다. 디폴트로 보내는 포트는 UDP 9번인데 테스트용 포트로서 패킷이 그냥 폐기되는 경우가 많기 때문에 아무거나 다른 포트 번호를 향해 보내는 것이 좋습니다. 이왕이면 8번처럼 아무 서비스에도 안 쓰이는 번호에 보내는 것이 더 좋으며 대표적인 서비스의 포트 번호들은 /etc/services 파일에 있으므로 해당 파일을 참조해 안 쓰이는 UDP 포트를 사용하도록 합니다.

  이제 다 끝난 것처럼 보이지만 부팅을 하는 과정에서 이 설정이 다시 초기화되기 때문에 부팅과 관련된 스크립트를 약간 손봐서 앞서 했던 설정을 자동화시킬 필요가 있습니다. 레드햇 계열의 배포판일 경우에는 /etc/rc.local 파일에 아래와 같은 내용을 추가하여 부팅할 때마다 WoL을 활성화시킬 수 있습니다.
# Setup WOL for next boot
stat_busy "Setting WOL to Active"
/usr/sbin/ethtool -s eth0 wol g
stat_done
  데비안 계열의 배포판이라면 /etc/network/interfaces 파일에서 WoL을 사용할 NIC가 적힌 줄(예: iface eth0 inet dhcp)의 아래 부분에 다음의 내용을 추가하여 인터페이스가 올라간 후(대표적으로 부팅 시)와 내려간 후(대표적으로 종료 시)마다 WoL을 활성화시킬 수 있습니다.
post-up /usr/sbin/ethtool -s $IFACE wol g
post-down /usr/sbin/ethtool -s $IFACE wol g
  그래도 안 되는 경우가 있는데 그 중 한 해결책으로 저의 경우 우분투 9.10의 환경에서 /etc/network/interfaces 파일에 아래와 같이 드라이버에 wake up flag를 enabled로 설정해줬습니다.
post-up echo enabled > /sys/class/net/eth0/device/power/wakeup
post-down echo enabled > /sys/class/net/eth0/device/power/wakeup
  이와 관련된 내용은 http://lowtek.ca/roo/2009/wake-on-lan/ 에서 좀 더 자세히 보실 수 있습니다.

2010/12/13 14:31 2010/12/13 14:31
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : Linux / UNIX: DNS Lookup Command

  host와 dig는 리눅스와 유닉스에서 공통적으로 사용할 수 있는 DNS 조회 명령어이며 아래는 각 사용별 예제를 보여주고 있습니다.


more..



more..

2010/12/06 15:57 2010/12/06 15:57
Posted
Filed under 취미 및 잡담
월급이 들어와서 한 달 전에 포스팅한 글에 따라 서버용으로 사용할 컴퓨터를 구입했습니다.
  결과가 그 때 적은 것과 약간 달라졌는데 구입 목록은 다음과 같습니다.

케이스 - 이엠텍 FUN MINI S150 블랙 (TFX-150W)    100,000원
보드 - ECS 945GCD-I330    95,000원
램 -   DDR2 2G PC2-6400 블랙      51,500원
쿨러 - ICE SHIELD NL4010SX    2,000원

  가격은 최저가가 아니라 실제 구입가입니다. 택배비도 고려해야 하기 때문에 무조건 최저가로 살 수는 없죠. 케이스는 파워와 크기 문제 때문에 2시간은 고민한 것 같고 택배비도 문제가 복잡해져서 1시간은 고민한 것 같습니다. 아니, 케이스 택배비는 2,500원인데 왜 램은 4,000원이지...똑같은 가게인데;

  걱정이 있다면 저 케이스에 쿨러가 아예 없고 좌우에 구멍이 뻥뻥 뚫려있는데 먼지 유입이 매우 걱정됩니다. 제가 지금 살고 있는 이 곳이 먼지(정확히는 담배 연기의 유입이 원인으로 추정)가 엄청나서 목이 다 아플 지경인데 과연 괜찮을지...

2010/01/10 06:23 2010/01/10 06:23