728x90
300x250
1. OpenSSL 개념 소개 및 인증서 생성 및 루트 기관 생성

1. OpenSSL의 실행파일은?
    openssl라는 이름으로 존재합니다.
    거의 여러 응용프로그램들을 통하여 사용합니다. (단, 인증서 용도는 Openssl을 통해 직접합니다.)

2. OpenSSL은 무슨 용도의 프로그램인가?
    인증서를 확인 및 암호화 등의 역활을 수행하는 프로그램입니다.

홈페이지 : OpenSSL  http://www.openssl.org/
 
태스트 환경 :


OpenSSL 인증서 생성 및 루트 기관 생성과정 강좌

1. 'Demo CA'라고 불리는 폴더 설정

- 현재 디렉토리에 'demoCA' 혹은 사용자가 설정한 폴더의 이름으로 디렉토리 생성 :
     example) mkdir demoCA



2. CA 인증서 생성
- CA 개인키 생성 :  openssl genrsa -des3 -out ca.key 1024

- Self-Signed CA 인증서 생성 :  openssl req -new -x509 -days 365 -key ca.key -out ca.crt

3. 하위 인증서 생성 (사용범위 : https, ......)
- server 개인키 생성 : openssl genrsa -des3 -out server.key 1024
- server 인증서 발급을 위한 요청파일 생성 : openssl req -new -days 365 -key server.key -out server.csr
- server 인증서 발급 : openssl ca -in server.csr -out server.crt -keyfile ca.key -cert ca.crt

참고 : 3번의 과정을 하실 때에는 위에 과정에서 개인키와 Self-Signed CA 인증서를 생성한 위치 내에서 사용하시면 되겠습니다.

결과 : server.crt 라는 server용인증서가 생성되고 index 파일에 발급내역이, serial이 16진수로 1씩 증가한다.

4. 인증서 인코딩 포멧 변경
- openssl 이 생성하는 인증서의 인코딩은 발급 시 옵션을 주지 않으면 디폴트가 PEM (base64 encoding)이다.
- Java 등에서 사용하기 위한 DER 포맷(바이너리)으로 변경은 다음과 같이 수행한다.
   : openssl x509 -in ca.crt -out ca.der -outform DER

5. 인증서 내용 보기
- openssl x509 -in ca.crt -text   (PEM 포맷인 경우)
- openssl x509 -in ca.der -inform DER -text (DER 포맷인 경우)

아래의 참고 자료들을 참조하여 직접 태스트한 경험을 바탕으로 올려보았습니다.


1. 참고자료(Reference)

 

1. http://blog.naver.com/zauberha?Redirect=Log&logNo=150055260734 OpenSSL로 인증서 생성 및 변환 간략 정리
2. http://golmong.tistory.com/112  (OpenSSL + Tomcat 사용 SSL 설정)

반응형
728x90
300x250
[C언어] 제어문(if, switch)

리모컨과 같은 원리로서 사용이 되는 문법입니다.


출력 : a, b의 값에 따른 해당 연산 값 출력

반응형
728x90
300x250

[Linux] Centos 5.3에서 OpenSSH 5.2P1를 사용한 SFTP 상위 접근 제한하기

이번 글은 저번 글에 이어서 OpenSSH5.2P1(Portable Version)에 대해서 이야기하고자 합니다.
OpenSSH을 사용하였을 때 상위 루트로의 접근이 허용이 됩니다.

그래서 탄생한게 OpenSSH + Chroot 패치(소스포지 프로젝트 中)가 배포가 되었었지요.
이외에도 Jail in SSH라는 프로그램 등과 같이 많은 프로그램이 탄생하게 되었습니다.

Chroot가 적용이 되어 있는 OpenSSH 5.2P1(Portable Version)을 가지고 진행하도록 하겠습니다.
참고로 이 글은 SFTP만 Chroot로서 접근을 차단하는 글(즉, SSH의 접속은 불가능)입니다.

1. /etc/ssh/sshd_config 파일 수정


