설정 환경 : Linux

Apache에 SSL 을 적용하게 되면 대개 www.m-sys.co.kr 이나 회원 로그인 할때만 사용을 하는데 고객의 요청으로 서브 도메인까지 SSL 적용을 해야하는 경우가 있어서 제가 사용한 방법을 글로 남깁니다.


Apache 2.0.x 이하 버젼의 경우를 먼저 하도록 하겠습니다.

일단 ssl.conf 이 파일을 찾는게 중요합니다. 대부분의 설정을 여기서 하기 때문이죠

# cd /usr/local/apache/conf      <- 대부분 여기에 위치해요~

아차~ 제일 중요한 vhost.conf 에 있는 내용을 ssl.conf 로 넣어야 하니 이 작업을 먼저 하겠습니다.

# cat vhost.conf  >>  ssl.conf           <- 이렇게 하면 vhost.conf 의 내용이 ssl.conf 제일 밑 부분으로 연결되어 추가 됩니다.


그다음 vi 를 이용하여 수정~~

# vi ssl.conf

<IfDefine SSL>     <- cat 을 이용하여 vhost.conf 내용을 그냥 가져왔으니 여기와 끝을 잘 보시고 수정하셔야합니다. 맨 끝에는 </IfDefine> 이게 있어야겠죠?
.
.
.
Listen 443
NameVirtualHost 218.*.*.213:443         <-  대충 여기에 해당 서버 IP랑 Port 443 을 추가합니다.

그리고

