뭘 이런걸..

Posted
Filed under Tech/안녕리눅스
제가 안녕 리눅스를 처음 배포한지 벌써 만 12년이 다 되어 갑니다.

그러함에도 불구하고, 안녕 리눅스는 여전히 듣보잡이라는 소리를 듣는 minor한 배포본 입니다. 그래서 오랜만에 한번 썰을 풀어보고자 합니다.

안녕 리눅스 1.x는 2003년 6월에 처음 배포를 시작해서 2012년 12월말까지 대략 9년 6개월 정도를 지원했습니다. 상용 리눅스인 RHEL보다도 2년반을 더 지원을 했네요. 물론 제 개인적인 사정으로 커널 2.6 대응이 늦어지다보니 어쩔 수 없이 길어지기는 했습니다 ^^;

안녕 2는 안녕 리눅스 1을 배포한지 딱 10년만에 출시가 되었는데요. 공식적으로 커널 2.6을 대응하는 버전입니다. (커널 2.4로 정말 많이 울궈 먹었습니다. ^^)

안녕 리눅스의 사용량에 대해서도 썰들이 참 많습니다. 일단 듣보잡이라는 말을 듣기 때문에 아무도 사용하지 않을거다라는 의견도 참 많이 들어봤고, 예상하시는대로 굉장히 minor한 배포본임에는 틀림없는 사실입니다.

일단 예전에 KLDP 10주년 행사시에 한번 구두로 밝히기는 했는데, 안녕 리눅스 업데이트 log 기록을 기준으로, 1.3 이 출시 되었을 때 최고치를 찍었으며 ip 기준으로 100,000 대 조금 안되게 설치가 되었던 것으로 추측을 합니다. 안녕 2의 경우 안녕 리눅스가 커널 2.6 대응이 너무 늦은 이유로 사용자 층이 많이 떨어져 나가서 현재 12,000 여개의 IP에서 update log가 들어오고 있습니다. 생각 보다는 많다고 생각 되실지도 모르겠습니다. 일단 제가 한 300개의 ip를 찍고 있기는 하며, 안녕 2의 경우 yum repository를 사용하며 mirror 쪽으로 가는 것은 알수가 없으므로 좀 더 많지 않을까 추측해 봅니다.

제 입장에서는 제게 안녕 리눅스 어떠냐고 물어보면 사용하지 말라고 하고 다니고, 홍보도 거의 안하는 배포본이 이만큼이나 사용되고 있다는 것에 놀랍기는 합니다. (언젠가 드라마에 안녕 리눅스가 나오기도 했었죠. 남상미 나오는.. http://my.oops.org/52?category=17 참조)

그리고, 제가 받는 질문 중의 가장 빈도가 놓은 질문이 "안녕 리눅스를 업무용으로 사용하기에는 불안하다"라는 것입니다.

이건 개인 판단이기 때문에 전 항상 이런 질문을 받으면 "CentOS나 RHEL 사용하세요"라고 답합니다. 이유로는 일일히 이해 시키기도 그렇고, 제가 업무용으로 custom한 배포본이기 때문에 다른 사람이 사용하지 않아도 상관이 없는지라 이해를 시키기 귀찮아서 이렇게 답하고, 홍보를 안하는 것지요.

그래서 여기서는 이 부분에 대해서 한번 설명을 해 보려고 합니다.

일단 "불안하다"라는 것에 대해서는 제가 판단하기로는 기술적인 문제 보다는 안녕 리눅스의 미래에 대해서 불안하다는 것이겠지요. 뭐 제가 쌩으로 만든 배포본도 아니니 안녕 리눅스가 기술적으로 불안하다면 CentOS 아니 RHEL까지 싸잡힐테니 말입니다. :-)

영속성이라는 것이 얼마나 오래 버티고 내가 계속 사용을 하는데 문제가 없을까라는 점이 가장 큰 이유인데, 세계의 배포본들을 잘 살펴 보시면 그 잘나가던 배포본들도 안녕 리눅스의 역사보다 짧은 시간을 가진 것들이 많습니다. 특히 우리나라에서 배포하는 것 치고는 안녕 리눅스와 역사를 비슷하게 할 수 있는 것은 SULinux 밖에 없는 것 같군요. (하지만 안녕 2가 너무 늦게 나온 것에 대해서는 할말이 없습니다. 이게 개인 배포본의 한계이기는 하죠.)

그리고, 개인이 한다는 것에 대한 불안감도 많이 있습니다. 하지만 이 경우도 slackware의 경우에도 개인이 잘 유지하고 있죠. 다만 개인의 한계로 인하여 이제는 안녕 리눅스 처럼 minor한 배포본이 되었지만요. 안녕의 경우, 이런 부분 때문에 1.x에서 독자 배포본으로 변신을 시도 했다가 안녕 2에서는 기생 배포본으로 다시 환원하게 됩니다. ^^;

