서론

최근 페도라코어10 리눅스 시스템에 apache+ajp+tomcat 를 셋팅할 일이 생겨서 삽질끝에 작업을 완료하였다. 그래서 이번에 내 gentoo 리눅스 서버에도 미뤄두었던 tomcat 연동을 하기로 맘을 먹었다.

 

본론

1. apache 업그레이드 하기

mod_proxy_ajp 는 apache 2.2 버젼에서 추가된 모듈이기 때문에 그 이하의 버젼이라면 업그레이드 해야한다. gentoo 에서 아파치 업그레이드 하는방법은 아래 사이트를 참조하기 바란다. 여기서 중요한건 업그레이드 중에 make.conf 설정에서 APACHE2_MODULES 셋팅에 proxy_ajp 를 추가하고 나머지를 알맞게 변경해야 한다는 것이다.

http://www.gentoo.org/proj/en/apache/doc/upgrading.xml

2. 가상호스트 설정하기

아파치와 연동한 이유는 아파치의 다른 기능들을 그대로 쓰면서 톰켓도 돌아가게 하기 위해서 이다. 그래서 아파치의 가상호스트 설정으로 특정 서브도메인을 지정해서 해당 가상호스트로 들어오는 모든 요청은 톰켓으로 돌리도록 만들겠다. 먼저 아파치 가상호스트 설정에 아래와같이 추가해서 apps.cranix.net 으로 들어오는 모든 요청을 톰켓으로 돌리도록 한다.

<VirtualHost apps.cranix.net:80>
        ServerName apps.cranix.net
        ServerAdmin cranix@cranix.net
        ErrorLog "/home/users/admins/cranix/logs/apps_error_log"
        RewriteEngine On
        RewriteRule (.*) ajp://localhost:8009$1 [P]
</VirtualHost>

가상호스트 설정은 아파치에만 있는것이 아니다 톰켓 역시 하나의 서버이고 가상호스트 설정을 가지고 있다. 위에서 설정한 설정대로 아파치에서 먼저 요청을 받아서 톰켓으로 넘기게 되면 톰켓 역시 apps.cranix.net  이라는 도메인으로 받게 됨으로 가상호스트 설정을 해 주어야 한다. 톰켓 설정은 server.xml 파일을 열어서 아래 부분을 추가한다.

<Host name="apps.cranix.net" appBase="/home/users/admins/cranix/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="/home/users/admins/cranix/public_html" privileged="true"/>
</Host>

그리고 톰켓의 기본 http 포트인 8080 번은 쓰지 않을것이기 때문에 해당 Connector 태그는 주석을 걸어준다.

이제 /home/users/admins/cranix/webapps 디렉토리에 톰켓 어플리케이션을 올리게되면 http://apps.cranix.net/[어플리케이션명] 형태로 접근이 가능하게 된다.

3. 보안관련 셋팅하기

톰켓 혼자서 실행시키면 알아서 /WEB-INF 디렉토리나 /META-INF 디렉토리의 접근을 금지했지만 apache 와 같이 실행하면 설정을 해 주어야 한다. apache 의 설정파일에 아래 내용을 추가한다.

<LocationMatch “/WEB-INF”>

deny from all

</LocationMatch>

<LocationMatch “/META-INF”>

deny from all

</LocationMatch>

 

결론

서버작업은 언제나 삽질의 연속이다. 이 작업도 써놓은것은 얼마 안되지만 이 결과를 얻기 위해서 수많은 삽질을 했다. 그래도 역시나 깔끔해진 서버를 보면 뿌듯하긴 하다.

신고
by cranix 2009.08.07 15:47

서버 셋팅하는 과정중 최고의 삽질과정이었다.

한 일주일은 걸린거같다.

먼저 설치하기전에 메일서버가 동작하는 과정을 알아보자.

동작하는 과정을 보려면 먼저 전문용어를 알아보자

MUA --> 사용자 메일클라이언트 (아웃룩,...)
MTA --> 메일 전송 프로그램(sendmail,qmail,...)
MDA --> 로컬메일 분류 프로그램(procmail,vpopmail,...)

메일의 흐름은 아래와 같다.

1. MUA(보내는사람) --> 2. MTA(보내는서버) --> 3 .MTA(받는서버) --> 4. MDA(받는서버) --> 5. MUA(받는사람)

이번에 설정한것은 뒷 세단계이다.

1. 기본 MTA 삭제하기
MTA 는 중복될수 없다.
나는 qmail 을 쓸꺼기때문에 기존에 설치되어있던 sendmail 을 삭제해 주었다.

# emerge -C sendmail

