2012년 5월 19일 토요일

서버 설치 및 설정

### 파티션을 나눌 때는 usr을 고려한다.
--->만약 mysql 의 데이터를 usr에 두려면 그만큼 넉넉하게 잡는다.
usr에 두지 않고 다른 곳에 둘경우에는 그곳의 파티션을 넉넉히 준다.
### 서버 설치시 소스로 컴파일 할것이나 필요없는 서비스는 설치하지 않는다.

### 리눅스 설치후 확인 및 설정
1. 서버의 호스트 네임과 그밖의 몇가지를 확인한다.
vi /etc/sysconfig/network
(hostname과 gateway, networking을 제외한 나머지는 없어도 됨)
--------------------------------------------------------------------
NETWORKING=yes
FORWARD_IPV4=false
HOSTNAME=ns2.abc.net
DOMAINNAME=abc.net
GATEWAY=218.xxx.xxx.65
GATEWAYDEV=eth0
--------------------------------------------------------------------

vi /etc/sysconfig/network-scripts/ifcfg-eth0
--------------------------------------------------------------------
DEVICE=eth0
BOOTPROTO=static
BROADCAST=218.xxx.xxx.127
IPADDR=218.xxx.xxx.99
NETMASK=255.255.255.192
NETWORK=218.xxx.xxx.64
ONBOOT=yes
--------------------------------------------------------------------

vi /etc/hosts
--------------------------------------------------------------------
127.0.0.1 localhost localhost.localdomain
218.xxx.xxx.99 ns2.abc.net ns2
--------------------------------------------------------------------

시스템을 재부팅후 hostname를 쳐본다.
-->ifconfig, netstat, route 등의 명령어로 네트워크 설정된 사항들을 확인한다
-->만약 맞지 않거나 잘못 설정되어 있다면 setup으로 다시 설정하고 확인한다.

2. 서버의 네트웍 설정을 확인한다.
route 또는 ifconfig등으로 바르게 설정되었는지 확인한다.
-->맞지 않을경우 vi /etc/resolv.conf
--------------------------------------------------------------------
domain abc.net
search abc.net
nameserver 218.xxx.xxx.99
--------------------------------------------------------------------
-->netconfig로 설정한다.

