블로그 이미지

카테고리

데꾸벅 (194)
Publisher (39)
Scripter (97)
Programmer (1)
Designer (30)
Integrator (18)
Pattern Searcher (4)
News (2)
강좌 및 번역 (3)

최근에 올라온 글

최근에 달린 댓글


멀티도메인(여기서는 호스트도메인)이 가능하게 아파치와 톰캣연동을 하려한다.
예를 들어 aaa.techbug.com 과 bbb.techbug.com 으로 들어와도 톰캣의 하나의 컨텍스트로 넘어오게 하기 위한 목적으로 서버 셋팅을 해야한다.

PHP라면 간단한 일이 되겠지만 톰캣과의 연동을 하려니 상당히 어려운 점이 많다.
팀원(병규야 수고했다..그리고 미안하다.. ^^) 을 시켜 셋팅한 것이지만.. 공유하려 한다.


설정
aaa.techbug.com   --->  http://로컬머신/techbug
bbb.techbug.com   --->  http://로컬머신/techbug


환경 
Ubuntu10 + Apache2 + Tomcat6.0

필요한 모듈 : 
mod_proxy, 
mod_proxy_balancer, 
mod_proxy_http
mod_proxy_html, mod_rewrite

모듈 설치 : 
apt-get install libapache2-mod-proxy-html libxml2

설치 모듈을 enable상태로 변경
/etc/apache2/mods-avaliable 에서 확인

a2enmod를 이용한 아파치모듈 활성화
a2enmod proxy, 
a2enmod proxy_html, 
a2enmod proxy_balancer, 
a2enmod rewite, 
a2enmod proxy_http

활성화 여부 확인 : /etc/apache2/mods/mods_enables





Apache2 환경설정

1.VirtualHost 등록
/etc/apache2/sites-enabled/000-default에서 VirtualHost를 등록한다

2. 아파치 재시작 : 
/etc/init.d/apache2 restart


3. 톰캣 시작(톰캣에 techbug이름으로 프로젝트가 배포되어 있다고 가정)
<VirtualHost *:80>
    ServerName techbug.com
    ServerAlias techbug.com   *.techbug.com
    proxyRequests Off
    proxyPreserveHost On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8080/techbug/
    ProxyPassReverse / /http://localhost:8080/techbug/
</VirtualHost>

http://aaa.techbug.com 입력하고 제대로 나오는지 확인하다
ProxyPass 에 설정 한 대로 톰캣의 주소로 이동하게 되고 index.jsp 가 가장 먼저 읽어진다




Mod_Proxy 설정 정보

ProxyPass를 사용하여 특정 디렉토리를 톰캣에서 처리
ProxyPass /admin/http://localhost:8080/techbug
ProxyPass  /user/http://localhost:8080/techbug

ProxyPassMatch : ProxyPassMatch를 이용하여 특정 확장자를 가진 파일을 톰캣에서 처리
ProxyPassMatch   ^/.*\.(jsp|do|action)$ http://localhostL8080/


LocationMathch : LocationMathch를 사용하여 접근보안 문제 해결
<LocationMatch  “/WEB-INF”>
    deny all
</Location>


Tomcat : web.xml
톰캣에서는 별다른 설정은 하지 않고 데이타리소스만 정리하였다.
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
    type="org.apache.catalina.UserDatabase"
    description="User database that can be updated and saved"
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
    pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/NEXFA_DS"
    auth="Container"
    type="javax.sql.DataSource"
    username="유저네임"
    password="패쓰워드"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/techbugdb"/>
</GlobalNamingResources>



<Host name="localhost"  appBase="webapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    <Context path="" docBase="/usr/flowerteam/tomcat-6.0.20/webapps/NexfaWeb" debug="0" reloadable="true">
        <Resource name="jdbc/TECHBUG_DS" 
                auth="Container"
                type="javax.sql.DataSource"
                driverClassName="com.mysql.jdbc.Driver"
                username="유저네임"
                password="패스워드"
                url="jdbc:mysql://localhost:3306/techbugdb"/>
    </Context>
</Host>




www가 안붙은 URL을 자동으로 붙이기
techbug.com 이라는 도메인을 주소창에 입력하였을 때 자동으로 www.techbug.com 으로 접속 시키는 방법이다.
<VirtualHost *:80>
    ServerName techbug.com
    ServerAlias www.techbug.com
    DocumentRoot /home/techbug/public_html/
    ErrorLog logs/error_log
    CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>
이라는 가상 호스트 구문이 있을것이다. www 를 자동으로 붙이는 방법은 간단하다.위의 구문아래에 똑같은 구문을 복사하여 붙여 넣는다.

<VirtualHost *:80>
    ServerName techbug.com
    ServerAlias www.techbug.com
    DocumentRoot /home/techbug/public_html/
    ErrorLog logs/error_log
    CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

<VirtualHost *:80>
    ServerName techbug.com
    ServerAlias www.techbug.com
    DocumentRoot /home/techbug/public_html/
    ErrorLog logs/error_log
    CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

와 같이 될것이다. 이상태에서 아래와 같이 몇가지만 바꿔준다.


<VirtualHost *:80>
    ServerName techbug.com
    #ServerAlias www.techbug.com  <=== 주석처리
    RedirectMatch /(.*)$ http://www.techbug.com/$1 <==== 삽입
    DocumentRoot /home/techbug/public_html/
    ErrorLog logs/error_log
    CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

<VirtualHost *:80>
    ServerName www.techbug.com <=== www 사이트 명시
    #ServerAlias www.techbug.com <=== 주석처리
    DocumentRoot /home/techbug/public_html/
    ErrorLog logs/error_log
    CustomLog logs/sinvi-access_log combined env=!nosave
</VirtualHost>

설명을 하자면 같은 페이지를 보여주되 접속 도메인은 개별화 시킨 것이다. 다시 말해, techbug.com을 주소창에 입력하게 되면, 우선은 윗쪽 가상호스트 설정에 의해 접속하게 되고, RedirectMatch /(.*)$ http://www.techbug.com/$1 행에 의해 다시 두번째 가상호스트 설정인 www.techbug.com 으로 접속하게 되는것이다.

마지막의 $1의 역할은 techbug.com/xxxxx/xxxx/xxxx...등의 x로 표시된 모든 문자를 $1로 치환하여 www를 붙인 www.techbug.com 도메인 뒤에 다시 반환해주는 역할을 한다.
즉, techbug.com 도메인의 메인 페이지 뿐만 아니라, 하위의 모든 페이지에 www가 붙게 되는것이다




참고 :




Post by 넥스트리소프트 데꾸벅(techbug)
, |


간혹가다 프로젝트를 하다가 보면 한글 캐릭터셋, 인코딩 때문에 많이 헷갈릴때가 있다.
이번에 강의자료를 만들다가 데꾸벅의 블로그 RSS를 JSP로 Proxy를 만들기 위해 HttpClient라이브러리를 가져오기 위해 UTF-8로 가져왔는데 실제 RSS파일은 UTF-8로 헤더파일에 기재되어 있었으나 ISO8859-1로 가져와야 했다.

<%@ page language="java" pageEncoding="utf-8" %>
<%@ page import = "org.apache.commons.httpclient.HttpClient" %>
<%@ page import = "org.apache.commons.httpclient.methods.GetMethod" %>
<%@ page import = "org.apache.commons.httpclient.HttpStatus" %>
<%
 request.setCharacterEncoding("utf-8");
 String url = "http://techbug.tistory.com/rss";

 HttpClient client = new HttpClient();
 GetMethod method = new GetMethod(url);

 try {
  int statusCode = client.executeMethod(method);

  out.clearBuffer();
  response.reset();

  response.setStatus(statusCode);

  if (statusCode == HttpStatus.SC_OK) {
   String result = method.getResponseBodyAsString();
   response.setContentType("text/xml; charset=iso8859-1");
   out.println(result);
  }
 } finally {
  if (method != null) method.releaseConnection();
 }
%>



extjs의 한글 로케일 파일을 설정해줄때도 해외에 거주하는 개발자들에게 문의는 적었으나 국내에서 개발하는 개발자들의 불만이 상당히 많았다. js파일을 UTF-8로 인코딩 해 놓았으니 해당 내용안의 한글이 모두 깨어져 스크립트 에러가 떨어진다는 것이였다.이럴때는 다음과 같이 처리 해준다.

<script type="text/javascript" charset="utf-8" scr="로케일파일.js" ></script>

또한 form submission시 캐릭터셋을 처리할때 모질라 계열에서는 accept-charset을 해주면 되지만 익스플로러에서는 아예 무시해 버린다.. 이때는 자바스크립트를 사용하여 다음과 같이 해주면 된다
아래소스는 prototype.js를 이용한 예제이다.

function send() {
    var f = $('frmTest');
    if (Prototype.Browser.Gecko)  //Firefox일 경우
        f.acceptCharset = 'euc-kr';
    else
        document.charset = 'euc-kr';
    f.submit();
    if (!Prototype.Browser.Gecko) //Firefox가 아닌 경우
        document.charset = 'utf-8';
}

 

 

 

문자셋 (charset, Character Set)

하나의 언어권에서 사용하는 언어를 표현하기 위한 모든 문자(활자)의 모임을 문자셋(charater set)이라고 한다.
다시 말하면 우리가 얘기하는 언어를 책으로 출판할 때 필요한 문자(활자)를 모두 모은 것이라고 생각하면 된다. 추가적으로 부호와 공백 등과 같은 특수 문자도 문자셋에 포함된다.
영어의 경우 알파벳 대소문자와 특수 문자 등으로 간단하게 문자셋을 구성할 수 있지만 한글의 경우 출판에서 가,나,다 등으로 출판함으로 훨씬 다양한 문자셋을 가지고, 또한 한자를 병행해서 사용함으로 문자셋의 범위는 더욱 넓어진다.
추상적인 글자 셋은 여러 개의 인코딩을 가질 수 있다. MIME 문자셋은 IANA에서 정의하며 인터넷 및 XML 파일에서 사용한다.

 

인코딩 (encoding)
인코딩은 문자셋을 컴퓨터가 이해할 수 있는 바이트와 매핑하는 규칙이다.
예를 들면 ASCII Code에서 A,B,C 등은 문자셋이고 A는 코드 65, B는 코드 66 등 바이트 순서와 매핑한 것이 인코딩이다. 따라서 문자셋을 어떻게 매핑하느냐에 따라 하나의 문자셋이 다양한 인코딩을 가질 수 있다. 

대부분의 인코딩에서는 대소문자를 구분하지 않는다.
대한민국 문자셋(charater set)에서 가장 많이 사용하는 인코딩은 "UTF-8", "KSC5601", "ISO-8859-1" 이다.


문자셋(인코딩)의 예

  • 한글 : 8bit KSC5601 (8bit EUC-KR, 7bit ISO-2022-KR, ISO-2022-Int)
  • 영문 : KSC5636, US-ASCII (둘 간의 차이는 화페 단위 뿐)
  • 한글+영문 : KSC5861 (EUC-KR), KSC5636 + KSC5601를 모두 포함한다.
  • 유니코드 : 4byte Unicode < ISO-10646 UCS (ISO-8859-1, UTF-8, UTF-16)

