# cat /etc/sysconfig/i18n
LANG="ko_KR.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"

 
 
LANG="ko_KR.eucKR
SUPPORTED="en_US:en:ko_KR.eucKR:ko_KR:ko" 
SYSFONT="lat0-sun16" 
SYSFONTACM="iso01"

 

바로 적용
 
# source /etc/sysconfig/i18n

 
적용 확인

 
# echo $LANG
ko_KR.eucKR


'리눅스' 카테고리의 다른 글

nfs 설치 설정  (0) 2015.04.24
mod-cband 설치  (0) 2015.04.23
파일시스템 오류 give root password for maintenance  (0) 2015.04.20
ssl 인증서 갱신  (0) 2015.04.20
freetds 설치  (0) 2015.04.15
Posted by Narusika
,

하드나 커널쪽 문제라고 하는데 정확히는....


Give root password for maintenance

(or type Control -D for normal startup):



root 패스워드를 입력하고, fsck 로 체크하는 방법이 있다.


부팅하는 방법


1. mount -o remount,rw /        읽기,쓰기로 다시 마운트


2. vi /etc/fstab        1 1 로 파일시스템 체크를 하게 되있는 부분을 0 0으로 변경하여 체크하지 않고 넘어가게 한다.


3. reboot

'리눅스' 카테고리의 다른 글

mod-cband 설치  (0) 2015.04.23
캐릭터셋 변경하기  (0) 2015.04.20
ssl 인증서 갱신  (0) 2015.04.20
freetds 설치  (0) 2015.04.15
HDD 파티션, 마운트, 포멧  (0) 2015.04.15
Posted by Narusika
,

ssl 인증서 갱신

리눅스 2015. 4. 20. 10:28

 1. key 값 생성

openssl genrsa -des3 -out DOMAINNAME.key 2048


확인

openssl rsa -noout -text -in DOMAINNAME.key



 2. csr 생성

openssl req -new -key DOMAINNAME.key -out DOMAINNAME.csr


Country Name (2 letter code) [GB]:KR                                 #나라를 나타내는 2문자의 ISO약어

State or Province Name (full name) [Berkshire]:Seoul               #조직이 있는 시도

Locality Name (eg, city) [Newbury]:Seocho-gu                       #조직이 있는 구동

Organization Name (eg, company) [My Company Ltd]:DMI       #조직의 법률상의 정식명칭

Organizational Unit Name (eg, section) []:                                #조직의 부서명