3. apm, gd, zend 설치(파일 링크 http://apmusers.com/file.rar)

adduser hosting(임의의 계정을 하나 만든다.)
passwd hosting(패스워드를 정한다.)

#mysql 설치
cd /home/hosting
tar -zxvf mysql-3.23.49.tar.gz
cd mysql-3.23.49
./configure --prefix=/usr/local/mysql --localstatedir=/home/data --with-charset=euc_kr
<--data 디렉토리를 데이터 저장소로 지정
make
make install
-->useradd mysql -M -s /bin/false <--계정만 있고 디렉토리는 생기지 않음
cd /usr/local/mysql
./bin/mysql_install_db
chown -R mysql.mysql /home/data <-- 새로 생성된 data 디렉토리를 소유자와 그룹을 mysql로 변경
./bin/safe_mysqld --language=korean &
-->종료시 ./bin/mysqladmin shutdown
-->루트 패스워드 적용./bin/mysqladmin -u root password '패스워드'
-->./bin/mysql -u root -p mysql 접속한다.
-->계정 추가 테스트 INSERT INTO user VALUES ('localhost','program',password('패스워드'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
-->create database program;
-->INSERT INTO db VALUES ('localhost','program','program','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
-->flush privileges;

#gd

cd /home/hosting
tar xvfz gd-1.8.4.tar.gz
cd gd-1.8.4/
make
cd ..
mv /home/hosting/gd-1.8.4 /usr/local/gd

#apache 1

cd /home/hosting
tar xvfz apache_1.3.23.tar.gz
cd /home/hosting/apache_1.3.23
./configure --prefix=/home/httpd/

#zend

cd /home/hosting
tar xvfz ZendOptimizer-1\[1\].2.0-PHP_4.1.0-Linux_glibc21-i386.tar.gz
mkdir /usr/local/Zend
mv ZendOptimizer-1.2.0-PHP_4.1.0-Linux_glibc21-i386 /usr/local/Zend/lib

#php

cd /home/hosting
tar xvfz php-4.1.2.tar.gz
mv /home/hosting/php-4.1.2 /usr/local/php
cd /usr/local/php
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/lib --exec-prefix=/usr/local/php --with-apache=/home/hosting/apache_1.3.23 --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd --enable-ftp --enable-socket --enable-track-vars --disable-debug
make
make install

#apache 2

cd /home/hosting/apache_1.3.23
./configure --prefix=/home/httpd --activate-module=src/modules/php4/libphp4.a --enable-rule=SHARED_CORE --enable-module=so --enable-shared=max
make
make install
cp /usr/local/php/php.ini-dist /usr/local/lib/php.ini
cd /usr/local/Zend/lib
./install.sh

vi /etc/rc.d/rc.local
-->/home/httpd/bin/apachectl start 삽입
-->/usr/local/mysql/bin/safe_mysqld --language=korean & 삽입

vi /etc/profile
--> PATH="$PATH:/usr/X11R6/bin" 를 PATH="$PATH:/usr/X11R6/bin:/usr/local/mysql/bin" 로 바꿈

vi /home/httpd/conf/httpd.conf
-->318라인 #ServerName apmusers.com 에서 주석을 제거한다.
-->404 라인

DirectoryIndex index.html index.htm index.php <-- 인덱스로 인식될 파일 이름을 적는다.

-->814 라인에 다음을 추가한다.
AddType application/x-httpd-php .php .ph .inc .php3 .html .htm
AddType application/x-httpd-php-source .phps

vi /home/httpd/htdocs/info.php(새파일을 만든다)
--------------------------------------------------------------------
phpinfo();
?>
--------------------------------------------------------------------

cd /etc/skel/(계정 추가시 마다 public_html이 자동으로 생성된다)
mkdir public_html
chmod 701 public_html/

# qpopper 설치(pop3를 사용할 경우 설치한다.
-->메일을 사용하지 않을 경우 설치 안해도 됨)
cd /home/hosting
tar xvzf qpopper4.0.3.tar.gz
cd /home/hosting/qpopper4.0.3
./configure
make
make install
cd /home/hosting/qpopper4.0.3/popper
cp popper /usr/local/bin
cp popauth.c /usr/local/bin
vi /etc/xinetd.d/pop3
--------------------------------------------------------------------
service pop3
{
disable = no
flags = REUSE
socket_type = stream
wait = no
protocol = tcp
user = root
server = /usr/local/bin/popper
server_args = qpopper -s
port = 110
}
--------------------------------------------------------------------
위와 같이 설정 한후
/etc/rc.d/init.d/xinetd restart
telnet localhost 110(테스트)

vi /etc/sendmail.cf
-->
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
부분에서 Addr=127.0.0.1, 부분을 지운다.

만약 root로 보내지는 메일을 받아보고 싶다면 다음과 같이하면 됩니다.

#vi /etc/aliases
-->제일 하단에 보면 다음과 같은 내용이 있습니다.
# Person who should get root's mail
root: webmaster@irehnet.net//자기가 받을 메일 주소를 입력, 원래는 주석이 달려 있으니 주석을 제거해야합니다.
저장한 후에
newaliases
라고 쳐 주면 루트로 오는 메일은 모두 위에서 지정한 곳으로 들어옵니다.

### 시스템에서 섬네일 만드는 것이 가능하게 할려면 다음과 같은 6개의 라이브러리 rpm을 설치한다.
-->먼저 다음의 명령으로 설치되엇느지 확인한다.
rpm -qa | grep libgr
rpm -qa | grep libjpeg

-->설치되어 있지 않다면 다음의 rpm을 설치한다.
rpm -ivh libgr-2.0.13-23.i386.rpm
rpm -ivh libgr-devel-2.0.13-23.i386.rpm
rpm -ivh libgr-progs-2.0.13-23.i386.rpm
rpm -ivh libjpeg6a-6a-5.i386.rpm
rpm -ivh libjpeg-6b-10.i386.rpm
rpm -ivh libjpeg-devel-6b-10.i386.rpm

리부팅 한번 해준다.


### 중요화일 퍼미션 변경및 불필요한 서비스를 내린다.

-->먼저 ps -aux 데몬들을 확인하고 삭제 할 데몬들을 죽인다.(kill -9 )
rpm -e --nodeps portmap-4.0-38(rpm은 자신의 환경에 맞게 제거한다)
rpm -e --nodeps pidentd-3.0.14-1
rpm -e --nodeps gpm-1.19.3-20
rpm -e --nodeps gpm-devel-1.19.3-20
rpm -e --nodeps nfs-utils-0.3.1-13
rpm -e apmd-3.0final-34

-->setup, 시스템 서비스에서 atd, netfs내려줌

-->/etc/passwd 와 /etc/group
ftp,xfs,adm,lp,news,gopher,sync,uucp,operator,games,dip(등 필요없는 계정은 주석을 달거나 삭제한다)

-->퍼미션 변경
chmod 700 /etc/exports
chmod 700 /etc/fstab
chmod 700 /usr/bin/chage
chmod 700 /usr/bin/wall
chmod 755 /usr/bin/man
chmod 700 /usr/bin/chfn
chmod 700 /usr/bin/write
chmod 700 /usr/sbin/usernetctl
chmod 700 /bin/mount
chmod 700 /bin/umount
chmod 700 /sbin/netreport

chmod 750 /bin/ps
chmod 750 /bin/netstat
chmod 750 /bin/dmesg
chmod 750 /bin/df
chmod 750 /usr/bin/who
chmod 750 /usr/bin/finger
chmod 750 /usr/bin/last
chmod 750 /usr/bin/top
chmod 750 /usr/bin/w

chgrp wheel /bin/ps
chgrp wheel /bin/netstat
chgrp wheel /bin/dmesg
chgrp wheel /bin/df
chgrp wheel /usr/bin/w
chgrp wheel /usr/bin/who
chgrp wheel /usr/bin/finger
chgrp wheel /usr/bin/last
chgrp wheel /usr/bin/top

chmod 751 /home
chmod 751 /var/named
chmod 600 /home/httpd/conf/httpd.conf
chmod 110 /usr/bin/top
chmod 550 /bin/ps
chmod 110 /usr/bin/uptime
chmod 110 /usr/sbin/useradd
chmod 110 /usr/sbin/userdel
chmod 110 /usr/bin/last
chmod 110 /usr/bin/find

변경해서는 안되는 중요한 파일에는 chattr을 사용하여 락을 걸어준다.
chattr +i 파일명 --> 루트도 지우거나 수정 할수 없다.
풀어줄때는 반대로
chattr -i 파일명 하면된다.


-->최상위 루트 하의 디렉토리의 퍼미션들은 다음과 같이 한다.
drwxr-x--x 2 root root 2048 Jun 8 14:52 bin
drwxr-x--x 4 root root 1024 Mar 27 04:23 boot
drwxr-x--x 17 root root 77824 Jun 10 09:10 dev
drwxr-x--x 35 root root 3072 Jun 10 10:16 etc
drwxr-x--x 18 root root 4096 Jun 7 16:29 home
drwxr-x--x 2 root root 1024 Jun 22 2001 initrd
drwxr-x--x 7 root root 3072 Mar 27 04:25 lib
drwxr-x--x 2 root root 12288 Mar 27 04:19 lost+found
drwxr-x--x 2 root root 1024 Aug 30 2001 misc
drwxr-x--x 4 root root 1024 Mar 26 19:28 mnt
drwxr-x--x 2 root root 1024 Aug 24 1999 opt
dr-xr-xr-x 54 root root 0 Jun 10 2002 proc
drwxr-x--- 3 root root 1024 Jun 7 18:08 root
drwxr-x--x 2 root root 4096 Jun 7 16:00 sbin
drwxrwxrwx 2 root root 1024 Jun 10 09:10 tmp
drwxr-x--x 18 root root 4096 Mar 27 20:12 usr
drwxr-x--x 17 root root 4096 Mar 27 04:23 var

-->계정 디렉토리의 퍼미션은 701로 준다.(chmod 701 계정명)

### 전자우편만 사용할수 있는 계정추가하기
(-d 위치 지정, -s 쉘지정, ftp도 사용할수 없다)
useradd 계정명 -d /home/mailbox/dbckdghk -s /bin/false
passwd 계정명

### FTP계정만 주고 Shell계정은 주지 않기
/etc/passwd을 연다.
test:x:500:500::/home/test:/bin/bash <-- /bin/bash 부분입니다.
cat /etc/shells (쉘이 등록된 것이 보임)
/bin/bash2
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
이곳에 임의로 하나를 등록 합니다.
예를 들어 /bin/nosh 이라고 아래부분에 추가한후

cd /bin
touch nosh

그리고 /etc/passwd 쪽에서 쉘부분의 세팅만 바꿔 주면 됩니다.
test:x:500:500::/home/test:/bin/nosh <-- 요깁니다.


### ftp 명령어 모음
ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as)
binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi)
bell : 명령어 완료시에 벨소리를 나게한다.(bell)
bye : ftp접속을 종료하고 빠져나간다.(bye)
cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명)
cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup)
chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html)
close : ftp접속을 종료한다. (close)
delete : remote시스템의 파일을 삭제한다.(delete index.old)
dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir)
disconnect : ftp접속을 종료한다.(disconnect)
exit : ftp접속을 종료하고 빠져나간다.(exit)
get : 지정된 파일하나를 가져온다.(get index.html)
hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash)
help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어)
lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명)
ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l)
mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old)
mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz)
mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html)
open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net)
prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt)
put : 하나의 파일을 remote시스템에 올린다.(put index.html)
pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd)
quit : ftp접속을 종료하고 빠져나간다.(quit)
rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus)
rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명)
rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명)
size :remote시스템에 있는 파일의 크기를 byte단위로 표시한다.(size index.html)
status : 현재 연결된 ftp세션모드에 대한 설정을 보여준다.(status)
type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary)

### 메일 버츄얼 호스팅
vi /etc/mail/local-host-names
일단 열어서 등록하고자 하는 도메인명이 없으면 추가한다.


vi /etc/mail/virtusertable
hosting@1004web.co.kr dbckdghk(계정명) 와 같은 형태로 추가, 저장한다.
makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

./etc/rc.d/init.d/sendmail restart
메일 데몬을 재시작한다.

### 메일 포워딩
자기계정에다 vi .forward하고서는 받고자 하는 곳의 메일 주소를 적으면 됩니다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...