SSLPassPhraseDialog  builtin   <- 수정을 하거나 주석(#) 처리해서 Server Reboot 시 패스워드를 자동으로 기입하도록 해야합니다.   아참 이부분은 Apache 시작시 패스워드를 묻지 않도록 인증서를 만들었으면 패스~~~~~~하셔도 됩니다.

요렇게... ^^

#SSLPassPhraseDialog  builtin
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh       <- 이부분은 저의 블로그에 보면 Apache 에서 자동 패스워드 적용이라는 타이틀로 되어 있는걸 참고 하시길 바랍니다.


그리고 밑의 내용처럼 수정 해 주시면 됩니다.

<VirtualHost 218.*.*.213:443>
        ServerAdmin webmaster@test.co.kr
        DocumentRoot /usr/local/home/test
        ServerName test.co.kr:443
        ServerAlias test.co.kr:443
        ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
        ErrorLog logs/test-error_log
        CustomLog logs/test-access_log combined
</VirtualHost>

<VirtualHost 218.*.*.213:443>
        ServerAdmin webmaster@test.co.kr
        DocumentRoot /usr/local/home/test
        ServerName test.co.kr:443
        ServerAlias test.co.kr:443
        ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
        ErrorLog logs/test-error_log
        CustomLog logs/test-access_log combined
</VirtualHost>
.
.
.
.
</IfDefine>    <-꼭~ 확인하세요~



이제 Apache2.0.x 이상 버젼을 하도록 하겠습니다.
뭐~ 위에 꺼와 틀린점은 ssl.conf  파일 이름과 디렉토리 위치가 틀리다는거 빼고는 다 똑같습니다.

# cd /usr/local/apache/conf/extra      <- 대부분 여기에 위치해요~

아차~ 제일 중요한 httpd-vhosts.conf 에 있는 내용을 httpd-ssl.conf 로 넣어야 하니 이 작업을 먼저 하겠습니다.

# cat httpd-vhosts.conf  >>  httpd-ssl.conf           <- 이렇게 하면 httpd-vhosts.conf 의 내용이 httpd-ssl.conf 제일 밑 부분으로 연결되어 추가 됩니다.


그다음 vi 를 이용하여 수정~~

# vi httpd-ssl.conf

<IfDefine SSL>     <- cat 을 이용하여 httpd-vhosts.conf 내용을 그냥 가져왔으니 여기와 끝을 잘 보시고 수정하셔야합니다. 맨 끝에는 </IfDefine> 이게 있어야겠죠?
.
.
.
Listen 443
NameVirtualHost 218.*.*.213:443         <-  대충 여기에 해당 서버 IP랑 Port 443 을 추가합니다.

그리고

SSLPassPhraseDialog  builtin   <- 수정을 하거나 주석(#) 처리해서 Server Reboot 시 패스워드를 자동으로 기입하도록 해야합니다.       아참 이부분은 Apache 시작시 패스워드를 묻지 않도록 인증서를 만들었으면 패스~~~~~~하셔도 됩니다.

요렇게... ^^

#SSLPassPhraseDialog  builtin
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh       <- 이부분은 저의 블로그에 보면 Apache 에서 자동 패스워드 적용이라는 타이틀로 되어 있는걸 참고 하시길 바랍니다.


그리고 밑의 내용처럼 수정 해 주시면 됩니다.

<VirtualHost 218.*.*.213:443>
        ServerAdmin webmaster@test.co.kr
        DocumentRoot /usr/local/home/test
        ServerName test.co.kr:443
        ServerAlias test.co.kr:443
        ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
        ErrorLog logs/test-error_log
        CustomLog logs/test-access_log combined
</VirtualHost>

<VirtualHost 218.*.*.213:443>
        ServerAdmin webmaster@test.co.kr
        DocumentRoot /usr/local/home/test
        ServerName test.co.kr:443
        ServerAlias test.co.kr:443
        ScriptAlias /cgi-bin/ "/home/WWW/test/cgi/"
        ErrorLog logs/test-error_log
        CustomLog logs/test-access_log combined
</VirtualHost>
.
.
.
.
</IfDefine>    <-꼭~ 확인하세요~



이상입니다.
저도 아직 수정해야 할 부분이 많이 있습니다. 혹시나 제가 적은 글에서 틀린 점이 있거나 의문사항이 있으면 댓글을 남겨주시길 바랍니다.


HP-UX 간단 점검 명령어

Posted 2010. 1. 22. 15:14


Backup

DAT Backup 확인 : /var/opt/ignite/recovery/latest/recover.log


System Log

Event Log : /var/opt/resmon/log/event.log
History Log : /var/adm/syslog/OLDSyslog.log
Current Log : /var/adm/syslog/syslog.log


성능 부분 체크

CPU, MEMORY, DISK usage : glance


Linux 에서 Apache2.0.47을 SSL 적용하여 설치를 해보니 실행시(startssl)  마다 패스워드를 넣어줘야만
실행이 되더군요.   이렇게 되니 Server 가 Reboot 될때 startssl로 자동실행하게 되면 패스워드 부분에서 걸려 apache가 실행이 되지 않으니 참고 하시길 바랍니다.  이 부분을 해결 하는 방법을  맨 밑에 제가 적어 놓도록 하겠습니다.

애초에 패스워드를 묻지 않도록 인증서를 만들면 될텐데... 일을 만들고 있네요  ㅠ.ㅠ  뭐 이것도 경험이니...... -_-;

일단 인증서가 있는 디렉토리로 이동하세요~ (예, /usr/local/apaceh/conf/ssl)
뭐 이부분은 그냥 패스워드를 넣을 파일을 만드는 작업이라 아무곳에 하셔도 되지만 인증서가 있는곳에 하시면 더 좋겠죠? 응?  퍽~~~

일단 디렉토리로 이동하셨다면 밑에 적을것 처럼 하시면 됩니다.

# cat > startssl_pw.sh
  #!/bin/sh
  echo 패스워드
Ctrl + C  <- 이 부분은 키보드에서 눌리는거에요. 혹시 이대로 적으시면 안되요~~
#

그다음은 이 파일이 사용할 수 있도록 권한을 설정하겠습니다.
# chmod 755 startssl_pw.sh


이제 한 고비는 넘겼네요. ㅎㅎ

이제 httpd.conf 혹은 ssl.conf 가 있는 곳으로 이동~~~~~~   (예, /usr/local/apache/conf)
둘중에 아무곳이나 마음에 드시는곳에 수정하시면 됩니다.

난 일단 httpd.conf 이쪽으로,,

# vi httpd.conf

그다음 밑의 부분을 찾으세요~~

<IfModule mod_ssl.c>
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh   <- 여기에 추가 하시면 됩니다.   
</IfModule mod_ssl.c>


아참 ssl.conf 에서는 밑의 부분을 찾아서 주석(#) 처리를 하셔서 추가 하시거나 builtin 을 exec:/usr/local/apache/conf/ssl/startssl_pw.sh 로 수정해 주시면 됩니다.

# vi ssl.conf

SSLPassPhraseDialog builtin   ->     #SSLPassPhraseDialog builtin    주석처리하고 밑의 부분을 추가 혹은

SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/startssl_pw.sh    <-  이렇게 수정

이렇게 하시고 apache 를 실행해 보시면 패스워드를 묻지 않고 그냥 스스륵~~~ 실행이 됩니다.


이젠 Server Reboot 시 자동실행이 되도록 수정을 하도록 하겠습니다.

# vi /etc/rc.d/rc.local

/usr/local/apache/bin/apachectl startssl

이렇게 적어 주시면 Server Reboot 하더라도 자동으로 apache가 실행이 됩니다.

혹시나 의문점이 계시면 댓글~~~~~



 

Solaris8 (SPARC) APM 과 보안서버(SSL)설치

 


현재 제가 직접 설치한것을 토대로 글을 작성합니다. (2009.09.30)


환경 : Solaris 8 SPARC


1.
필요한  APM 및 라이브러리  다운

 

http://sunfreeware.com  에서 접속하여 오른쪽에 있는 해당 하드웨어 사항들을 체크한 다음  클릭하여  아래에 적힌 목록들을 다운

apache-2.2.9-sol8-sparc-local.gz
mysql-5.0.67-sol8-sparc-local.gz
ncurses-5.6-sol8-sparc-local.gz
php-5.2.6-sol8-sparc-local.gz
expat-2.0.1-sol8-sparc-local.gz
openldap-2.4.11-sol8-sparc-local.gz
sasl-2.1.21-sol8-sparc-local.gz
gcc-3.4.6-sol26-sparc-local.gz
libgcc-3.4.6-sol26-sparc-local.gz
libiconv-1.11-sol26-sparc-local.gz
libintl-3.4.0-sol26-sparc-local.gz
libxml2-2.6.31-sol26-sparc-local.gz
openssl-0.9.8i-sol26-sparc-local.gz
zlib-1.2.3-sol26-sparc-local.gz
libidn-1.10-sol8-sparc-local.gz
libpng-1.2.33-sol8-sparc-local.gz
curl-7.19.1-sol8-sparc-local.gz
fontconfig-2.4.2-sol8-sparc-local.gz
freetype-2.3.1-sol8-sparc-local.gz
gd-2.0.35-sol8-sparc-local.gz
jpeg-6b-sol8-sparc-local.gz
xpm-3.4k-sol8-sparc-local.gz


새로 Server를 설치하였다면 위의 목록들을 모두 받아놓는게 정신건강상 좋습니다.


~ 필요한거에요.


~ 혹시 위에 버젼보다 높은 버젼이 나왔다면 그걸 받아서 설치하셔도 됩니다.


위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로

설치 됩니다.


) #  gzip -d gcc-3.4.6-sol26-sparc-local.gz


이렇게 모두 압축을 풀어주세요

압축을 풀게 되면 gcc-3.4.6-sol26-sparc-local 이렇게만 남습니다.


그다음 패키지를 풀면됩니다.


) # pkgadd -d gcc-3.4.6-sol26-sparc-local

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:  all

이렇게 모두 파일이름만 바꾸고 설치 하시면 됩니다.

 


2. PATH
설정


밑의 내용을 /etc/profile 에서 넣어주시면 됩니다.


# vi /etc/profile
# for Apache located at /usr/local/apache2
if [ -d /usr/local/apache2 ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/apache2/bin; export PATH;
fi
# for MySQL located at /usr/local/mysql
if [ -d /usr/local/mysql/lib/mysql ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/mysql/bin; export PATH;
fi



밑의 내용을 PATH  에 대해 적용 방법등을 적어놓았습니다.


현재 자신의 PATH 값을 보려면 아래와 같이 하면 됩니다.

# echo $PATH

 
그리고 PATH에 새로운 값을 추가하려면 아래와 같이 하면 됩니다.

 
# PATH=$PATH:/usr/local/bin:/usr/ccs/bin
# export PATH


위에서 /usr/local/bin /usr/ccs/bin 디렉토리를 추가했습니다. 이제 /usr/local/bin에 있는 명령어를 아무곳에서나 경로명 없이 실행할 수 있습니다.


하지만 위의 방법은 로그아웃하기 전까지만 유효합니다. 다시 로그인하면 또 위와 같이 PATH를 설정해줘야합니다.

그래서 이걸 자동적으로 적용되는 방법이 있는데 그건 사용자의 profile에 위의 내용들을 추가하는 겁니다.


# vi $HOME/.profile
PATH=$PATH:/usr/local/bin:/usr/ccs/bin
export PATH

만약 csh을 사용한다면 아래와 같이 하세요.

# vi $HOME/.login
setenv PATH $PATH:/usr/local/bin:/usr/ccs/bin



3. APM  설정


1) Apache


밑의 내용처럼  httpd.conf 파일을 수정해 주세요~!


# vi /usr/local/apache2/conf/httpd.conf
User nobody
Group nobody
daemon
으로 되어 있는걸 nobody로 수정


DefaultType text/plain
<IfModule mime_module> 
이부분에

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
위 두 내용을 추가.


LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so   
이부분 추가.

ServerName  192.168.1.69:80
IP
대신 도메인을 사용할 수 있음. test를 위해서는 일단 ip로 해도 괜찮아요.


Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
위의 사항들을 사용하고 싶다면 # 주석을 없애면 됩니다.


# /usr/local/apache2/bin/apachectl start


혹시 에러가 생기다면 필요한 라이브러리를 설치하지 않아 생겼을 테니 꼭 라이브러리를 설치하시길 바랍니다.

 

부팅시 자동으로 Apache를 구동할 수 있도록 스크립을 작성하겠습니다.
위의 사항들을 제대로 구성하셨으면 /etc/init.d/apache  라는 파일이 만들어져 있을껍니다.
이건 그냥 무시하시고 저는 간단하게 하기 위해 짧게 할 예정이라 한줄 밖에 안됩니다.
          
#vi /etc/init.d/apache2

#!/sbin/sh
#
# apache starting script
#

/usr/local/apache2/bin/apachectl start

더 이상 없습니다.


# chown root:sys /etc/init.d/apache2
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/apache2
파일 권한은 744

# ln /etc/init.d/apache2 /etc/rc2.d/S99apache  
# ln /etc/init.d/apache2 /etc/rc1.d/K16apache
# ln /etc/init.d/apache2 /etc/rcS.d/K16apache
여기에 링크를 걸어주시면 부팅시 자동으로 Apache 데몬이 작동이 됩니다.

 


2) PHP

cp /usr/local/php/doc/php/php.ini-recommended /usr/local/php/lib/php.ini
/usr/local/php/doc/php/php.ini-recommended
/usr/local/php/lib/php.ini 복사합니다.


테스트를 위해 아래 내용을 새로 작성

# vi /usr/local/apache2/htdocs/index.php
<?
  phpinfo()
?>

확인방법은 http://192.168.1.69/index.php  (이건 저의 셋팅에 따라 만든거에요)
제대로 되었다면 밑의 그림이 나올껍니다. ~ 그리고 이 테스트는 APM 모두 설치 셋팅한다음 테스트를 하시길 바랍니다.





3) MySQL