Common Name (eg, your name or your server's hostname) []:  #발급받을 정확한 FQDN의 도메인

Email Address []:                                                                  #이메일 주소


Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:                                                #엔터로 다음로 넘어간다, 생략 가능

An optional company name []:                                         #엔터로 다음로 넘어간다, 생략 가능


csr 확인

openssl req -noout -text -in DOMAINNAME.csr

   

-이제 생성된 key와 csr을 인증업체에 보내면 인증서 설치를 위한 crt를 발급해준다.


 3. 설치 

ssl.conf에 인증서 위치에 발급받은 값을 넣어주자/


100 #   Server Certificate:

101 # Point SSLCertificateFile at a PEM encoded certificate.  If

102 # the certificate is encrypted, then you will be prompted for a

103 # pass phrase.  Note that a kill -HUP will prompt again.  A new

104 # certificate can be generated using the genkey(1) command.

105 SSLCertificateFile /etc/httpd/ssl/jh.felix123.kr.crt

106 

107 #   Server Private Key:

108 #   If the key is not combined with the certificate, use this

109 #   directive to point at the key file.  Keep in mind that if

110 #   you've both a RSA and a DSA private key you can configure

111 #   both in parallel (to also allow the use of DSA ciphers, etc.)

112 SSLCertificateKeyFile /etc/httpd/ssl/jh.felix123.kr.key


-----------------------------------------------------------------------------------------------------------------------------------------------------------------


인증서 패스워드 제거

 openssl rsa -in jh.felix123.kr.key -out jh.felix123.kr.key

 writing RSA key


요런 메시지가 뜨고 용량을 확인하면 줄어들어있는걸 알 수 있다.




crt 생성

-인증업체가 발급해주니 필요는 없지만...

openssl req -x509 -days 365 -key -DOMAINNAME.key -in -DOMAINNAME.csr > -DOMAINNAME.crt



키값 확인 명령어


openssl x509 -noout -modulus -in ssl.crt | openssl md5


openssl rsa -noout -modulus -in ssl.key | openssl md5


openssl req -noout -modulus -in ssl.csr | openssl md5


각 값의 md5가 일치해야 동일 인증서



인증서 확인 

openssl x509 -in /app/apache/conf/server.crt -noout -text


'리눅스' 카테고리의 다른 글

캐릭터셋 변경하기  (0) 2015.04.20
파일시스템 오류 give root password for maintenance  (0) 2015.04.20
freetds 설치  (0) 2015.04.15
HDD 파티션, 마운트, 포멧  (0) 2015.04.15
configure 옵션 확인  (0) 2015.04.15
Posted by Narusika
,

freetds 설치

리눅스 2015. 4. 15. 17:17


freetds 다운로드

http://mirrors.ibiblio.org/freetds/stable/freetds-0.91.tar.gz


# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --disable-odbc --disable-debug --enable-msdblib

(freetds-0.82 버전의 경우 --enable-dbmfix 옵션 추가)

 


mssql 2008 의 경우 옵션을 제외

mssql 2005 의 경우 --with-tdsver=8.0

mssql 2000 의 경우 --with-tdsver=8.0

mssql 7.0 의 경우 --with-tdsver=7.0

mssql 6.0 의 경우 --with-tdsver=4.2


make

make install




php를 재컴파일 하는게 속이 편하고, 전에 있던 파일 백업후 다시 작업


--with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds

기존 php configure에 추가



php 5.2.x


--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --with-mysql=/usr/local/mysql --enable-mod-charset --enable-safe-mode --enable-sigchild --enable-magic-quotes --with-libxml-dir --with-openssl --with-zlib --with-zlib-dir --with-bz2 --enable-calendar --with-curl --enable-dba --with-gdbm --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-imap --with-imap-ssl --with-kerberos --enable-mbstring --with-mhash --with-mcrypt --enable-sockets --with-regex=php --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zend-multibyte --enable-zip --with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds






# cd /usr/local/src/php-5.2.9/ext/mssql             php를 설치한 소스폴더


# /usr/local/php/bin/phpize


# ./configure --with-mssql=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config


# make


# make install


# cd /usr/local/src/php-5.2.9/ext/pdo_dblib


# /usr/local/php/bin/phpize


# ./configure --with-pdo-dblib=/usr/local/freetds --with-php-config=/usr/local/php/bin/php-config


# make


# make install


# mv /usr/local/php/lib/php/extensions/no-debug-zts-20060613/* /usr/local/php/lib/


# /usr/local/Zend/etc/php.ini


아래 내용 추가합니다.

   extension=mssql.so

   extension=pdo_dblib.so


 


 


2. 설정 


 아래 파일을 수정하여 한글 깨짐을 막고 해당 서버로 연결가능하도록 추가 설정합니다.


# vi /usr/local/freetds/etc/freetds.conf


 


[global]

client charset = EUC-KR



[192.168.10.2]

    host = 192.168.10.2


    port = 1433

    tds version = 8.0                    mssql 버전에 맞춰서 넣어주거나 삭제


 


 


3. 확인


아래 명령어를 통해서 접속이 잘 되는지 확인할 수 있습니다.


 


# /usr/local/freetds/bin/tsql -H 192.168.10.2 -p 1433 -U neulwon -P 12345678









 


configure 단계에서 'Directory /usr/local/freetds is not a FreeTDS installation directory' 라는 메시지가 나올경우

# cp /usr/local/src/freetds/include/tds.h /usr/local/freetds/include/

또는

# cp /usr/local/src/freetds/src/tds/.libs/tds.h /usr/local/freetds/include/

tds.h 파일을 설치된 디렉토리에 복사한다.




 


*php 5.X --with-mssql 오류시 해결 방안 

 

php 5.X에서 mssql연동을 위해 freetds를 설치할 경우에  php configure에 --with-mssql=/usr/local/freetds로 주었을때 해당 경로에 설치가 되어있음에도 불구하고 해당 경로에 설치가 되어있지 않다고 나오는 경우가 발생합니다.


에러 메세지

error Directory /usr/local/freetds is not a FreeTDS installation directory


해당 문제는 tds.h, libtds.a가 해당 설치경로에 있지 않아 설치되어 있는데도 설치되어 있지 않은것으로 인식되는 문제로 보입니다.


아래와 같이 해당 파일들을 경로로 복사해 주면 문제가 해결 됩니다.


cp /usr/local/src/freetds-xxx/include/tds.h /usr/local/freetds/include

cp /usr/local/src/freetds-xxx/src/tds/.libs/libtds.a /usr/local/freetds/lib


위와 같이 한 후에 make 과정중에 sysbase 오류가 발생한다면 configure 시에 --with-mssql과 --with-sybase를 같이 넣어 줍니다.



[PHP와 MS-SQL연동을 위해 odbc를 이용한 방법 - 오래된메뉴얼]

http://cafe.naver.com/webmas.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1000






*php - mssql 연동 테스트 소스


putenv("TDSVER=80");    <- 이거는 사용하지마시고 혹시 mssql 2008 이나 연결이 안될경우 추가해보세요.

$hostname = "";

$username = "";

$password = "";

$connection = mssql_connect($hostname,$username,$password)

or die("데이타 베이스에 연결 할수 없습니다.");

print ("데이타 베이스에 연결되었습니다.");

mssql_close($connection);

print ("데이타 베이스의 연결이 해지 되었습니다.");

?>




출처 http://sosnote.com/search/freetds


'리눅스' 카테고리의 다른 글

파일시스템 오류 give root password for maintenance  (0) 2015.04.20
ssl 인증서 갱신  (0) 2015.04.20
HDD 파티션, 마운트, 포멧  (0) 2015.04.15
configure 옵션 확인  (0) 2015.04.15
우분투 싱글모드 접속  (0) 2015.04.14
Posted by Narusika
,

파일시스템


-window - NTFS

-linux - ext

         5.X - ext3

         6.X, 7.X - ext4

-리눅스 버전정보 확인 - rpm -qa *-release




-HDD 추가


#fdisk -l


Disk /dev/sda: 128.0 GB, 128035676160 bytes

255 heads, 63 sectors/track, 15566 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          64      514048+  83  Linux

/dev/sda2              65         586     4192965   82  Linux swap / Solaris

/dev/sda3             587       15566   120326850   83  Linux


WARNING: The size of this disk is 8.0 TB (7999955402752 bytes).

DOS partition table format can not be used on drives for volumes

larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID

partition table format (GPT).



Disk /dev/sdb: 7999.9 GB, 7999955402752 bytes

255 heads, 63 sectors/track, 972605 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes





-파티션 생성


#fdisk /dev/sdb



Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-972605, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-267349, default 267349):

