xml화일의 영어 설명부분을 한글로 번역해 놓았다.


<!-- Example Server Configuration File -->
          <!-- Note: 컴포넌트들은 각각의 부모-자식 관계에 따라 중첩(nested) 되었음 -->

          <!-- "Server" 는 전체 JVM 을 나타내는 싱글톤 요소입니다. 이것은 하나 이상의
               "Service" 인스턴스를 갖고 있습니다. 서버는 지정된 포트를 통해 shutdown
               명령을 받습니다.

               Note: "Server" 는 스스로가 "Container" 가 아니기 때문에, "Valves" 또는
               "Loggers" 같은 서브 컴포넌트를 "Server" 와 같은 레벨에서 정의하면 안됩
               니다. -->

          <Server port="8005" shutdown="SHUTDOWN" debug="0">


            <!-- "Service" 는 한 개의 "Container" 를 공유하는 하나 이상의 "Connectors"
                 의 집합체입니다. (이 컨테이너 안에서 웹어플리케이션이 돌아갑니다). 보통
                 은, 이 컨테이너가 "Engine" 입니다만, 요구되지는 않습니다. 

                 Note:  "Service" 는 스스로가 "Container" 가 아니기 때문에, "Valves"
                 또는 "Loggers" 같은 서브 컴포넌트를 "Server" 와 같은 레벨에서 정의하면
                 안됩니다.
             -->

            <!-- Tomcat Stand-Alone Service 로 설정하기 -->
            <Service name="Tomcat-Standalone">

              <!-- "Connector" 는 요청을 받아서, 응답이 반환되는 종점(endpoint)을 나타냅니
                   다. 각 커넥터는 처리를 담당하는 관련된 "Container"(보통 "엔진")로 요청을
                   전달해줍니다.

                   기본값으로, 8080포트에 non-SSL HTTP/1.1 커넥터가 설정되어있습니다.
                   SSL HTTP/1.1 커넥터 역시 사용하려면 아래에 있는 지시를 따라서 하고, 두번
                   째 커넥터 엔트리의 주석표시를 지워주시면 됩니다. SSL 지원은 다음 단계를
                   거쳐야 합니다:
                   * JSSE 1.0.2 또는 이후 버전을 다운받아서 설치하고, JAR 파일들을
                     "$JAVA_HOME/jre/lib/ext" 디렉토리에 복사해 놓습니다.
                   * "$JAVA_HOME/jre/lib/security/java.security" 를 편집하고
                     security.provider.2=com.sun.net.ssl.internal.ssl.Provider 를 추가합
                     니다.
                   * 실행: keytool -genkey -alias tomcat -keyalg RSA
                     패스워드 값"changeit" 으로 실행합니다.

                   기본적으로, DNS lookups 는 웹어플리케이션이 request.getRemoteHost() 를
                   부를 때 동적하도록 되어있습니다. 이것은 성능에 영향을 줄 수 있기 때문에,
                   "enableLookups" 속성을 "false" 로 바꿔주면 이 기능을 사용하지 않을 수
                   있습니다.  DNS lookups 가 사용하지 않게 되면 request.getRemoteHost() 는
                   remote client 의 IP 주소의 String 버전을 반환할 것입니다.
              -->

              <!-- 8080 포트에 non-SSL HTTP/1.1 Connector 설정하기 -->
              <Connector className="org.apache.catalina.connector.http.HttpConnector"
                         port="80" minProcessors="5" maxProcessors="75"
                         enableLookups="true" redirectPort="8443"
                         acceptCount="10" debug="0" connectionTimeout="60000"/>
              <!-- Note : 커넥션 타임아웃을 사용하지 않으려면, connectionTimeout 값을 -1로
                수정해 주세요.-->

              <!-- 8443 포트에 SSL HTTP/1.1 Connector 설정하기 -->
              <!--
              <Connector className="org.apache.catalina.connector.http.HttpConnector"
                         port="8443" minProcessors="5" maxProcessors="75"
                         enableLookups="true"
                     acceptCount="10" debug="0" scheme="https" secure="true">
                <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
                         clientAuth="false" protocol="TLS"/>
              </Connector>
              -->

              <!-- 8081 포트에 Proxied HTTP/1.1 Connector 설정하기 -->
              <!-- 사용법에 대한 자세한 내용은 proxy 문서를 보십시오. -->
              <!--
              <Connector className="org.apache.catalina.connector.http.HttpConnector"
                         port="8081" minProcessors="5" maxProcessors="75"
                         enableLookups="true"
                         acceptCount="10" debug="0" connectionTimeout="60000"
                         proxyPort="80"/>
              -->

              <!-- 8082 포트에 non-SSL HTTP/1.0 Test Connector 설정하기 -->
              <!--
              <Connector className="org.apache.catalina.connector.http10.HttpConnector"
                         port="8082" minProcessors="5" maxProcessors="75"
                         enableLookups="true" redirectPort="8443"
                         acceptCount="10" debug="0"/>
              -->

              <!-- Engine 은 (Catalina 에서) 모든 요청을 처리하는 입력지점을 나타냅니다.
                   Tomcat stand alone 용으로 구현된 Engine 은 요청에 포함된 HTTP 헤더를 분
                   석하고, 적당한 Host (가상 호스트) 로 전달하는 역할을 합니다. -->

              <!-- 컨테이너 구조에서 top level 컨테이너 설정하기 -->
              <Engine name="Standalone" defaultHost="localhost" debug="0">

                <!-- 요청 dumper 밸브는 Tomcat 의 인스턴스의 모든 요청을 받는 동안 들어온
                     요청 헤더와 쿠키, 보내질 응답 헤더와 쿠키에 대해 유용한 디버깅 정보를
                     덤프합니다. 만일 특정한 가상호스트, 또는 특정한 어플리케이션에 들어온
                     요청에만 만 관심을 갖고자 한다면, 이 요소를 해당하는 <Host> 나 <Context>
                     엔트리 아래에 위치시켜주십시오.

                     모든 서블릿 2.3 컨테이너에 유동적인 유사한 동작구조를 위해서, 예제
                     어플리케이션에 있는 "RequestDumperFilter" 필터를 확인하십시오.
                     (소스는 "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters"
                     위치에 있을 것입니다.)

                     기본적으로 Request dumping 기능은 사용하지 않는 것으로 되어있습니다.
                     다음의 요소에서 주석을 빼면 사용할 수 있습니다. -->
                <!--
                <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
                -->

                <!-- 하위수준에서 지정되지 않았다면 사용되는 Global Logger -->
                <Logger className="org.apache.catalina.logger.FileLogger"
                        prefix="catalina_log." suffix=".txt"
                        timestamp="true"/>

                <!-- 이 Realm 이 여기에 있기 때문에, 인스턴스는 전체적으로 공유됩니다. -->

                <Realm className="org.apache.catalina.realm.MemoryRealm" />

                <!-- 데이터베이스에 저장되고 JDBC 를 통해서 접근하는 Realm 을 사용하려면
                     위 Realm 을 다음의 Realm 중 하나와 대치하십시오. -->

                <!--
                <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
                       driverName="org.gjt.mm.mysql.Driver"
                    connectionURL="jdbc:mysql://localhost/authority?user=test;password=test"
                        userTable="users" userNameCol="user_name" userCredCol="user_pass"
                    userRoleTable="user_roles" roleNameCol="role_name" />
                -->

                <!--
                <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
                       driverName="oracle.jdbc.driver.OracleDriver"
                    connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL?user=scott;password=tiger"
                        userTable="users" userNameCol="user_name" userCredCol="user_pass"
                    userRoleTable="user_roles" roleNameCol="role_name" />
                -->

                <!--
                <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
                       driverName="sun.jdbc.odbc.JdbcOdbcDriver"
                    connectionURL="jdbc:odbc:CATALINA"
                        userTable="users" userNameCol="user_name" userCredCol="user_pass"
                    userRoleTable="user_roles" roleNameCol="role_name" />
                -->

                <!-- default virtual host 설정하기 -->
                <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true">

                  <!-- 보통, 사용자는 각각의 웹 어플리케이션에 인증을 해줘야만 합니다.
                       사용자가 security 제한에 걸려있는 보호된 자원 중에서 처음에 걸리는
                       인증을 한번만 통과하고, 이 가상호스트 안의 "모든" 웹어플리케이션에
                       통과된 인증으로 접근하게 하려면 아래 엔트리의 주석을 해제하십시오.
                  -->
                  <!--
                  <Valve className="org.apache.catalina.authenticator.SingleSignOn"
                             debug="0"/>
                  -->

                  <!-- Access log는 이 가상호스트에 접속하는 모든 요청을 처리합니다. 기본값은
                       로그 파일은 $CATALINA_HOME 에 상대적인 "logs" 디렉토리에 생성됩니다.
                       "directory" 속성을 이용해서 원하는 다른 디렉토리로 지정할 수 있습니다.
                       ($CATALINA_HOME 에 대해) 상대적인 디렉토리나 또는 원하는 디렉토리의
                       절대 경로를 써주면 됩니다.
                  -->
                  <Valve className="org.apache.catalina.valves.AccessLogValve"
                           directory="logs"  prefix="localhost_access_log." suffix=".txt"
                           pattern="common"/>

                  <!-- 이 가상 호스트에 관계된 모든 Context 에 의해 공유된 Logger. 기본값은
                       (FileLogger 를 사용할 때), 로그 파일들은 $CATALINA_HOME 에 상대적인
                       "logs" 디렉토리에 생성됩니다. "directory" 속성을 이용해서 원하는 다른
                       디렉토리로 지정할 수 있습니다. ($CATALINA_HOME 에 대해) 상대적인 디렉
                       토리나 또는 원하는 디렉토리의 절대 경로를 써주면 됩니다.
                  -->
                  <Logger className="org.apache.catalina.logger.FileLogger"
                           directory="logs"  prefix="localhost_log." suffix=".txt"
                      timestamp="true"/>

                  <!-- 각각의 웹 어플리케이션에 대한 프로퍼티 설정. 이것은 기본값과는 다른 프로
                       퍼티를 설정하기 윈할 때나, 웹어플리케이션 document 루트 디렉토리가 가상
                       호스트의 appBase 디렉토리와 다른 곳에 있을 경우에만 필요합니다.
                  -->

                  <!-- Tomcat Root Context -->
                  <!--
                    <Context path="" docBase="ROOT" debug="0"/>
                  -->

                  <!-- Tomcat Examples Context -->
                  <Context path="/examples" docBase="examples" debug="0"
                           reloadable="true">
                    <Logger className="org.apache.catalina.logger.FileLogger"
                               prefix="localhost_examples_log." suffix=".txt"
                        timestamp="true"/>
                    <Ejb   name="ejb/EmplRecord" type="Entity"
                           home="com.wombat.empl.EmployeeRecordHome"
                         remote="com.wombat.empl.EmployeeRecord"/>
                    <!-- PersistentManager: 영속적인 세션을 테스트 하기위해서는 아래
                         섹션의 주석을 지워주십시오.
                                  
                         saveOnRestart: true 값일 경우, Catalina 가 shutdown 될 때
                           모든 살아있는 세션들은 다른 세팅과는 상관없이, Store 에
                           저장될 것입니다. startup 할 때 Store 에 있는 모든 세션들
                           은 자동으로 로드됩니다. expiration 이 지난 세션들은 양쪽
                           의 경우에 무시됩니다.
                         maxActiveSessions: 0 이상의 값일 경우, 너무 많은 살아 있는 세
                           션이 있다면 몇몇은 없어져버리는 결과가 있을 수 있습니다.
                           minIdleSwap 은 이것을 제한합니다. -1 은 무한 세션을 허가한
                           다는 뜻입니다. 0 은 사용 후 세션은 거의 모두 없어져 버립니다
                           - 사용자들에게 인지될 정도로 느리게 될 것입니다.
                         minIdleSwap: 세션은 적어도 이기간 동안 idle 상태이어야 합니다.
                           (초 단위로) 없어지기 전에 말이죠.
                         maxActiveSessions. 이것은 사이트가 아주 활발할 때 thrashing 을
                           피하게 합니다. -1 이나 0 은 minimum 이 없다는 뜻입니다 - 세션
                           은 어느때라도 소멸될 수 있습니다.
                         maxIdleSwap: (초 단위로) 세션은 이 기간동안 idle 상태면 소멸됩
                           니다. minIdleSwap 이 보다 높다면, 그것으로 바꿔집니다.
                           이것은 정확하지 않습니다: 주기적으로 확인합니다.
                           -1 은 maxActiveSessions 값으로 인해 소멸되어야 해도, 세션은
                           소멸되지 않음을 의미합니다. 0 이상으로 세팅되면, startup 할 때
                           Store 에 있는 모든 세션은 로드될 것을 보장합니다.
                         maxIdleBackup: (Store 에 저장되었지만, active 메모리에 남아있는)
                           세션은 백업될 것입니다. 이 기간동안 idle 상태고, startup 할 때
                           Store 에 있는 모든 세션들이 로드될 것입니다. -1 로 설정되었다면
                           세션은 백업되지 않을 것이고, 0 은 사용된 뒤에 잠깐 백업된다는
                           것을 의미합니다.

                         Store 에 있는 세션을 지우려면, maxActiveSessions, maxIdleSwap,
                         minIdleBackup 모두를 -1 로, saveOnRestart 는 false로 세팅한 후,
                         Catalina 를 재시동합니다.
                    -->
                    <!--
                    <Manager className="org.apache.catalina.session.PersistentManager"
                        debug="0"
                        saveOnRestart="true"
                        maxActiveSessions="-1"
                        minIdleSwap="-1"
                        maxIdleSwap="-1"
                        maxIdleBackup="-1">
                          <Store className="org.apache.catalina.session.FileStore"/>
                    </Manager>
                    -->
                    <Environment name="maxExemptions" type="java.lang.Integer"
                                value="15"/>
                    <Parameter name="context.param.name" value="context.param.value"
                               override="false"/>
                    <Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
                              type="javax.sql.DataSource"/>
                    <ResourceParams name="jdbc/TestDB">
                      <parameter><name>user</name><value>sa</value></parameter>
                      <parameter><name>password</name><value></value></parameter>
                      <parameter><name>driverClassName</name>
                        <value>org.hsql.jdbcDriver</value></parameter>
                      <parameter><name>driverName</name>
                        <value>jdbc:HypersonicSQL:database</value></parameter>
                    </ResourceParams>
                    <Resource name="mail/Session" auth="Container"
                              type="javax.mail.Session"/>
                    <ResourceParams name="mail/session">
                      <parameter>
                        <name>mail.smtp.host</name>
                        <value>localhost</value>
                      </parameter>
                    </ResourceParams>
                  </Context>

                </Host>

              </Engine>

            </Service>

            <!-- MOD_WEBAPP 커넥터는 apache 1.3 과 서블릿 컨테이너로 Tomcat 4.0 을 연결하는
                 데 쓰입니다. WebApp 모듈 배포판에 포함된 어떻게 만드는지에 대해 설명하는
                 README.txt 파일을 읽어보십시오. (또는 "jakarta-tomcat-connectors/webapp"
                 CVS repository 를 확인해 보십시오.)

                 Apache 쪽에서 설정하려면, 먼저 "httpd.conf" 에 설정되어진 "ServerName" 과
                 "Port" 지시자를 확인해야 합니다. 그리고, "httpd.conf" 파일 아래에 다음과
                 같은 줄을 넣어줍니다:

                   LoadModule webapp_module libexec/mod_webapp.so
                   WebAppConnection warpConnection warp localhost:8008
                   WebAppDeploy examples warpConnection /examples/

                 이 후에 (필요하다면 Tomcat 을 재시동한 후) Apache 를 재시작하면 연결이 됩니
                 다. Apache 를 통해서 "WebAppDeploy" 지시자에 있는 모든 어플리케이션들이 실
                 행하는 것을 보실 수 있습니다.
            -->

            <!-- Apache-Connector Service 설정하기 -->
            <Service name="Tomcat-Apache">

              <Connector className="org.apache.catalina.connector.warp.WarpConnector"
               port="8008" minProcessors="5" maxProcessors="75"
               enableLookups="true"
               acceptCount="10" debug="0"/>

              <!-- "localhost" 를 Apache "ServerName" 에 설정된 값으로 대치해주십시오 -->
              <Engine className="org.apache.catalina.connector.warp.WarpEngine"
               name="Apache" debug="0" appBase="webapps">

                <!-- 하위 레벨에서 설정되지 않았다면 Global logger -->
                <Logger className="org.apache.catalina.logger.FileLogger"
                        prefix="apache_log." suffix=".txt"
                        timestamp="true"/>

                <!-- 이 Realm 이 여기 있기 때문에, 전체적으로 이 Realm 이 공유됩니다. -->
                <Realm className="org.apache.catalina.realm.MemoryRealm" />

              </Engine>

            </Service>

          </Server>