문자셋과 인코딩은 동일한 명칭을 가질 수 있어 서로 혼용하여 사용되는 경우가 많다.

  • EUC-KR은 원래 유닉스용 표준이었는데 인터넷으로 확장되어 사용된다.
  • KSC5601은 인터넷에서 원활한 한글(완성형) 사용을 위하여 정의된 표준이다.
  • EUC (Extended UNIX Code), UTF (UCS Transformation format)


기본 인코딩

Windows : 시스템 언어와 관련된 코드 페이지를 따름

  • 영문 Windows는 CP1252 인코딩을 사용
  • 한글 Windows는 MS949 인코딩을 사용

 

Unix : LANG 환경 변수로 지정된 로케일에 해당하는 인코딩

  • Solaris는 LANG 환경 변수가 ko, ko_KR일 경우 EUC-KR 인코딩을 사용
  • HP는 LANG 환경 변수가 ko_KR, ko_KR.eucKR일 경우 EUC-KR 인코딩을 사용
  • Unix에서 locale -a 명령을 사용하여 LANG 환경 변수에 지정 가능한 문자셋을 확인할 수 있다.

HTML : ISO-8859-1와 ISO-10646
XML : UTF-8
웹 브라우져 : 내부적으로 모두 유니코드로 처리를 한다.
HTTP/1.0 : ISO-8859-1
HTTP (URL,URI) : US-ASCII, %hexadecimal_code, JavaScript escape() 함수 사용
Java : 유니코드 2.0
직렬화된 Java Class : UTF-8
J2EE : ISO-8859-1
Oracle : UTF-8 (AL32UTF8), 한국에서는 KSC5601 (KO16KSC5601)

 


다양한 환경에서 인코딩 설정


웹 브라우져 설정

"도구 -> 인터넷 옵션 -> 언어" 메뉴를 선택한다.
영어[en]와 한국어[ko]를 추가하고 원하는 언어를 가장 상단에 위치한다.

JVM 설정
일반적으로 LANG 환경 변수를 설정해 주면 자동으로 설정이 된다.

locale -a : Solaria unix 명령어로 지원 가능한 encoding을 확인한다.
env  LANG  ko : csh에서 Encoding을 설정한다. (KSC5601, EUC-KR)
LANG=ko : ksh에서 Encoding을 설정한다. (KSC5601, EUC-KR)

JVM 옵션 설정 (UTF-8, ISO-8859-1, KSC5601)

        -Dfile.encoding=8859_1 :필수 항목
        -Dfile.client.encoding=8859_1

JSP를 사용하여 JVM 옵션 확인 (encoding.jsp)

        file.encoding = <%= System.getProperty("file.encoding") %><br>
        file.client.encoding = <%= System.getProperty("file.client.encoding") %><br>
        client.encoding.override = <%= System.getProperty("client.encoding.override") %><br>

HTML 설정 : HTML 파일을 UTF-8로 만들어 저장한다.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


XML 설정
    XML 파일을 UTF-8로 만들어 저장한다.

    <?xml version="1.0" encoding="UTF-8" ?>

JSP 설정
    JSP 파일을 UTF-8로 만들어 저장한다.

    <%@ page pageEncoding="UTF-8" %>
    <%@ page contentType="text/html;charset=UTF-8" %>

Servlet 설정

    HTTP 요청의 인코딩 지정
    request.setCharacterEncoding("UTF-8");
    HTTP 응답의 인코딩 지정
    response.setContentType("text/html; charset=UTF-8");

web.xml 설정

    <mime-mapping>
        <extension>html</extension>
        <mime-type>text/html;charset=UTF-8</mime-type>
    </mime-mapping>

 



 참고자료

 

 

 

Post by 넥스트리소프트 데꾸벅(techbug)
, |


Apache Module mod_expires 관련 글 : PHP스쿨에서 좋은 팁하나를 꼬불쳐 둔다.  
아래 내용은 여기저기서 관련글들을 모아모아서 정리하였다. 낭중에 서버관리할때 처리하면 편하겠네..  




apache에서는 mod_expires 모듈을 통해 Expires HTTP header 를 설정할 수 있다.
이를 통하여 클라이언트(웹페이지 방문자)에 캐싱되는 문서나 이미지들이 많아서 트래픽을
감소시킬 수 있다. 이미지 전용 서버나 이미지 디렉토리에 설정을 해두면 효과적이다.

이미지 서버에 지정한 다음 예를 보자.


<IfModule mod_expires.c>
        ExpiresActive On
        ExpiresDefault "access plus 1 month"

        # 제외할 디렉토리
        <Directory "/usr/local/apache/htdocs/temp">
        ExpiresActive Off
        </Directory>
</IfModule>

- ExpiresActive On 지시자로 Expires 설정을 enable 한다.
- ExpiresDefault "access plus 1 month" 지시자는 액세스한지 얼마나 지나서 expire할 것인지를 지정한다.
  즉, 지정한 기간만큼 클라이언트에 캐싱이 된다. 위에는 1달이다.

이외에 클라이언트에서 액세스한지 1달, 4주, 30일, 1년 등과 같은 expire 주기와
서버의 파일의 수정 시간으로 expire 주기를 설정할 수 있다.

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
ExpiresDefault "access plus 1 years"
ExpiresDefault "modification plus 30 days"



ExpiresDefault "<base> [plus] {<num> <type>}*"
ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"

ExpiresByType image/bmp "access plus 1 month" 
ExpiresByType image/cgm "access plus 1 month" 
ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 
ExpiresByType image/tiff "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 

ExpiresByType video/mpeg "access plus 1 month" 
ExpiresByType video/quicktime "access plus 1 month" 
ExpiresByType video/x-msvideo "access plus 1 month" 

ExpiresByType audio/basic "access plus 1 month" 
ExpiresByType audio/midi "access plus 1 month" 
ExpiresByType audio/mpeg "access plus 1 month" 
ExpiresByType audio/x-aiff "access plus 1 month" 
ExpiresByType audio/x-mpegurl "access plus 1 month" 
ExpiresByType audio/x-pn-realaudio "access plus 1 month" 
ExpiresByType audio/x-wav  "access plus 1 month" 

ExpiresByType application/x-shockwave-flash  "access plus 1 month"


- 설정 마지막부분에 Directory 지시자와 ExpiresActive Off 설정을 통해
  특정 디렉토리만 expire 설정에서 제외할 수 있다.
  반대로 특정 디렉토리만 On으로도 설정할 수 있다. (일반 웹서버에 /images 와 같이 디렉토리가 있는 경우)


ExpiresByType image/gif "acces plus 4 weeks"


- 위처럼 파일의 유형으로도 가능하다.



파일 다운로드 php 에는 

header('Pragma: cache'); // 아파치가 자동으로 no-cache 를 붙이기 때문에 넣어준다. 
header('Cache-Control: max-age=2592000'); 
header('Expires: '.substr(gmdate('r', strtotime('+1 MONTH')), 0, -5).'GMT'); 




Post by 넥스트리소프트 데꾸벅(techbug)
, |

금일(2009/01/20)  KISA(인터넷침해사고대응지원센터)에서 홈페이지관련 보안강화도구인 캐슬을 배포하였다. (진작에 이렇게 하지..) 
 웹관련 분야에 종사하다 보면 프로젝트 말기에 보안관련 패치와 보안관련 레포트에 스트레스를 받아오던 차에 범정부(?) 적으로 지원해 주니 감사할 따름이다. 



최근 공격자들이 국내 홈페이지를 해킹하여 악성코드 유포 및 개인정보 탈취하는 사례가 지속적으로 발생하고 있습니다.

이에, 한국정보보호진흥원에서는 홈페이지의 보안성을 강화하는 "홈페이지 보안 강화도구(CASTLE)"를 배포하고 있습니다.

사용을 희망하는 회사(기관)나 개인 사용자 분들은 아래의 프로그램과 설명서를 다운받아 사용하시기 바랍니다.

○ CASTLE 다운로드(ASP, PHP, JSP)  --------------------

○ CASTLE 사용자 설명서 다운로드------------------------

○ CASTLE 설치 가이드 다운로드 -------------------------
※ CASTLE를 홈페이지에 적용하면, 주요 취약점을 공격하는 침입시도 및 공격코드들을 차단할 수 있습니다. 또한 개발 중이거나, 운영 중인 홈페이지에 약간의 수정을 통해 쉽게 적용 가능하고, 적용 후 CASTLE의 관리 기능으로 손쉽게 관련 정책이나, 설정을 수정할 수 있습니다.




참고적으로 웹보안 4종가이드를 첨부하여 올린다. 

1. 홈페이지 개발 보안가이드
2. 웹애플리케이션 보안템플릿(PHP버전)
3. 웹서버 구축 점검가이드
4. 가이드 CD


















'Integrator > SECURITY' 카테고리의 다른 글

IIS 405 Error 처리방법  (2) 2008.10.29
Post by 넥스트리소프트 데꾸벅(techbug)
, |

Maximum URL length

GET방식의 길이제한에 대한 의견이 분분하다. FORM submission에 대한 데이타를 찾아 보다 유용한 정보가 있어 포스팅한다.

GET방식의 길이제한에 대해 서로 틀린 이유는  HTTP프로토콜의 역사(historical)에서 비롯된다.
기존 GET방식은 1024Character였던것들이 브라우저 업데이트및 HTTP 프로토콜의 업데이트에 의해 서로 틀려졌기 때문이다.
그러나 지금 현재 여타 다른 브라우저의 경우에는 GET방식의 URL 길이 제한이 없다. 그러나 IE의 경우에만 예외로 GET방식의 길이 제한이 있다.  그 이유는 MS에서 Internet Explorer의 주소창에 들어가 문자수가 정해져 있기 때문이다.

참조 : http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208427

MS IE의 경우 maximum URL은 POST(주소줄에 표시되는 action URL)이든 GET이든 2,083 character를 가질수 있다. 만일 GET방식을 사용한다면 실제 action주소를 뺀 2,048 character만 적용된다. 그러나 POST방식을 경우 action주소를 제외한 name/value 쌍으로 이루어진 데이타는 길이나 용량제한이 없다.

RFC2616 (Hypertext Transfer Protocaol -- HTTP/1.1 표준스펙)에는 URL길이에 대해서 아무런 명세도 표기되어 있지 않다. 더이상 길이가지고 싸우지 않기를.. ㅡ.,ㅡ;

자세한 정보는 RFC616 의 섹션 3.2.1의 General Syntax를 참조하기 바란다.
ftp://ftp.isi.edu/in-notes/rfc2616.txt

적용브라우저 : IE7, 6, 5.5,  5.01, 4.01 sp2, 4.0 128bit edition 

 
HTML Forms에서 GET, POST method의 다른점도 한번 읽어보시길....


'Integrator > Windows' 카테고리의 다른 글

데꾸벅체 다운로드  (0) 2008.07.09
MS office2007 Excel 파일 각각 따로 열기  (8) 2008.06.27
윈도우 서비스 등록하기  (1) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |
ajax POST로 호출시 같은 도메인의 다른 웹서버의 xml 을 호출하였을 경우 405에러가 발생하는 경우가 있다.  이럴때는 get방식으로 처리한다. ㅡ.,ㅡ;  무조건 ajax는 RESTful하게 작성하는게 좋겠다...

 
   $.ajax({
        type: "POST", url: "xml/liveScore.xml",   //--> GET바꿔주면 해결끝
        data: {}, async: true, cache: false, dataType: 'xml',  timeout: 5000, global: false,
        success:function(resultDataSet){
            if(resultDataSet !=undefined && resultDataSet !=null ){
                var howManyLivescoreList =$(resultDataSet).find('list').length;
                if(howManyLivescoreList > 0 ) {
                    changeMainTab("livescore");
                }
            }
        }
    });