Using default value 267349

Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: ▒▒ġ▒▒ ▒ڿ▒▒▒ ▒▒▒▒ ▒▒.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.





-포멧


#mkfs.ext3 /dev/sdb


작업 확인


#disk -l


Disk /dev/sda: 128.0 GB, 128035676160 bytes

255 heads, 63 sectors/track, 15566 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          64      514048+  83  Linux

/dev/sda2              65         586     4192965   82  Linux swap / Solaris

/dev/sda3             587       15566   120326850   83  Linux


WARNING: The size of this disk is 8.0 TB (7999955402752 bytes).

DOS partition table format can not be used on drives for volumes

larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID

partition table format (GPT).



Disk /dev/sdb: 7999.9 GB, 7999955402752 bytes

255 heads, 63 sectors/track, 972605 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1      267349  2147480811   83  Linux





-마운트


#mount /dev/sdb1 /data


-부팅시 마운트 정보 입력

#vi /etc/fatab


#/dev/sdb1  /data      ext3    defaults    1 2


맨아래 추가



-리마운트


mount -o remount r,w /

vi /etc/fstab









'리눅스' 카테고리의 다른 글

ssl 인증서 갱신  (0) 2015.04.20
freetds 설치  (0) 2015.04.15
configure 옵션 확인  (0) 2015.04.15
우분투 싱글모드 접속  (0) 2015.04.14
raid 구성  (0) 2015.04.13
Posted by Narusika
,

configure 옵션 확인

리눅스 2015. 4. 15. 11:34


아파치 폴더에 config.nice  


./build 에 있다   


열어보면 configure 옵션이 들어있다.

각 소스 폴더에 들어가면 

apache   cofnig.log

mysql     config.status

php         config.log






'리눅스' 카테고리의 다른 글

freetds 설치  (0) 2015.04.15
HDD 파티션, 마운트, 포멧  (0) 2015.04.15
우분투 싱글모드 접속  (0) 2015.04.14
raid 구성  (0) 2015.04.13
ftp user 폴더변경 접속제한 사용권한  (0) 2015.04.13
Posted by Narusika
,


grub모드에서 e 키 입력


linux /boot/vmlinuz...~ ro


ro 를 변경한다


rw single init=/bin/bash 입력후 ctrl+x

'리눅스' 카테고리의 다른 글

HDD 파티션, 마운트, 포멧  (0) 2015.04.15
configure 옵션 확인  (0) 2015.04.15
raid 구성  (0) 2015.04.13
ftp user 폴더변경 접속제한 사용권한  (0) 2015.04.13
Apache : CSR 생성 및 SSL 인증서 적용  (0) 2015.04.13
Posted by Narusika
,

