시스템이야기2008. 7. 28. 21:23
2주전의 일인 것 같다. 문득, 리눅스에서는 인터페이스명이 eth0, eth1 처럼 사용하는데, 반드시 eth로 시작해야할까라는 생각이 들었다. 서버에 있는 2개의 랜카드중 하나만 설정을 변경해봤다. /etc/sysconfig/network-scripts/ifcfg-eth1을 ifcfg-coffeenix0을 변경하고, 설정값 중 DEVICE=coffeenix0로 설정한 다음 리부팅했다. (CentOS 기준)

DEVICE=coffeenix0
BOOTPROTO=static
BROADCAST=192.168.XX.XXX
HWADDR=00:0F:XX:XX:XX:XX
IPADDR=192.168.XX.XXX


아~ 임의로 인터페이스명을 지정해도 된다.

# ifconfig
coffeenix0 Link encap:Ethernet  HWaddr 00:0F:XX:XX:XX:XX
          inet addr:192.168.XX.XXX  Bcast:192.168.XX.XXX  Mask:255.255.XXX.XXX
          inet6 addr: ...생략.../64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:832 (832.0 b)  TX bytes:47862 (46.7 KiB)
          Interrupt:217
eth0      Link encap:Ethernet  HWaddr 00:0F:XX:XX:XX:XX
... 생략 ...

'그럼 변경해서 뭐하냐? 쓸모 없는 것 같고...'라고 한다면, 인터페이스명을 보고 직관성을 높일 수 있다. 미러링을 하는 포트라면 mir0 처럼 인터페이스를 설정하면 보다 직관적으로 확인이 가능할 것 같다. 랜카드가 3개이상이고, 그 중 하나는 meta data 통신용이라면 meta0처럼 지정하면 보다 쉽게 알 수 있을 것이다. 참고로 ifcfg-eth1 파일명을 그대로 두고 안의 DEVICE= 설정만 변경해도 된다. 단지 파일명은 직관적으로 보기위한 용도일뿐이다.

주의할 것은 몇몇 프로그램은 eth로 시작하지 않는 것은 인식하지 못할 수도 있다는 것. mii-tool은 eth0~eth7의 인터페이스만 자동으로 체크하므로 다른 인터페이스일 경우 별도로 지정해줘야 한다. sysctl로 'net.ipv4.conf.인터페이스명' 설정시 인터페이스별로 설정하여  사용해왔다면 이부분도 수정이 필요하다.

# mii-tool
eth0: negotiated 100baseTx-FD, link ok
# mii-tool coffeenix0
coffeenix0: negotiated 100baseTx-FD, link ok

고정관념이 무섭다. ^^

Posted by 좋은진호
IT이야기2008. 7. 10. 10:14
어제 밤 9시 49분쯤에 퇴사하신 분이 메신저로 쪽지를 보내셨다.
저 뿐만 아니고, 대략 20여명에게 한꺼번에 보내졌는데, 퇴사하진지 몇달이 되었는데 '우리집에 애완견인데 이뻐요 http://../?....jpg' 라는 내용으로 보내는 것이 이상했다. 그래서 쪽지내 링크된 URL을 자세히 들여다 보니~아~ 이건 이미지파일을 요청한 것이 아니고, index 파일을 호출한 것이다. 눈속임이 교묘하다.

사용자 삽입 이미지

http://웹주소/image/main/?79202257.jpg  은
http://웹주소/image/main/index.asp?79202257.jpg 처럼 index 파일명(웹서버 설정에 따라 index 파일명은 다양하게 지정 가능)을 생략한채로 query를 요청한 것이다. 즉, ? 뒤에 파일명은 아무 의미없이 눈속임을 위한 것.

저 URL로 요청을 하면 아래 처럼 exe파일을 받게된다. 다운 받아 실행하는 일은 없도록... ^^

HTTP/1.1 302 Object moved
Server: Microsoft-IIS/5.0
Date: Thu, 10 Jul 2008 01:00:33 GMT
Location: modue.exe  <-- 다운 받을 수 있는 URL로 이동한다.
Connection: Keep-Alive
Content-Length: 136
Content-Type: text/html
Set-Cookie: ASPSESSIONIDCSCTCQAQ=LGOBFMJCAKHDMADLKIACDBEM; path=/
Cache-control: private

