패스워드 변경
passwd
시스템종료
shutdown -옵션 [타임]
ifconfig
----------------------------------------------------------------------------------------------
ext3 윈도우즈로 치면 NTFS같은...
ext3 /boot 대략 100M Force 체크
ext3 / 또는 /home Fill 남은공간 전부
swap 2기가 이하일경우 물리 메모리 2배 이상일경우 그냥 물리 메모리로 사용해도 무방
----------------------------------------------------------------------------------------------
pkgadm 은 아래와 같이 구성이 되어 있습니다. pkgsysupdate 시스템 패키지 자동 관리 도구 pkgdistupdate 배포본 버전 migration 도구 pkgkernel 커널 관리 도구 pkgdb Packages System 데이터 베이스 관리 도구 pkginfo Packages System 의 정보를 확인하는 도구 pkgadd Packages System 의 패키지 설치/업데이트 도구 pkgdel Packages System 의 패키지 삭제 도구 pkgchk Packages System 의 패키지 무결성 검사 도구 pkgdeveltrans base 모드 설치시에 devel mode 로 전환을 해 주는 도구
pkgaddpkgadd 는 Packages System 에서 제공하는 패키지를 설치/업데이트 관리하는 도구 입니다.
또한, pkgadd 는 원하시는 다른 rpm 패키지를 Packages System 에서 관리할 수 있게 해 줍
니다. 이 말은 다른 배포본의 패키지를 그냥 가져와서 설치할 수 있다는 것은 아니며 안녕
에서 사용 가능 하지만 안녕에서 제공하지 않은 별개의 패키지를 안녕의 Packages System
의 데이터베이스에서 같이 관리를 해 준다는 의미입니다.
다음은 pkgadd 의 사용 예제입니다.
1. 기본 사용법
2. 패키지 설치
3. 버전을 지정하여 패키지 설치
4. 패키지 업데이트
5. 설치되어 있는 패키지만 업데이트
6. 로컬 파일 패키지를 설치 및 업데이트
7. 원격 파일 패키지를 설치 및 업데이트
1. 기본 사용법
Hanterm - pkgadd --help
[oops@main dir]$ pkgadd --help
PKGADM v.2.0.0 : 패키지 관리 툴
사용법: /usr/sbin/pkgadd [옵션] [패키지이믈]
Options:
-v|--verbose 상세 출력
-i|--install 설치 모드. 기본 값이다.
-u|--upgrade 업그레이드 모드. 이 옵션은 rpm 의 -U 와 같다.
-F|--freshen 설치되어 있는 패키지만 업데이트 한다. 이 옵션은 rpm 의 -F 와 같다
-f|--force 강제 설치 옵션으로 -u 또는 -F 옵션과 같이 사용한다.
이 옵션은 rpm 의 --force 옵션과 같다
-n|--noansi 안시 출력 사용 안함
-h|--help 도움말 (현재 메세지).
[oops@main dir]$
pkgadd 를 사용할 경우 2.0.1 버전 부터는 pkgadd php* 과 같이 astrik (*) 를 사용할 수
있습니다. 이 표현을 사용 할 경우 주의할 점은, php* 표현은 php 로 시작하는 모든 패키
지를 의미할 수도 있지만, 만약 명령을 실행하는 current directory 에 php* 으로 시작하
는 rpm 파일이 존재할 경우, 쉘 확장에 의하여 php 로 시작하는 모든 패키지의 의미가 아
닌 현재 디렉토리의 php 로 시작하는 모든 패키지가 되는 것을 주의해야 합니다.
2. 패키지 설치
pkgadd 는 pkgsysupdate 가 관리하지 않는 third party 패키지 즉, Packages System 에서
제공하는 패키지를 설치하는 명령입니다.
아래의 예제는 nfs-utils 에 의존성이 걸린 portmap 을 같이 설치해 주는 과정입니다. 주
의할 것은 pkgadd가 버전 의존성을 체크하지 않기 때문에, 간혹 문제가 발생할 소지가 있
습니다. 이는 oops.org 의 QnA 게시판으로 문의를 주십시오.
-v 옵션을 주면 좀 더 자세한 사항을 보실 수 있습니다.
Hanterm - pkgadd
[oops@main dir]$ pkgadd nfs-utils
nfs-utils :
==> 의존성 패키지 portmap 성공
==> nfs-utils Install 성공
[oops@main dir]$
3. 버전을 지정하여 패키지 설치
pkginfo -l 패키지 명령을 수행하면 해당 패키지의 Packages System에서 제공 가능한 버
전 형식을 보여줍니다. 자세한 것은
http://annyung.oops.org/?m=pkgadm&p=pkginfo#4
을 참조 하십시오. 버전 정보가 없이 설치를 하면, 현재의 current (안정) 버전이 설치
가 됩니다. current 버전에 대한 정보는 위의 pkginfo 링크에서 확인하실 수 있습니다.
-v 옵션을 주면 상세한 내용을 확인할 수 있습니다.
Hanterm - pkgadd php-5:4.3.8-1-i686
[oops@main dir]$ pkginfo -l php
PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
버전정보 : 5:4.3.8-1-i686
6:4.3.9-1-i686 *
[oops@main dir]$
[oops@main dir]$ pkgadd php-5:4.3.8-1-i686
php : Install 성공
[oops@main dir]$
[oops@main dir]$ pkginfo php
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [업데이트]
[oops@main dir]$
4. 패키지 업데이트
패키지 업데이트는 패키지 설치에 -u 옵션만 더해 주는 방식과 같습니다. 실제로 업데이
트가 아닌 인스톨에도 -u 를 사용해도 무방하므로, 왠만하면 설치시에도 -u 옵션을 주는
것을 권장합니다. 만약 반드시 업데이트만 하고 싶다면 다음 섹션을 참고합니다.
만약 설치 되어 있는 버전을 재설치 하거나, 또는 하위 버전으로 다운그레이드를 하고싶
다면, 버전 정보를 명기하고 -f 옵션을 주면 됩니다.
Hanterm - pkgadd -u php
[oops@main dir]$ pkginfo -l php
PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
버전정보 : 5:4.3.8-1-i686
6:4.3.9-1-i686 *
[oops@main dir]$
[oops@main dir]$ pkgadd php-5:4.3.8-1-i686
php : Install 성공
[oops@main dir]$
[oops@main dir]$ pkginfo php
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [업데이트]
[oops@main dir]$
[oops@main dir]$ pkgadd -u php
php : Update 성공
[oops@main dir]$
[oops@main dir]$ pkginfo php
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어
[oops@main dir]$
[oops@main dir]$ pkgdel php
php : 삭제 성공
[oops@main dir]$
[oops@main dir]$ pkgadd -F php
php : 설치 안됨
[oops@main dir]$
pkgadd -u 를 사용해야 하는 가장 큰 이유는, pkgadd -u 명령은 업데이트가 실행 될때에
이 전의 설정파일을 /var/lib/pkgadm/conf 디렉토리에 백업을 하게 됩니다. 필자가 rpm
을 사용하면서 가장 열받는 경우가 spec 파일에 noreplace 라고 지정을 했음에도 불구하
고 그냥 덮어쓰는 경우가 있었는데, 이를 해결할 수 있기 때문입니다. 만약 설정 파일이
초기화 되었다고 판단이 들면 /var/lib/pkgadm/conf 에서 찾으시면 됩니다.
5. 설치되어 있는 패키지만 업데이트
현재 시스템에 설치가 되어 있는 패키지만 업데이트를 하고 싶다면, -u 옵션 대신 -F 옵
션을 사용하면 됩니다. -F 옵션을 사용하면 아래의 예와 같이 시스템에 설치가 되지 않
은 패키지는 업데이트 하지 않습니다.
Hanterm - pkgadd -F php
[oops@main dir]$ pkginfo -l php
PKGADM v2.0.0 : 패키지 시스템 데이터베이스 뷰어
php : PHP HTML - Apache와 함꼐 사용하는 embedded script 언어 [ 설치안됨 ]
버전정보 : 5:4.3.8-1-i686
6:4.3.9-1-i686 *
[oops@main dir]$
[oops@main dir]$ pkgadd -F php
php : 설치 안됨
[oops@main dir]$
6. 로컬 파일 패키지를 설치 및 업데이트
pkgadd 는 Packages System 의 패키지 뿐 아니라 로컬 파일을 설치할 수도 있습니다. 이
경우에는 pkginfo 에서 개별 설치 데이터 베이스로 따로 관리 및 출력을 합니다. 단, 설
치 가 완료되면 원본 파일은 삭제가 되니 주의 하십시오.
업데이트는 기본 업데이트와 같이 -u 나 -F 옵션을 사용하면 됩니다.
참고할 것은, 일단 개별 설치로 설치된 패키지를 나중에 official 용으로 설치를 하더라
도 이는 계속 개별 패키지로 관리가 됩니다. 이를 official 목록으로 넣고 싶다면 삭제
를 한 후에, 재 설치를 해야 합니다.
Hanterm - pkgadd -u
[oops@main dir]$ pkgadd ./w3m-0.4.1-8,1.i686.rpm
w3m : Install 성
[oops@main dir]$ pkginfo w3m
w3m : A pager with Web browsing abilities. [ 유저 ]
[oops@main dir]$
[oops@main dir]$ pkginfo
-- [ 개별 설치 패키지 목록 ] -----------------------------
w3m : A pager with Web browsing abilities.[ USER ]
-- [ 설치된 패키지 목록 ] -----------------------------
sqlite-devel : sqlite 를 이용한 개발시 필요한 헤더파일과 라이브러리들
sqlite : 향상된 내장 SQL 데이터베이스 엔진 C 라이브러리
dejagnu : 다른 프로그램을 테스트 하기 위한 프론트엔드
pkgconfig : A tool for determining compilation options.
dietlibc : A small libc implementation
[oops@main dir]$
7. 원격 파일 패키지를 설치 및 업데이트
원격 파일 패키지는 로컬 파일 패키지와 동일합니다. 다만 파일 경로를 ftp 또는 http URL
을 사용한다는 점만 차이입니다.
또한, 이는 개별 설치 목록에서 다루어 집니다.
----------------------------------------------------------------------------------------------
이 문서는 안녕 1.1 사용자를 위한 문서이다. 1.0 사용자들은 1.1 로 migration 을 한후
에 참고 하도록 한다. 우측 white paper 메뉴의 migration 문서를 참고하라.
1. firewall tuning
AnNyung 은 기본적으로, 방화벽에 의해서 localhost 에 대한 네트워크와 22 번 포트가
anywhere 로 열려 있으므로, 설치 후 꼭 방화벽 설정을 해 줘야 한다.
/etc/oops-firewall/filter.conf 에서 ALLOWALL 지시자 값에 외부에서 접속할 수 있는
관리자의 IP 를 적어 주도록 한다. 이 지시자는 모든 포트를 제어하는 지시자이기 때
문에 믿을 수 있는 사용자에게만 열어줘야 한다.
나머지 설정은 http://www.oops.org/?&t=lecture&sb=firewall&n=2 를 참고하여 설정을
하든지 또는 설정 파일들의 주석(한글^^)을 참고 하도록 한다.
2. kernel tuning
AnNyung 의 커널은 기본으로 Pentium ll 이상의 CPU 와 1G 이하의 RAM 에 맞추어 빌드
되어 있으며, 기본으로 SMP 를 지원한다. 일단 CPU 와 RAM 에 의해서 다음의 최적화된
커널을 사용할 수가 있다.
kernel-BOOT-2.4.20-13,3.i386.rpm
=> BOOT disk 에서 사용하는 커널. 일반적으로는 사용할 일이 없다.
kernel-2.4.20-13,3.i686.rpm
=> 설치 시, 기본으로 올라가는 커널.
CPU : i686 계열
RAM : 4G 미만
kernel-bigmem-2.4.20-13,3.i686.rpm
=> CPU : i686 계열
RAM : 4G 이상 64G 미만
kernel-PIII-2.4.20-13,3.i686.rpm
=> CPU : Pentium III
RAM : 1G 이상 4G 미만
kernel-PIV-2.4.20-13,3.i686.rpm
=> CPU : Pentium lV
RAM : 1G 이상 4G 미만
커널은 Packages System 의 pkgkernel 명령으로 자신의 시스템에 맞는 커널을 사용하
도록 한다.
http://annyung.oops.org/?m=pkgadm&p=pkgkernel
을 참고 하도록 한다.
3. kernel parameter config
안녕 1.1 은 자동으로 시스템 리소스를 파악하여 커널 파라미터 값을 조정을 한다. 만
약 특별한 값을 지정하고 싶다면 /etc/sysctl.conf에 적용을 하면 된다. 이 파일의 주
석을 잘 읽어보고 안녕이 자동으로 변경하는 파라미터에 대해서는 다른 대책을 강구해
야 한다. :-)
sysctl.conf 에 대해서는 http://www.oops.org/?t=lecture&sb=kernel&n=3 문서를 참고
하도록 한다. 만약 이에 대해서 제대로 모르는 사람은 안녕이 셋팅하는 기본값을 사용
해도 상당한 퍼포먼스를 가질 수 있을 것이다.
4. fstab tuning
이 섹션은 안녕 1.0 에서 1.1 로 업데이트를 한 유저의 경우에만 해당한다. 1.1 을 직
접 설치한 유저들은 인스톨러에서 이 부분이 픽스 되어 있다.
fstab 에서는 access 가 많은 파티션에 대해서 access time 을 기록 하지 않도록 하여
HDD 의 퍼포먼스를 향상 시키도록 한다. 주의할 것은 / 가 포함된 파티션은 만지지 않
는 것이 좋다.
보통 /home 이나 /var 의 경우에는 access 가 많으므로 access time 을 기록하지 않도
록 한다.
예제)
변경전:
/dev/sda4 /home ext3 defaults 1 2
변경후:
/dev/sda4 /home ext3 defaults,noatime 1 2
또한, AnNyung 의 경우에는 devfs 의 도입으로 mount 나 df 를 했을 경우 파티션의 정
보가 다음과 같이 나오게 된다.
[root@work RPMS]# mount
scsi/host0/bus0/target0/lun0/part2 on / type ext3 (rw)
none on /proc type proc (rw)
devfs on /dev type devfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
scsi/host0/bus0/target0/lun0/part4 on /home type ext3 (rw)
none on /dev/shm type tmpfs (rw)
scsi/host0/bus0/target0/lun0/part3 on /var type ext3 (rw)
lun0 은 첫번째 HDD 즉, sda 나 had 를 의미하며, part2 는 sad2 나 hda2 를 의미한다.
이를 우리가 보던 형식으로 보기 위해서는, fatab 에서 위의 부분을 우리가 보기 좋은
식으로 수정을 해 준 후에, 리부팅을 하면 된다. (fstab 이 LABEL 로 되어있을 경우는
/etc/mtab 을 참고하여 LABEL 을 '변경 후' 와 같이 수정을 한다.
변경전:
[root@work RPMS]# cat /etc/fstab
scsi/host0/bus0/target0/lun0/part2 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
scsi/host0/bus0/target0/lun0/part4 /home ext3 defaults,noatime 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
scsi/host0/bus0/target0/lun0/part3 /var ext3 defaults,noatime 1 2
/dev/sda1 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
변경후:
[root@work RPMS]# cat /etc/fstab
/dev/sda2 / ext3 defaults 1 1
none /dev/pts devpts gid=5,mode=620 0 0
/dev/sda4 /home ext3 defaults,noatime 1 2
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/sda3 /var ext3 defaults,noatime 1 2
/dev/sda1 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
----------------------------------------------------------------------------------------------
안녕에서 Daemon 들은 기본으로 설치 되지 않습니다. 안녕은 기본적인 시스템 유지관리
와 사용하지 않는 데몬이 떠 있어 보안에 취약한 것을 방지하기 위해, Package System
으로 제공을 합니다.
Packages System 에 대해서는 우측 메뉴의 Packages System 문서를 참고 하십시오.
먼저 A.P.M (apache, php, mysql) 을 Packages System 으로 설치를 합니다.
Hanterm - pkginfo -v -l php
[oops@main dir]$ pkgadd -u mysql mysql-client php-mysql
mysql : Update 성공
mysql-client : Update 성공
php-mysql :
==> 의존성 패키지 apache 성공
==> 의존성 패키지 php 성공
==> php-mysql Update 성공
[oops@main dir]$ chmod 775 /var/run
[oops@main dir]$
만약 다른 php extensoin 에 대해서 궁금하면, pkginfo -l -x php 명령으로 확인할 수
있으며, 필요한 extension 은 역시 pkgadd -u 명령으로 설치하면 됩니다.
1. mysql root password 변경하기
mysql daemon 이 떠 있는지 부터 확인을 한다. 떠 있지 않으면 다음의 명령으로 재
시작을 하도록 하나.
[root@home /public_html]# service mysql restart
[root@home /public_html]# mysql mysql
Reading table information for completion of table and column names You can
turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with; or \g.
Your MySQL connection id is 1961 to server version: 3.22.32-log
Type 'help' for help.
mysql> use mysql;
mysql> update user set password = password('루트패스워드')
> where user = 'root';
Query OK, 1 row affected (0.00 sec)
mysql> delete from user where user = '';
Query OK, 1 row affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
다음의 작업을 마쳤다면, 이제 변경된 패스워드로 로그인을 해 봅니다.
[root@home /public_html]# mysql -u root -p mysql
Password: 루트패스워드
mysql>
과 같이 진행이 된다면 변경이 잘 된 것입니다. 이제 mysql log 관리를 위하여 변경
한 root 패스워드를 /etc/mysql/my.cnf 의 가장 상단에 주석처리되어 있는
#password = ROOTPASSWORD
부분을
password = 루트패스워드
로 변경을 하고 저장을 합니다. 그리고, my.conf 는 mysql 의 root 암호를 가지고 있
기 때문에 꼭, 파일 퍼미션을 600 으로 맞추어 놓아야 합니다.
2. php 설정
php 를 사용 가능하게 하기 위해서는 /etc/httpd/conf/module.d/php.conf 에서
#LoadModule php5_module modules/libphp5.so
위의 라인을 찾아서 주석을 제거하고,
service httpd restart
명령으로 apache 를 재 구동하는 것으로 해결이 됩니다.
만약 .html 이나 .htm 에서 php 를 사용할 수 있기를 원하신 다면 php.conf 에서
AddType application/x-httpd-php .php .php3 .phtml .ph .ins
라인을 찾아서 .html 과 .htm 등 원하시는 확장자를 등록하면 됩니다. 단, 왠만하면
.html 이나 .htm 의 경우에는 쓸데없이 php 를 해석하지 않도록 그냥 정적인 서비스
만 하도록 하시는 것이 서버 관리상 좋습니다.
3. php extension 사용하기
안녕에서 제공하는 php extension 은 shared 형태로 패키징이 됩니다. pkgadd 를 이
용해서 설치를 하면, extension 들은 /usr/lib/php/extensions 에 등록이 되며 관련
설정 파일들은 /etc/php.d/apache 에 설치가 됩니다. php 4.4.2 와 5.1.2 이전 버전
의 경우에는 php.ini 에서 등록을 해서 사용을 하게 되어 있으나 4.4.2 와 5.1.2 버
전부터는 자동으로 설정이 되게 되어 있습니다. (즉, 따로 할 것이 없어졌다는 얘기
입니다.)
제공하는 php extension 은 pkginfo -l -x php 명령으로 확인할 수 있으며 pkgadd 명
령으로 설치를 하시면 됩니다.
4. Zend Optimizer 설정
안녕 리눅스에서는 getZendOptimizer 라는 유틸리티를 제공합니다. getZendOptimizer
는 php-binary 패키지에 포함이 되어 있습니다. php-binary 패키지는 default 패키지
이므로 pkgsysupdate 에서 관리되며, 이 php-binary 버전에 따라 맞는 ZendOptimizer
를 설치하게 됩니다. 아래처럼 -l 옵션을 주면
Hanterm - getZendOptimizer -l
[oops@main dir]$ getZendOptimizer -l
ZendOptimizer v2.0.1
------------------------------------------------------------
Copyright ⓒ AnNyung LInux
ZendOptimizer51-2.6.2
[oops@main dir]$
설치 가능한 ZendOptimizer 의 리스트가 나오며 -l 옵션을 빼고 버전을 적어 주면 자
동으로 설치를 하게 됩니다.
Hanterm - getZendOptimizer -l
[oops@main dir]$ getZendOptimizer 2.6.2
ZendOptimizer v2.0.1
------------------------------------------------------------
Copyright ⓒ AnNyung LInux
SERVER : mirror.oops.org
REMOTE PATH : /pub/Linux/PHP/zo
LOCAL PATH : /var/lib/php/tmp/ZendOptimizer51-20060223212126
CONNECT : Success
LOGIN : anonymous/zendO@zend.com
2.6.2 Completed
[oops@main dir]$
위와 같이 설치를 하시고, apache 를 재시작 하면 반영이 됩니다.
----------------------------------------------------------------------------------------------
DNS For Multibyte Charset 이 문서는 안녕에서 다국어 도메인을 사용하기 위한 문서 이다. 이 문서대로 사용
을 하기 위해서는 안녕에서 제공하는 bind 9.2.3-4,8 버전 부터이니, 버전을 확인
하고 버전이 낮으면, 업데이트를 하기 바란다.
간단하게 autoupdates 로 할 수가 있으며, 직접 rpm 명령으로 업데이트를 하기 위
해서는 --nodeps 옵션을 주고하기 바란다. 이는 9.2.2 까지는 bind-utils 에 라이
브러리들이 포함이 되어 있었으나, 9.2.3 부터는 bind-utils 에 있는 유틸리티들
을 정적으로 컴파일 하였기 때문에 bind 패키지에 포함이 되었기 때문이다.
작성: 김정균
안녕의 bind 9.2.3-4,8 부터는 multibyte 도메인을 지원하도록 패치가 되어 있다.
기존의 패치들이 domain 관련 utility 들만 패치를 하는 것과는 달리, 안녕에서는
named.conf 와 zone 파일에서도 다국어 도메인을 지원하도록 패치가 되어 있다.
이 패치가 적용이 되므로서, nslookup, dig, host 등에서 punycode 로의 변환 없
이 바로 질의를 할 수가 있다. 또한, 설정파일 역시, punycode 로 변환하는 과정
이 필요없이 named.conf 와 zone file 에 다국어를 직접 입력을 할 수 있다.
이 패치는 현재 한국어와 일본어를 제공하며, 기본값은 EUC-KR 이다.
또한, (char) str & 0x80 으로 체크되는 언어는 모두 지원이 되며, 로컬 도메인의
경우 server.c 패치의 set_idn_charset 함수에 적절히 등록을 해 주면 된다.
일본어의 경우 EUC-JP 는 지원이 되나, SJIS 는 지원되지 않는다. 이는 체크 방식
이 EUC-JP 와는 틀리고 (EUC-JP 는 str & 0x80 로 체크가 가능하나, SJIS 는 안된
다.) 본인이 테스트를 할 만한 환경이 되지를 못해서 이다.
* named.conf 설정
named.conf 에서 도메인 설정 시에, origin 은 변환이 되며, 파일 이름은 변환
이 되지 않는다.
zone "한글.com" IN {
type master;
file "한글.com.zone";
allow-update { none; };
};
의 예에서, origin 한글.com 은 변환이 되며, file 에 지정된 한글.com.zone 은
변환이 되지 않는다.
기본 charset 을 사용하지 않고 다른 charset 을 사용하고 싶다면, 다음과 같이
설정한다.
zone "CH+EUC-KR.한글.com" IN {
type master;
file "한글.com.zone";
allow-update { none; };
};
CH+EUC-KR 은 실제 도메인에 반영이 되지 않으며, 단순히 강제로 문자셋을 지정
하기 위함이다. 일본어의 경우
zone "CH+EUC-JP.일본어.com" IN {
type master;
file "일본어.com.zone";
allow-update { none; };
};
와 같이 할 수 있다. 만약, DEFAULT_IDN_CHARSET 을 EUC-JP 로 맞추어 놓는다면
문자셋 설정 없이 사용할 수 있게 되는 것이다.
* zone file 설정
zone file 설정은 조금 주의 해야 한다. 일단 zone file 설정은 LHS 와 RHS 의
표현식으로 이루어진다. 예를 들어
ns IN A 1.1.1.1
의 경우 LHS 는 ns, RHS 는 1.1.1.1 로 생각을 하기바란다.
LHS 의 경우에는 기본적으로 DEFAULT_IDN_CHARSET 에 의하여 변환이 된다. 만약
이를 변경하고 싶을 경우에는 파일 최상단에
$CHARSET EUC-JP
와 같이 설정을 할 수 있다.
RHS 의 경우에는 CNAME 에 $CHARSET 과 다른 idn 을 사용해야 하는 경우도 있기
때문에 zone file 에서 처럼 CH+CHARSTE.이름 의 형식으로 지정을 한다.
* client program 에서의 사용
이 부분은 dig/nslookup/host 등의 사용에 주의할 점이다.
idn patch 는 시스템의 iconv 를 이용하기 때문에 시스템의 언어관련 환경 변수
에 의하여 변환이 이루어진다. 그러므로 한글 도메인을 검색하기 위해서는 환경
변수 들이 한글 환경에 있어야 한다.
만약 환경 변수에 상관없이 강제로 변환을 하고 싶다면
$ CHARSET=EUC-JP nslookup 일본어.com
과 같이 하면 될지도 모르겠다 ^^;
* 아쉬움 ..
일본어는 지원을 하려 했으나, 아마도 일본어는 SHIFT-JIS 를 주로 사용하는 듯
싶다. 하지만 SHIFT-JIS 의 경우 본인이 테스트할 환경이 안되고, 또한, EUC-JP
와는 다른 체크를 해야 하는 관계로, 마무리를 하지 못했다는 점이 아쉽기는 하
다. 어느 정도 어느 부분을 하면 되는지 정도는 이 패치를 통하여 알 수 있을테
니, 수정을 할 수 있는 환경에 있는 사람이 해 주면 될 것 같다. ^^;
----------------------------------------------------------------------------------------------
Sendmail with STARTTLS Document 이 문서는 안녕에서 제공되는 sendmail 에서 STARTTLS 기능을 사용하기 위한 문서이다.
STARTTLS 기능을 사용하기 위해서는 8.13.1 이상 버전이 설치되어 있어야 하니, 설치되
어 있는 버전을 확인하여 이 버전 보다 낮으면, update 를 하도록 한다.
STARTTLS 기능을 이용하면, 메일을 발송할 때 암호화를 하여 발송이 가능하다. 안녕에
설치되어 있는 sendmail 은 기본으로 TLS 설정이 되어 있지 않으며 STARTTLS 를 사용하
기 위해서는 다음의 과정을 거치도록 한다.
이 과정을 수행하기 위해서는 sendmail-cf 패키지가 설치되어 있어야 한다.
1. sendmail.mc 파일 편집
[root@home mail]# cat /etc/mail/sendmail.mc
... 상략 ...
dnl #
dnl # sendmail 의 TLS 기능에 필요한 certificate 에 대한 정보:
dnl # make -c /usr/share/ssl/certs usage
dnl # 도는 포함이 되어 있는 makecert.sh 스크립트를 이용해서 생성한다.
dnl #
dnl define(`CERT_DIR',`/usr/share/ssl/certs/sendmail')
dnl define(`confCACERT_PATH',`CERT_DIR')
dnl define(`confCACERT',`CERT_DIR/cacert.pem')
dnl define(`confSERVER_CERT',`CERT_DIR/cert.pem')
dnl define(`confSERVER_KEY',`CERT_DIR/key.pem')
dnl define(`confCLIENT_CERT',`CERT_DIR/cert.pem')
dnl define(`confCLIENT_KEY',`CERT_DIR/key.pem')
dnl #
... 중략 ...
dnl #
dnl # TLS 설정 :
dnl # 아래의 설정은 TLS 기반의 SSL 암호화로 서버를 운영하기 위한 옵션이다.
dnl # 아래의 라인의 주석을 풀어 주면 465번 포트로 암호화 하여 메일 전송을
dnl # 할 수 있다.
dnl #
dnl # STARTTLS 를 사용하기 위해서는 상단의 TLS key 설정의 주석을 같이 풀어 줘야
dnl # 하며, make_sendmail_cert 명령을 실행하여 cert 파일을 생성해 줘야 한다.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
... 하략 ...
위의 내용은 sendmail.mc 의 내용중 일부이며 붉은색의 글씨체가 TLS 관련 설정이다.
위의 붉은색의 내용 중 앞쪽의 dnl 을 모두 삭제하여 주석상태를 해제를 하고 저장을
한다.
다음, sendmail.cf 를 재작성 하기 전에, 인증서를 먼저 만들도록 한다. 인증서는 안
녕의 sendmail 에서 제공하는 make_sendmail_cert 명령을 이용하도록 한다.
2. 인증서 만들기
[root@home mail]# make_sendmail_cert
3. sendmail.cf 재생성
인증서를 생성하였으면, TLS 를 구동할 수 있도록 새로운 sendmail.cf 를 생성한다.
[root@home mail]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
새로운 sendmail.cf 를 생성한 후, 서버 인증서를 만들 때 주었던 FQDN 을 sendmail.cf
의
#Dj$w.Foo.COM
라인을
DjFQDN
으로 설정한다. Dj 뒤의 FQDN 은 인증서 발급시에 넣었던 FQDN (도메인) 을 적어 주
도록 한다.
4. sendmail 재시작
[root@home mail]# /etc/init.d/sendmail restart
5. 확인
netstat -anpt 명령을 실행하여 0.0.0.0:465 포트가 열려 있는지 확인을 한다.
6. 클라이언트 설정
기본 설정은 거의 동일하면 보내는 서버의 포트 설정만 해 주면 된다.
Outlook Express :
도구 > 계정 설정 > 속성 > 고급 에서 보내는 메일의 포트를 465 로 지정하며, 그
아래에 있는 보안 연결(SSL) 필요 에 체크를 해 주면 된다.
Mozilla Or Thunderbird :
도구 > 계정 설정 > 보내는 서버(SMTP) 에서 보안통신 사용(SSL) 을 SSL로 선택을
한다.
7. 사설 인증서 문제
공인 인증서가 아닌 사설 인증서를 사용함으로서, 접속 시 마다, 인증서 관련된 메
세지가 뜨게 된다. 모질라나 썬더버드에서는 인증서를 저장하면 그 이후 부터는 나
오지 않으며, Outlook 에서는 필자가 사용하지 않으므로, 잘 모르겠다.
8. 기타
위의 설정을 하지 않고, 그냥 25번 포트로도 메일을 전송하는데 문제가 없다.
----------------------------------------------------------------------------------------------
'Infrastructure' 카테고리의 다른 글
안녕리눅스를 설치하고 가장 먼저 할 일은 무엇일까? (0) | 2008.12.24 |
---|---|
AnNyung LInux 1.3 CD-ROM 설치 문서 (0) | 2008.12.23 |
URLScan (0) | 2008.11.26 |
웹방화벽(WebKnight)의 부가적인 활용 (0) | 2008.11.14 |
공개 웹방화벽(WebKnight) 기술문서 정리 (0) | 2008.11.14 |