일단 안녕 리눅스가 이렇게 오랜시간 동안 유지할 수 있는 이유는 간단합니다. 바로 제가 업무용으로 사용을 하기 위하여 유지보수를 하고 있기 때문입니다. 그리고 제 성격이 좀 엿같은 부분이 있는데, 제가 행한 것에 대해서는 어떻게는 책임을 지려고 하는 저한테는 아주 않좋은 습관이 있는데, 이것도 일조를 합니다. (직접적으로 비용이 들 경우에는 안면 몰수를 잘하는 좋은 습관도 있습니다. ^^)

안하던 홍보를 해 보자면, 안녕 리눅스를 사용하시면 ISMS나 PIMS 인증을 받으실 때 보안 업체에서 돌리는 check script에 대응하는 것들이 기본으로 90% 정도 반영이 되어 있습니다. 돌려 보라고 하세요. 별거 안나올 겁니다.

PHP를 사용하시는 분들은 안녕 리눅스에서 패치된 safe_mode_exec_dir 기능을 사용해 보십시오. system injection에서 해방이 되실 겁니다. 그 외에 상위 버전의 php의 기능이 back porting 되어 있기도 합니다.

system jail을 하고 싶으시면 안녕 리눅스의 pam_chroot를 사용해 보십시오. 기존의 pam_chroot 보다 훨씬 쉽게 할 수 있습니다.

뭐 그 외에도 기타등등 있기는 한데, 정리해 놓은 것이 없어서.. (이것도 홍보를 안하는 이유중의 하나 입니다.)

참 많이도 적었네요. 마지막으로 안녕 리눅스가 발전해온 경과를 한번 보겠습니다.

wikipedia 한국어 판의 안녕 리눅스 문서를 보면 "배포판이 지나치게 비대해지는 것에 실망하여" 라는 설명이 있습니다. 이게 annyung linux 공식 홈페이지에 있는 글인데, 의미가 좀 다르게 퍼져나가 있더군요.

안녕 리눅스의 시작은 개인적인 목적이 아니라 회사에서 사용을 하기 위하여 설치 후 customize를 하는 것을 배포본으로 만든 것입니다. 그러다 보니 배포본에서 X 환경을 제거를 하였고, 배포할 때 업로드가 힘들어서 slim한 배포본을 만든 것이죠. 1.2G 짜리 ISO를 200M 짜리 ISO로 만들었으니, 이런 의미에서 "비대"라는 표현을 쓴 것이죠.

실질적인 안녕 리눅스의 정체성은 2005년경 부터 나타나기 시작하였고, 여기서 독자적인 배포본의 욕심을 부려봅니다.

안녕 리눅스의 정체성은 KLDP와 관련이 되어 있습니다. 2005년경에 KLDP에 아주 중대한 사건이 발생합니다. 사용하던 phpbb 2의 Highlight Vulnerability에 의해서 system injection을 당하여 "rm -rf /"를 당합니다. backup 해 놓은 db로 겨우 복구를 하였죠.

이 때, 제가 있던 회사에서 KLDP를 후원을 하고 있었던 까닭으로 KLDP의 복구를 제가 하게 됩니다. 그리고 그 이유로 제가 KLDP의 시스템 관리를 지금까지 하게 됩니다.

다시 정체성으로 돌아가보면, KLDP의 시스템 관리를 하게 되었는데, 문제는 KLDP를 회사 서버처럼 돌볼수는 없다는 점이었습니다. 그렇다고 이런 사건이 날때마다 닥질을 하기도 그렇고 해서 엉뚱한 생각을 하게 됩니다. 문은 열리라고 있는 것이고, 보안은 안뚫릴수 있는 시스템은 없다는 가정을 해보니, 문을 열고 들어와도 훔쳐갈게 없게 만들면 되지 않을까라는 엉뚱한 생각입니다. 마침 php에는 쓸모도 없는 safe mode에서 shell을 jail시키는 safe_mode_exec_dir 이라는 기능이 있었습니다. 그런데 이 기능을 구현하는 parser가 엄청나게 구려서 실제 환경에서는 사용할 만한것이 아니라, system command parser를 새로 구현해서 safe_mode_exec_dir을 safe_mode가 아니어도 사용할 수 있도록 patch를 합니다. openbase_dir과 safe_mode_exec_dir을 같이 적용을 하면 system injection을 하더라도 실행할 명령 자체가 command not found가 되어 버립니다. 심지어는 shell의 internal command 까지 말이죠. 바로 web shell이 무력화가 되더군요. http://annyung.oops.org/?m=white&p=php-guide 를 참고 하시면 이 외에도 많은 부분이 보안 목적으로 패치가 되어 있고, 현재 KLDP와 현업에서 잘 활용을 하고 있습니다.

