FC4 를 깔고 호스팅 서버처럼 꾸미기

나를 엄청 고생한게 만든 FC4

원인은… 바로.. SElinux 이놈 때문에… 보안이 좋긴 좋지만… 어디 확실하게 설정하는곳도

없고… 아 열받는다.

========================================================================

계정별로 트래픽을 제어하는 부분과 하드 할당량을 설정할 수 있습니다.
단, 중간에 오류가 발생하는 부분이 생길 수도 있습니다.

# 페도라 코어 4 최소 설치 후 (이 부분은 따로 설명하지 않습니다.)

# yum 설치를 위해 GPG-KEY 포함
rpm –import /usr/share/rhn/RPM-GPG-KEY-fedora

# yum 업데이트
yum -y update

# 한글 설정
/etc/sysconfig/i18n

LANG=”ko_KR.eucKR”
SUPPORTED=”en_US.iso885915:en_US:en:ko_KR.eucKR:ko_KR:ko”
SYSFONT=”lat0-sun16″
SYSFONTACM=”iso15″

# 매뉴얼 설정 수정
vi /etc/man.config

수정
PAGER          /usr/bin/less -isr

# 디렉토리 색상 수정
vi /etc/DIR_COLORS.xterm

수정
DIR 00;33

# 소스 컴파일을 위한 컴파일러 및 각종 모듈 yum 설치
yum -y install gcc cpp gcc-c++ compat-gcc-32-g77 flex libjpeg-devel libpng-devel libtiff-devel freetype-devel openldap-devel pam-devel sendmail-cf vsftpd telnet-server

# zlib 소스 설치
cd /usr/local/src
wget http://www.zlib.net/zlib-1.2.3.tar.bz2
tar xfj zlib-1.2.3.tar.bz2
cd zlib-1.2.3
make
make install

# freetype 2 설치
글짜를 그릴 때 쓰는 라이브러리 입니다.
wget http://ftp.superuser.co.kr/pub/etc/freetype-2.1.5.tar.gz
tar xvfz freetype-2.1.5.tar.gz
cd freetype-2.1.5
./configure
make
make install

# openssl 소스 설치
cd /usr/local/src
wget http://www.openssl.org/source/openssl-0.9.8a.tar.gz
tar xfz openssl-0.9.8a.tar.gz
cd openssl-0.9.8a
./config
make
make install

# curl 소스 설치
cd /usr/local/src
wget http://curl.haxx.se/download/curl-7.15.1.tar.bz2
tar xfj curl-7.15.1.tar.bz2
cd curl-7.15.1
. /configure –with-ssl
make
make install

# gd lib 설치
cd /usr/local/src
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
tar xfz gd-2.0.33.tar.gz
cd gd-2.0.33
./configure
make
make install

# webalizer 소스 설치
cd /usr/local/src
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
tar xfz webalizer-2.01-10-src.tgz
cd webalizer-2.01-10
./configure –with-language=korean
make
make install

# mysql 4.1.x 설치
cd /usr/local/src
wget http://mysql.byungsoo.net/Downloads/MySQL-4.1/mysql-4.1.16.tar.gz
tar xfz mysql-4.1.16.tar.gz
cd mysql-4.1.16
./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-charset=euckr
make
make install

/usr/local/mysql/bin/mysql_install_db
groupadd mysql
useradd -M -c MySQL_Server -d /usr/local/mysql -g mysql -s /bin/nologin mysql
chown root.mysql -R /usr/local/mysql
chown mysql.mysql -R /usr/local/mysql/data
cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf
echo “/usr/local/mysql/bin/mysqld_safe &” >> /etc/rc.local

# apache 1.3.x 설치
cd /usr/local/src
wget http://ftp.apache-kr.org/httpd/apache_1.3.34.tar.gz
tar xfz apache_1.3.34.tar.gz
cd apache_1.3.34
./configure –prefix=/usr/local/apache –enable-module=so
make
make install
echo “/usr/local/apache/bin/apachectl start” >> /etc/rc.local

