일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ubuntu
- TPL
- smarty
- 일괄변경
- i18n
- JavaScript
- 천단위
- jQuery
- 한글 깨짐
- mariadb
- MySQL
- install
- Postfix
- Python
- TextBox
- 확장자
- centos
- yum
- docker
- Selectbox
- 문자열자르기
- replace
- Oracle
- SVN
- random
- php
- RabbitMQ
- Eclipse
- 부모창
- Today
- Total
wilson's story
Sendmail / Qmail 에 kisarbl 추가하기.. 본문
페도라 또는 CentOS 를 설치한후... 초보자들을 위한 기본적인 세팅에 대한 글이다.
세부설명은 자제했다. 이유도 없다. 시간도 없고, 일단 빨리 세팅해서 쓰고자 할때 이용한다.
내용은 버전에 따라 다를 수 있다. 일단은 페도라 6.0 기준으로 했다.
CentOS 도 경로는 거의 같다. 다르다 하더라도 금방 찾을수 있으리라 본다.
컴파일? 공부엔 도움이 되어도 많은 서버관리시에는 별로다. yum 이란 좋은 도구가 있다..
난, 꼭 필요한 경우(추가옵션이 필요하다던지..패키지로 제공하지 않는다던지..)외에는 컴파일하지 않는다.
0. 서버용으로 설치한후 네트웍을 설정한다.
#system-config-network 을 실행하여 기본 정보를 등록한다.
또는
#setup 을 실행하여 네트워크 관리로 들어가도 된다. (수동세팅은 /etc/sysconfig 디렉토리내 화일을 보라.)
#vi /etc/hosts
127.0.0.1 localhost.localhodomain localhost 는 이미 등록되어 있을것이다.
IP 도메인 도메인Alias 이다.
예) 201.110.78.xxx aaaaaa.com myhome
#vi /etc/resolv.conf
search localdomain 은 이미 등록되어 있을것이며
nameserver 168.126.63.1 을 추가하여 준다.
#service network restart //네트워크 재시동
1. 첫번째 해야 할일은 RPM-GPG-KEY 를 등록하는 일이다.
yum 이나 rpm 을 사용할때 키가 등록되어 있지 않으면 에러를 낸다.
근래의 버전은 에러를 내면서 자동으로 등록할지 물어본다. 그러나 예전버전 사용자들은 꼭해줘야 한다.
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
위의 /etc/pki........ 은 버젼에 따라 위치도 파일도 다르다.
#find / -name RPM-GPG-KEY* 해서 검색한후 자신이 설치한 버전에 맞는 걸로 해준다.
2. 필요한 패키지를 설치하자.
서버용으로 설치 했다면 일단 APM / FTP / SENDMAIL / BIND 등은 기본일테지만 혹시 모르니까.
대충 필요한것을 죄다 설치해 본다.
#yum install php php-cli php-common php-gd php-imap php-ldap php-mbstring php-mysql php-odbc php-pdo
#yum install mysql mysql-connector-odbc mysql-server
#yum install httpd gd mc vsftpd cyrus-sasl cyrus-sasl-lib cyrus-sasl-md5 cyrus-sasl-plain
#yum bind bind-chroot bind-libs bind-utils ypbind caching-nameserver
혹시나 sendmail 을 이용할거라면.
#yum install sendmail sendmail-cf dovecot
사용하지 않거나 qmail 을 따로 컴파일하여 설치할거라면 기존에 있는것을 제거하자.
#yum remove sendmail sendmail-cf dovecot
3. 업데이트를 한다.
일단 최신버전으로 변경해놓고 시작하자.
단, 외국서버를 이용함으로 시간이 무쟈게 걸린다. 빠르게 하고 싶다면
다음 포스트 내용대로 yum 설정을 조금 바꾼다. => yum 속도 빠르게 하기
#yum -y update
4. 관리자 계정을 만든다.
대개 서버는 온라인으로 관리를 하게 된다.
그러므로 root 로 바로 접속하도록 하는것은 스크립트등을 이용한 비밀번호 해킹에 노출되기 쉬우므로
관리자 계정을 따로 두고 관리자계정에서 root 로 접근하도록 한다.
useradd 관리자계정ID
passwd 관리자계정ID .. 이후 비밀번호 두번...
5. su (슈퍼유저-root) 를 위에서 새로 만든 관리자 계정에서만 사용있도록 세팅하자.
#vi /etc/pam.d/su
auth required ...........pam_wheel.so ........
버전마다 표현방식은 다르지만 대개 저 형식으로 되어 있는 부분의 주석을 제거해주면 된다.
주의 : auth sufficient .........pam_wheel.so <--- 이 부분을 해제하는게 아니라는것만 주의하자.
#vi /etc/group
wheel:x:10:root 부분을 찾아서
wheel:x:10:root,관리자계정ID 이렇게 변경하자.
6. ssh 에서도 root로 바로 접속할수 없도록 하자.
(요즘은 보안때문에 telnet 은 거의 사용하지 않는다.)
#vi /etc/ssh/sshd_config
PermitRootLogin yes 라고 되어있는 줄을 찾아 주석을 제거하고
PermitRootLogin no 라고 변경하자.
#service sshd restart //sshd 재시동
7. 방화벽 제거
Fedora / CentOS 에서는 처음 설치하는 사람들은 selinux 때문에 골치를 썩는다.
#system-config-securitylevel 을 입력하거나, 동작하지 않으면
#setup 을 입력한후
방화벽(Firewall) 설정을 선택하면 조정할수 있다.
필요하다면 시간을 투자해서 설정해보는것도 좋을듯하다.
이 포스트에서는 일단 제거한다. (뭘 잘못했는지... 동작할때도 있고 안할때도 있었다.)
#vi /etc/selinux/config
SELINUX=...... 부분을
SELINUX=disabled 로 변경해 주자.
8. 아파치 설정 (httpd)
#vi /etc/httpd/conf/httpd.conf
패키지가 좋은 점은 대충 다 설정되어 있다는것이다.
조금만 고쳐주면 된다.
특별히 바꿔줘야 할부분은
1) ServerName XXXXXXX:80 되어 있는 부분을 주석제거하고 자신의 도메인으로 변경해주자.
예) ServerNmae www.aaa.com:80 도메인이 없으면 IP라도 넣어주자.
2) <IfModule mod_userdir.c>
:
:
UserDir Disable 되어 있는 부분을
UserDir 경로명 으로 바꿔주자
예) UserDir public_html 혹은 UserDir www
이 설정은 도메인/~사용자ID 했을때 사용자 홈디렉토리를 지정하는 부분이다.
즉, useradd 로 aaa사용자를 생성하였을때.. /home/aaa/public_html 디렉토리에 홈페이지를 넣어놓으면
http://www.XXXXXX.com/~aaa 하면 나오게 된다.
이때 사용자를 생성하면 public_html 이나 www 디렉토리도 자동으로 만들어 지게 하고 싶으면
/etc/skel/ 디렉토리안에 public_html 이나 www 디렉토리를 만들어 놓으면 된다.
주의할점은 Fedora/CentOS 에서 사용자 계정을 생성한후
/home/사용자계정DIR <- 이 디렉토리에 other의 이동권한을 줘야 한다는것이다.
아니면 아파치의 기본사용자/그룹이 apache 이므로 group 을 apache 로 하고 그룹에 이동권한을 준다.
#chmod go+x /home/사용자계정DIR
3) AddDefaultCharset UTF-8 부분을 찾아서
AddDefaultCharset Off 로 변경해 주자.
기본 웹문서의 Encoding 을 지정하는 부분이다.
서버내 모든 웹페이지가 UTF-8을 사용할 경우에는 UTF-8, EUC-KR 일 경우에는 EUC-KR 을
입력해주면 되지만... 양쪽다 써야 할때, 어떤것을 쓸지 모를때는 Off 로 설정한다.
그리고 웹페이지를 만들때 <head></head> 부분에
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 이나
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"> 식으로
구분하여 주면 된다.
4) 가상호스트 부분
NameVirtualHost *:80 되어 있는 부분을
NameVirtualHost 서버IP:80 으로 바꿔주자.
그리고 제일 하단에
<VirtualHost 서버IP>
ServerAdmin 관리자메일주소 ---> 관리자ID@도메인
DocumentRoot /home/aaa/public_html 또는 www ---> 사용자 디렉토리
ServerName www.도메인주소 ---> 도메인주소
ServerAlias 도메인주소 ---> 기타도메인주소
</VirtualHost>
이렇게 입력하여 준다.
가상호스트를 설정하지 않으면 /var/www/html 디렉토리가 기본 홈디렉토리가 된다.
위의 부분을 변경하여 써도 되지만 가상호스트를 활용하도록 하자.
글은 길지만 사실상 별것 없다.
9. php 설정
#vi /etc/php.ini 한 다음 아래 부분을 찾아서 적당한 값으로 변경한다.
max_execution_time = 30
max_input_time = 60
memory_limit = 10M //php 실행시 메모리한계를 지정한다.
post_max_size = 10M //post 전송시 데이터의 최대크기를 지정한다.
upload_max_filesize = 10M //파일 업로드시 최대크기를 지정한다.
신경쓰기 싫으면 대충 곱하기 10배 해준다.
register_globals = On //Off 가 좋다. 하지만 다른사람이 만든 노가다사이트를 등록할때 난감하다.
error_reporting = E_ALL & ~E_NOTICE //php 오류시 에러에 해당하는 메세지만 보이게 한다.
display_errors = On //위의 설정대로 php 오류를 화면상에 표시해준다.
(완성된 사이트를 서비스하는 곳에서는 Off 해두자.)
#vi /etc/httpd/conf.d/php.conf
제일 아랫쪽에
AddType application/x-httpd-php .php .html .htm .php3 .inc
을 입력한다.
#service httpd restart // 아파치 재시동
10. bind 설정 (네임서버를 운영할 경우에만 세팅한다.)
예전 버전은 named.conf 파일 하나에 모든 설정을 할 수 있으며
최근 버전은 named.caching-nameserver.conf 와 named.rfc1912.zones 으로 나뉘어져 있다.
1) 환경설정
#vi /etc/named.conf -> 예전 버전
#vi /etc/named.caching-nameserver.conf -> 5.0 이후버전
ls 로 확인 해보면 모두 /var/named/chroot/var/etc 경로에 소프트링크 되어있는걸 알수 있다.
예전 버전 은
query-source 부분을 주석처리 해준다.
최신 버전 은 아래에 해당하는 부분 모두 주석처리 해준다.
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
allow-transfer { xxxx.xxx.xxx.xxx; };
allow-query { localhost; };
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
2) zone 화일 지정
#vi /etc/named.conf ->예전버전
#vi /etc/named.rfc1912.zones -> 5.0 이후버전
아래의 내용을 추가한다.
zone "도메인" IN {
type master;
file "존파일명"; // 대개의 경우 도메인.zone 이란 파일명을 지정한다.
allow-update { key "rndckey"; };
};
3) zone 화일 만들기
2)번에서 지정한 존파일을 만든다. 예로서 aaaaa.com.zone 화일이라 하겠다.
#vi /var/named/chroot/var/named/aaaaa.com.zone
들어갈 내용은 다음과 같다.
$TTL 86400
@ IN SOA ns.도메인. admin.도메인. (
2006010101 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400 ; ttl
)
IN NS ns.도메인.
IN MX 10 mail
@ IN A xxx.xxx.xxx.xxx //IP
ns IN A xxx.xxx.xxx.xxx
ftp IN A xxx.xxx.xxx.xxx
mail IN A xxx.xxx.xxx.xxx
www IN A xxx.xxx.xxx.xxx
* IN A xxx.xxx.xxx.xxx
입력시 주의할 점은 도메인 뒤에는 꼭 (.) 이 있어야 한다는것이다.
#service named restart //Bind 재시동
11. FTP 설정
vsftpd 를 사용한다.
#vi /etc/vsftpd/vsftpd.conf
아래 부분을 찾아 똑같이 설정해 주자.
anonymous_enable=NO
xferlog_file=/var/log/vsftpd.log //주석해제
만약 사용자가 자신의 상위디렉토리에는 접근하지 못하고 자신의 디렉토리내만 보게 만들고 싶다면..
chroot_local_user=YES //이 한줄을 넣어준다.
예외의 사용자를 두고 싶다면 아래와 같이 한다.
chroot_list_enable=YES //주석해제
chroot_list_file=/etc/vsftpd/chroot_list //주석해제
#vi /etc/vsftpd/chroot_list //하여 해당하는 사용자의 ID를 한줄에 하나씩 넣어주면된다.
사용자ID#1
사용자ID#2
#service vsftpd restart //FTP 재시동
12. sendmail 설정 (Qmail 을 사용하고자 할때는 쳐다도 보지말자.)
#vi /etc/mail/sendmail.mc
아래의 두줄을 찾아 주석을 해제 하자 (앞의 dnl 제거)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl //Addr 부분을 0.0.0.0 으로 바꾼다.
MASQUERADE_AS(`메일도메인')dnl // 주석제거하고 메일도메인부분을 수정한다.
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
혹시 m4 에서 에러나면 yum install sendmail-cf 해준다음 위 명령을 실행한다.
#vi /etc/mail/local-host-named //메일주소로 사용될 도메인 들을 한줄에 하나씩 써준다.
aaaaa.com
vvvvvv.co.kr
#vi /usr/lib/sasl/Sendmail.conf
위 파일 내에 pwcheck_method: xxxx 가 들어 있으면 고치지않는다.
없다면 pwcheck_method: shadow 라고 입력하고 저장한다.
만약 saslauthd 이라고 적혀 있다면
saslauthd 서비스를 필히 실행시키도록 하자.
#service saslauthd restart
#service sendmail restart //Sendmail 재시동
kisarbl 설정은 아래 포스트를 참고하자.
Sendmail/Qmail 에서 kisarbl 세팅
13. Mysql 설정
#service mysqld restart //처음 실행하면 기본적인 세팅을 한다.
#vi /etc/my.cnf
예전버전의 경우 EUC-KR 을 기본으로 하기 위해 설정을 바꿨지만... 그냥 써도 된다.
궂이 바꾸고자 한다면..
[mysqld] 부분에
default-character-set=euckr //이렇게 두줄을 추가하면된다.
character-set-client-handshake = FALSE
아니면 그냥 php코딩시 DB접속후
mysql_query("set names euckr"); 또는 mysql_query("set names utf8"); 이렇게 넣어주면 된다.
레코드당 많은 양의 데이터를 넣고자 한다면
[mysqld] 부분에
set-variable = max_allowed_packet= 숫자M // 10M 50M 100M......
이거 한줄정도만 넣어주자.
13. 서비스 등록
#ntsysv 혹은
#setup 한뒤 시스템서비스 선택
필요한 서비스는 체크하고 필요하지 않은 서비스는 제외하자.
14. 쿼타 설정 (필요하지 않으면 제외한다.)
#vi /etc/fstab
쿼타 설정이 필요한 파티션 라인에서
ext3 default
되어 있는 부분을
ext3 default,usrquota
로 변경한다.
재부팅 후....
해당 파티션으로 이동하여 (home 파티션을 예로..)
#mv /home
#touch aquota.user
#quotacheck -vagum //첫번째에서는 경고메세지를 볼수 있다.
#quotacheck -vagum
#edquota 사용자ID //해서 조정해준다.
Filesystem blocks soft hard inodes soft hard
/dev/hda3 396236 1000000 1536000 2 0 0
blocks 는 현재 사용자가 쓰고 있는 양을 나타내며 단위는 kb 이다.
첫번째 soft 는 한마디로 경고다... 대략 1주일 동안 그 이하로 내려가지 않으면 강제 삭제된다.
첫번째 hard 는 절대 저 크기를 넘어서 저장할수 없다.
즉, soft ~ hard 용량까지 저장할수 있지만, 사실상 soft 까지만 저장해야 되며, 잠시동안만 hard용량 까지
쓸수 있다. 귀찮으면 soft, hard 크기를 동일하게 하자.
inodes 는 현재 사용자의 소유로 된 파일의 수이다. (별로 사용할 용도가 없더라.)
두번째 soft 는 경고용 파일수 이다. 즉, 파일수로 제한할때 사용한다.
두번째 hard 는 절대 넘어설수 없는 파일의 숫자이다.
15. Qmail
Sendmail 대신 Qmail 을 세팅하고자 할 경우에는 아래 포스트를 참고하자.
Fedora/CentOS 에서 Qmail 설치
이상 - 끝 -