아래 사이트 참조 :
http://www.somacon.com/p126.php


원인은 IIS script map settings 에 get방식으로 조회가능한 확장자로 되어있어서 맵핑을 시켜주지 않는데서 있다.  보안정책상 IIS6에서는 스크립트 실행을 되지 않게 해 놓은데서 발생하는 문제다.

해결책은 다음과 같이..

  1. Go to "Control Panel"-"Administrative Tools"-"Internet Information Services".
  2. Expand the tree to "COMPUTERNAME"-"Web Sites"-"Default Web Site".
  3. Right-click on "Default Web Site" and select "Properties". (Alternately, select "Default Web Site" and press Alt+Enter.)
  4. Select the "Home Directory" tab.
  5. Click the "Configuration" button.
  6. From the "Mappings" tab, select the "Add" button.
  7. Click the "Browse..." button, choose "Dynamic Link Libraries *.dll" from the "Files of Type" dropdown, and select c:\WINDOWS\System32\inetsrv\asp.dll.
  8. Type ".html" (without quotes) in the "Extension" box.
  9. Select the "Limit to:" radio button, and type in "GET, POST" (without quotes) in the box next to it.
  10. Click the "OK" button and close all the dialogs. (If the "OK" button is greyed out, then make sure all the entries are correct and try clicking in the file name box.)

이것보단 그냥 RESTful하게 조회는 GET으로 처리하는게...



'Integrator > SECURITY' 카테고리의 다른 글

홈페이지 보안 강화 도구(CASTLE) 보급 안내  (1) 2009.01.20
Post by 넥스트리소프트 데꾸벅(techbug)
, |
코딩할때 사용하려고 만들어 놓은 폰트...
일단, 한글은 맑은고딕과 영어 bitstream 으로 폰트 구성해놨어요~~


데꾸벅체 다운로드

techbug.zip






Post by 넥스트리소프트 데꾸벅(techbug)
, |

Excel 새창에서 열기
엑셀시트를 이용해서 작업을 하다가 보면 기본적으로 항상 같은 창에 cascade하게 열린다.
파일을 각각 따로 열고 싶을때가 있다.

뇌입어 지식인에 물어보면 xp에서는 있는 메뉴가 vista에는 없는 경우가 있어
직접 excel 파일의 환경설정을 찾아봐야 하나 2007 메뉴가 기존의 as-is와 틀려서
한참을 고생하다 찾은 팁을 올린다.

