뭘 이런걸..

Posted
Filed under Tech/프로그래밍
IE7 에서 mod_url 이 설정되어 있는 서버로 한글 주소를 전송할 경우 encoding 이 맞으면 (즉, mod_url 이 작동할 일이 없으면..) 문제가 없지만, 맞지 않을 경우에는 무한 루프에 빠지게 되는 문제가 있습니다. 즉 예를 들어서, 다음의 조건에 해당될 경우 입니다.

  1. IE7 이 URL 의 utf8로 전송한다. (기본값임)
  2. 서버측의 mod_url 이 다음과 같이 설정이 되어 있다.
    CheckURL on ServerEncoding EUC-KR ClientEncoding UTF-8


이 조건에서, IE7 이 http://domain.com/한글.html 을 전송을 하면 실제로는

http://domain.com/%ED%95%9C%EA%B8%80.html


과 같이 "한글" 이 utf8 로 인코딩 되어 전송이 됩니다. (위에서는 편의상 urlencoding 을 했습니다. euc-kr 의 경우 인코딩을 하면 4byte 이지만, utf8 의 경우 6byte 가 되는 것으로 구분을 하기 위함입니다.)

그리고, 서버에서는 mod_url 이

iconv ("UTF-8", "EUC-KR", "%ED%95%9C%EA%B8%80");


이 성공을 하기 때문에

HTTP/1.1 301 Moved Permanently Location: http://domain.com/한글.html


을 브라우저에게 전송하게 됩니다. IE6 의 경우 이렇게 전달된 주소를 그대로 이용하기 때문에 문제가 없었는데, IE7 부터는 이 주소의 "한글" 을 다시 UTF8 로 만들어 재전송하기 때문에 무한루프에 빠지게 되는 겁니다. 그래서 이를 해결하기 위해서 return 하는 Location 의 주소를 RFC1738에 의거하여 URL encoding 하여 브라우저로 전송해 주는 방법을 사용할 수 있습니다.

HTTP/1.1 301 Moved Permanently Location: http://domain.com/%C7%D1%B1%DB.html


이를 해결하기 위해서는 다음 URL 을 참조 하시기 바랍니다.

KLDP.net mod_url project
OOPS.org mod_url CVS tree
2007/05/28 01:42 2007/05/28 01:42

며칠전에 IE7 과 mod_url 문제 수정 이라는 글에서 IE7 에서 한글 URI 를 사용할 경우 mod_url 과의 충돌로 무한 루프가 발생하는 문제를 수정하여 포스팅을 했었습니다. 그 과정에서, 301 로 재접속을 시킬때, IE7 의 재변환을 막기 위하여 url encoding 을 하여 문제를 해결했는데, 그 해결을 위해 사용했던 코드가 php raw_url_encode 함수를 수정하여 처리를 했습니다. 그런데, PHP license 와 Apa..

Posted
Filed under Tech/안녕리눅스
script 작업을 하다 보면 ssh client 가 host key 를 묻거나 변경된 host key 때문에 script 가 수행 중단되고 먹통이 되는 짜증(?) 나는 경우를 만난적이 많으실 겁니다.

저 역시 이런 경우를 많이 겪었으며, 이 때문에 rsh 을 사용하기도 하고 그랬습니다만.. 이런 불편함을 겪은 사람이 나 뿐은 아니겠지 생각하고 구글신께 열심히 갈구를 해 봤습니다만, 검색실력의 미천함 때문인지 아니면, 정말 이런 패치를 만든 사람이 없는 것인지 찾을 수가 없더군요.

찾아지면 제 작업이 헛 수고가 될지 모르니.. 제발 한 사람이 없기를 바라는 수 밖에 없을 듯 싶습니다. 뭐 각설하고,

shell> ssh -K oops@oops.org


와 같이 -K 옵션을 주면 아예 호스트 키 체크를 skip 해 버리는 패치를 AnNyung LInux 에 반영하여 openssh 를 업데이트 했습니다.

다른 배포본에서는 다음의 패치를 이용하실 수 있습니다. AnNyung LInux 의 openssh 4.6p1-2 에 적용된 패치를 첨부합니다. pure openssh 4.6p1 에서는 패치 파일로 패치가 가능 합니다.


2007/05/22 03:07 2007/05/22 03:07
uriel

host가 변경되면 어쩔 수 없지만 ssh keychain으로 해결이 불가능한가요?

김정균

keychain 은 인증시에 필요한 key 를 관리하는 것 아닌가요? 이 패치의 요점은 host key check 를 의미합니다.