# useradd -d /export/home/mysql -g staff -m -u 102 -s /bin/false mysql
MySQL
을 사용할 계정을 추가


# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
/usr/local/mysql/share/mysql
my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 의 예제 설정 파일이 있다. 이를 /etc/my.cnf 으로 이름을 바꿔 복사하면 된다.


skip-networking
#log-bin
리플리케이션을 사용하지 않는다면 [log-bin]을 찾아 주석처리하고 외부에서 접속이 없다면 [skip-networking]의 주석을 푼다.


# /usr/local/mysql/bin/mysql_install_db
기본 MySQL DB를 생성


# chown -R mysql:staff /usr/local/mysql/var
기본 MySQL DB가 생성되는  /usr/local/mysql/var 의 디렉토리 및 파일들의 소유자를 mysql  그룹은 staff로 변경


# /usr/local/mysql/share/mysql/mysql.server start
MySQL
서버를 시작
종료는 /usr/local/mysql/share/mysql/mysql.server stop


# /usr/local/mysql/bin/mysqladmin -u root password 'PASSWORD'
MySQL
root 패스워드를 변경
기본값은 없기 때문에 보안을 위해서 반드시 수정


# /usr/local/mysql/bin/mysqladmin -u root -h test -p password 'NEW-PASSWORD'
Enter password: PASSWORD
위처럼 하시면 새로운 패스워드로 변경이 됩니다. 위에서  test host 이름입니다.

 

 