만약 자신의 서버에 설치되어있는 MTA 를 모르겠으면 /var/db/pkg/mail-mta 를 리스트로 보면 나온다.

2. qmail 설치하기&셋팅
- qmail 은 아래와같이 설치한다.

# emerge mail-mta/netqmail

- servercert.cnf 설정하기

# vi /var/qmail/control/servercert.cnf

C = KO
ST = SE
L = Seoul
O = Cranix System
CN = cranix.net
emailAddress = cranix@cranix.net

- qmail config 파일을 emerge 하기

# emerge --config netqmail

- qmail alias 설정

# cd /var/qmail/alias
# echo cranix > .qmail-root
# echo cranix > .qmail-postmaster
# echo cranix > .qmail-mailer-daemon



- 아래 명령어로 보내기(qmail-send), 받기(qmail-smtp) 서버를 등록하고 실행한다.

# ln -s /var/qmail/supervise/qmail-send /service/

# ln -s /var/qmail/supervise/qmail-smtp /service/

# /etc/init.d/svscan start

# rc-update add svscan default

- 떳는지 확인하려면 아래  명령어로 smtp 포트가 떠있는지 확인해보면 된다.
# nmap [domain]


3. vpopmail 설정하기
: vpopmail 은 데몬형태로 떠있는게 없다.
  그냥 qmail 이 실행될때마다 불러쓴다.

- 설치
# emerge vpopmail

- qmail-smtp 설정
# cd /var/qmail/control

# vi qmail-smtp

--> QMAIL_SMTP_CHECKPASSWORD="/var/vpopmail/bin/vchkpw" (주석해제)

- mysql 설정
# mysql -u root -p

> create database vpopmail;

> use mysql;

> grant select, insert, update, delete, create, drop on vpopmail.* to 'vpopmail'@localhost identified by 'vpoppass'
> flush privileges;

- vpopmail.conf 설정
# cd /etc

# vi vpopmail.conf

--> localhost|0|vpopmail|vpoppass|vpopmail 와 같이 read,write 비밀번호 설정


- 도메인추가 & 사용자추가
  사용자가 추가되면 ~vpopmail/domains/[domain]/[user] 디렉토리에 메일이 싸인다.
# vadddomain [domain]

# vadduser [user]@[domain]


- qmail 재시작
# /etc/init.d/svscan restart


4. courier-imap 설치
- 설치
# emerge courier-imap


- authdaemonrc 설정
# cd /etc/courier/authlib

# vi authdaemonrc

--> authmodulelist="authvchkpw" 설정

- cnf 파일 설정
# vi /etc/courier-imap/pop3d.cnf
C = KO
ST = SE
L = Seoul
O = Cranix System
CN = cranix.net
emailAddress = cranix@cranix.net

# vi /etc/courier-imap/imapd.cnf
C = KO
ST = SE
L = Seoul
O = Cranix System
CN = cranix.net
emailAddress = cranix@cranix.net

# mkpop3dcert
# mkimapdcert


- pop3d 실행및 등록
# /etc/init.d/courier-pop3d start
# /etc/init.d/courier-pop3d-ssl start
# /etc/init.d/courier-imapd start
# /etc/init.d/courier-imapd-ssl start
# rc-update add courier-pop3d default
# rc-update add courier-imapd default
# rc-update add courier-pop3d-ssl default
# rc-update add courier-imapd-ssl default


5. 아웃룩 설정
아웃룩에서 ID 는 도메인까지 추가해서 입력해야 한다.
예를들어 id 가 cranix 이고 도메인이 cranix.net 이면
cranix@cranix.net 이 된다.
또한 고급설정에 smtp 로그인할때 비밀번호 체크하는 옵션을 설정하고 해야한다.
신고
by cranix 2008.03.12 01:28
1. 루트권한 유저 추가하기
# useradd -g root -d /home/admins/ftproot -m -c 'FTP Administrator' ftproot

2. 일반 유저 추가하기
# useradd -g users -d /home/users/cranix -m -c 'cranix user' cranix

3. 유저 디렉토리까지 삭제하기
# userdel -r cranix
신고

'알짜정보 > Linux server' 카테고리의 다른 글

lame server resolving  (24) 2006.12.31
웹 사용자 추가할때 확인해야할 사항  (49) 2006.12.27
유저 추가하기  (21) 2006.12.24
gentoo 에서 quota 셋팅하기  (27) 2006.12.24
iptables  (21) 2006.12.22
ubuntu linux root 계정 비밀번호 바꾸기 or 지정하기  (27) 2006.12.20
by cranix 2006.12.24 15:01

1. 커널에 Quota support 옵션 추가