즉, host key 가 등록되지 않은 서버에 접속 할때

[root@work ~]# ssh mirror.oops.org
The authenticity of host 'mirror.oops.org (210.124.122.30)' can't be established.
RSA key fingerprint is 77:d3:94:a9:bf:2e:ab:03:a6:ba:40:2f:8d:d8:99:33.
Are you sure you want to continue connecting (yes/no)?

과 같이 confirm 을 해야 하는 상황을 말하는 겁니다.

Posted
Filed under Tech/안녕리눅스
아하~ 무안하게도 1.3 R2 가 또 릴리즈 되고 말았습니다. 이제는 낯짝이 두꺼워져서 민망하지도 않습니다. :-)

1.3 R2 는 전체적으로 버전이 좀 낮은 패키지들의 판올림이 있었으며, kernel 업데이트가 있습니다. 별로 쓸 내용도 없네요 :-)

그냥 앗싸! 빨리 2.0 을 진행하자..

자세한 사항은

http://annyung.oops.org/?m=update&p=1.3&t=1179341954&n=68
2007/05/17 05:30 2007/05/17 05:30
Posted
Filed under Tech/안녕리눅스
Linux 2.4 부터 sysctl 에서 관리를 할 수 있었던 tcp_timewait kernel parameter 가 제거가 되었습니다. 즉, TIME_WAIT 이 kernel source 내의 tcp.h 에서

#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT * state, about 60 seconds */


와 같이 static 하게 지정이 되도록 변경이 되었습니다. TIME_WAIT 관련하여 검색을 해 보면.. 거의 대부분 관련이 없는 tcp_fin_timeout 값을 줄이라는 식의 글들이 많고, 가끔.. TCP_TIMEWAIT_LEN 의 값을 수정하라는 문서들이 있더군요. (물론 한글 문서로는 이런 글은 못찾았습니다. ^^)

하지만, TCP_TIMEWAIT_LEN 의 값이 다른 값을 생성하는데 꽤 많이 쓰이는 관계로 이 값을 수정하는 것은 조금 애매해서 TIME_WAIT 에만 적용될 수 있도록 패치를 해 보았습니다. 또한, TIME_WAIT 을 static 하게 수정해서 빌드를 하면 그때 그때 커널이 달라져야 할 수 있어서 아예 sysctl 에서 관리할 수 있도록 수정했습니다. 다음 패치 파일을 받아서 적용하여 빌드 하시면 sysctl -a 에서 tcp_timewait 항목을 찾으실 수 있습니다.

tcp_timewait 을 0 으로 지정을 하면 기본값인 TCP_TIMEWAIT_LEN (60초)를 사용하게 되게 되어 있으므로, 최소값은 1초가 됩니다.


oops-2.4.34-sysctl-timewait.patch.gz

kernel 2.4.34 patch (AnNyung)





2.6.21.1 의 Vanilla kernel patch 는 실제로 빌드를 해 보지 않았습니다. 그리고 tcp_minisock.c 가 많이 변경이 되어 제대로 빌드가 될지 그리고 제대로 작동이 되는지 테스트를 해 보지 않은 것임을 알려 드립니다. 이 패치를 사용함에 있어 문제 발생시에 저는 책임을 지지 않습니다!
2007/05/16 18:46 2007/05/16 18:46
Posted
Filed under Tech/Mozilla
미루다가 미루다가 한글팩 업데이트를 단행했습니다.

Tidy extension 의 경우에는 옵션 번역은 그리 양이 많지 않은데, help file 번역이 굉장히 많습니다. 더군다나, 0.8 부터는 SGML 파서 - http://validator.w3.org 에서 사용되는 파서 - 를 지원하도록 되어서, 그 양이 더 많아졌습니다. 그래서 업데이트를 할까말까 상당히 갈등을 했습니다.

영문판으로 계속 버텨보다.. 한글이 보고싶어, 드디어 큰 맘을 먹고 단행을 했는데.. 결국에는 접근성 검사 메시지와 SGML Parser 메시지는 번역을 포기하고 말았습니다. 0.7 대와 같이 Tidy 메시지만 번역을 했습니다.

혹시 번역 잘하시는 분이 있으면, chrome/contents/help/ko-KR 에 있는 문서중에서 access_*.html 과 sp_*.html 을 번역해 주시면 반영해 드리도록 하겠습니다.
2007/04/26 03:43 2007/04/26 03:43
Posted
Filed under Tech/프로그래밍
cygwin 용 패키지 3개를 빌드해 보았습니다. 물론 예전 부터 사용하던 거였지만. 이번에 Cygwin package 로 이쁘게 가다음어 cygwin 용 source package 와 binary package 로 묶어 공개를 합니다.