#freetype 소스설치후 적용하기위세 freetype 옵션추가
# php 소스 설치
cd /usr/local/src
wget http://kr.php.net/get/php-4.4.2.tar.bz2/from/this/mirror
tar xfj php-4.4.2.tar.bz2
cd php-4.4.2
./configure –with-apxs=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-config-file-path=/usr/local/apache/conf –with-zlib-dir=/usr/local –with-jpeg-dir=/usr/local –with-png-dir=/usr/local –with-tiff-dir=/usr/local –with-freetype-dir=/usr/local –with-ttf –with-gd –with-openssl –with-gettext –with-kerberos –with-swf-dir=/usr/local –with-mod_charset –with-regex=php –with-curl –with-ldap –with-iconv –enable-gd-native-ttf –enable-ftp –enable-sockets –disable-debug  –enable-calendar –enable-sigchild –enable-magic-quotes –enable-bcmath –enable-exif –enable-mbstring –enable-dbase –enable-sysvmsg –enable-sysvsem –enable-sysvshm –enable-yp –with-jpeg-dir –with-freetype-dir
make
make install
cp php.ini-dist /usr/local/apache/conf/php.ini

vi /usr/local/apache/conf/httpd.conf

수정
DirectoryIndex index.html index.htm index.php

수정 (public_html -> www)
UserDir www
#<Directory /home/*/www>

# vi /usr/local/apache/conf/mime.types
두줄 추가 (확장자는 탭키로 띄운다)
application/x-httpd-php        php ph inc
application/x-httpd-php-source  phps

# php 파일 이외에 다른파일명으로 php해석할수있게 설정 ex) htm html
# vi /usr/local/apache/conf/httpd.conf
–  .php 파일 및 html 파일에서 php 코드 실행되게 설정하려면
AddType application/x-httpd-php .php .phtml .php3 .html .htm
AddType application/x-httpd-php-source .phps

# vi /usr/local/apache/conf/php.ini
– 그림 파일 및 프래쉬 파일 로그 남기지 않게 설정
방문자 수가 많아지면 웹로그가 엄청 쌓이게 되고, 그 로그는 크기가  2G를 넘게 되면 웹페이지에 이상현상이 생깁니다. 그렇다고 로그를 안 남길 수는 없는 것이고, 이미지 파일들은 로그남기는 것에서 제외합니다.
CustomLog logs/access_log common 이렇게 되어 있는 것을 ..
SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1
CustomLog /usr/local/apache/logs/access_log common env=!IMAGE
이렇게 바꾸면^^; 쉽게 가능합니다.
– 업로드 용량 제한 풀기
기본적으로 업로드는 2M로 제한되어 있습니다. 만약 2M 이상으로 하면 여러 가지 설정들을 바꾸어 줘야 합니다. 업로드 되는 시간을 길 게 해 주어야 하고, 한번에 잡아먹을 메모리를 크게 해 주어야 합니다.
default_socket_timeout = 600
post_max_size = 20M
memory_limit = 20M
upload_max_filesize = 20M

– 업로드 용량 제한 풀기
# vi /usr/local/apache/conf/php.ini
기본적으로 업로드는 2M로 제한되어 있습니다. 만약 2M 이상으로 하면 여러 가지 설정들을 바꾸어 줘야 합니다. 업로드 되는 시간을 길 게 해 주어야 하고, 한번에 잡아먹을 메모리를 크게 해 주어야 합니다.
default_socket_timeout = 600
post_max_size = 20M
memory_limit = 20M
upload_max_filesize = 20M

– post, get , 쿠키 , 세션등의 변수를 일반변수로 (개인 서버용일경우 보안상 OFF 권장)
예전에 php는 기본적으로 위 변수를 일반변수로 사용할 수 있었습니다. 하지만 보안에 취약 하기 때문에 php 설치시 기본적으로 일반변수로 사용못하게 설정합니다. 이렇게 되면 문제가 예전에 사용하던 짜여졌던 프로그램은 정상적으로 실행되지 않습니다. 보안보다는 호환성이 더 중요하죠^^;
register_globals=On  이렇게 설정합니다.

# ZendOptimizer 설치
cd /usr/local/src
wget ftp://ftp.sir.co.kr/zendoptimizer/ZendOptimizer-2.5.10a-linux-glibc21-i386.tar.gz
tar xfz ZendOptimizer-2.5.10a-linux-glibc21-i386.tar.gz
cd ZendOptimizer-2.5.10a-linux-glibc21-i386
./install.sh

php.ini 경로
/usr/local/apache/conf

# mod_throttle 소스 설치
cd /usr/local/src
wget ftp://ftp.sir.co.kr/etc/mod_throttle-3.1.2.tgz
tar xfz mod_throttle-3.1.2.tgz
cd mod_throttle-3.1.2/
make install