저런 쪽지를 보내신 분은 웜에 감염됐거나 개인정보가 도용됐을 가능성이 있다. 그리고 저 URL에 해당하는 서버 또한 해킹을 당했다는 것으로 보면 될 것이다.


[ 관련정보 ]
* Win32.Dropper.Games (메신저를 통해 악성코드전파)
* Dropper.PSWIGames.159222 (확산방법 : 메신저, 발견일 : 2008/07/06)
 
Posted by 좋은진호
시스템이야기2008. 6. 9. 23:10
아파치 웹서버에는 UseCanonicalName 이라는 옵션이 있다. 이 옵션은 CGI나 php등에 SERVER_NAME과 SERVER_PORT변수값을 넘길 때, 어떤값을 넘길 것인지 결정한다. On으로 설정되어 있을 경우는 아파치의 ServerName으로 지정한 값이 넘겨지고, Off로 설정되어 있을 경우는 클라이언트가 요청한 호스트명과 포트명이 넘겨진다.

이런 경우를 가정해보자. www.coffeenix.net 로 서비스되는 서버가 5대라고 하고, 각 5대의 서버는 w101~w105.coffeenix.net 이름을 갖고 있다.

ServerName www.coffeenix.net

위처럼 설정되어 있을 때 On과 Off의 차이를 확인홰보자. 유저가 브라우저에서 w101.coff...를 요청했을 때이다.

다음은 On으로 설정한 경우이며, ServerName에 설정된 호스트명이 출력된다.
사용자 삽입 이미지

Off으로 설정한 경우이며, 브라우저에서 요청한 호스트명이 출력된다.
phpinfo _SERVER변수

UseCanonicalName 옵션은 아피치 1.3에선 기본값이 On으로, 2.x대(2.0, 2.2)는 Off로 되어 있다. 기본값의 차이가 있으니 반드시 ServerName에서 지정한 호스트명이 나와야할 경우 주의가 필요하다. 다음은 아파치 웹서버의 httpd.conf 일부다.

[ 아파치 1.3.x의 httpd.conf ]
# UseCanonicalName:  (new for 1.3)  With this setting turned on, whenever
# Apache needs to construct a self-referencing URL (a URL that refers back
# to the server the response is coming from) it will use ServerName and
# Port to form a "canonical" name.  With this setting off, Apache will
# use the hostname:port that the client supplied, when possible.  This
# also affects SERVER_NAME and SERVER_PORT in CGI scripts.
#
UseCanonicalName On

[ 아파치 2.2.x의 httpd-default.conf ]
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client.  When set "On", Apache will use the value of the
# ServerName directive.
#
UseCanonicalName Off

Posted by 좋은진호
일상2008. 6. 2. 23:36
지지난주 일요일 밤. 배는 고파지고, 야식거리를 먹기에 애매한 시간. 결국 밀크티를 만들었다.

사용자 삽입 이미지

아삼(인도 3대 홍차 중 하나), 실론(스리랑카 홍차)을 베이스로 한 홍차나 잉글리쉬 블랙퍼트스트 종류는 진한 맛을 내어 밀크티로 적합하다. 저렴한 AKBAR(스리랑카 홍차 브랜드)의 잉글리쉬 블랙퍼스트 티백 1개를 약 100ml 잔에 우려내고, 우유 100ml를 섞었다. 그리고, 설탕 2스푼을 퐁당. 배고프니 모든게 일사천리다. ^^
사진으로 보면 뭔가 있어보인다 말이야~~ 별거 아닌데, 멋지게 포장을 해준다는거.

사용자 삽입 이미지

밀크티에 대해 썼지만, 지금 이순간은 연잎차를 마시고 있다. 연잎차~~ 음미하면 음미할 수록 단맛이 난다. 그래서 그냥 넘기지를 않는다. 입안에 오래 가둬두고, '어디 한번 단맛을 즐길 수 있는데까지 해보자~~'라는 맘이 들게 된다. 연꽃은 속세에 물들지 않았다고 해서 '군자화'라고 하는데, 연꽃차나 연잎차의 맑은 수색처럼 내 마음도 많아지는 느낌이다.