raid 구성

리눅스 2015. 4. 13. 16:49


디스크를 묶어서 하나처럼 쓴다 (100+100=200)




디스크 하나는 원본 하드의 백업용 (100+100=100) 




 최소 3개 이상의 하드디스크로 구성되며, 레이드0처럼 데이터 저장시 각 디스크에 쪼개져서 저장되지만, 패리티 정보란 것이 각각의 디스크에 번갈아가면서 저장되는데, 디스크 하나 고장시 옆 디스크에 있는 패리티 정보로 고장난 디스크를 복구할 수 있다. 즉, 패리티 정보란 다른 디스크에 저장될 정보가 분산되어서 저장이 되므로, 하나의 디스크가 고장나도 분산되어 저장된 패리티 정보로 복구를 시킬수 있다는 것인데, 두개이상의 디스크가 고장나버리면 이또한 황천길.. 그래서, 스패어 디스크를 추가로 장착하기도 한다. / 하드디스크 용량의 총합의 70% 정도로만 사용됨( 나머지 30% 정도는 패리티 정보로 저장 )










데이터는 많은 조직에서 가장 중요하고 요즘 같은 인터넷 시대에는 데이터를 빠르고 믿을 수 있게 접근하는 것이 매우 중요하다. 그렇게 조직은 대부분 데이터를 무결하게 유지하기 위해 RAID의 어떤 레벨을 사용한다. 


요즘은 대부분 그렇지만 RAID 5가 쉽고 최선일 것 같기 때문에 얼마나 많은 서버에 RAID 5를 적용하고 있을까? 대부분의 경우 RAID 5가 옳은 선택이지만 쓰기 성능을 고려한다면 다른 RAID 레벨이 최선일지도 모른다. 