1. hanterm-xf 2.0.5-177
  • 2.0.6-177?
    - hanterm-xf 홈페이지의 최신 버전은 2.0.6-177 과 동일합니다.
  • utf8 패치
    - .Xdefault 에 "Hanterm*hangulCode: 2" 라고 지정하면 UTF8 이 기본 모드가 됩니다.
  • cygwin 용 runtime batch file 추가
    - /usr/X11R6/bin/hanterm-xf.bat 을 단축 아이콘으로 만들어 사용하면 됩니다.


2. rxvt 2.7.10
  • rxvt 기본 패키지에서 한글을 지원하도록 patch 하여 리빌드 되었습니다.
  • Netj.org 참조하십시오.


3. check-utils

여러가지 checking 를 편하게 하기 위한 utility 로 필자의 자작 패키지입니다. 다음의 checking tool 을 제공합니다.
  • chkbandwidth: 서버의 실시간 network 대역폭 사용량 체크
  • chkdownload: http protocol 을 이용하여 download 속도 체크. (DISK I/O 배제)
  • httpwatch: 80번 포트 체크 프로그램
  • rtspcheck: Windows Media Server 9 의 포트 체크 프로그램


공개된 버전의 수정 사항은 다음과 같습니다.

  1. 이전 버전에서 cygwin 의 iconv 를 지원하지 못하여 rtspcheck 사용못하던 문제 해결
  2. 한국어 메시지 출력 지원


위의 Cygwin 용 패키지들은 ftp://mirror.oops.org/pub/Cigwin/packages 에서 source package 와 binary package 를 받을 수 있습니다. 참고로 ftp client 로 접속을 하셔야 합니다.
2007/04/16 04:24 2007/04/16 04:24
김동하

영주한테 rxvt 소개받아서 잘 쓰고 있습니다. 감사합니다.

김정균

아.. name-version-release.tar.bz2 파일을 받아서 / 에 풀면 됩니다. 예를 들어

tar xvpfj rxvt-20050409-1.tar.bz2 -C /

Posted
Filed under Tech/안녕리눅스
먼가 영업 전략이 있는 것 같은 타이틀.. 흐흐

안녕 리눅스의 존재감에 대해서 생각을 해 보았습니다. 처음에는 Redhat 7.x 가 배포본중 가장 마음에 들었고, 그 중에서 마음에 들지 않던 부분을 수정하면서 명맥을 이어보자는 것이 시작이었으나, 이제는 너무나 낡아서 구린 glibc 와 커널 2.4 의 유지 압박..

2.6 기반의 안녕 2.0 도 준비를 해야겠고.. 그러자니 2.4 기반의 1.x 가 소홀히 될지도 모르겠고.. 존재감에 대한 압박이 생기기 시작하더군요. 그래서 요즘 하는 짓이 KLDP 시스템 개편에 맞추어서 안녕 리눅스를 가지고 Bridge 서버나 VPN 전용 서버로 쉽게 사용할 수 있도록 하면 어떨까를 생각해 보게 되었습니다.

Bridge 는 준비는 되었으나 환경 구성을 만들기가 어려워 확인 작업이 지연이 되고 있고, 현재는 KLDP 에 VPN 을 붙이는 작업을 하고 있습니다. VPN 선택에는 두가지를 할 수 있으며 각각 장단점이 있더군요. 일단 공개된 VPN 으로는 OpenVPN 과 poptop (PPTP 방식) 이 대세 입니다. 그 외에도 SSL VPN 등이 있기는 한데, 접근하기가 쉽지 않고 자료가 별로 없습니다. 이 둘의 특징을 보자면..

먼저 poptop 의 경우 Windows 에서 따로 클라이언트를 설치할 필요 없이 사용할 수 있다는 장점이 있습니다. 즉 서버쪽에서만 설정을 해주고, 클라이언트에서는 Windows 의 기본 PPTP client 를 이용할 수 있다는 장점이 있습니다. 또한, 개발 기간이 상당히 길기 때문에 많은 사용자 extension 이 존재한다는 것도 장점입니다.