2007/10/17 09:15 2007/10/17 09:15

## Centos 5.0 설치후 튜닝 ##
최소 설치

ftp설치
yum -y install vsftpd
rzsz 설치
yum -y install lrzsz

설치후 패키지 업데이트 및 설치
rpm -e man-pages-ko
yum -y rpm-build

ex) rpm -tb --target i686 proftpd-1.3.0kr.tar.bz2  -32bit
ex) rpm -tb --target x86_64 proftpd-1.3.0kr.tar.bz2  -64bit
Copywrite 오류 License로 변경한다. .spec파일

yum -y update
yum -y install gcc
yum -y install gcc-c++
yum -y install ncurses-devel
-----------------------------------php
yum -y install flex
yum -y install zlib-devel
yum -y install libjpeg-devel
yum -y install libpng-devel
yum -y install freetype-devel
yum -y install gd-devel

yum -y install vsftpd
한글문제
/etc/sysconfig/i18n 수정

LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko:en_US:en"
SYSFONT="lat0-sun16"
SYSFONTACM="iso01"

배쉬 쉘문제
/etc/bashrc
/etc/profile.d/ 전체 파일 수정

안녕 oops-firewell 설치
/etc/rc.d/init.d/iptables 삭제
/etc/sysconfig/iptables 삭제
yum -y install bridge-utils