부팅시 자동으로 Mysql를 구동할 수 있도록 스크립을 작성하겠습니다.

# vi /etc/init.d/mysql

#!/sbin/sh
#
# mysql starting script
#
 
/usr/local/mysql/bin/mysqld_safe &


# chown root:sys /etc/init.d/mysql
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/mysql
파일 권한은 744

# ln /etc/init.d/mysql /etc/rc2.d/S99mysql  

이렇게 하면 mysql도 부팅시 자동으로 데몬이 올라오게 됩니다.

 

 

 


 

4. 보안서버(SSL) 설치 및 설정

 


1) openssl 을 이용하여 key 파일 생성 및 csr 코드 생성

 

일단 ssle 인증서 키와 파일들을 저장할 디렉토리를 만들어놓습니다.

# mkdir /usr/local/apache2/conf/ssl

# cd /usr/local/apache2/conf/ssl

 

Ps. 꼭 개인키와 csr 코드 등은 복사등을 해서 백업을 해주시길 바랍니다.

 

- 개인Key 파일 생성

# openssl genrsa -des3 1024 > m-sys_co_kr.key

 

Generating RSA private key, 1024 bit long modulus

.................................++++++

...............++++++

e is 65537 (0x10001)

Enter pass phrase:  <- 암호 필히 기억 (apache 실행시 사용함)