OpenVPN 의 경우에는 routing 방식이나 bridge 방식을 선택할 수 있다는 장점이 있습니다. L3 기반에서는 routing 방식을 이용하여 쉽게 내부 네트워크와 연결이 가능하며, bridge 방식또한 어렵지 않게 구현할 수 있습니다. 그리고, OpenVPN 의 경우 Bluefish 라는 암호화 알고리즘을 사용하여 보안성을 좀더 높일 수 있습니다. 하지만 단점은 OpenVPN 전용 클라이언트를 설치해야 한다는 점과, PPTP 처럼 여러개의 VPN 을 관리하는 것이 방법이 좀 귀찮습니다.

일단은 OpenVPN 으로 안녕 리눅스에서 VPN 설치를 아주 간단하게 할 수 있도록 준비가 된 상태이며, 현재 PPTP 역시 준비를 하고 있습니다. (PPTP 는 ppp-mpe 라는 커널 모듈이 요구되어 이를 만들고 있습니다. 패치를 많이 해야지 안녕 리눅스에서 제대로 사용을 할 수 있을 것 같군요.)

대충 준비가 되면 AnNyung LInux 의 White Paper 에 문서가 등록이 될 것이고 Packages System 으로 간단하게 설치하고 OOPS-FIREWALL 과 연동하여 내부망 접속을 아주 간단하게 할 수 있도록 할 예정입니다.

이제 비싸고 어려운 VPN 서비스를 대략 200M 정도 사이즈의 작고 앙증맞은 안녕 리눅스로 쉽게 구축하여 보안에 힘을 보태시기 바랍니다.

P.S
다 만들고 홍보를 해야 하는데.. 아직 완성이 되지 않아서 놀림당하는 기분이 들지 않았으면 좋겠습니다. ^^; 대략 문서 만들고 패키지화 하는데 4월 안에는 준비가 될 듯 싶습니다.
2007/03/29 02:12 2007/03/29 02:12
채영진

김정균님께서 패치한 pptpd가 아닌 일반 애들의 경우

<CentOS기준>
echo "ifconfig ppp0 mtu 1500" > /etc/ppp/ip-up.local
chmod 755 /etc/ppp/ip-up.local

해 놓으니 접속할 때 자동으로 mtu값을 바꿔주네요

저 ip-up.local은 뭐 할때 쓰는건가 했었는데
궁금증이 풀렸습니다.

세션하나만 확인해서 다수 접속시에도 정상적으로 되는진 잘 모르겠습니다^^

채영진

네.. pptpd에 원래 mppe-mtu-increased옵션이 있는줄 알았는데

김정균님께서 패치하셨더라구요 우선 openvpn으로 놀고 있고

srpm받아서 패치부분을 확인해보려 합니다^^

매번 감사드립니다.

Zeroidle

이미 다 하셔놓구선요^^

저도 김정균님 따라잡기(?)를 하고 있는중입니다.

openvpn은 괜찮은데
pptp로 연결하면 네이버가 접속이 안되네요

원인을 찾는중입니다.

김정균

naver 에 접속이 되지 않는 문제는 MTU 문제로 알고 있습니다. 아마 구글에서 pptp naver 로 검색하시면 해당 내용을 찾을 수 있을 겁니다.

하도 오래전이라서 기억이 잘 안나는데, 아마도 mppe-mtu-increased (안녕 리눅스의 pptpd 에 패치된 옵션) 으로 처리가 되지 않았었나 기억이 가물가물하게 긴가민가 합니다.

조현철

무척이나 기대됩니다..^^;
감사합니다..

Posted
Filed under Tech/안녕리눅스
안녕 리눅스 1.3 이 드디어 릴리즈 되었습니다. 1월말에 발표되는 듯 하다가, 나름 사정으로 3월까지 미뤄지고 말았습니다.

1.3 에서는 기존에 지원을 하지 못하던 ICH7/8 과 SATA 장비 지원에 중점을 두었습니다. 패키지 준비는 1월말 즈음에 준비가 되었었는데, Packages System 을 운영하는 pkgadm code 가 마음에 들지 않아 재작성을 하려다가 2달을 허비하고 말았습니다.

새로 작성하려다 보니 욕심이 커져서 엄청나게 크고 복잡하게 변해가는 코드를 보고선 이러다간 1.3 릴리즈를 하지 못할 것 같아서, 일단 재작성은 일시 멈추고, 기존의 코드를 급박하게 수정을 하여 릴리즈를 하게 되었습니다.

1.2 R4 가 아니라 1.3 으로 릴리즈 하는 이유는, Packages System 의 기능 추가 때문입니다. 즉, Packages System 의 내부 로직이 변경이 되었기 때문입니다. 가장 중요한 기능으로는 중복 패키지 기능이 지원이 됩니다.