서비스
#acpid - 전원관리 데몬
#anacron - 해당 작업 실행여부 체크후 실행(cron과 비슷하나 데탑용이라고 보면됨)
#atd - 특정 시간 또는 시스템 부하가 적을때 지정된 명령을 실행시키는 데몬
#auditd- ?
#autofs - Autofs는 자동 마운트 데몬(amd)의 작동을 제어하는 프로그램이다 자동마운트 데몬은 자동으로 파일
 시스템을 마운트하며 파일 시스템이 사용되지 않고 일정 시간이 흐르면 자동으로 언마운트 한다. 네
 트워크 파일 시스템, CD-ROM, 플로피 등을 마운트하는데 사용된다.
#bluetooth - ?
#cpuspeed - CPUSpeed for Linux adjusts the CPU speed dynamically based on the demand for processing power.
 Disable it unless you are using a laptop        
#cups - the Common UNIX Printing System 
#firstboot - 처음에 시작되는 드루이드 스타일의 프로그램
#gpm - gpm란, 마우스를 사용한 'cut- and-paste'를, X 상에서 가능한것처럼,
 Linux의 가상 단말기 사이에서도 가능하도록 하는 프로그램이다
#haldaemon - usb / cdrom 자동 마운트
#hidd - bluetooth 관련?