Verifying - Enter pass phrase:

 

만약 apache 실행시 암호를 사용하지 않고 사용하실려면 아래의 명령어를 통해 개인키를 생성하시길 바랍니다.

 

# openssl genrsa 1024 > m-sys_co_kr.key

 

 

 

- csr 코드 생성

# openssl req -new -key m-sys_co_kr.key -out m-sys_co_kr.csr

 

Enter pass phrase for m-sys_co_kr.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:KR

State or Province Name (full name) [Some-State]:Busan

Locality Name (eg, city) []:BusanJin

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Minerva Systems   <-회사명

Organizational Unit Name (eg, section) []:Technical Support Team   <-소속 부서

Common Name (eg, YOUR name) []:www.m-sys.co.kr    <-홈페이지 도메인

Email Address []:***@m-sys.co.kr

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:    <- 암호 필히 기억

An optional company name []:


 

 

- csr 코드 확인(보안상 *** 처리하였습니다)

# cat m-sys_co_kr.csr

 

-----BEGIN CERTIFICATE REQUEST-----

MIIB/jCCAWcCAQAwgagxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVCdXNhbjERMA8G

A1UEBxMIQnVzYW5KaW4xGDAWBgNVBAoTD01pbmVydmEgU3lzdGVtczEfMB0GA1UE

***********************

934AJEaN5VPO3RJR6w4O2GwW/AM3iNuNr2IaBJmfKip9gA==

-----END CERTIFICATE REQUEST-----

 

공공기관이나 교육기관 등등에서 사용하기 위해서는 위에 생성된 csr 코드를 SSL 인증키 업체에게 메일이나 웹으로 이 파일을 보내서 인증키 발급을 신청해야합니다.

 

메일이나 웹으로 csr 내용을 SSL 인증키 업체에게 보내서 인증서 발급을 받으면 key csr 파일이 있는 경로(저의 경우는  /usr/local/apache2/conf/ssl) ftp를 이용하시던 다른 어떤수를 사용해서라도 넣어놓으세요.  ㅎㅎ

 