#####################################################
##### 인스톨시 다음과 같은 에러시 다음과 같이 하세요.            ############
##### make: *** [install] Error 127make: *** [install] Error 127 ############
####################################################
—> 해당 디렉토리에 Makefile 에 APXS 경로를 지정해준다.

(참고 인스톨시 에러가 발생한다. 그리고 APM세팅 방식을 DSO방식으로 설치한다.
STATIC방식으로 설치해도 되지만, 그 부분은 다시 설정해야한다.)

* static방식으로 설치 했을 경우 …
configure 시–add-module=$mod_throttle_source_PATH/mod_throttle.c 추가.

* 그럼 DSO방식으로 설치 했을 경우…
* 모듈을 만들어준다.
[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -c mod_throttle.c(모듈을 만들어준다)
gcc -DLINUX=22 -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE
-I/usr/local/apache/include -c mod_throttle.c
gcc -shared -o mod_throttle.so mod_throttle.o

* 에러부분에 추가 해주면 된다.

[root@abcd mod_throttle-3.1.2]# /usr/local/apache/bin/apxs -i -a -n ‘throttle’ mod_throttle.so
[activating module `throttle’ in /usr/local/apache/conf/httpd.conf]
cp mod_throttle.so /usr/local/apache/libexec/mod_throttle.so
chmod 755 /usr/local/apache/libexec/mod_throttle.so
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak
cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf
rm /usr/local/apache/conf/httpd.conf.new

 
##############################################

vi /usr/local/apache/conf/httpd.conf

<IfModule mod_throttle.c>
    ThrottlePolicy Volume 500M 1d

    <Location /throttle-status>
        SetHandler throttle-status
    </Location>

    <Location /throttle-me>
        SetHandler throttle-me
    </Location>

    <Location /~*/throttle-me>
        SetHandler throttle-me
    </Location>
</IfModule>

<VirtualHost 211.xx.xxx.xxx>
    ServerAdmin root@xxx.com
    ServerName xxx.com
    DocumentRoot /home/xxx
    # 하루 500M
    ThrottlePolicy Volume 500M 1d
    # 하루 천번
    ThrottlePolicy Request 1000 1d
</VirtualHost>

# quota 설정

1. fstab 옵션추가 (usrquota,grpquota) :
vi /etc/fstab
/home 에 usrquota 추가
default,usrquota

2. remount (umount , mount) :
mount -o remount /home

3. 데이터베이스 파일생성(quota.user , quota.group) :
touch /home/quota.user
chmod 600 /home/quota.user
quotacheck -av
convertquota -u /home

4. 사용자마다 적용수치 기록 :
edquota 계정
repquota -a

5. 활성화 :
quotaon /home

# qpopper 4.0.8 소스 설치
cd /usr/local/src
wget ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.8.tar.gz
tar xvfz qpopper4.0.8.tar.gz
cd qpopper4.0.8
./configure –enable-specialauth –enable-servermode –enable-shy
make
cp popper/popper /usr/sbin/popper

vi /etc/xinetd.d/pop3

service pop3
{
    disable        = no
    socket_type    = stream
    wait            = no
    user            = root
    server          = /usr/sbin/popper
    log_on_success  += HOST DURATION
    log_on_failure  += HOST
}

# /etc/rc.d/init.d/xinetd restart

# sendmail 수정 및 실행
vi /etc/mail/sendmail.mc

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

# 계정당 용량 설정
vi  /etc/sendmail.cf
Mlocal,        P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
                M=20495360, <– 이 부분만 추가 :  byte 단위 (예:20메가)
                T=DNS/RFC822/X-Unix,
                A=procmail -t -Y -a $h -d $u

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
#/etc/rc.d/init.d/sendmail restart
#/etc/rc.d/init.d/saslauthd restart

# 기본 서비스

ntsysv 실행

auditd
crond
iptables
kudzu
named
network
pop3
saslauthd (보내는 메일서버 패스워드 인증?)
sendmail
sshd
syslog
telnet
vsftpd
xinetd

# 그룹사용자 추가
groupadd webhost

# path 추가

vi /etc/profile

pathmunge /usr/X11R6/bin after
pathmunge /usr/local/mysql/bin after
pathmunge /usr/local/apache/bin after

# vsftpd 설정 변경

vi /etc/vsftpd/vsftpd.conf

주석제거
xferlog_file=/var/log/vsftpd.log

# 재시작

“FC4 를 깔고 호스팅 서버처럼 꾸미기”에 대한 한개의 댓글

타이션에 답글 남기기 답글 취소하기