즉, 안녕 리눅스의 정체성은 관리할 여유가 없는 서버가 대상이 되기 시작합니다. (물론 그냥 안녕 리눅스만 설치해 줬다고 해서 이렇게 되지는 않습니다. 초기 설정은 한번 해 줘야 가능하죠)

KLDP를 위한 이 기능이 회사에서 사용하게 되고, 회사의 보안성을 높이게 된 계기가 됩니다. 이렇게 KLDP는 제가 회사에서 적용하는 것들의 test bed 가 되었지요. 그러다보니 KLDP의 시스템은 일반 community가 운영하는 level과는 비교할 수 없게 운영적으로 고도화가 되어 있습니다. (인증 통합 부터, (Layer 7 level)모니터링, 떨어져 있는 시스템간의 VPN 연결 등등) 고도화가 되어 있는 이유는 전에 말했듯이 운영에 실험적으로 해 볼만한 것들을 KLDP에서 반영하여 테스트 하고, 확신이 들면 업무에 적용을 하는 것이죠. 그리고 이것들은 모두 안녕 리눅스에 반영이 되게 됩니다.

반대로 업무에 안녕리눅스를 사용하면서 안녕 리눅스가 발전되는 부분은 제도권 즉 ISMS나 PIMS 같은 인증 이슈가 있습니다. 일일이 지적 사항을 반영하기가 귀찮아서 그냥 안녕 리눅스에 기본 적용을 해 버린 것이죠.

뭐 이 외에도 말할 것들은 많지만 글재주가 없는지라 여기까지만 해도 힘드네요.

정리하자면, 안녕 리눅스는 중소규모의 서비스에 사용할 만큼 밖에 되지 않는 배포본은 아닙니다. 실제로 네이버 정도는 아니지만, daum 정도 이상의 규모에서 사용되었고(daum에서 사용한다는 의미는 아닙니다), 그에 준하는 곳에서도 main 배포본으로 사용이 되고 있으니까요. 충분히 enterprise 급의 배포본 입니다.

하지만 제게 "안녕 리눅스 사용을 권장하겠습니까"라고 물으면 전 여전히 "사용하지 마세요"라고 답을 할 겁니다. 여기서 발생을 하는 문제가 바로 안녕 리눅스의 최대 약점인데.. 바로 수많은 요구 조건을 받아들일 수 없는 개인 신분이기 때문입니다. 안녕 리눅스는 제가 필요한 사항이 반영되는 시스템이지 anonymous의 요구를 충족할 수 있는 배포본이 아니기 때문입니다.

그래서 제목에 대한 결론을 내리자면, "안녕 리눅스 너 뭐야?" 에 대해서는 "몰라도 돼. 신경꺼" 입니다. ^^;

P.S.
가끔 안녕 리눅스를 ubuntu 기반으로 변경할 생각이 없냐고 물으시는 분이 있습니다. 이 질문에 대해서는 "아직 없습니다." 입니다. 개인적으로 ubuntu의 설정 정책이 많이 마음에 들지 않습니다. 너무 직관적이지 않거든요. 이런 점에서는 RHEL 7에 적용될 systemd도 많이 마음에 들지 않습니다. 안녕 3에서는 systemd를 빼버릴지도 모르겠군요(라고 마음은 먹지만 귀찮음에 빼지는 못할 것 같습니다. TT)
2014/05/03 02:11 2014/05/03 02:11
uriel

이번에 debian과 ubuntu의 init system이 systemd로 바뀌기로 되어서 systemd로 일관되게 유지할 수 있을텐데요.

김정균

일단 systemd도 initd에 비하여는 hacking이 쉽지 않다는 거죠. initd야 해당 script에서 수정할 사항 대충 수정하면 되지만, systemd가 될 경우에는 변경 사항이 전반적으로 미칠 수 밖에 없으니 쉽게 수정하려 하기는 함들 거라는 의미입니다. 그래서 systemd 도 반갑지 않다는 의미입니다.

그리고, ubuntu의 경우에는 repository 운영을 조금씩 해 보고 있는데, repository 운영의 knowhow도 yum repository에 비하여 비용이 많이 드는 것 같더군요.

즉, ubuntu system이 RHEL 계열에 비해서 딱히 장점을 못느끼겠다는 것입니다.

그리고 가장 중요한 것은, LTS의 life time이 server의 경우 5년이기는 하지만, 그래도 RHEL(7년)에 비해서는 짧다는 것도 부담감이기는 하죠. :-)