자체 인증서를 만들어서 테스트하는 방법은 뒤에서 설명하도록 하겠습니다.

 

 

2) SSL을 사용하기 위한 httpd.conf & httpd-ssl.conf 수정

 

어떤 파일 형식으로 인증서를 받으실지 모르겠지만 대충 m-sys_co_kr.pem 으로 받았다고 가정하고 시작하도록 하겠습니다.

 

저는 그냥 m-sys_co_kr.pem 파일을 복사해서 이름을 바꾸어서 사용하였습니다.

 

# cp m-sys_co_kr.pem  m-sys_co_kr.crt

 

 

먼저 위에서 Apache의 옵션 httpd.conf 파일안에 있는

Include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-ssl.conf  이 두 부분에서 주석처리를 없애버렸기 때문에 바로 httpd-ssl.conf 를 수정하겠습니다.

 

 

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

 

 

##

## SSL Virtual Host Context

##

 

<VirtualHost 210.*.223.*:443> <-이부분 수정 해당 IP (보안상 * 표시하였습니다만.. -_-;)

 

#   General setup for the virtual host

DocumentRoot "/home1/homepage/www"   <- 수정

ServerName www.m-sys.co.kr:443  <- 수정

ServerAdmin kwonbk@m-sys.co.kr  <- 수정

ErrorLog "/usr/local/apache2/logs/m-sys.co.kr_ssl_error_log"  <- 알아서 수정하세요 ^^

TransferLog "/usr/local/apache2/logs/m-sys.co.kr_ssl_access_log" <- 이것도 ..

 

#   SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on

 

#   SSL Cipher Suite:

#   List the ciphers that the client is permitted to negotiate.

#   See the mod_ssl documentation for a complete list.

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

 

#   Server Certificate:

#   Point SSLCertificateFile at a PEM encoded certificate.  If

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

#   pass phrase.  Note that a kill -HUP will prompt again.  Keep

#   in mind that if you have both an RSA and a DSA certificate you

#   can configure both in parallel (to also allow the use of DSA

#   ciphers, etc.)

SSLCertificateFile "/usr/local/apache2/conf/ssl/m-sys_co_kr.crt"  <- 발급받은 인증서 경로

#SSLCertificateFile "/usr/local/apache2/conf/server-dsa.crt"

 

#   Server Private Key:

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

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

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

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

SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/m-sys_co_kr.key"  <- 개인키 경로

#SSLCertificateKeyFile "/usr/local/apache2/conf/server-dsa.key"

 

#   Server Certificate Chain:

#   Point SSLCertificateChainFile at a file containing the

#   concatenation of PEM encoded CA certificates which form the

#   certificate chain for the server certificate. Alternatively

 

#SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle.crt"  <- CA 있으면 추가~!

 

<FilesMatch "\.(cgi|shtml|phtml|php)$">

    SSLOptions +StdEnvVars

</FilesMatch>

<Directory "/usr/local/apache2/cgi-bin">

    SSLOptions +StdEnvVars

</Directory>

 

BrowserMatch ".*MSIE.*" \

         nokeepalive ssl-unclean-shutdown \

         downgrade-1.0 force-response-1.0

 

CustomLog "/usr/local/apache2/logs/ssl_request_log" \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 

</VirtualHost>

 


 

3) SSL 적용한 Apache 실행하기

 

이제 httpd-ssl.conf 파일을 저장하고 apache를 실행하시면 됩니다.

일단 테스트를 해서 옵션등에 에러가 없는지 확인하겠습니다.

 

# /usr/local/apache2/bin/apachectl –t

Syntax OK

 

이렇게 정상적인 OK 가 나오면 실행하시면 됩니다. 간혹 인증서 때문에 테스트에서는 정상 작동이 된다고 하지만 실행해보면 실패가 되는 경우가 있는데 운영중인 서버라면 httpd.conf 에서 Include conf/extra/httpd-ssl.conf 부분을 주석처리하고 일단 상황을 보시고 실행하시길 바랍니다.

 