먼저 이곳(http://support.microsoft.com/kb/2551928/ko#B-1)을 참조하는게 더 빠를듯..




1.  오른쪽 하단의 "Excel 옵션" 클릭



2. 고급 > 일반 > DDE 체크


3. 끝 ㅡ.,ㅡ;




PowerPoint 2007 따로열기


1. 첨부된 파일을 다운받은후 압축을 해제한다.


2. PPCORE.DLL 이라는 파일을 확인한다.

3. 열려있는 모든 PowerPoint를 종료한다.

4. C:\Program Files\Microsoft Office\Office12\PPCORE.DLL 을 백업한다.[선택]

5. C:\Program Files\Microsoft Office\Office12에 압축을 해제한 PPCORE.DLL을 복사한다.

6. Microsoft Office 2007 PowerPoint를 실행하면 이제 각각의 창으로 오픈된다.


'Integrator > Windows' 카테고리의 다른 글

GET Method 길이 제한 (최대 URL 길이 )  (3) 2008.11.20
데꾸벅체 다운로드  (0) 2008.07.09
윈도우 서비스 등록하기  (1) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |
출처 : http://www.linuxalt.com/


Windows Software Linux Equivalent/Alternative
3D Studio Max
K-3D ( http://www.k-3d.org/ )
Wings 3D ( http://www.wings3d.com/ )
Art of Illusion ( http://www.artofillusion.org/ )
Blender ( http://www.blender.org/ )
ACDSee
KuickShow ( http://kuickshow.sourceforge.net/ )
ShowImg ( http://www.jalix.org/projects/showimg/ )
Gwenview ( http://gwenview.sourceforge.net/ )
GQview ( http://gqview.sourceforge.net/ )
Eye of GNOME ( http://www.gnome.org/projects/eog/ )
Adobe Acrobat Reader
okular ( http://kpdf.kde.org/okular/ )
Xpdf ( http://www.foolabs.com/xpdf/ )
Evince ( http://www.gnome.org/projects/evince/ )
ePDFView ( http://trac.emma-soft.com/epdfview/ )
KPDF ( http://kpdf.kde.org/ )
Adobe Audition
Audacity ( http://audacity.sourceforge.net/ )
Adobe Illustrator
Skencil ( http://www.skencil.org/ )
Inkscape ( http://www.inkscape.org/ )
Karbon14 ( http://www.koffice.org/karbon/ )
Xara Xtreme for Linux ( http://www.xaraxtreme.org/ )
Adobe PageMaker
Scribus ( http://www.scribus.net/ )
Adobe PhotoAlbum
F-Spot ( http://f-spot.org/Main_Page )
KPhotoAlbum ( http://www.kphotoalbum.org/ )
digiKam ( http://www.digikam.org/ )
Adobe Photoshop
CinePaint ( http://www.cinepaint.org/ )
Krita ( http://www.koffice.org/krita/ )
GIMP ( http://www.gimp.org/ )
Adobe Premier
PiTiVi ( http://www.pitivi.org/wiki/Main_Page )
LiVES ( http://lives.sourceforge.net/ )
Kino ( http://www.kinodv.org/ )
Cinelerra ( http://cvs.cinelerra.org/ )
kdenlive ( http://kdenlive.sourceforge.net/ )
Jahshaka ( http://www.jahshaka.org/ )
Ant Movie Catalog
Moviefly ( https://savannah.nongnu.org/projects/lmc/ )
AOL Instant Messenger (AIM)
Kopete ( http://kopete.kde.org/ )
Pidgin ( http://pidgin.im )
APC PowerChute
Network UPS Tools ( http://www.networkupstools.org/ )
Apcupsd ( http://www.apcupsd.com/ )
PowerD ( http://power.sourceforge.net/ )
CDex
Sound Juicer ( http://www.burtonini.com/blog/computers/sound-juicer )
Rubyripper ( http://wiki.hydrogenaudio.org/index.php?title=Rubyripper )
ripperX ( http://ripperx.sourceforge.net/ )
Grip ( http://nostatic.org/grip/ )
KAudioCreator ( http://www.icefox.net/programs/?program=KAudioCreator )
Collectorz
aviManager ( http://avimanager.sourceforge.net/ )
GCstar ( http://www.gcstar.org/ )
Tellico ( http://periapsis.org/tellico/ )
Alexandria ( http://alexandria.rubyforge.org/ )
Griffith ( http://griffith.vasconunes.net/ )
vMovieDB ( http://vmoviedb.sourceforge.net/ )
Katalog ( http://salvaste.altervista.org/ )
Dreamweaver
Quanta Plus ( http://quanta.kdewebdev.org/ )
Geany ( http://geany.uvena.de )
Nvu ( http://www.nvu.com/index.php )
Screem ( http://www.screem.org/ )
KompoZer ( http://www.kompozer.net/ )
Bluefish ( http://bluefish.openoffice.nl/index.html )
DVDShrink
k9copy ( http://k9copy.sourceforge.net/ )
OGMRip ( http://ogmrip.sourceforge.net/ )
Thoggen ( http://thoggen.net/ )
xdvdshrink ( http://dvdshrink.sourceforge.net/ )
DVD Rip-O-Matic ( http://dvdripomatic.sourceforge.net )
qVamps ( http://vamps.sourceforge.net/ )
dvd::rip ( http://www.exit1.org/dvdrip/ )
AcidRip ( http://untrepid.com/acidrip/ )
Everest
HardInfo ( http://hardinfo.berlios.de/web/HomePage )
Finale
Lilypond ( http://www.lilypond.org )
Denemo ( http://denemo.sourceforge.net/index.html )
Rosegarden ( http://www.rosegardenmusic.com/ )
NoteEdit ( http://noteedit.berlios.de/ )
Brahms ( http://brahms.sourceforge.net/ )
Flash
F4L ( http://f4l.sourceforge.net/ )
Forte Agent
Pan ( http://pan.rebelbase.com/ )
FruityLoops
LMMS ( http://lmms.sourceforge.net/ )
Hydrogen ( http://www.hydrogen-music.org/ )
Google Desktop Search
Google Desktop ( http://desktop.google.com/linux/index.html )
Beagle ( http://beagle-project.org/ )
Guitar Pro
TuxGuitar ( http://www.tuxguitar.com.ar/home.html )
iTunes
Banshee ( http://banshee-project.org/Main_Page )
aTunes ( http://www.atunes.org/ )
Quod Libet ( http://www.sacredchao.net/quodlibet )
SongBird ( http://www.songbirdnest.com )
Exaile ( http://www.exaile.org/ )
Amarok ( http://amarok.kde.org/ )
Listen ( http://listengnome.free.fr/ )
Rhythmbox ( http://www.gnome.org/projects/rhythmbox/ )
gtkpod ( http://www.gtkpod.org/ )
Legacy Family Tree
GRAMPS ( http://gramps-project.org/ )
LimeWire
FrostWire ( http://www.frostwire.com/ )
Meal Master
krecipe ( http://krecipes.sourceforge.net/ )
Gourmet Recipe Manager ( http://grecipe-manager.sourceforge.net/ )
Microsoft Access
Kexi ( http://www.koffice.org/kexi/ )
knoda ( http://www.knoda.org )
GNOME-DB ( http://www.gnome-db.org/ )
Microsoft Excel
KSpread ( http://www.koffice.org/kspread/ )
Open Calc ( http://www.openoffice.org/product/calc.html )
Gnumeric ( http://www.gnome.org/projects/gnumeric/ )
Microsoft Frontpage
Quanta Plus ( http://quanta.kdewebdev.org/ )
Nvu ( http://www.nvu.com/index.php )
KompoZer ( http://www.kompozer.net/ )
Bluefish ( http://bluefish.openoffice.nl/index.html )
Microsoft HyperTerminal
minicom ( http://alioth.debian.org/projects/minicom/ )
GtkTerm ( http://freshmeat.net/projects/gtkterm/ )
Microsoft Internet Explorer
Epiphany ( http://www.gnome.org/projects/epiphany/ )
Opera ( http://www.opera.com/download/ )
Firefox ( http://www.mozilla.com/firefox/ )
Konqueror ( http://www.konqueror.org/ )
Microsoft Money
KMyMoney ( http://kmymoney2.sourceforge.net/ )
GNUcash ( http://www.gnucash.org/ )
Gnofin ( http://gnofin.sourceforge.net/ )
Grisbi ( http://www.grisbi.org/ )
Microsoft Office
GNOME Office ( http://www.gnome.org/gnome-office/ )
KOffice ( http://www.koffice.org/ )
OpenOffice ( http://www.openoffice.org/ )
Microsoft OneNote
BasKet ( http://basket.kde.org/ )
Microsoft Outlook (Express)
Thunderbird ( http://www.mozilla.com/thunderbird/ )
Evolution ( http://www.gnome.org/projects/evolution/ )
Microsoft Powerpoint
Open Office Impress ( http://www.openoffice.org/product/impress.html )
KPresenter ( http://www.koffice.org/kpresenter/ )
Microsoft Project
KPlato ( http://www.koffice.org/kplato/ )
OpenProj ( http://openproj.org/openproj )
GanttProject ( http://ganttproject.sourceforge.net/ )
Planner ( http://live.gnome.org/Planner )
TaskJuggler ( http://www.taskjuggler.org/ )
Microsoft Visio
Dia ( http://www.gnome.org/projects/dia/ )
Kivio ( http://www.koffice.org/kivio/ )
Microsoft Windows Media Center
Freevo ( http://freevo.sourceforge.net/ )
Elisa Media Center ( http://www.fluendo.com/elisa/ )
MythTV ( http://www.mythtv.org )
LinuxMCE ( http://www.linuxmce.com/ )
Microsoft Word
Open Office Writer ( http://www.openoffice.org/product/writer.html )
AbiWord ( http://www.abisource.com/ )
Kword ( http://www.koffice.org/kword/ )
mIRC
Konversation ( http://konversation.kde.org/ )
KVIrc ( http://www.kvirc.net/ )
BitchX ( http://www.bitchx.org/ )
Xchat ( http://www.xchat.org/ )
ChatZilla! ( http://chatzilla.hacksrus.com/ )
irssi ( http://www.irssi.org/ )
Pidgin ( http://pidgin.im )
Mp3tag
Kid3 ( http://kid3.sourceforge.net/ )
Pinkytagger ( http://pinkytagger.sourceforge.net/ )
EasyTAG ( http://easytag.sourceforge.net/ )
Cowbell ( http://more-cowbell.org/ )
Audio Tag Tool ( http://pwp.netcabo.pt/paol/tagtool/ )
MSN messenger
Mercury Messenger ( http://www.mercury.to/ )
Kopete ( http://kopete.kde.org/ )
aMSN ( http://amsn-project.net/ )
Pidgin ( http://pidgin.im )
Mudbox
SharpConstruct ( http://sharp3d.sourceforge.net )
Nero Burning Rom
X-CD-Roast ( http://www.xcdroast.org/ )
Brasero ( http://perso.orange.fr/bonfire/index.htm )
GnomeBaker ( http://gnomebaker.sourceforge.net/ )
Graveman! ( http://graveman.tuxfamily.org/ )
K3b ( http://www.k3b.org/ )
NetMeeting
Ekiga ( http://www.gnomemeeting.org/ )
NetStumbler
Kismet ( http://www.kismetwireless.net/ )
SWScanner ( http://www.swscanner.org/ )
NewzCrawler
RSSOwl ( http://www.rssowl.org/ )
Liferea ( http://liferea.sourceforge.net/ )
BasKet ( http://basket.kde.org/ )
Akregator ( http://akregator.kde.org/ )
Blam ( http://www.cmartin.tk/blam.html )
Straw ( http://www.gnome.org/projects/straw/ )
Notepad
leafpad ( http://tarot.freeshell.org/leafpad/ )
NEdit ( http://www.nedit.org/ )
jEdit ( http://www.jedit.org/ )
Kate ( http://kate-editor.org/ )
gedit ( http://www.gnome.org/projects/gedit/ )
Scribes ( http://scribes.sourceforge.net/ )
tpad ( http://tclpad.sourceforge.net/ )
OrangeCD Catalog
GWhere ( http://www.gwhere.org )
Origin
SciGraphica ( http://scigraphica.sourceforge.net/ )
Partition Magic
Partimage ( http://www.partimage.org/Main_Page )
GParted ( http://gparted.sourceforge.net/ )
QtParted ( http://qtparted.sourceforge.net )
Picasa
F-Spot ( http://f-spot.org/Main_Page )
KPhotoAlbum ( http://www.kphotoalbum.org/ )
digiKam ( http://www.digikam.org/ )
Pro Tools
Ardour ( http://www.ardour.org )
Quicken
KMyMoney ( http://kmymoney2.sourceforge.net/ )
GNUcash ( http://www.gnucash.org/ )
Gnofin ( http://gnofin.sourceforge.net/ )
Grisbi ( http://www.grisbi.org/ )
SoulSeek
Nicotine ( http://nicotine.thegraveyard.org/ )
Nicotine-Plus ( http://nicotine-plus.sourceforge.net/ )
SoundForge
ReZound ( http://rezound.sourceforge.net/ )
TexnicCenter
Total Commander
GNOME Commander ( http://www.nongnu.org/gcmd/ )
xfe ( http://roland65.free.fr/xfe/ )
Tux Commander ( http://tuxcmd.sourceforge.net/ )
Midnight Commander ( http://www.ibiblio.org/mc/ )
Krusader ( http://krusader.sourceforge.net/ )
Traktor DJ
Mixxx ( http://mixxx.sourceforge.net/ )
Videora
thin liquid film ( http://thinliquidfilm.org/ )
Winamp
Audacious ( http://audacious-media-player.org/Main_Page )
Amarok ( http://amarok.kde.org/ )
XMMS ( http://www.xmms.org/ )
Windows Media Player
KPlayer ( http://kplayer.sourceforge.net/ )
VideoLAN ( http://www.videolan.org/ )
xine ( http://xinehq.de/ )
mplayer ( http://www.mplayerhq.hu/design7/news.html )
Windows Movie Maker
PiTiVi ( http://www.pitivi.org/wiki/Main_Page )
LiVES ( http://lives.sourceforge.net/ )
Open Movie Editor ( http://openmovieeditor.sourceforge.net/HomePage )
Avidemux ( http://fixounet.free.fr/avidemux/ )
Cinelerra ( http://cvs.cinelerra.org/ )
kdenlive ( http://kdenlive.sourceforge.net/ )
WinIso
ISO Master ( http://littlesvr.ca/isomaster/ )
KIso ( http://kiso.sourceforge.net/ )
WinMerge
KDiff3 ( http://kdiff3.sourceforge.net/ )
Meld ( http://meld.sourceforge.net/ )
xxdiff ( http://furius.ca/xxdiff/ )
Kile ( http://kile.sourceforge.net/ )
WinTV
XdTV ( http://xawdecode.sourceforge.net/ )
tvtime ( http://tvtime.sourceforge.net/ )
WS_FTP
gFTP ( http://gftp.seul.org/ )
FireFTP ( http://fireftp.mozdev.org/ )
Zbrush
SharpConstruct ( http://sharp3d.sourceforge.net )
ZoneAlarm
Guarddog ( http://www.simonzone.com/software/guarddog/ )
Firestarter ( http://www.fs-security.com/ )

Post by 넥스트리소프트 데꾸벅(techbug)
, |

초기 개발서버를 설치시 설치자가 기본 드라이브에 디폴트로 설치한 덕(?)에 나머지 하드디스크 하나를 인식하지 못하는 문제가 발생하였다.

새로운 하드드라이브를 인식하기 위하여 셋팅을 다시 하기로 한다.

 

디스크 및 파티션 정보 보기

sudo fdisk -l
Disk /dev/sda: 18.3 GB, 18351959040 bytes
255 heads, 63 sectors/track, 2231 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 12 96358+ 83 Linux
/dev/sda2 13 255 1951897+ 82 Linux swap / Solaris
/dev/sda3 256 2231 15872220 83 Linux

Disk /dev/sdb: 73.4 GB, 73407900160 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 8924 71681998+ 8e Linux LVM <--- 한개도 안잡혀있는 sdb1 디스크

파티션 할당하기

  sudo fdisk /dev/sdb1
root@ubuntu:/var# fdisk /dev/sdb1
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 8923.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help):

 

Command (m for help): n
Command action
e extended
p primary partition (1-4)

Partition number (1-4): 1
First cylinder (1-8923, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8923, default 8923): 8923
Command (m for help): w

리부팅

디스크 정보 할당을 위하여 리부팅한다.

 reboot

파티션 포맷

  sudo mkfs.ext3 /dev/sdb1
 
root@ubuntu:/var# mkfs.ext3 /dev/sdb1
mke2fs 1.38 (30-Jun-2005)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
8962048 inodes, 17920499 blocks
896024 blocks (5.00%) reserved for the super user
First data block=0
547 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

마운트할 위치 만들기

mkdir /home1

마운트하기

mount /dev/sdb1 /home1

자동 마운트 설정

  /etc/fstab 파일을 편집
 [파티션] [마운트] ext3 defaults,errors=remount-rw 0 1
  #
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda3 / ext3 defaults,errors=remount-ro 0 1
/dev/sda1 /boot ext3 defaults 0 2
/dev/sda2 none swap sw 0 0
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/sdb1 /home1 ext3 defaults,erros=remount-rw 0 1
/dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

 

정보 새로고침

 sudo mount -a

GUI로 된 디스크관리 매니저를 설치

 sudo apt-get install gparted

Post by 넥스트리소프트 데꾸벅(techbug)
, |

우분투가 데비안 커널을 사용하는것인지 서버설정이며 기본명령어가 대부분 데비안과 비슷하다. ㅡ.,ㅡ;
이제껏 사용했던 빨간모자-레뎃(redhat)의 네트웍 설정은 아무런 도움이 되지 못했다.

초기 설치시 DHCP를 사용하게 되어있던 항목을 고정아이피로 바꿔주기 위해서 구글신을 빌었다.
설정은 아래와 같이 하면된다.

우선 서버콘솔박스 앞에서 작업한다면  (리모트로 작업한다면 ifdown하는 동시에 터미널접속이 끊어지므로 주의)

ifdown eth0

로 네트웍카드를 잠시 멈춘후 아래 내용을 etc/network/interfaces에 설정한다.

auto lo
iface lo inet
loopback

auto eth0
iface eth0 inet static
address 192.168.10.136
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
gateway 192.168.10.1
dns-nameservers 168.126.63.1 168.126.63.2
위와 같이 설정후  
ifup eth0
으로 네트웍을 설정한다.
리모트로 작업한다면 위의 ifdown이나 ifup을 사용하지 말고

sudo /etc/init.d/networking restart

으로 네트웍을 다시 시작하는것이 좋다.


'Integrator > U-LINUX' 카테고리의 다른 글

리눅스용 소프트웨어  (0) 2008.03.29
우분투에서 하드드라이브 추가하기  (2) 2008.03.04
우분투 vsftpd 설치하기  (1) 2008.03.04
리눅스 스트리밍 서버에 관한 솔류션  (2) 2008.02.21
ftp passive mode  (0) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |
sudo apt-get install vsftpd

설치된 ftp서비스는 기본적으로 anonymous로만 access가능하도록 설정 된다. ( root경로:  /home/ftp/ )
local user로 접속하고 upload가능하도록 하려면, vsftpd.conf 파일을 열고,

  anonymous_enable=NO
  local_enable=YES
  write_enable=YES


와 같이 편집해 준다.
그리고, 서비스를 재기동한다.

  sudo /etc/init.d/vsftpd restart


원격으로 ftp 클라이언트를 이용해서 접속해보고 파일을 올려 보자.



port 변경하기

  sudo vi /etc/vsftpd.conf
  listen_port=1024

를 추가한다. 그리고,

 
  sudo vi /etc/services 에서
  ftp 21/tcp --> ftp 1024/tcp 로 변경해 준다.

 

 

기본 환경설정

anonymous_enable=YES # 익명유저의 로그인 허용유무.
anon_upload_enable=YES # 익명유저의 업로드 허용유무.

chown_upload=YES # 익명유저가 업로드한 파일의 소유권을 자동변경.
chwon_username=shin1k # 소유권을 변경하기 원하는 유저명으로 기입(예제는, shin1k 소유로 변경).

no_priv_user=ftp # 익명(anonymous) 로그인시, 앨리어싱될 유저명 기입.
ftpd_banner=Welcome to Nextree File Server # FTP 로그인시 보여줄 메시지 기입.

chroot_local_user=YES # FTP 로그인시, 최상단 디렉토리를 해당유저의 홈계정 안으로 제한시킴.
chroot_list_enable=YES # 유저명이 기입된 리스트의 사용을 활성화시킴.
chroot_list_file=/etc/vsftpd.chroot_list # 유저 리스트의 파일명을 명시.
!!! 여기서 잠깐~ 주의사항 !!!
chroot_local_user=YES 일 경우 => 유저리스트에 기입된 유저: 홈계정 제한을 풀어줄 유저를 의미
chroot_local_user=NO 일 경우 => 유저리스트에 기입된 유저: 홈계정 제한을 가할 유저를 의미



일반적으로 익명(anonymous) 접속시 ftp 와 같은 Non-Privileged 유저로 앨리어스되는 건 다들 알고 계실 겁니다.
예 전부터 많은분들이 사용하셨던 proftpd 데비안 패키지의 경우, debconf 설치메뉴에서 anonymous 로그인 허용을 "YES" 하실 경우 ftp 라는 이름의 유저가 추가됩니다. 그런데 이러한 proftpd 에서 추가됐던 ftp 유저의 홈디렉토리 권한을 그대로 놔두실 경우엔 vsftpd 의 설정에서 익명접속을 허용하셨더라도 "OOPS 500~" 하는 식의 에러메시지와 함께 접속이 되지 않으실 겁니다.
저도 한참 헤매다 나중에야 알게 됐는데요. proftpd 설치시에 추가된 ftp 유저의 홈디렉토리 권한은 당연히 ftp.nogroup 으로 되어있을 겁니다. proftpd 의 경우엔 이상태에서 아무문제없이 익명접속이 허용됐지만, vsftpd의 경우엔 반드시 ftp 유저의 홈디렉토리의 권한을 root.root 로 셋팅해주셔야 익명접속이 문제없이 될겁니다.
아무래도 보안을 위한 조치인것 같긴한데, 어쨋든 예전에 proftpd를 설치하셨다가 vsftpd 로 전환하신 분들의 경우엔 이점만 주의해 주시면 될겁니다.

 

 위 설정파일중 반전된 부분만 넥스트리 ftp 서버에 설정된 내용입니다.
개인 사용자 등록시 반드시 /etc/vsftpd.chroot_list 에 등록하셔야 합니다.

 

 


 

 

 

 

  ==[참고]=========================================================

  VsFTP 서버

1. vsftpd FTP 서버에 대해

vsftpd는 UNIX 시스템에서 사용할 수 있는 free FTP 서버(라이센스는 GPL)이다.
vsftpd가 내세우고 있는 것은 보안, 성능, 안정성이다. 지금까지 vsftpd의 자체 보안 문제가 있어
보안권고가 나온 적은 없다.(Redhat의 rpm 패키지중에 tcp_wrappers 지원없이 만들어져서 업데이트
rpm은 나온 적 있음)

* 지원 및 테스트된 OS

- Linux (Redhat, SuSE, Debian)
- Solaris (버전에 따라 IPv6나 inet_aton함수때문에 설치가 잘 안될 수 있음)
- FreeBSD, OpenBSD
- HP-UX
- IRIX

* 주요 기능

- 가상 IP별 별도의 환경 설정 기능 (설정파일의 listen_address= 이용)
- 가상 사용자 설정
- 전송 대역폭 지정
- PAM 지원 (버전 1.2.0부터는 PAM을 통한 wtmp에 로긴 로그를 남김)
- xferlog 표준 로그 파일보다 상세한 자체 로그 파일 형식 지원
- Standalone 방식과 inetd(xinetd)를 통한 운영 모두 지원
- IP별 다른 환경 파일 지정 기능 (tcp_wrappers와 함께 사용할 때)
- ...

2. vsftpd 설치

※ 설치는 Redhat 기준. 솔라리스의 PAM에 대한 것은 README.solaris 파일 참조한다.

http://vsftpd.beasts.org/ 에서 최신버전(현재 1.2.0)의 소스를 받아온다.


# tar xvfz vsftpd-1.2.0.tar.gz
# cd vsftpd-1.2.0



한글로 된 파일명을 전송할 때 로그에 파일명이 ???? 로 남지 않도록
logging.c 파일을 연 후 140번째 줄의

str_replace_unprintable(p_str, '?');

를 다음처럼 주석 처리한다.

/* str_replace_unprintable(p_str, '?'); */

또한 tcp_wrappers를 통한 접속제어를 사용하려면 builddefs.h 에서

#undef VSF_BUILD_TCPWRAPPERS 를
#define VSF_BUILD_TCPWRAPPERS 로 바꾼다.


# make
# make install (vsftpd 데몬, man page, xinetd 용 설정 파일 설치)
# cp vsftpd.conf /etc (환경설정 파일 복사)
# chmod 600 /etc/vsftpd.conf
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd (PAM 설정 파일 복사)



/etc/pam.d/vsftpd 첫번째 줄에 다음과 같이 있다.


pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed



즉, /etc/ftpusers 파일에 존재하는 ID는 접속할 수 없게된다.(sense=deny)


# FTP 접속을 허용하지 않을 ID를 등록한다.
# /etc/passwd를 참조해서 설치할 서버의 환경에 맞게 등록
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
smmsp
xfs
gdm
mysql


3. vsftpd.conf 의 주요 설정


# anonymous 사용자의 접속 허용 여부, 즉 anonymous ftp (default = YES)
# 공개된 형태의 FTP 서버로 운영할 것이 아니라면 NO로 한다.
anonymous_enable=NO
# 로컬 계정 사용자의 접속 허용 여부 (default = NO)
local_enable=YES

# write 명령어 허용 여부 (defualt = NO)
write_enable=YES
# 로컬 계정 사용자용 umask (default = 077)
local_umask=022

# anonymous 사용자가 파일을 업로드 할 수 있는지 여부 (default = NO)
# anon_upload_enable=YES
# anonymous 사용자의 디렉토리 생성 허용 여부 (default = NO)
# anon_mkdir_write_enable=YES

# 파일 전송 로그를 남길 것인지 여부 (default = YES)
xferlog_enable=YES
# xferlog 표준 포맷으로 로그를 남길지 여부 (기본 설정파일은 YES)
# 아래에서 NO로 설정했을 때를 설명함
xferlog_std_format=YES
# 파일 전송 로그 파일명
xferlog_file=/var/log/vsftpd.log

# FTP 서버 접속할 때 로긴 메시지 (default = vsFTPd 버전번호)
# 한글 사용 가능
# ftpd_banner=Welcome to blah FTP service.

# 사용자의 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정 (default=NO)
# 제한이 필요할 경우 YES로 바꾼 후 제한할 사용자 ID를 chroot_list_file= 에 설정한 파일에
# 지정한다.
# chroot_local_user= 설정과 관련이 있으니 '3. 문제 해결'을 꼭 읽어보라.
#
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd.chroot_list

# -------------------------------------------------------------------
# 기본 설정 파일에는 없는 설정값으로 필요한 설정만 추가한다.
# ※ 중요한 설정은 굵은 글씨로 표시
# -------------------------------------------------------------------

# PAM 파일명을 지정 (설치할 때 /etc/pam.d/vsftpd명으로 복사함)
pam_service_name=vsftpd

# wtmp에 로그 남기기 (YES로 해야만 last 명령어로 접속 여부 확인 가능)
session_support=YES

# 사용자가 자신의 home directory를 벗어나지 못하도록 설정
chroot_local_user=YES

# 새로운 디렉토리에 들어갔을 때 뿌려줄 환경 메시지를 저장한 파일명
# message_file=.message

# xferlog 형식으로 log를 남기려면 (위에서 이미 YES로 했음)
# xferlog_std_format=NO
#
#  - xferlog 표준 포맷은 로긴, 디렉토리 생성등의 로그를 남기지 않음
#   그러나 vsftpd 스타일 로그는 이를 포함한 보다 상세한 로그를 남김
#  - vsftpd 스타일 로그 예
#
#  Sun Jul 12 01:38:32 2003 [pid 31200] CONNECT: Client "127.0.0.1"
#  Sun Jul 12 01:38:34 2003 [pid 31199] [truefeel] FAIL LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:38 2003 [pid 31199] [truefeel] OK LOGIN: Client "127.0.0.1"
#  Sun Jul 12 01:38:41 2003 [pid 31201] [truefeel] OK MKDIR: Client "127.0.0.1", "/mp3"
#  Sun Jul 12 01:39:06 2003 [pid 31201] [truefeel] OK UPLOAD: Client "127.0.0.1", "/델리
#  스파이스 5집 - [04]키치죠지의 검은 고양이.mp3", 6855473 bytes, 3857.39Kbyte/sec

# 전송속도 제한 (0은 제한없음, 단위는 초당 bytes)
anon_max_rate=0
local_max_rate=0
trans_chunk_size=0

# 최대 접속 설정 (단 xinetd를 통하지 않고 standalone으로 동작할 때만 사용 가능)
# standalone을 위해서는 listen=YES 추가하고 별도로 vsftpd를 띄워야 함
#
# max_clients=최대 접속자 수, max_per_ip=IP당 접속 수
# max_clients=100
# max_per_ip=3

# Standalone 으로 운영할 때 listen=YES. 포트 변경을 원할 경우 listen_port 설정
# 디폴트 포트는 21번 포트이다.
# listen=YES
# listen_port=21



필요한 설정이 끝났으면 xinetd를 재실행한다.


# /etc/rc.d/init.d/xinetd restart



4. 문제 해결

1) ftpwho 같은 명령은 있나?
  또한 last를 해도 접속된 걸 확인할 수가 없는데 방법이 없나?

 ftpwho 형태의 명령은 없으며 임시적으로 다음 명령어 등으로 확인할 수 있다.

 # ps -ef|grep vsftpd
 # fuser -v ftp/tcp

 vsftpd v1.2.0이상부터 PAM을 통해 wtmp에 로그를 남기므로 last로 접속여부를 확인할 수 있다.

2) 한글 파일명이 전송될 때는 vsftpd.log 에 ???? 로 남는다. 해결책은?

 vsftpd는 출력할 수 없다고 판단하는
 ASCII 코드 31 이하, 128~159, 177 문자를 모두 ? 로 바꿔서 저장을 한다.
 따라서 이 부분을 처리하지 않고 저장하도록 소스를 수정한 후 컴파일하면 해결된다.

3) 사용자가 홈디렉토리를 못 벗어나게 하고 싶는데?

 /etc/vsftpd.conf에 다음을 추가하면, 모든 사용자는 자신의 홈디렉토리만 접근할 수 있다.

 chroot_local_user=YES

 또한 특정 사용자로만 제한을 하고 싶다면 다음과 같이 한다. /etc/vsftpd.chroot_list에는 제한할
 사용자 ID를 한줄에 하나씩 나열하면 된다.

 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd.chroot_list

 주의할 것은 chroot_local_user=YES와 chroot_list_enable=YES를 함께 사용할 경우에는
 /etc/vsftpd.chroot_list에 포함된 사용자 ID만 제한없이 홈디렉토리를 벗어날 수 있다.
 즉, 반대로 작용한다.

 standalone으로 FTP서버가 동작중이면 재실행 필요. standalone에 대해서는 6)번에서.

4) root로 접속할 수는 없나?

 가능하면 root 접속은 허용하지 않기를 바란다.
 /etc/ftpusers 파일에서 root를 빼면 접속이 가능하다.

5) ID/비밀번호가 정확히 맞는데 로긴할 때 자꾸 530 Login incorrect. 라고 나온다.

 /etc/ftpusers (또는 vsftpd.ftpusers)에 등록된 사용자인지 확인한다.
 여기에 등록된 사용자는 로긴할 수 없다. 이럴 때 /var/log/messages에 다음과 같은 로그가 남는다.

 Aug 16 22:21:52 truefeel vsftpd: PAM-listfile: Refused user xxxxxxxx for service vsftpd

6) standalone으로 운영하고 싶다.
  (즉, apache나 sendmail처럼 xinetd 통하지 않고 운영을 원한다.)

 /etc/xinetd.d/vsftpd (vsftpd가 아닌 다른 파일명일 수 있음) 에서 disable = yes 로 변경하여
 xinetd로 서비스 하지 않도록 설정한다. xinetd 를 재실행하면 이제 xinetd를 통한 ftp 서비스는 종료된다.

 레드햇의 경우 /etc/rc.d/init.d/xinetd restart

 이제 vsftpd 데몬를 실행한다. (소스로 설치시 기본 경로는 /usr/local/sbin)

 # /usr/local/sbin/vsftpd &

7) 다른 포트(기본 21번)를 사용하고 싶다. (예를 들어 11121번 포트를 원할 때)

 * xinetd를 이용하는 경우

  /etc/service 에 'ftp2  11121/tcp' 한 줄을 추가한다.
  그리고 /etc/xinetd.d/vsftpd (vsftpd가 아닌 ftp와 같은 다른 파일명일 수 있음) 에서
  service ftp 를 service ftp2로 바꾸고, xinetd 를 재실행한다.

 * standalone으로 운영하는 경우

  /etc/vsftpd.conf 에서 listen_port=11121 을 추가하고 vsftpd 서버를 재실행한다.

 바뀐 포트로 운영중인지 확인은 netstat -atnp(리눅스) 또는 netstat -an(그 이외 유닉스)

8) 업로드 파일 크기를 제한하는 방법은 없나요? 이를테면 5MB이상의 파일은 업로드 못한다든지.

 현재 1.2.1버전까지 vsftpd 자체에 설정하는 방법은 없습니다.

 

Post by 넥스트리소프트 데꾸벅(techbug)
, |

이상하게 분류가 형상관리에 들어가 버린 이유는 subversion때문인가 보다..



1. Apache 2.0.xx 버전 설치 (2.0.59 버전 설치 했음)
아래 링크에서 아파치를 다운받아 설치 한다. httpd/binaries/win32/ 에서 받으면 된다. (apache_2.0.59-win32-x86-openssl-0.9.7j.msi)
http://www.apache.org/dyn/closer.cgi
2.0.xx 이상 버전(2.2.x)은 Window Subversion이 지원하지 못한다. 꼭 2.0.xx 버전대를 설치하도록 한다.
(자세한 사항은 링크를 참조한다. http://subversion.tigris.org/project_packages.html)
2007년 1월 25일 Apache 2.2.x 버전을 위한 Subversion 이 build됨. - 아직 테스트 해보지 못함.
버전 또는 다른 사유로 Apache를 재설치 시 3-2. mod_python과 2. Subversion을 재설치하여야 한다.

2. Subversion 최신버전 설치 (1.4.3 설치)
아래의 링크에서 Window용 Subversion을 다운받아 설치한다. (svn-1.4.3-setup)
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=8100
Apache가 설치된후에 설치를 해야 httpd.conf 에 Subversion의 올바른 경로가 설정된다.

3. Python 2.4 설치
아래 링크에서 Python을 다운받아 설치한다.(Python 2.4.4)
http://www.python.org/download/
Python 2.5 버전은 지원하지 모듈이 있으므로 가급적 2.4 버전을 설치한다.(6)
그래도 2.5 버전을 설치하고 싶다면  http://trac.edgewall.org/wiki/TracInstall 페이지를 참조한다.

3-1. svn-win32-1.4.3_py2.4.exe 을 다운받아 설치
아래의 링크에서 Subversion 1.4.3 Win32 Installer for the Python 2.4 bindings 을 다운받아 설치한다.
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91&expandFolder=91&folderID=8100 

3-2. mod-python-3.3.1-py2.4 다운받아 설치
Apache의 속도를 빠르게 하기 위해서 아래의 링크에서 mod_python을 다운받아 설치한다. (mod_python-3.3.1.win32-py2.4-Apache2.0.exe)
http://httpd.apache.org/modules/python-download.cgi
* Win32Binaries 라고 중간에 링크가 걸려있다.
* Apache를 재설치할경우 mod_python은 다시 설치해 주어야 한다.

3-3. Docutils 설치
아래의 링크에서 docutils-0.4.tgz 를 다운받아 압축을 푼다음 $ python ./setup.py install 와 같이 실행하여 설치한다.
http://docutils.sourceforge.net/

3-4. PySQLite 설치
아래의 링크에서 Python 버전(2.4)에 맞는 PySQLite를 다운받아 설치
http://initd.org/tracker/pysqlite/wiki/pysqlite
TRAC에서 MySQL을 지원하나 아직 테스트 단계이므로 PySQLite를 설치하도록 하자.

3-5. ClearSilver 설치
아래의 링크에서 Python 버전(2.4)에 맞는 ClearSilver를 다운받아 설치(clearsilver-0.9.14.win32-py2.4.exe) - Python2.5용 버전이 없다.
http://www.clearsilver.net/downloads/

4. TRAC 0.10.3.1 설치
아래의 링크에서 윈도우용 인스톨러 TRAC을 다운받아 설치
http://trac.edgewall.org/wiki/TracDownload

이곳까지 설치를 완료했다면 Apache와 TRAC 그리고 Subversion 이 연동되도록 최소한 설치작업을 모든 마쳤다.
테스트를 해보지는 않았지만 이 모두를 한꺼번에 설치하기위한 웹페이지가 있다.
각 설치파일들의 버전도 가장 최신버전으로 설정되어 있다.
아래의 링크를 참조한다.
http://yeoupooh.us.to:8080/wiki/display/pu/TracOnWindows

 
5. Subversion Repository 생성 및 TRAC의 DB생성
Subversion의 Repository를 생성하는 방법으로 2가지가 있다.
첫번째는 console을 사용하여 text로 생성하는 방법과 TortoiseSVN을 사용하여 생성하는 방법이 있다.
생성하는 방법은 아래의 참고자료의 링크들을 참고하여 생성하도록 한다.
TRAC의 DB는 Python환경에서 console에서 작성하여야 한다.
자세한 방법은 아래의 링크를 참조한다.
http://jongyeob.com/moniwiki/wiki.php/TracInstall

TRAC의 DB와 Subversion의 Repository를 구성한 예시)

d:\SVN  --+- TEST
                +- PROJECTA
               +- PROJECTB
d:\TRAC --+- TEST
              +- PROJECTA
              +- PROJECTB

* 디랙토리 구조는 어디까지 예시이다. 그러나 어떻게 구성할것인가 미리 검토하고 작성하는것이 두번일 안하는 비결이다.
TRAC을 위해서는 Apache config 파일(httpd.conf)에 아래 내용들을 추가한다.

LoadModule python_module modules/mod_python.so
<Location /test>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv d:\trac\test
</Location>



http://localhost/test 로 접근해서 TRAC의 첫페이지가 나오면 성공이다.
Subversion의 Repository를 위해서는 아래의 내용을 추가한다.

<Location /svn/test>
   DAV svn
   SVNPath d:\svn\test
</Location>

http://localhost/svn/test 로 접근해서 Repository revision 화면이 나오면 성공이다.

6. login 설치 - 인증
* .htaccess 파일을 생성해서 특정한 폴더에 두고 TRAC의 login시와 Subversion의 login시 같이 사용하도록 하면 계정관리하기도 수월하다.

TRAC의 login을 위해서는 아래와 같은 내용을 httpd.conf에 추가한다.

<Location /test/login>
  Authtype Basic
  AuthName "TEST"
  AuthUserFile d:\.htaccess
  Require valid-user
</Location>


.htaccess 는 Apache의 htpasswd.exe를 실행하여 생성한다.
Subversion에 anonymous가 아닌 인증된 사람만 접근을 허용하려면 아래와 같은 내용을 추가한다.

<Location /svn/test>
  DAV svn
  SVNPath d:\svn\test
 Authtype Basic
 AuthName "TEST"
 AuthUserFile d:\.htaccess
 Require valid-user
</Location>

7. Plugin 설치
TRAC의 admin을 사용하여 관리하기 불편하다면 plugin을 설치하자.
http://trac-hacks.org/wiki
ez_setup.py 를 실행 설치후 python24/scripts/easy_install.exe 생성
easy_install.exe ~.egg 로 설치
trac.db/conf/trac.ini 파일에 [components] 에 webadmin.* = enabled 와 같이 추가하여 사용한다.
trac-hacks 에 있는 Plugin등을 다운받지 않고 svn 경로명(http://test.co.kr/test/trunk/0.10)을 easy_install.exe 경로명 으로도 설치 가능하다.

8. http이외의 보안을 위한 접속프로토콜

https로 접속을 위한 SSL 설치

8-1. ssl 설치
LoadModule ssl_module modules/mod_ssl.so 주석(#)을 해제한다.
Apache Service Monitor 를 열어서 아래에 보면 어떤 모듈이 지금 현재 동작중인지 나온다. 참고하자.
Apache/2.0.59(win32) mod_ssl/2.0.59 OpenSSL/0.9.7.j SVN/1.4.3. DAV/2

8-2 인증키 만들기
OpenSSL.exe 를 사용하여 인증서를 만든다.
openssl req -new -out filename.csr
openssl rsa -in privkey.pem -out filename.key
openssl req -new -x509 -days 365 -key filename.key -out filename.crt
생성된 filename.key와 crt 파일을 Apache의 conf 디렉토리에 복사해 넣는다.

8-3 httpd.conf 설정하기
아래의 내용을 추가한다.

Listen 443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "C:\Program Files\Apache Group\Apache2\conf\filename.crt"
SSLCertificateKeyFile "C:\Program Files\Apache Group\Apache2\conf\filename.key"
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM
<Location /svn>
DAV svn
SVNPath d:\svn\test
Authtype Basic
AuthName "TEST"
AuthUserFile d:\trac\.htaccess
Require valid-user
</Location>
</VirtualHost>


Svnserver로 접속을 위한 방법
설치는 아래의 링크를 참조한다.
http://serious-code.net/moin.cgi/SubversionSetup
이재홍님의 SVNmanager를 실행하여 운영한다.
주의할점은 Subversion 디렉토리와 Trac 디렉토리를 구분한다.
TortoiseSVN으로 접속시 Multi Project로 작업이 가능하다.
svn://test.co.kr/test
svn://test.co.kr/projecta

SVN+SSH
Cygwin을 설치
http://ist.uwaterloo.ca/~kscully/CygwinSSHD_W2K3.html
환경변수에 Path=c:\cygwin 와 cygwin=ntsec tty 를 추가

9. 한글화
KLDP의 트랙 한글화 웹페이지를 참조
http://kldp.net/projects/trac-ko/
아래의 링크에서 최신트랙을 다운받아 설치한다.
http://kldp.net/frs/?group_id=724

tarball (tar.gz등 압축된 파일)을 다운받아서 압축을 푼다음 $ python ./setup.py install 와 같이 설치한다.
윈도우용 TRAC이 설치되어 있는 경우 제대로 설치가 되지 않을수 있다. 프로그램 추가삭제에서 TRAC을 삭제후 재설치 해본다.


참고사이트


Subversion
윈도우에 Subversion 설치 - 이재홍님
http://www.pyrasis.com/main/SubversionServerForWindows

SVN manger Utility - 이재홍님
http://www.pyrasis.com/main/SVNSERVEManager

TRAC
Trac 설치 - 종엽님위키
http://jongyeob.com/moniwiki/wiki.php/TracInstall

윈도우XP에 TRAC, Subversion 및 Moniwiki 설치
http://aslongas.pe.kr/tt/index.php?pl=11
http://gaedol.org/resources/wiki/TracGuide

TRAC의 도움말 부분 번역 페이지
http://ai.uos.ac.kr/trac/ailab/wiki/TracInstall

윈도우에 TRAC 설치하기 - TRAC 영문
http://trac.edgewall.org/wiki/TracOnWindows

TRAC에서 Plugin 설치하기 - TRAC 영문
http://trac.edgewall.org/wiki/TracPlugins

WebAdmin Pluging
http://trac.edgewall.org/wiki/WebAdmin

TRAC의 Plugin 이 있는곳 - TRAC Hack 영문
http://trac-hacks.org/wiki

Windows에서 TRAC(StandAlone)과 서브버전 설치 - 영문
http://lazutkin.com/blog/2006/feb/18/setting-tools-windows/

Trac Apache Subversion AllinOne - 모두를 한꺼번에 설치하기
http://yeoupooh.us.to:8080/wiki/display/pu/TracOnWindows

TRAC에서 문서작성을 편하게 하기위한 WikiExporter - CRIZIN님
http://crizin.net/entry/TinyMCE-플러그인-WikiExporter

Subversion과 TRAC연동
Cygwin을 사용한 SVN+SSH 연동
http://hankiya.com/tt/jhk8211/330

Window 2003 server에서 Cygwin SSH daemon 설치 - 영문
http://ist.uwaterloo.ca/~kscully/CygwinSSHD_W2K3.html

SVN+SSH 연동
http://wiki.kldp.org/wiki.php/SubversionTips
http://kwon37xi.egloos.com/2521260

SSH Howto(영문)
http://www.logemann.org/day/archives/000099.html 

서적

서브버전을 이용한 실용적인 버전관리
http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200603080013

보안을 위한 효율적인 방법 PKI
http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200309040006

기타
SSL이란?
http://www.junjaewoo.com/kldp/SSL-Certificates-HOWTO/x70.html

OpenSSL HOWTO 문서  - kldp
http://wiki.kldp.org/wiki.php/DocbookSgml/SSL-Certificates-HOWTO
http://wiki.kldp.org/wiki.php/LinuxdocSgml/ApacheSSL-KLDP
http://wiki.kldp.org/wiki.php/DocbookSgml/SSL-RedHat-HOWTO

tortoiseSVN 다운받기
http://tortoisesvn.net/downloads
tortoiseSVN Howto
http://wiki.kldp.org/wiki.php/TortoiseSVN-USE




TRAC 한글화 프로젝트 : http://kldp.net/projects/trac-ko/

TRAC 설치문서 : http://wiki.kldp.org/wiki.php/trac (*nux)

                        http://jangyeol.wikidot.com/tracinstall  (Windows *)

TRAC 셋팅 : http://daybreaker.springnote.com/pages/39637

TRAC,SVN,SSL 함께 설치하기 : http://kldp.org/node/84957








svn dump 받기

svn 데이터 dump 및 load 방법( Repository 를 MyTest 로 가정)

 

 1. 해당 Repository 가 생성된 상위 directory 로 이동 한다.


 2. Repository 를 dump 한다.
  command >> svnadmin dump MyTest > MyTest.20006.09.09.dump
     ->  전체 dump
  command >> svnadmin dump MyTest -r 10 > MyTest.20006.09.09.dump
     -> 리비전 10 만 dump
  command >> svnadmin dump MyTest -r 10:20 > MyTest.20006.09.09.dump
     -> 리비전 10 부터 20 까지 만 dump

 

 3. 새로운 Repository 를 생성 한다. (Repository 를 MyTestNew 로 가정)
  command >> 
svnadmin create MyTestNew

 

 4. dump 된 데이터를 load 한다. (Repository 를 MyTestNew 로 가정)
  command >> svnadmin load MyTestNew < MyTest.20006.09.09.dump
     -> 새로운 리비전 으로 load (리비전 번호는 1부터 생성)
  command >> svnadmin load MyTestNew --force-uuid < MyTest.20006.09.09.dump
     
-> 기존 dump 했던 리비전 유지

 

 # 기존 리비전을 유지 하면 좋은점.
   1. 동일한 URL 일 경우 Client 에서는 별도의 작업이 필요 없이 기존에 사용
      하던 그대로 사용 가능.
   2. URL 이 바뀐 경우는 저장소 URL 변경을 수행후 기존에 사용 하던 그대로 사용 가능.











'Integrator > SCM' 카테고리의 다른 글

Trac - project management  (0) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |

리눅스에서 스트리밍 서비스가 어렵다는 이야기가 많아서 한번 찾아봤습니다.

1. 기본적으로 real 은 되신다는 것을 아실 것이고

2. 미국사이트를 찾아보니 리눅스 스트리밍 전문 서비스들이 있더군요.
http://shoutcast.serverroom.us/?OVRAW=linux%20streaming&OVKEY=linux%20stream%20media%20server&OVMTC=advanced
이곳에서는 nullsoft 의 shoutcast 를 서버로 사용하더군요.
클라이언트는 윈도우미디어 플레이어대신 winamp을 사용하구요. PC, MAC, LINUX 에서 모두 사용되구요. ( http://www.nullsoft.com/ntv/publicaccess/ )
http://www.shoutcast.com/download/broadcast.phtml
가격도 저렴한편이네요. 50메가하드+30기가트래픽에 월11.99달러네요.

3. 오디오스트리밍(MP3) 는 icecast 를 가직고 하나봐요. 셋업하는 방법이 나와있네요 참고하세요.
http://www.yolinux.com/TUTORIALS/LinuxTutorialAudioStreaming.html

4 다음은 MPEG4 스트리밍에 관한 내용이고요
http://www.linuxjournal.com/article/6720

5. BYU브로드캐스팅은 TV 라디오와 웬만하게 알려진 파일들은 대부분 제어하는 것 같습니다.  http://www.byubroadcasting.org/

6. 요즘 야후블로그의 비디오나 cj쇼핑에서 나오는 실시간방송은 한국에서 만든 건데
seevideo라는 플레이어로 dideonet.com 에서 만들었죠
샘플과 asp파일 자바스크립트 파일을 받으시려면 다음을 방문하세요.
http://www.seemedia.co.kr/
seevideo 는 리눅스기반 서버에서만 사용이되고, 클라이언트는 윈도우 사용자들을 위해 개발이 되었는 데, AVI파일을 사용하고 있습니다. 기능은 메디아플레이어에 비해 훨씬 뛰어나지만 플레이중 다른 프로그램을 사용하면 시스템이 불안정해지는 것이 흠이더군요.

7. 가장 강력한 것은 프랑스에서 개발된 VLS streaming 입니다.
VLS 는 그간 리눅스의 문제점으로 지적됐던 asf wmv divx avi 등을 스트리밍 할수 있으며, 제작자에의하면 별도의 미디어 서버가 필요없이 리눅스 웹서버에서 바로 작동을 한다고 합니다. VLS는 무료이며 소스가 공개되어 있습니다.

아뭏튼 도움이 되었으면 합니다.
윈도우 메디아 플레이어가 시장을 잡고있으니 리눅스 기반이 흔들리는 것 같습니다.
스트리밍프로그램이나 서비스를 개발하시는 분들께 도움이 되셨으면 합니다.



VLS 정말 멋지군요..
가이드 : http://www.videolan.org/doc/vls-user-guide/en/vls-user-guide-en.html
다운로드 : http://www.videolan.org/streaming/download-vls-sources.html

스트리밍 하실분 써보셔도 좋을듯하네요..^^

조금 대중 적이지는 못하지만 apple의 quicktime기반의 quicktime streaming server도 있습니다. 성능과 화질은 아주 만족하실만 하실겁니다. 리눅스, 윈도우, 맥(osx)기반에서 모두 사용이 가능 하구요... 리얼타임 스트리밍 부터 분산처리까지 구현 가능 합니다. 단지.... quicktime이 아직은 (국내에서는)대중적이지 못하다는 단점이 있긴 합니다.... http://www.apple.com/trailers/ 퀵타임을 설치하시고 여기에 가셔서 HD화질의 영화 트레일러를 보세요... 윈도우 미디어나 리얼 미디어는 눈에도 안들어 옵니다...


'Integrator > U-LINUX' 카테고리의 다른 글

우분투에서 하드드라이브 추가하기  (2) 2008.03.04
우분투 IP변경하기  (0) 2008.03.04
우분투 vsftpd 설치하기  (1) 2008.03.04
ftp passive mode  (0) 2008.02.21
아파치 웹 서버 무단 링크 방지  (0) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |

ftp passive mode

Integrator/U-LINUX / 2008. 2. 21. 19:31

사설(내부) 아이피에서 ftp 사용시 passive mode 때문에 접속이 제대로 안되는 경우가 종종 있는데..
그때는 아래처럼 해 보시기 바랍니다.

$ ftp 218.xx.xxx.xx 10002
Connected to 218.xx.xxx.xx.
220 Welcome to FTP Server
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (218.xx.xxx.xx:con): sadad
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
227 Entering Passive Mode (192,168,123,107,197,183)
<== passive가 on으로 되어 있을 경우 출력되는 내용이다.
vsftp에서 따로 설정이 되지 않으면 기본적으로 on으로 설정된다..

ftp> passive
Passive mode off. <== off로 전환
ftp> dir
550 Permission denied.
Passive mode refused. Turning off passive mode.
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 1093 Mar 19 09:50 test.txt


이처럼 출력이 된다면..
/usr/local/etc/vsftpd.conf 파일에다..
pasv_enable=NO
를 추가후 inetd를 재실행해 주면 되고..
다시 접속을 하면 재대로 실행이 될것이다..

이것 때문에 클라이언트의 cuteftp 설정을 만지는등.. 무지 하게 시간 허비했는데..
윈도우 ftp 프로그램으로 접근할시 개인 방화벽이 있다면.. ftp서버의 아이피에서 접근이 가능하게 해 주어야 합니다.
(포트는 주기적으로 변경이 됨으로 ip주소를 등록해 주는게 좋다.)
다른 곳(linux)에서 콘솔상에서 테스트시에는 구지 iptables로 접근을 허가하지 않아도 되나..
잘 되지 않는다면.. 해당 아이피 접근을 열어주기 바랍니다.

FTP 접속방식은 Port Mode(Active Mode)와 Passive Mode 두 가지가 있습니다.

(1) Port Mode (Active Mode)

처 음 client가 server로 21번 포트로 접속을 맺게 되는데 이 session을 Command Session이라고 하며, 이 Command Session을 통해 사용자는 server에게 사용자 ID와 Password를 전달해서 인증을 받습니다. 인증을 거친 client는 pwd, dir, get, put…등의 원하는 작업에 해당하는 명령어를 전달합니다.

FTP 를 통해 실제 파일을 주고 받을 때는 새로운 session이 하나 더 연결되는데 이를 Data Session이라고 합니다. Data Session은 server에서 자신의 출발지 포트를 20번으로 하고 client로 1024이상의 포트로 접속을 맺습니다.

이 Data Session을 통해 client는 server로부터 파일을 다운로드 할 수 있고 server로 업로드를 하게 됩니다.

 

그 러나 client가 사설이면 server와 Command Session은 맺어지지만, Data Session은 맺어지지 않게 됩니다. server에서 사설 client로 Data session 연결을 시도하지만 사설IP이기 때문에 연결이 되지 않습니다.

이런 이유로 FTP Gateway설정을 해서 방화벽이 내부 사용자들의 FTP 접속을 대행하게 됩니다.

방화벽이 내부 사설 PC의 FTP접속 요구를 가로채서 방화벽이 대신 server로 접속을 하게 됩니다. 방화벽이 server와 client의 중간에서 data의 흐름을 중개하게 됩니다.

(2) Passive Mode

Port Mode(Active Mode)가 client에서 server로 , server에서 client로의 접속인 반면 Passive Mode는 client가 server로 Command Session과 Data Session을 모두 연결하는 방식입니다.

 

내부 사설 PC에서 server로 Command와 Data Session을 모두 연결하기 때문에 내부에서 외부로 FTP접속시 Passive Mode로만 접속한다면 방화벽에서는 FPT Gateway를 설정할 필요는 없습니다.
Post by 넥스트리소프트 데꾸벅(techbug)
, |

역시 아파치 웹서버 환경설정 파일인 "httpd.conf" 파일을 찾아서 메모장으로 열고, 다음 소스를 추가한 후 아파치 웹서버를 재실행 하시면 됩니다.

<Directory />
    Options FollowSymLinks
    AllowOverride None

    <IfModule mod_setenvif.c>
    SetEnvIF Referer "http://daum.net" pass  // 도메인명을 코딩합니다. (즉, 설정한 도메인명과 현재 접속한 도메인명이 같을 경우 pass 를 반환합니다.)

    <FilesMatch ".(gif|jpg|png|bmp|zip|tar|rar|alz|a00|ace|jpg|jpeg|txt|GIF|JPG|BMP|ZIP
|TAR|RAR|ALZ|A00|ACE|TXT|mp3|MP3|mpeg|MPEG|wav|WAV|asf|ASF
|wmv|WMV|swf|SWF|exe|EXE)$"> // or (.(*)$)
// 무단 링크 방지할 파일 확장자를 코딩합니다.
        Order deny,allow
        deny from all
        allow from env=pass // pass 값이 존재할 경우 링크를 허용합니다.
    </FilesMatch>
    </IfModule>
</Directory>

httpd.conf

# 도메인 aaa.com

<Directory "디렉토리 지정">
Options FollowSymLinks
AllowOverride None


#링크를 허용할 주소.
SetEnvIfNoCase Referer ^http://aaa.com
SetEnvIfNoCase Referer ^http://aaa.com goout


#이미지의 경우 클릭시 새창에서 X로 보이는것을 방지하기위해.레퍼렐이 존재하지 않는 요청.
SetEnvIfNoCase Referer ^$ goout


#파일 확장자 지정.
<Files ~ ".(gif|jpe?g|png|bmp|zip|tar|rar|alz|a00|ace|txt|mp3|mpe?g|wav|asf|wma|wmv
|swf|exe)$">
Order deny,allow
deny from all
allow from env=goout


#무단링크시 보일 이미지 지정.지정안하고 주석처리하시면 기본 403포빈 에러뜸.
ErrorDocument 403 http://주소/이미지.gif
</Files>
</Directory>

'Integrator > U-LINUX' 카테고리의 다른 글

우분투에서 하드드라이브 추가하기  (2) 2008.03.04
우분투 IP변경하기  (0) 2008.03.04
우분투 vsftpd 설치하기  (1) 2008.03.04
리눅스 스트리밍 서버에 관한 솔류션  (2) 2008.02.21
ftp passive mode  (0) 2008.02.21
Post by 넥스트리소프트 데꾸벅(techbug)
, |

1. 소개

http://projects.edgewall.com/trac/

인용:
Trac is an enhanced wiki and issue tracking system for software development projects.

비교적 복잡하지 않은 issue tracking system 으로 subversion(svn) 을 소스관리, wiki 를 문서관리포맷으로 사용하고 있습니다.

위키에 익숙하신 분은 쉽게 적응하실 수 있으리라 생각됩니다.
또한 svn 을 사용하시는 분들께는 금상첨화라고 볼수 있죠.^^

현재 버전은 0.8 버전이지만, 사용해본 짧은 경험으로 상당히 완성도가 있음을 느꼈습니다.(개인차가 있음을 밝힙니다.)

2. 설치

데비안,우분투 사용자
http://projects.edgewall.com/trac/wiki/TracOnDebian 참조

그외
http://projects.edgewall.com/trac/wiki/TracInstall 참조

위 설치문서대로 하면 문제없이 사용할 수 있었습니다.

trac 자체는 설치가 쉽습니다. 뒷부분의 apache 설정을 조심해서 하시면 큰 문제는 없을 듯 합니다.

3. 국내자료

http://zope.openlook.org/blog/daylist_html?year=2004&month=12&day=21 를 보시면 perky 님이 상세한 리뷰를 해주셨습니다. 그외에는 찾을수가 없었습니다.

4. 한글화

trac 사이트 내에서는 제공하지 않고 있습니다.
위의 perky 님의 리뷰자료는 한글화가 되어 있는데, 공개는 하지 않고 계십니다.(요청을 하면 공개해주실지도..)

첨부파일에는 제가 임의로 한글화한 자료입니다. (50%도 안된자료이지만 필요하신분은 쓰시길..)
F/OSS 프로젝트 게시판은 첨부가 안되네요.

첨부파일 링크 : http://bbs.kldp.org/download.php?id=3631
한글화 첨부파일 설명

인용:

trac 은 Clearsilver 템플릿 라이브러리를 씁니다.
/usr/share/trac 의 templates 폴더의 내용을 한글화 하였습니다.
UTF-8 환경이라 EUC-KR 환경을 쓰시는 분은 깨질 듯 합니다.
(첨부파일을 푸시고, templates 폴더를 교체하시면 됩니다.)
설치환경에 따라 /usr/share/trac 의 위치가 아닐수도 있을 듯 합니다.

5. 문제점
UTF-8 환경을 사용하다보니, 윈도우에서 svn 커밋후에 trac 의 소스브라우저를 보면 내용이 깨집니다.
저장시 UTF-8 로 저장해야 할 듯 합니다.
EUC-KR 환경은 큰 영향이 없을 듯 합니다.(써보신분 확인바랍니다.)

첨부 파일파일 크기
trac_ticket_property.jpg 31.95 KB
templates.zip 31.46 KB

 

출처 : KLDP ( http://kldp.org/node/52258 )

'Integrator > SCM' 카테고리의 다른 글

subversion 및 trac 설치가이드  (1) 2008.02.25
Post by 넥스트리소프트 데꾸벅(techbug)
, |
윈도 서비스에 등록을 시도할 참이다.

아래의 파일들이 필요하단다.. 인터넷에서 구해 받았다.

 

* instsrv.exe 설명
- exe 파일을 서비스로 등록시켜주는 프로그램
- 등록시 : instsrv [서비스명] [등록할exe파일]
- 삭제시 : instsrv [서비스명] remove
- 더 자세한건 usage 를 참조하시라~~ (귀찮더라도.. 지발~~~)


* srvany.exe 설명
  window NET 서비스 리소스킷

 

* HttpRequester.class 설명
- 지속적으로 Http 요청을 쏴주는 클래스
- arg[0] : TargetURL
- arg[1] : interval (millisecond)
- 네이버를 1분간격으로 한번씩 http 요청을 때린다 가정하면
  "java HttpRequester http://www.naver.com 60000"

  되시겠다..

 

* 이제 Java 어플리케이션을 윈도우 서비스에 등록해보자
- 위 3개의 파일을 c:\windows 에 복사 (암데나 복사하셔도 되며 아래 경로만 맞춰주면 됨)
- 명령프롬프트를 연다(시작->실행 "cmd")
- "c:\windows\instsrv.exe HttpRequesterService c:\windows\srvany.exe" 실행
- 레지스트리 편집기를 연다(시작 -> 실행 -> "regedit" 입력)
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 뒤져서

- HttpRequesterService 폴더선택
- 마우스 오른쪽 "새로만들기" -> "키"
- 폴더이름에 "Parameters" 입력
- Parameters 폴더 선택
- 마우스 오른쪽 "새로만들기" -> "문자열값"
- 이름 : "Application"

- 값: "java -classpath c:\windows HttpRequester http://www.naver.com 60000" 을 입력
- 명령프롬프트를 연다(시작 -> 실행 ->"cmd" 입력)
- "net start HttpRequesterService" 실행

  -------------------------------------------------------
  HttpRequesterService 서비스를 시작합니다..
  HttpRequesterService 서비스가 잘 시작되었습니다.
  -------------------------------------------------------
  라는 메시지 나오면 성공 !!

- 서비스 정지시키려면 "net stop HttpRequesterService"

- 서비스 시작 및 정지는 "내컴퓨터 -> 관리 -> 서비스 및 응용프로그램"에서도 제어가능하다는거~~

'Integrator > Windows' 카테고리의 다른 글

GET Method 길이 제한 (최대 URL 길이 )  (3) 2008.11.20
데꾸벅체 다운로드  (0) 2008.07.09
MS office2007 Excel 파일 각각 따로 열기  (8) 2008.06.27
Post by 넥스트리소프트 데꾸벅(techbug)
, |