지금 얼마나 많은 사람들이 RAID 10과 50를 즉석해서 설명할 수 있을까? 새로 발명된 RAID 레벨이 RAID 5의 단점을 보완할 수 있고 아직도 스토리지 시스템에서는 많은 것을 예비용으로 사용한다. 이 글에서 기본적인 RAID 레벨의 장단점을 소개하고 다음 글에서 나는 RAID 10같이 네스티드(nested)라고 불리는 좀 더 복잡한 RAID 레벨을 소개하려고 한다. (주: http://www.acnc.com/04_00.html에서 각 RAID 레벨의 그림을 볼 수 있다.)


RAID 0(디스크 스트라이핑)

* 최소 드라이브 개수 : 2

* 최대 용량 : 디스크의 수 x 디스크의 용량

* 설명 : 데이터를 블럭으로 쪼개서 저장하는데 각 블럭은 다른 디스크로 나뉘어 저장된다. 


* 장점 : 매우 빠르다. 데이터는 여러 개의 "모터(spindles)"로 스토리지에서 읽고 쓴다. 즉, I/O 로드가 분산되는 것을 의미하기 때문에 매우 빠르다. 이론적으로 디스크를 추가하는 족족 성능은 향상된다. 보통 엄청난 성능이 필요할 때 사용하는데 성능이 정말 좋은지 알아 보기 위해 스토리지를 아이오미터(IOmeter)같은 도구를 사용하여 확인한다.

* 단점 : 드라이브 하나가 고장 나면 이 RAID 레벨은 어떤 안전장치도 없기 때문에 천체 어레이가 고장 날 수 있고 디스크를 추가할 수록 위험이 증가한다.(주: 어레이는 여러 개의 디스크 배열을 의미)


RAID 1 (디스크 미러링)

* 최소 드라이브 개수 : 2

* 최대 용량 : (디스크의 수/2) x 디스크의 용량

* 설명 : 스토리지에 저장되는 모든 데이터는 두 개의 물리적인 디스크에 각각 저장되고 모든 데이터는 중복된다.


* 장점 : 드라이브 하나가 고장 나면 똑같은 내용의 다른 드라이브가 하나 더 있기 때문에 매우 안전하다. RAID 1은 읽기 성능이 단일 드라이브에서의 성능과 같거나 훨씬 좋다. 

* 단점 : 각 드라이브는 미러링되기 때문에 전체 용량의 절반밖에 사용하지 못한다. 드라이브 두 개에 동일한 데이터를 써야 하기 때문에 쓰기 성능이 나빠질 수 있지만 아직 다른 RAID 레벨의 쓰기 성능보다는 훨씬 낫다. 


RAID 2: 이 레벨은 더 이상 사용되지 않는다


RAID 3(패리티를 사용하고 디스크를 병렬로 처리한다)

* 최소 드라이브 개수 : 3 

* 최대 용량 : (디스크의 수 - 1) x 각 디스크의 용량

* 설명 : 데이터는 바이트 단위로 쪼개져서 모든 디스크에 균등하게 나뉘어 저장되고 패리티 정보는 별도의 전용 디스크에 저장된다.


* 장점 : 한 개의 드라이브가 고장 나는 것을 허용하며 순차적 쓰기(sequential write) 성능과 순차적 읽기(sequential read) 성능이 우수하다. 

* 단점 : 잘 사용되지 않고 문제를 해결하는 것이 어려울 수 있다. 하드웨어 RAID가 되어야 실제로 쓸만하다. RAID 3은 보통 매우 효율적이지만 임의 쓰기(random write) 성능이 나쁘고 임의 읽기(random read) 성능은 꽤 좋다. . 


RAID 4 (각 디스크는 패리티 블럭을 공유한다)

* 최소 드라이브 개수 : 3

* 최대 용량 : (디스크의 수 - 1) x 디스크의 용량

* 설명 : 모든 파일은 블럭으로 쪼개지고 각 블럭은 여러 디스크에 저장되지만 균등하진 않다. RAID 3처럼 RAID 4도 패리티를 처리하기 위해 별도의 디스크를 사용한다. 동시 트랜잭션 사용량이 많은 시스템에서 읽기 속도는 매우 중요한데 이런 시스템에 적합하다. 

* 장점 : 드라이브 하나가 고장 나는 것을 허용하고 읽기 성능이 매우 좋다. 

* 단점 : 쓰기 성능이 나쁘지만 블럭 읽기(block read) 성능은 괜찮다. 


RAID 5(패리티를 순환시키는 것 없이 각 어레이에 접근한다)

* 최소 드라이브 개수 : 3

* 최대 용량 : (디스크의 수 - 1) x 디스크의 용량

* 설명 : RAID 4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다. 

* 장점 : 지원하는 회사가 많고 한 개의 드라이브가 고장 나는 것을 허용한다. 

* 단점 : 디스크 재구성(rebuild)이 매우 느리고 쓰기 성능은 패리티 정보를 끊임없이 갱신해야 하기 때문에 우수하다고 할 수는 없다. 


RAID 6(각 디스크에 패리티 정보가 두 번 독립적으로 분산된다) 

* 최소 드라이브 개수 : 3

* 최대 용량 : (디스크의 수 - 2) x 디스크의 용량

* 설명 : RAID 4처럼 데이터의 블럭은 모든 디스크에 나뉘어 저장되지만 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장된다. 


* 장점 : 두 개의 드라이브까지 고장 나는 것을 허용하고 읽기 성능이 우수하고 매우 중요한 경우에 적합하다. 

* 단점 : 쓰기 성능은 패리티를 여러 번 갱신해야 하기 때문에 RAID 5보다 매우 나쁘다. 디스크를 재구성하는 동안에 성능이 매우 나빠질 수 있다.


'리눅스' 카테고리의 다른 글

configure 옵션 확인  (0) 2015.04.15
우분투 싱글모드 접속  (0) 2015.04.14
ftp user 폴더변경 접속제한 사용권한  (0) 2015.04.13
Apache : CSR 생성 및 SSL 인증서 적용  (0) 2015.04.13
sftp  (0) 2015.04.09
Posted by Narusika
,


유저 폴더 변경


1.

ex) vi /etc/passwd


 2.

test 계정에 해당하는 라인으로 이동

ex) test:x:1111:1111::/home/test:/bin/bash


 3.

test 계정에 해당하는 라인 중 홈디렉토리 부분을 /data 로 수정

ex) test:x:1111:1111::/data:bin/bash


 4.

이제 ftp 로 test 계정에 접속하면 /data 가 홈디렉토리가 됩니다.


 5.

test계정으로 /data 디렉토리를 사용할 수 있도록

chown 명령으로 /data 디렉토리의 소유권을 test로 변경해 줍니다. 

ex) chown test /data

 chown -R test /data   (하위 폴더 까지 모두 소유권 변경)





vi /etc/vsftpd.conf

#접속 제한 및 사용권한

listen=YES                #standalone 으로 서비스여부(아닐경우 inetd에 수동추가)

                          #다수의 사용자시 standalone가 유리하다.

anonymous_enable=YES      #익명연결을 허용하려면 주석제거

local_enable=YES          #로컬계정 사용자들의 접속 허용 