# genkernel --menuconfig all

--> File systems - [*]Quota support  체크

2. quota 설치
# emerge quota

3. /etc/fstab 설정
# vi /etc/fstab

--> 원하는 파티션에 usrquota or grpquota 를 추가한다

4. quota.user, quota.group 만들기
# touch /quota.user   --> fstab 에서 파티션이 / 일경우

# touch /quota.group

# chmod 600 quota.*  --> 소유권한은 루트만 읽고 쓸수있도록한다.

5. quota 파일 최신으로 업데이트하기 (사용자가 추가되면 다시 해줘야한다.)
# quotacheck -mf /  --> 파티션루트가 / 일때 ( 시간이 좀 걸린다. )

6. convertquota
# convertquota -u / --> 파티션루트가 / 일때 (이제부터 계속 / 일것이다.)

7. 마운트 다시하기
# mount -o remount /

# mount --> 해당파티션에 쿼터설정이 제대로 들어갔는지 확인

8. 유저별 quota 설정하기
  - soft 경고하는거고 hard 는 더이상 못쓰게 하는거다.
# edquota cranix

--> 용량은 block(kbyte) 단위로 쓰면된다.

--> 쿼터를 수정하고 따로 quota 를 재시작해줄필요 없이 바로 적용된다.

9. quota 확인하기
# repquota -a --> 전체 quota 설정확인하기

# quota --> 자신의 quota 설정확인하기

신고
by cranix 2006.12.24 14:43
-> Networking                                                           
  │       -> Networking support (NET [=y])                              
  │         -> Networking options                                               
  │           -> Network packet filtering (replaces ipchains) (NETFILTER [=y])   
  │             -> Core Netfilter Configuration               
<*> Netfilter Xtables support (required for ip_tables)                      
  │ │ <*>   "CLASSIFY" target support                          
  │ │ <*>   "MARK" target support                                  
  │ │ <*>   "NFQUEUE" target Support                                   
  │ │ <*>   "NOTRACK" target support                                   
  │ │ <*>   "comment" match support                                    
  │ │ <*>   "conntrack" connection tracking match support              
  │ │ <*>   "DCCP" protocol match support                              
  │ │ <*>   "helper" match support                                     
  │ │ <*>   "length" match support                                          
  │ │ <*>   "limit" match support                                           
  │ │ <*>   "mac" address match support                                     
  │ │ <*>   "mark" match support                                            
  │ │ <*>   "pkttype" packet type match support                             
  │ │ <*>   "realm" match support                                           
  │ │ <*>   "sctp" protocol match support                                   
  │ │ <*>   "state" match support                                           
  │ │ <*>   "string" match support                                          
  │ │ <*>   "tcpmss" match support                   

-> Networking                                                              
  │       -> Networking support (NET [=y])                                
  │         -> Networking options                                                                
          │
  │           -> Network packet filtering (replaces ipchains) (NETFILTER [=y])   
  │             -> IP: Netfilter Configuration
<*> IP tables support (required for filtering/masq/NAT)                   
  │ │ <*>   IP range match support                    
  │ │ <*>   Multiple port match support               
  │ │ <*>   TOS match support                          
  │ │ <*>   recent match support           
  │ │ <*>   ECN match support                              
  │ │ <*>   DSCP match support                             
  │ │ <*>   AH/ESP match support                           
  │ │ <*>   TTL match support                              
  │ │ <*>   Owner match support                            
  │ │ <*>   address type match support                     
  │ │ <*>   hashlimit match support                        
  │ │ <*>   Packet filtering                            
  │ │ <*>     REJECT target support                      
  │ │ <*>   LOG target support                            
  │ │ <*>   ULOG target support (OBSOLETE)                
  │ │ <*>   TCPMSS target support                          
  │ │ <*>   Full NAT                                       
  │ │ <*>     MASQUERADE target support                     
  │ │ <*>     REDIRECT target support                        
  │ │ <*>     NETMAP target support                          
  │ │ <*>     SAME target support                             
  │ │ <*>     Basic SNMP-ALG support (EXPERIMENTAL)            
  │ │ <*>   Packet mangling                                    
  │ │ <*>     TOS target support                                
  │ │ <*>     ECN target support                                
  │ │ <*>     DSCP target support                                
  │ │ <*>     TTL target support                                  
  │ │ <*>   raw table support (required for NOTRACK/TRACE)
신고
by cranix 2006.12.18 17:12
# genkernel --menuconfig all

- 원하는 옵션선택후 reboot 하면 알아서 적용됨.
신고
by cranix 2006.12.18 16:40
| 1 |