2. group 만들기


3. 예제 계정으로서 mark를 만들도록 하겠습니다.


4. 사용자 계정에 폴더와 권한을 부여합니다. (최종 수정 09.07.19)
반응형
728x90
300x250

[Linux] Centos 5.3에서 OpenSSH 5.2P1 설치하기

이번 글은 OpenSSH 5.2를 설치에 관하여 몇자 적어 보았습니다.


1. 첨부 파일 및 설치하기

[첨부(Attachment)]
openssh-5.2p1.tar.gzopenssl-0.9.8k.tar.tar

수동 설치는 위의 파일로 하면 됩니다.

[CentOS의 Yum으로 설치하기]

Yum install gcc*

OpenSSH 5.2를 깔기 전에 몇가지 준비해야 할 게 있습니다.
하나. OpenSSL을 깔아주셔야 합니다. (컴파일 버전 또는 RPM 버전으로)
둘. Zlib를 사용하기 때문에 깔아주셔야 합니다.


2. 컴퓨터 환경
OS : Centos 5.3(Final)
CPU : AMD Althon 64 X2 3600 +
RAM : 2GB
HDD : 250GB


3. 설치하기

OpenSSH Mirror FTP 주소 : http://mirror.mcs.anl.gov/openssh/

그러면 OpenSSL 설치 글을 시작하겠습니다.

먼저, 쉘 창을 띄웁니다.
먼저 OpenSSL을 다운 받습니다.


2. Zlib 설치하기


3. OpenSSH 5.2P1(Portable 버전이라고 명칭합니다.)


4. 실행과 종료

반응형
728x90
300x250

[C언어] strcpy()의 함정

#include <stdio.h>
#include <string.h>

main()
{

 char *ccc;

 strcpy(ccc, "hahaha");

}

포인터와 배열의 관계를 이해하시고 위에 strcpy 함수에 대해 접하시게 된다면 Segment오류로 인해 잠시 고뇌하실것입니다.
혹은 아래와 같이 해결할 수도 있을 겁니다.

#include <stdio.h>
#include <string.h>

main()
{

 char ccc[10];

 strcpy(ccc, "hahaha");

}

strcpy()의 원형을 잠시 소개하자면

char *strcpy(char *s1, const char *s2);
strcpy() 함수는 s1인자로 포인터를 받고 s2도 포인터로 받고 있습니다.
즉 첫번째 인자를 두번째 인자로 넘겨줍니다.

*포인터 변수를 다시 생각해보자면, 포인터 변수로 설정이 된 순간부터 이미 우리도 모르는 사이에 주소영역을 사용하고 있을것입니다. 그렇기에 임시로 받아줄 영역을 찾게 되는 것이 아닐까 생각합니다.

imsi 라는 변수는 프로그램이 실행될 때마다 빈 영역의 주소를 찾아 랜덤으로 검색하게 됩니다.
imsi라는 변수 주소중에 비어있는 영역을 찾기위해 아래와 같이 입력할 수 있습니다.

int imsi;
printf("%#010x", &imsi);

찾은 임시 주소가 0x002bfb10와 같다면 아래와 같이 입력할 수가 있습니다.
<string.h> 해더를 불러오지 않을 경우에 심각한 오류가 발생할 수도 있습니다.
(그렇게 심각하지는 않지만 실행이 안되는 경우가 발생하기에 경고 정도로 받아들이시면 되겠습니다.)

#include <stdio.h>
#include <string.h>

main()
{
     int imsi;
     char *ccc;

     imsi = 0x002bfb10;

     ccc = (char *)imsi;

     strcpy(ccc, "hahaha");
     printf(ccc);

}

반응형
728x90
300x250

[C언어] 교환 Swap 알고리즘

#include <stdio.h>