write_enable=YES          #FTP 전송명령어 중 write를 허용여부  

local_umask=022           #같은그룹과 Others 그룹의 쓰기권한 금지

ascii_upload_enable=YES   #ASCII 파일 업로드 가능 

ascii_download_enable=YES #ASCII 파일 다운로드 가능 

dirmessage_enable=YES     #디렉토리 이동시 메세지 표시여부

xferlog_enable=YES        #트레이스 로그여부

 

#환영 메세지

ftpd_banner=Welcome to Damul Project baikal FTP service.

#파일시스템 접근제한 설정

chroot_local_user=YES   #계정 홈디렉토리 상위폴더 이동제한

chroot_list_enable=YES  #아래 파일을 사용여부 

# (default follows)     

#위의 값이 모두 YES이면,아래파일을 생성하여 제한풀어줄 대상자의 id를 1행당 1개씩 기술.

#파일질라가 자체 캐싱을 하는건지,바로 적용은 안되고 몇번이고 데몬을 restart한

#후에 반영이 되는듯 하다.

#반대로 chroot_local_user=NO이면

#아래 파일의 내용은 계정 상위폴더 이동 제한을 걸 사용자들을 기술한다.

chroot_list_file=/etc/vsftpd.chroot_list

#재시작

sudo service vsftpd restart



★usermod

사용자의 정보를 변경하는 명령이다.


- 사용법

usermod [옵션] 홈디렉토리 계정


- 옵션

-c : 사용자의 설명을 수정한다.

-d 홈 디렉토리 : 사용자의 홈 디렉토리를 변경한다.

-G 그룹 : 사용자의 그룹을 변경한다.

-s shell : 사용자의 로그인 셀을 변경한다.


webdev 사용자의 홈디렉토리를 변경해보자.

[root@host3 root]# usermod -d /usr/java/apache-tomcat-7.0.53/webapps/ROOT webdev

홈디렉토리 변경.


[root@host3 root]#  chmod a-w /usr/java/apache-tomcat-7.0.53/webapps/ROOT

vsftpd 상위 디렉토리 접근을 막기위해 폴더 권한 설정


/etc/init.d/xinetd restart



'리눅스' 카테고리의 다른 글

우분투 싱글모드 접속  (0) 2015.04.14
raid 구성  (0) 2015.04.13
Apache : CSR 생성 및 SSL 인증서 적용  (0) 2015.04.13
sftp  (0) 2015.04.09
sendmail + dovecot  (0) 2015.04.09
Posted by Narusika
,

Apache : CSR 생성 및 SSL 인증서 적용

[본 가이드는 인증서 적용시 참고 예제이며, 고객사 서버에 설치/적용의 완벽한 성공을 보증하지는 않습니다]

Apache 설치방법 보기

Apache 웹서버에 SSL를 적용하기 위해 아래 두 항목이 웹서버에 설치되어 있어야 합니다.

- Openssl 암호화 라이브러리 
- Mod_ssl 모듈 

위 두 항목이 웹서버에 설치되어 있다면 개인키를 생성하고 생성된 개인키를 바탕으로 CSR 파일을 생성합니다. 
생성된 CSR 파일을 한비로에 접수하여 정식 인증서를 발급받습니다.
발급된 인증서를 웹서버에 설치하게 되면 SSL 설정을 완료하게 됩니다.

위 일련의 진행사항은 아래와 같은 절차를 따르게 됩니다. 

1. openssl 라이브러리 설치상태 확인 
2. mod_ssl 모듈 설치상태 확인 
3. 개인키 생성 
4. CSR 생성 
5. 한비로에 접수 
6. 정식 인증서 발급 
7. SSL 설정


1. Openssl 라이브러리 설치상태 확인

먼저 SSL를 설치하고자 하는 웹서버에 openssl 라이브러리 설치상태를 find 명령어를 활용하여 아래와 같이 확인합니다.
 
위와 같은 값을 보인다면 openssl 라이브러리 모듈은 rpm으로 설치된것입니다.
만약에 경로가 /usr/local 아래 있다면 모듈은 소스로 설치된 것입니다. 
rpm으로 설치된 것이라면 rpm -qa 명령어를 사용하여 openssl-devel 설치여부도 함께 점검합니다. 버전에 따라 라이브러리 버전이 아래보이는 값과 차이가 있을수 있습니다. 


Openssl 은 암호화 처리를 위한 독립 모듈로 최신버젼으로 설치하는 것을 권장합니다.


2. Mod-ssl Openssl 라이브러리 설치상태 확인