그리고 Solaris에서는 모르겠지만 Linux 에서는 apache 2.x.x 버전은 openssl, 이 자체 내장되어서 나옵니다. sunfreeware 사이트에서 설치시 받아야할 항목을 모두 받아서 설치한거니 헷갈리지 마세요 ^^;  아참 apache 1.3.x 버전의 경우 apache 실행시 apachectl startssl 을 해야 하지만 apache 2.x.x 의 경우 밑의 명령어 처럼 start 명령어만 해주면 됩니다.

 

 

# ./apachectl start

Apache/2.2.12 mod_ssl/2.2.12 (Pass Phrase Dialog)

Some of your private key files are encrypted for security reasons.

In order to read them you have to provide the pass phrases.

 

Server www.m-sys.co.kr:443 (RSA)

Enter pass phrase:

 

OK: Pass Phrase Dialog successful.

 

 

이렇게 하고 443 Port가 사용하고 있는지 확인하세요.

 

# netstat –an | grep 443

 

*.443                *.*                0      0 24576      0 LISTEN

      *.443                             *.*                             0      0 24576      0 LISTEN

 

 

443 Port 가 열려있다면 이제 익스플로러나 파폭등을 이용해서 https://m-sys.co.kr 주소로 들어가시면 SSL 보안이 실행되고 있는지 확인하실 수가 있습니다.

 


 

 

4) 자체 인증서 만들기

 

# openssl genrsa 1024 > m-sys_co_kr.key

 

# openssl req -new -key m-sys_co_kr.key -out m-sys_co_kr.csr

 

# openssl x509 -in m-sys.co.kr.csr -out m-sys.co.kr.crt -req -signkey m-sys.co.kr.key -days 3650

Signature ok

subject=/C=KR/ST=Busan/L=Busan/O=Minerva Systems/OU=Technical Support Team/CN=www.m-sys.co.kr/emailAddress=****@m-sys.co.kr

Getting Private key

 

이건 자체 테스트용으로 한것이기 때문에 기간은 10년으로ㅎㅎ

 

이렇게 하신다음 apache를 재시작 하시면 됩니다.

 

 

 

5) 각 운영체제 별 현재 설치된 apache, openssl 등을 확인 방법

 

- Linux

 

# rpm –qa | grep apache

# rpm –qa | grep ssl

 

# find / -name apache

# find / -name ssl

 

 

- Solaris

 

# pkginfo | grep apache

# pkginfo | grep ssl

 

# find / -name apache

# find / -name ssl

 

 



Solaris에서 DHCP를 이용시 hostname 변경 방법

고정IP를 사용하지 않는 사람들의 경우 대부분 DHCP를 이용해야지만 Solaris에서 인터넷을 사용할 수 있는걸로 알고 있습니다.
하지만 DHCP를 이용하게 되면 hostname이 unknown 로 되어 있어 수정을 할려고 하니 잘 되지 않더군요
그래서 제가 자료를 찾아서 unknown 를 test 성공한 내용을 적도록 하겠습니다.

일단 vi를 이용하여 수정하는 파일들을 열거하도록 하겠습니다.

/etc/nodename  <- 파일이 없다면 생성해서 만들어주세요!
/etc/hostname.hme0   <- hme0은 네트워크식별자 입니다.
/etc/inet/hosts
/etc/inet/ipnodes
/etc/net/ticlts/hosts
/etc/net/ticots/hosts
/etc/net/ticotsord/hosts
/etc/init.d/network
/etc/init.d/inetsvc


수정 방법

# vi /etc/nodename
test

# vi /etc/hostname.hme0
test

# vi /etc/inet/hosts

127.0.0.1       localhost       loghost test
192.168.1.70    test    # Added by DHCP    <- unknown를 test로 수정 후 저장


# vi /etc/inet/ipnodes

::1             localhost
127.0.0.1       localhost
192.168.1.70    test    #Added by DHCP  <- unknown를 test로 수정 후 저장


# vi /etc/net/ticlts/hosts

# RPC hosts
test test    <- unknown unknown 되어 있는걸 test test 로 수정 후 저장