int main()
{

        int a, b, c = 0;
        int *pa, *pb, *pc;
        int swap;
 
        pa = &a;
        pb = &b;
        pc = &c;

        scanf("%d %d %d", pa, pb, pc);

       if(a > b);
      
       else if(a < b)
       {
              swap = b;
              b = a;
              a = swap;
       }
     
       if(a > c);
      
       else if(a < c)
       {
             swap = a;
             a = c;
             c = swap;
       }

       if(b > c);
      
       else if(b < c)
       {
            swap = b;
            b = c;
            c = swap;
       }

       printf("%d %d %d", a, b, c);

}

[출력]
a , b,  c 대로 정렬됨.

반응형

'소프트웨어(SW) > GNU - C, C++' 카테고리의 다른 글

[C언어] 제어문(if, switch)  (0) 2009.07.23
[C언어] strcpy()의 함정  (0) 2009.07.07
[C++] 입출력 - 표준 출력  (0) 2009.07.04
[C언어] 문자열과 포인터 배열  (0) 2009.06.07
[C언어] 문자열에 대해서  (0) 2009.06.07
728x90
300x250
[C++] 입출력 - 표준 출력

언어를 공부하면서 가장 먼저 접하는 것은 바로 표준 입출력을 통한 데이터의 I.O(Input Output)을 수행하는 과정일 것입니다.
그만큼 표준 입출력은 언어를 이용함에 있어서 가장 중요한 부분이자, 얼마만큼이나 사용하기 편리하고 높은 퍼포먼스를 보여주냐가 언어의 관건이
될수 있겠습니다.


C++언어에서는 버퍼를 통한 표준 입출력을 cout, cin을 이용해서 수행할 수가 있습니다.

cout, cin의 맨 앞자는 character를 뜻하는 것으로 문자의 I.O의 전반을 다룬다는 의미로 볼수가 있습니다.
이들 표준 입출력을 위한 전역 개체는 각각 istream과 ostream 헤더에서 정의된 것으로 C 스타일 함수군보다 I.O가 직관적이고, 안전하게 수행할 수 있도록 도와준다고 할수 있습니다.

따라서 인자를 전달하거나 할 때 cout, cin을 복사하지 않도록 주의하시기 바랍니다.

1. 표준 출력
cout은 <iostream>에 선언되어 있는 표준 출력을 담당하는 전역 개체입니다.
이 개체는 char타입으로 데이터를 출력하는 ostream 클래스의 인스턴스로 표준 출력 장치에 연결되어 출력 업무를 수행합니다.(Buffered I/O)

[예제]

#include <iostream>

using namespace std;

int main()
{

    cout << "This is Wresting\n";
    const char *k = "Wresting";
    cout << "This is " << k << '\n';

}


출력 : This is Wresting
         This is Wresting
반응형
728x90
300x250

Centos 4, 5에서 Java SE 설치하기.

jdk-6u14-linux-i586-rpm.bin 이 파일을 다운받아야 합니다.
주소 : http://developers.sun.com/downloads/top.jsp


1. 설치 방법



설치방법

1. 터미널에서 다음을 입력합니다.
vi /etc/inittab

id:5:initdefault를
id:3:initdefault로 바꿔줍니다.

2. 재부팅합니다.
3. 해당 다운로드 받은 파일의 위치로 이동합니다.
4. ./jdk-6u14-linux-i586-rpm.bin을 입력합니다.

오류가 뜰것입니다. 오류가 뜬다면 정상입니다.
-> chmod 755 jdk-6u14-linux-i586-rpm.bin(파일명)
권한을 부여해줍니다.

5. ./jdk-6u14-linux-i586-rpm.bin를 입력합니다.
6. 엔터를 계속누르다보면 'Yes'를 입력하라고 뜹니다.
Yes라고 입력한 후 엔터키를 누릅니다.
7. 설치가 진행됩니다.
8. 설치가 완료가 되었습니다.

- 참고 -
설치 후에 RPM파일이 여러개가 생성이 되는데 지우셔도 상관없습니다.
(왜냐하면 설치마법사를 통해 RPM들을 모두 설치하였기 때문입니다.)
반응형

+ Recent posts