중복 패키지라 함은.. 현재 안녕의 기본 php 는 5.x 를 사용하고 있습니다만, 많은 분들이 5.x 로 오지 못하고 4.x 에 머물러 있는 경우가 많습니다. 이런 경우를 위하여, 안녕의 Packages System 에서 4.x 와 5.x 를 동시에 관리할 수 있도록 지원을 한 것입니다.

그 외에, 1.3 은 1.2 에 있던 보안버그 픽스들이 포함이 되었으며, 1.3 릴리즈와 동시에 1.2 자동 업데이트를 종료할 예정이므로, 1.3으로 업데이트를 하시기를 권장합니다.

정말 1.3 이 1.x 대의 마지막 릴리즈이며, 만 5년이 되는 2007년 6월1일까지 업데이트가 제공될 예정입니다. 간혹 드라이버 지원을 위한 Installer 업데이트가 있을 경우 R1/R2 와 같이 릴리즈 될 수는 있을 겁니다.

많은 분들이 바라시는 2.6 기반의 안녕 2.0 은 3/4 분기 정도를 기약하고 있습니다. 회사가 저를 괴롭히지 않으면 나올 수 있지 않을까 살짝 피해갈 구멍을 만들어 놓습니다. :-)
2007/03/19 16:18 2007/03/19 16:18
Posted
Filed under Tech/Mozilla
모처럼 FF 의 translate to korean extension 을 1.5.1 로 업데이트 했습니다.

별다른 기능이 추가 되었다기 보다는, 없어진 서비스들을 제거하고, 다른 새로운 서비스를 추가한 정도?

1. Empas 영문 번역 사이트가 없어졌습니다.
2. Daum Japan 의 URL 번역이 없어졌습니다.
3. Daum 의 일어 단문 번역이 새로 생겼습니다.
4. 문서에 utf8 문자셋만 존재할 경우 popup 이 되지 않던 문제를 처리했습니다.

제가 짠 코드인데도 한 4개월만에 보는 것 같은데.. 전혀 처음 보는 코드로 변해 있어서 좀 난감하더군요. ㅋㅋ

2007년 들어 posting 할 일이 드물어 일단 한번 올립니다.
2007/02/15 21:55 2007/02/15 21:55
Posted
Filed under 주절주절
oops.org 가 1997.11 에 시작한 이래로 만 9년이 지났습니다. 그리고 oops.org 의 log 는 2000년 6월 부터 쌓여져 있습니다. 2006년이 지나간 마당에 oops.org 가 얼마나 열심히 일을 했는지 통계를 내 보았습니다.

2006년 통계

* 총 전송량 96 GB * 방문객 904,124 명 * Pages 4,252,395 (Serving 된 html page hit) * Files 5,040,252 (Serving 된 모든 file hit) * Hits 6,607,374 (요청된 모든 request hit)


2000.06 ~ 2006.12 통계

* 총 전송량 476 GB * 방문객 3,237,684 명 * Pages 22,581,875 (Serving 된 html page hit) * Files 29,298,309 (Serving 된 모든 file hit) * Hits 40,680,949 (요청된 모든 request hit)


이렇게 보니 oops.org web server 가 참 많은 일을 했는 것 처럼 보이네요. 현재의 oops.org 서버가 2002.03 월 부터 현재까지 만 5년정도 서비스를 하고 있는데 아마 곧 수명을 다하지 않을까 예상이 되기는 합니다. 그 이후의 oops.org 가 어떻게 될지는 모르겠지만요 ^^;이렇게 오랜기간동안 열심히 고생한 서버에게도 고맙고.. 아무런 대가 없이 5년동안 무상으로 서버와 네트워크를 지원해준 호스텍 글로벌에도 무한한 감사를 드립니다. (음 오랜만에 찾아보니.. 유비다임으로 이름이 변경이 되었군요 ^^)
2007/01/02 02:25 2007/01/02 02:25
엔죠

정말 oops.org가 수고를 많이 했군요.
저 카운팅된 숫자중에 저 흔적도 있겠군요! ^-^

ohmynux

안녕하세요 뿌우님
매번 oops.org에서 많은 정보를 얻어 가다가 이렇게
블로그를 운영하신다기에 (이제 알았슴다 ^^;)
찾아보았습니다. 심심해서 링크를 타고타고타다 보니
이곳으로 흘러 들어 왔네요. 앞으로 자주 들리겠습니다.