Openssl 과 마찬가지로 웹서버의 mod_ssl 설치여부를 점검합니다. 
Apache 웹서버는 두가지 방식으로 모듈설치를 지원하고 있습니다. 정적과 동적인 방식으로 정적으로 설치된 경우는 아파치의 재설치까지 요구되며 동적인 경우는 손쉽게 모듈 설치가 가능합니다. 
Apache 가 /usr/local 아래 설치된 것을 기준으로 아래와 같은 방식으로 확인합니다. 

정적으로 설치된 mod_ssl 모듈확인

동적으로 설치된 mod_ssl 모듈확인

웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다.
동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libexec 디렉토리내에 mod_ssl.so 의 존재여부를 확인합니다.


3. 개인키 생성

Openssl 명령어를 이용하여 웹서버의 RSA키( 2048비트 암호화 )를 생성합니다. ( sslhanbiro.key 는 임의로 지정된 키값입니다. 원하는 이름으로 키를 생성합니다. )
패스워드를 지정하게 됩니다. 이때 입력된 패스워드는 차후 여러차례 사용되므로 본인만이 알 수 있는 패스워드로 지정해 주시는 것이 좋습니다.

윈도우 아파치 이용하실 경우 '-des3' 구문은 제외하시기 바랍니다. 
이때 생성되는 개인키는 반드시 백업을 받아놓고 사용하는 것이 좋습니다. 
생성된 키는 아래와 같이 확인이 가능합니다. 패스워드를 확인 하는데 이때는 키생성시 입력한 패스워드를 입력합니다.
개인키 생성까지 완료되면 이제 CSR 생성을 하게됩니다.



4. 인증요청서( CSR ) 생성

*발급이 완료된 인증서는 재발급 또는 변경이 불가하므로 CSR 생성시 절대 주의 바랍니다. 

☞ CSR ( Certificate Signing Request ) 이란?


SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서입니다. 
CSR은 ASCII 텍스트 화일로 생성됩니다. 
CSR을 생성할 때 서버의 식별명을 입력하게 됩니다. 식별명은 각 서버를 공유하게 나타내는 이름으로 다음과 같은 정보를 포함합니다. 

Country Name ( 국가코드) [] : KR
State or Province Name ( 지역 ) [] : Seoul
Locality Name ( 시/군/구 ) [] : Seocho
Organization Name ( 회사명 ) [] : Hanbiro Inc
Organizational Unit Name ( 부서명 ) [] : Linux Team
Common Name ( 서비스도메인명 ) [] : www.hanbiro.com
Email Address [] : hanbiro@hanbiro.com

☞ CSR 항목에 대한 설명

Country Name : 이것은 두 자로 된 ISO 형식의 국가 코드입니다. 
State or Province Name : 시 이름을 입력해야 하며 약어를 사용할 수 없습니다. 
Locality Name : 이 필드는 대부분의 경우 생략이 가능하며 업체가 위치한 곳를 나타냅니다. 
Organization : 사업자 등록증에 있는 회사명과 일치되는 영문회사명을 입력하시면 됩니다. 
Organization Unit : "리눅스 관리팀", "윈도우 관리팀" 등과 같이 업체의 부서를 입력할 수 있습니다. 
Common Name : 인증받을 도메인주소를 입력하시면 됩니다.

이 정보로 웹 사이트를 식별하므로 호스트 이름을 변경할 경우 다른 디지털 ID를 요청해야 합니다. 
호스트에 연결하는 클라이언트 브라우저가 디지털 ID의 이름과 URL이 일치하는지를 확인합니다. 

☞ CSR 항목 입력시 주의사항
* Common Name 에는 인증서를 설치할 사이트의 도메인의 이름을 정확하게 입력하셔야 합니다.
* Common Name 에는 IP 주소, 포트번호, 경로명, http:// 나 https:// 등은 포함할 수 없습니다.
* CSR 항목에는 < > ~ ! @ # $ % ^ * / \ ( ) ? 등의 특수 68 문자를 넣을 수 없습니다.
* CSR 생성후 서버에 개인키 (Private Key) 가 생성됩니다. 개인키를 삭제하거나 분실할 경우 인증서를 발급받아도 설치가 불가합니다. 따라서 꼭 개인키를 백업받아 두셔야 합니다.
* 정보입력과정 마지막에 나오는 A challenge password 와 An optional company name 두 항목은 입력하지 마시고 Enter 만 누르고 넘어가야 합니다. 두 정보가 입력될 경우 잘못된 CSR 생성될 수 있습니다.