Posted by 좋은진호
시스템이야기2008. 5. 17. 00:40
.html이나 .js 등의 파일들을 전송할 때 압축해서 보낸다면, 웹페이지 접속시에 약간의 전송속도 향상을 가져올 수 있을 것이다. 요즘 워낙 회선속도가 좋아 그 영향이 미비할 수도 있지만. 주요 포털들과 랭킹 상위 사이트 몇개를 대상으로 gzip 압축 전송을 지원하는지를 체크해봤다. 메인페이지를 기준으로 확인해봤으며, 메인페이지 접속시에 함께 요청되는 페이지도 체크에 포함했다.

gzip 압축 전송 지원여부 체크는 초기에는 직접 Request 헤더에 'Accept-Encoding: gzip, deflate'를 포함해서 만들어 보내고, Response 헤더에 'Content-Encoding: gzip'가 포함되어 있는지를 파악했다. 그러나 정확도가 떨어진데다가 한 페이지에 .css, .js등 여러 request가 있는 경우까지 체크하기 위해서 Fiddler툴을 이용해서 결과를 정리했다.

사용자 삽입 이미지

gzip을 지원하는 사이트들이다.

1. 다음( www.daum.net )
   .html 파일의 gzip 압축 전송을 지원했으며, top-sc.daum.net 의 .js 파일과 top-sc.daum-img.net 의 .xml 파일도 지원한다.

2. 네이버( www.naver.com )
   20bytes의 작은 사이즈도 gzip 압축했으며, .js, .css 파일은 사이즈에 무관하게 압축을 하지 않았다.
   auto.naver.com의 .html 파일, .js 파일, .css 파일의 gzip 압축 전송 지원

3. 네이트( www.nate.com )
   .html 파일, .js 파일, .ico 파일의 gzip 압축 전송을 지원한다. 특이하게 .ico까지 한다. 아니, 일반적인 이미지파일을 제외하고는 확장자에 무관하게 gzip을 지원하는 것일 수도 있다. 300bytes대의 사이즈도 gzip 압축을 했다. 메인페이지의 최소사이즈 파일이 300bytes였으며, 이보다 작은 사이즈의 파일이 있었으면 압축을 지원했을 수 있다. 적용범위를 폭넓게 생각하면, 파일확장자와 사이즈에 무관하게 압축할 가능성이 있다.
   .css파일은 존재하지 않아 gzip 압축 전송 여부 확인할 수 없었다.
   
4. 야후! 코리아( kr.yahoo.com )
   .html 파일의 gzip 압축을 지원한다. .js와 .css는 img.yahoo.co.kr 이미지 웹서버에 존재하는데 .js, .css 파일의 압축을 지원한다.
   adz.kr.yahoo.com 요청 중에 .js 파일의 압축을 지원한다.

5. 싸이월드( www.cyworld.com )
   .asp(.html), .js 파일의 gzip 압축을 지원한다. 31bytes의 작은 사이즈도 압축했으므로, 사이즈 상관없이 압축한다는 의미일 것이다.
   .css는 압축 지원을 하지 않았다.

6. 구글( www.google.co.kr )
   .html, .js, .css 파일의 gzip 압축 전송을 지원한다.

7. Live Search( www.live.com )
   .html 파일의 gzip 압축 전송을 지원한다.

8. MSN Korea( kr.msn.com )
   .html 파일의 gzip 압축 전송을 지원한다.
   stckr.msn.com의 .css 파일, stjkr.msn.com 의 .js 파일의 gzip 압축을 지원하며,
   특이하게도 ads1.msn.com의 js 파일과 stj.msn.com의 .js 파일은 deflate 압축을 지원한다. 아마도 'Footprint 4.2/FPMCP' 캐싱 서버 때문일 것 같다.

위 사이트를 확장자별로 지원 여부를 표시했다.

                 .html       .js       .css       .ico       .xml
다음               O          O          X          X          O
네이버             O          X          X          X          -
네이트             O          O          -          O          -
야후!코리아        O          O          O          X          -
싸이월드          O          O          X          X          -
구글               O          O          O          X          -
Live Search        O          -          -          X          -
MSN Korea          O          O          O          X          -

다음은 지원하지 않는 사이트이다.

엠파스( www.empas.com ), 파란닷컴( www.paran.com ), 드림위즈( www.dreamwiz.com )
Posted by 좋은진호