irqbalance - Multiprocessor(둘 이상의 CPU를 사용하는 환경)에서 CPU간의 Interrupt를 분리하기 위한 Daemon
#mcstrans - 사람이 읽기 쉬운 형식으로 보안 환경 정보로 번역하는 시스템. ( SELinux 환경에서... 사용 )
#mdmonitor - RAID상태를 모니터링하기 위한 데몬
messagebus - 시스템 이벤트를 전송하기 위한 데몬.
microcode_ctl - Intel cpu의 마이크로 코드 업데이트 데몬

#pcscd - PC/SC 스마트 카드 데몬이다. 뭐 스마트 카드를 사용하는 컴퓨터가 아니라면 정지하자~~!
#portmap - rpc (remote procedure call)에서 제공하는 포트맵퍼로 nfs, nis등 운영하기 위해 필요한 서비스로
                 nfs, nis 서비스를 제공하지 않는다면 정지하자~~!!
#readahead_early - 모든 데몬이 시작하기 전에 특정 파일을 사용하기에 앞서 메모리에 미리 불러들여 속도를
                             높이기 위한 데몬이다.
restorecond - SELinux 데몬과 관련된 서비스이다. 함부로 멈추지 말기를...ㅋ SELinux는 이 데몬을 필요로 한다.

#rpcgssd - 원격 인증을 위한 GSS(General Security Service) Daemon이다. (NFS version 4 Client를 위해 필요)
#rpcidmapd - 원격 이름 매핑을 위한 idmap (ID mapping) 데몬 (NFS version 4를 위해 필요하다.)


 

2007/10/04 09:24 2007/10/04 09:24
rc.firewall
=============================================================
=========================
#!/bin/bash

IPTABLES=/sbin/iptables

echo 1 >/proc/sys/net/ipv4/tcp_syncookies
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
fi


$IPTABLES -F INPUT
$IPTABLES -F OUTPUT


$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP

$IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -p tcp --dport 20:22 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 953 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT

$IPTABLES -A INPUT -p tcp -j DROP
$IPTABLES -A OUTPUT -p tcp --dport 6666:6667 -j DROP
2006/11/10 14:14 2006/11/10 14:14