↘ 위 주의사항을 유의하여 아래와 같은 절차로 CSR 생성을 진행합니다.
(* 윈도우+아파치의 경우 -config "openssl.cnf 절대 경로" 입력 하시기 바랍니다.)

↘ 생성된 CSR 정보는 아래처럼 확인이 가능합니다.


5. 한비로에 접수--->6. 정식 인증서 발급

생성된 CSR 을 출력하면 아래와 같은 base64 형식의 문서를 볼 수 있습니다.

이문서의 첫 줄 -----BEGIN … 부터 마지막 줄 -----END … 까지 복사하여 지정된 SSL 접수페이지에 복사하여 붙여 넣은 뒤 입력정보와 함께 전송하면 접수가 완료됩니다.

7. 인증서 설치

접수한 CSR 파일이 정상적으로 생성되었다면 별다른 문제없이 인증서를 발급 받을 수 있습니다.
인증서 파일은 신청시 기록한 Email 주소를 통해 인증서를 첨부파일로 수신하게 됩니다.

① 인증서 서버에 복사

메일로 받은 인증서 파일을 압축을 해제하시면 AddTrustExternalCARoot.crt,COMODOHigh-AssureanceSecureServerCA.crt, 도메인.crt 3개의 파일을 보실 수 있습니다. 
여기에서 필요한 파일은 COMODOHigh-AssureanceSecureServerCA.crt,도메인.crt 2개의 파일입니다.
이 파일을 서버에서 적절한 위치에 복사합니다.

② 웹서버 환경설정

아파치가 설치된 디렉토리로 이동하여 conf 디렉토리내의 httpd.conf 파일의 복사본을 만들어 둡니다.
웹서버 설정의 기본이 되는 파일로 만일의 경우를 대비하여 백업본을 유지하는 것이 좋습니다.
백업이 완료되면 vi 편집기를 이용하여 httpd.conf 내용중 아래사항을 설정하신 정보에 맞게끔 수정합니다.

httpd.conf 예문

[ InstantSSL , InstantProSSL , PremiumSSL , Premium Wildcard , Multi DomainProSSL 인 경우 ]

[ FreeSSL , PositiveSSL , MultiDomain SSL 인 경우 ]

1. <VirtualHost 127.0.0.1:443> 127.0.0.1 를 사용하는 장비의 아이피로 변경 
 - 443 : SSL 통신포트번호 입니다. 일반적으로 웹서버는 80 포트를 사용합니다. 
2. SSLEngine 스위치 off 를 on 으로 변경해 줍니다. 
3. SSLCertificateFile / SSLCertificateKeyFile 에는 인증서의 설치경로와 개인키 파일의 경로를 적어 줍니다. 


③ root 인증서 경로설정

SSLCACertificateFile 에는 root 인증서 위치를 알려주는 것으로 유저의 브라우저에 신뢰받는 CA리스트가 없을 경우를 위해 경로를 반드시 지정해 주어야 합니다. 


④ 웹서버 재실행

설정파일의 정상적인 수정여부를 점검하기 위한 체크 ./httpd -t 
수정된 사항의 적용을 위해 아파치 데몬정지 ./apachectl stop 
아파치 데몬 활성화 ./apachectl startssl ( 아파치 데몬 활성화는 ./apachectl start 로 가능합니다. 여기에 ssl 를 붙여줌으로서 ssl 를 사용하게 됩니다. )

초기 개인키 생성시 입력했던 패스워드를 기억하시고 계실겁니다. SSL 실행을 위해 패스워드를 물어보는데 이때 개인키 생성시 입력했던 패스워드를 입력하시면 SSL 웹데몬이 활성화 됩니다.

⑤ 웹서버 포트점검

아래와 같이 활성화된 데몬의 포트를 점검해 봅니다.

⑥ 웹서비스 동작상태 점검

인터넷 주소창에 https://사용도메인 와 입력후 해당 페이지의 정상적인 동작 여부를 점검합니다.
SSL 설정한 사이트에 대한 정상적인 서비스 상태 점검

페이지 하단을 보시면 열쇠 아이콘이 보이게 됩니다. 아이콘을 클릭하게 되면 위와 같이 인증서 정보를 확인하실수 있습니다.


https://www.comodossl.co.kr/certificate/ssl-installation-guides/Apache-csr-crt.aspx



'리눅스' 카테고리의 다른 글

raid 구성  (0) 2015.04.13
ftp user 폴더변경 접속제한 사용권한  (0) 2015.04.13
sftp  (0) 2015.04.09
sendmail + dovecot  (0) 2015.04.09
톰캣 아파치 연동하기  (0) 2015.04.08
Posted by Narusika
,