# vi /etc/ent/ticots/hosts

# RPC hosts
test test    <- unknown unknown 되어 있는걸 test test 로 수정 후 저장


# vi /etc/net/ticotsord/hosts

# RPC hosts
test test    <- unknown unknown 되어 있는걸 test test 로 수정 후 저장


# vi /etc/init.d/network

#
# If the netstrategy was unsuccessful or we haven't got a locally configured
# name, default to "unknown"
#
if [ -z "$hostname" ]; then
        hostname="test"
fi

/sbin/uname -S $hostname

위의 부분을 찾아 hostname="unknown" 되어 있는걸 hostname="test"로 수정 후 저장


# vi /etc/init.d/inetsvc

 #
        # if DHCP doesn't return a hostname, use "unknown" so
        # client can resolve IP address into a local hostname.
        #
        hostname=`/sbin/dhcpinfo Hostname`
        if [ -z "$hostname" ]; then
                hostname="test"
        fi

위의 부분을 찾아 hostname="unknown" 되어 있는걸 hostname="test"로 수정 후 저장

이제 reboot 한후 hostname이 test 로 올라오는걸 확인하시면 됩니다.

 



SPARC: 디스크 없는 클라이언트 설치 중 전원 관리가 활성화된 경우 Sun Blade 1000 및 Sun Blade 2000 시스템에서 커널 장애 발생(4985416)

Solaris 9 4/04 릴리스에서는 Sun BladeTM 1000 또는 Sun BladeTM 2000 시스템에서 디스크 없는 클라이언트 설치 중 전원 관리가 활성화되었다면 커널 장애가 발생합니다. 유휴 시간이 지난 후 시스템 장애가 발생합니다.

다음과 같은 오류 메시지가 나타납니다.


/usr/sbin/pmconfig: /etc/power.conf line (18) failed to convert mountpoint to prom name.

이 메시지는 /var/adm/messages 파일에도 기록됩니다.

해결 방법: 이 문제를 방지하려면 다음 단계를 수행합니다.

  1. /etc/power.conf 파일을 편집하여 전원 관리를 비활성화합니다. autopm 항목을 default 에서 disable로 변경합니다.

  2. /etc/power.conf 파일을 편집한 후 다음 옵션 중 하나를 선택합니다.

    • 변경 사항을 적용하려면 시스템을 재부트합니다.

    • 수퍼유저가 되도록 합니다. 그리고 다음 명령을 실행합니다.


      # /usr/sbin/pmconfig

SSH, FTP 접속 딜레이가 생길때...

Posted 2009. 5. 22. 16:36

처음 설치후 한동안 SSH, FTP 등 접속을 할때 빠르게 로그인창이 떳었는데 요즘은 계속 딜레이가 5초 이상이 발생하여
이에 대한 대처 방법을 적도록 하겠습니다.


1. SSH

SSH의 경우 대개 config 를 수정하면 해결이 되더군요
일단 sshd_config 를 수정해야하니 find 명령어로 찾도록 하겠습니다.

# find / -name sshd_config
/usr/local/etc/sshd_config

위의 디렉토리에 있네요.
그럼 수정을..
# vi /usr/local/etc/sshd_config

--------------------
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no
-----------------------------

맨밑으로 가시고 #UseDNS yes 부분이 있습니다.  이부분을 주석 제거하고 yes를 no로(DNS Server 일 경우 yes 그대로) 하시면 됩니다.

UseDNS no

이렇게 수정하고 저장한다음 SSHD를 재시작 해주시면 됩니다.


2. FTP

FTP의 경우는 대부분(?) resolv.conf 부분에서 딜레이가 발생합니다.

# vi /etc/resolv.conf

제일 첫번째줄에 nameserver 168.126.63.1 (KT DNS) 로 해 보세요.
순서를 바꾸는거죠. ^^;
그리고 /etc/hosts 여기에 접속할 ip 를 추가하면 딜레이 되는 부분이 어느정도 해결이 될겁니다.

« PREV : 1 : 2 : 3 : 4 : 5 : 6 : ··· : 11 : NEXT »