Server & OS

redhat9 에서 ctrl_c ctrl_v 로 서버 만들기

컨텐츠 정보

본문

리눅스 서버 전반적인 셋팅 입니다.
그냥 도움이 되었으면 합니다.

redhat 9 mysql4.1 php5.0 java jsp sendmail dns iptables mac address 인증 등의
설명이 있습니다.

딴지 사절 입니다. ^^; 그냥 보실분만 보세요
더 좋은 설명있으면 리플 주세요




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

                            한국경제TV 시스템 개발팀 프로그래머 김민석
kimms@wowtv.co.kr
http://netmask.co.kr

* 이문서에 대한 권한과 책임을 모두 포기한다.
* 이문서는 단지 참고로만 쓰기 바란다.
* 현재 실제적인 서비스에 적용한 적이 없다.
* 몇년간의 리눅스서버 운영에서 나온 노하우와 선배들의 노고에 감사드립니다.

* 권고 사항 data base 필드이름에 mysql 4.1 대의 예약어가 있으면 디비 리스토어가 안됩니다. 주의 !!
  특히 check 이런거 쓰지 마세요 -_-;;
  제발 개발자 여러분들은 kms_tablename kms_fieldname 이런 식으로 만들기 바랍니다.

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

linux 9

서버의 하드디스크를 믿지 않는다.

        원격지 서버 2곳으로 복사하기를 권장 한다.
        * 1개의 서버는 분리된 다른 서버의 하드에
        * 나머지는 거리가 일정거리 이상 떨어진 다른 시도에 위치한 서버에
          위치시키길 바란다.
       
        Rsync 리모트 싱크 프로그램을 사용한다면 반드시 업그래이드 한다.

최소의 패키지를 설치한다.
       
        깔려있는 페키지는 항상 최상의 버즌을 유지하도록 한다.
        호스팅이 아니라면 필요시만 업그래이드 한다.
        내가 알기론 서버에 들어올 수 없으면
        해킹할 방법이 없다. 암호만 어렵게 해도 효과 만점이다.
        실제로 passwd crack 프로그램으로 패스워드 파일을
        기타 php 프로그래머의 오류등을 이용 빼와서
        대조하면 4자리 숫자 암호는 내 기억으로 1분 안에 암호를 출력한다.
        ;-( 너무 기초 설명인가.....

방화벽을 반드시 설치운영한다.
       
        iptables 는 심플하면서도 강력하다.
        반드시 운영하기를 권장 한다.
        현재 iptables 사용법을 모두 번역한 상태입니다.
        조만간 정리해서 공유하도록 하겠습니다.

마운트
####################################################################################################
mount -t 타입 디바이스이름 마운트 될 디렉토리
시디롬은 iso9660
리눅스 파일 시스템은 ext2
윈도우 파일 시스템은 vfat
도스 파일 시스템 msdos
마운트 해제는 umount


kernel need for thread performance
####################################################################################################
rpm -Uvh ./kernel-*
rpm -Uvh *.rpm

http://www.linux.duke.edu/projects/yum/
rpm -Uvh ./yum-2.0.7-1.noarch.rpm
####################################################################################################

yum -y update

update header -> getting -> update 의 순으로 작업이 이루어 진다.
Kernel Updated/Installed, checking for bootloader
패키지명
Transaction(s) Complete

에서 다운받은 페키지를 볼 수 있습니다.
/var/cache/yum/updates/packages

약 2시간 ;-(
정신건강상 cd로 구워놓는게 좋을것 같습니다.

많은 시간이 걸린다.
그러나 반드시 하기를 추천한다.
UP2DATE 가 종료되어 아쉽네요

* 참고로 모든 패키지가 최신 페키지는 아닙니다.




터미널 한글을 바르게 출력하기 위한 설정 수정
####################################################################################################
vi /etc/bashrc
파일의 마지막에 추가
export JlessCHARSET=euc


vi /etc/sysconfig/i18n

LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

위 내용으로 수정 다시 로그인

사실 less 패키지를 업그래이드 해두 되고 아니면 이렇게 설정을 바꾸어도 됩니다.
귀찮으면 그냥 간단하게 글자 몇개 고치는게 쉽지 않을지...

터미널에서만 바르게 나옵니다. (콘솔창에서는 깨집니다. 주의 , 다른 한글화 패키지를 깔면 되지만 별 필요 없어
해보지 않았습니다. )

http://dev.mysql.com/downloads/
MySQL install
####################################################################################################
-rw-r--r--    1 root    root      5486974 Sep  1 23:51 MySQL-client-4.1.4-0.i386.rpm
-rw-r--r--    1 root    root      2739053 Sep  1 23:52 MySQL-devel-4.1.4-0.i386.rpm
-rw-r--r--    1 root    root      2235157 Sep  1 23:51 MySQL-Max-4.1.4-0.i386.rpm
-rw-r--r--    1 root    root    14586028 Sep  1 23:50 MySQL-server-4.1.4-0.i386.rpm
-rw-r--r--    1 root    root      1114398 Sep  1 23:52 MySQL-shared-4.1.4-0.i386.rpm
-rw-r--r--    1 root    root      1338366 Sep  1 23:53 MySQL-shared-compat-4.1.4-0.i386.rpm

[root@minsouk mysql]# rpm -Uvh ./MySQL-client-4.1.4-0.i386.rpm
warning: ./MySQL-client-4.1.4-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...                ########################################### [100%]
  1:MySQL-client          ########################################### [100%]
[root@minsouk mysql]# rpm -Uvh ./MySQL-devel-4.1.4-0.i386.rpm
warning: ./MySQL-devel-4.1.4-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...                ########################################### [100%]
  1:MySQL-devel            ########################################### [100%]
[root@minsouk mysql]# rpm -Uvh ./MySQL-shared-4.1.4-0.i386.rpm
warning: ./MySQL-shared-4.1.4-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...                ########################################### [100%]
  1:MySQL-shared          ########################################### [100%]
[root@minsouk mysql]# rpm -Uvh ./MySQL-shared-compat-4.1.4-0.i386.rpm
warning: ./MySQL-shared-compat-4.1.4-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...                ########################################### [100%]
  1:MySQL-shared-compat    ########################################### [100%]
[root@minsouk mysql]# rpm -Uvh ./MySQL-server-4.1.4-0.i386.rpm
warning: ./MySQL-server-4.1.4-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...                ########################################### [100%]
  1:MySQL-server          ########################################### [100%]
040902  0:01:22  [ERROR] Warning: Asked for 196608 thread stack, but got 126976
040902  0:01:22  [ERROR] Warning: Asked for 196608 thread stack, but got 126976
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h minsouk password 'new-password'
See the manual for more instructions.

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com

----
[root@minsouk root]# mysql mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 3 to server version: 4.1.4-gamma-standard

Type 'help;' or '\\h' for help. Type '\\c' to clear the buffer.
----

* 암호설정 dml ddl db restore 이런건 알아서 하기 바란다.
* 제로보드 테이블이 생성이 안될것이다.
  제로보드의 pl4 db schema 가 문법에 맞지 않으므로 수정한다.
  auto increment default 부근을 잘 보기 바란다.
* 4.1.3 BETA VERSION 의 암호화 라이브러리 의존성 문제가 해결되었다.
* ZeroBoard 등 몇몇 보드가 mysql 자체 password() 함수로 암호를 처리하여 문제가 되므로 my.conf 에
  oldpassword 옵션을 사용하기를 권장한다. database.sarang.net 참고

추가
show variables;
####################################################################################################
에서 나오는 password 옵션중에 old_passwords 를 활성화 시키는 방법

| old_passwords                  | ON                        |

원래는 OFF 입니다. -_-;

vi /etc/rc.d/init.d/mysql
파일을 열어 다음 154 라인근처에 비슷한 줄을 고친다. (라인수가 원래와 다를수도 있으므로)

방법1
$bindir/mysqld_safe --datadir=$datadir --old-passwords --pid-file=$pid_file >/dev/null 2>&1 &
이렇게 강제로 바꾸는 방법이나 -_-;

방법2
/etc/my.cnf 파일을 만들고 (참고로 그냥 이런건 튜닝이니 제가 속한 환경에서 테스트 해서 문제 없이 된 옵션입니다.)
* ON 과 OFF 로 된것은 불리안 옵션이니 1,0 으로 선택한다.
* 다른 옵션도 다 바꿀수 있으니 뭐하러 컴파일 하냐 이거죠 ^^;

[mysqld]
max_connections        =      10000
table_cache            =      256
wait_timeout            =      900
max_connect_errors      =      10000
key_buffer              =      16M
sort_buffer            =      1M
old_passwords          =      1

방법3
/usr/bin/safe_mysqld -O max_connections=10000 -O table_cache=256 -O wait_timeout=900 -O max_connect_errors=10000 -O key_buffer=16M -O sort_buffer=1M -O old_passwords=1&
* 전문가 들이 보시면 좀 수정해 주시길 바랍니다.

편한 방법을 택하기 바랍니다. ;-)

mysqladmin -u root -p shutdown
mysql -u root -p msyql

그냥 있는 테이블에 테스트 해보았습니다.(귀차니즘 -_-)
mysql> desc unmember;
+---------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| no      | int(11)    |      | PRI | NULL    | auto_increment |
| name    | varchar(20) |      |    |        |                |
| date    | varchar(20) |      |    |        |                |
| bank    | varchar(20) |      |    |        |                |
| idx    | int(11)    |      |    | 0      |                |
| in_date | varchar(20) |      |    |        |                |
+---------+-------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> insert into unmember values(NULL,password('1234'),'','',1,''); 
Query OK, 1 row affected, 1 warning (0.01 sec)

수정전
mysql> select * from unmember;
+----+----------------------+------+------+-----+---------+
| no | name                | date | bank | idx | in_date |
+----+----------------------+------+------+-----+---------+
|  1 | *A4B6157319038724E35 |      |      |  1 |        |
+----+----------------------+------+------+-----+---------+
1 row in set (0.00 sec)


수정후
mysql> select * from unmember;
+----+----------------------+------+------+-----+---------+
| no | name                | date | bank | idx | in_date |
+----+----------------------+------+------+-----+---------+
|  1 | *A4B6157319038724E35 |      |      |  1 |        |
|  2 | 446a12100c856ce9    |      |      |  1 |        |
+----+----------------------+------+------+-----+---------+
필드가 짧아서 아마 1번은 조금 짤린것 같습니다.

나머지는 메뉴얼을 보기 바란다 메뉴얼은 아주 상세하면서도 쉽다.
영어가 안되면 공부하면 되죠 ;-)
ftp://mysql.byungsoo.net/pub/mysql/Downloads/Manual/manual.pdf

Apache
####################################################################################################
tar zxvf ./httpd-2.0.50.tar.Z
cd httpd-2.0.50
cd ./server/mpm/prefork
vi prefork.c

76 번 라인을 다음과 같이 수정한다.
#define DEFAULT_SERVER_LIMIT 512

cd -

프로세서를 생성하는 prefork.c 의 개수를 수정한다. (대용량 웹서버가 아닐 경우 그대로 둔다.)
사실 소스 수정이 없으면 rpm 을 쓰기를 권장 한다. 설치해서 다른게 없다.
좀더 뛰어난 성능을 위해 컴파일러를 바꾸거나 CFLAG 를 바꿀 수 있으나 그냥 써도 무방하다.

./configure --enable-layout=Apache --enable-so --enable-mods-shared=all --disable-info
make
make install


--
mkdir /usr/local/apache2/manual
Installing build system files
make[1]: Leaving directory `/root/src/httpd/httpd-2.0.50'
--
정상종료 마지막 메시지

아파치 설치가 젤 쉽고 빠르다 ;-)

PHP
####################################################################################################
php-4.3.8.tar.gz 보안 패치가 된 이 안정화된 버즌을 쓰던지 최신의 화려한 기술? 을 쓰고 싶다면
깔아보기 권한다.

tar zxvf ./php-5.0.1.tar.gz

** 예상되는 에러
libxml2 version 2.5.10 or greater required.

http://xmlsoft.org/sources/
-rw-r--r--    1 root    root      1158888 Sep  2 03:37 libxml2-2.6.13-1.i386.rpm
-rw-r--r--    1 root    root      1879884 Sep  2 03:38 libxml2-devel-2.6.13-1.i386.rpm
-rw-r--r--    1 root    root      619069 Sep  2  2004 libxml2-python-2.6.13-1.i386.rpm
다운로드
rpm -Uvh ./libxml2-*

;-)

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-config-file-path=/etc \\
--enable-track-vars --with-zlib --with-gd --with-mod-charset --with-language=korean --with-charset=euc_kr

--
Thank you for using PHP.
--
잘 컨피겨된 모습

make

--
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
--
잘 컴파일 된 모습

make install

--
Installing PHP SAPI module:      apache2handler
/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' libphp5.la /usr/local/apache2/modules
/usr/local/apache2/build/libtool --mode=install cp libphp5.la /usr/local/apache2/modules/
cp .libs/libphp5.so /usr/local/apache2/modules/libphp5.so
cp .libs/libphp5.lai /usr/local/apache2/modules/libphp5.la
libtool: install: warning: remember to run `libtool --finish /root/src/php/php-5.0.1/libs'
chmod 755 /usr/local/apache2/modules/libphp5.so
[activating module `php5' in /usr/local/apache2/conf/httpd.conf]
Installing PHP CLI binary:        /usr/local/bin/
Installing PHP CLI man page:      /usr/local/man/man1/
Installing PEAR environment:      /usr/local/lib/php/
[PEAR] Archive_Tar    - installed: 1.1
[PEAR] Console_Getopt - installed: 1.2
[PEAR] PEAR          - installed: 1.3.2
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
[PEAR] XML_RPC        - installed: 1.1.0
Installing build environment:    /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:      /usr/local/bin/
  program: phpize
  program: php-config
  program: phpextdist
--
잘 컴파일 된 모습

이까지만 하면 정상적으로 mysql + php + apache 를 쓸 수 있다.
이제 자바와 톰캣 도 깔아 보도록 하자

apache mysql php 확인 작업
####################################################################################################
아파치 설정

    87 Timeout 4

    93 KeepAlive Off

    122 MaxClients        512    <--- 아까 소스 고친부분 적용

    302 Group nobody

    311 ServerAdmin kimms@wowtv.co.kr

    325 ServerName *:80

    341 DocumentRoot "/home/minsouk/public_html"

    407 <Directory /home/*/public_html>
    408    AllowOverride FileInfo AuthConfig Limit Indexes
    409    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    410    <Limit GET POST OPTIONS PROPFIND>
    411        Order allow,deny
    412        Allow from all
    413    </Limit>
    414    <LimitExcept GET POST OPTIONS PROPFIND>
    415        Order deny,allow
    416        Deny from all
    417    </LimitExcept>
    418 </Directory>

    428 DirectoryIndex index.html index.php index.htm index.cgi index.php3

    822 AddDefaultCharset euc_kr

    887 AddType application/x-compress .Z
    888 AddType application/x-gzip .gz .tgz
    889 AddType application/x-tar .tgz
    890 AddType application/x-httpd-php .php .phtml .php3 .htm .html     
    891 AddType application/s-httpd-php-source .phps

  1028 <Location /server-status>
  1029    SetHandler server-status
  1030    Order deny,allow
  1031 #    Deny from all
  1032    Allow from .example.com
  1033 </Location>

 

*문서의 마지막 부분에 3사 쿠키를 위한 설정이 있으니 더 추가하기 바란다.

그룹 생성(나중에 그룹관리를 위해 쓰인다.)
groupadd grp1
groupadd grp2
groupadd grp3

adduser minsouk
chmod 701 minsouk
mkdir /home/minsouk/public_html
chown minsouk.minsouk /home/minsouk/public_html

killall httpd

[root@minsouk home]# /usr/local/apache2/bin/apachectl start


phpinfo(); 함수 불러서 확인

http://192.168.128.18/phpinfo.php

멋지게 젠드 엔진2 가 붙어서 나올것이다.
옵션에 대한 자세한 설명은 apache.org 가서 메뉴얼 보기 바랍니다.

j2se 설치
####################################################################################################

chmod +x ./j2sdk-1_4_2_05-linux-i586.bin
./j2sdk-1_4_2_05-linux-i586.bin
yes


vi /etc/profile

# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

JAVA_HOME="/usr/local/share/j2sdk1.4.2_05"
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME

source /etc/export

자바 테스트

[root@minsouk java_ex]# cat a.java
class a
{
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}


바이트 코드 생성
javac ./a.java

실행
[root@minsouk java_ex]# java a
Hello World!





Tomcat
####################################################################################################
5.5.0 은 j2se5.0 을 필요로 하므로 낮은 버즌을 받아야 한다.
[root@minsouk tomcat]# mv jakarta-tomcat-5.0.28.tar.gz /usr/local/share/
[root@minsouk tomcat]# cd /usr/local/share/

tar zxvf ./jakarta-tomcat-5.0.28.tar.gz
cd jakarta-tomcat-5.0.28/bin

vi /etc/profile

JAVA_HOME="/usr/local/share/j2sdk1.4.2_05"
CATALINA_HOME="/usr/local/share/jakarta-tomcat-5.0.28"
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME CATALINA_HOME

source ./profile

startup.sh    or   
catalina.sh start


http://somehost:8080

catalina.sh stop

접속하면 못생긴 노란 고양이가 나온다. ;-)

Tomcat 과 apache2.0 연동
####################################################################################################
tar zxvf ./jakarta-tomcat-connectors-jk2-src-current.tar.gz
cd /root/src/tomcat/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2

./configure --with-apxs2=/usr/local/apache2/bin/apxs
make

--
libtool: install: warning: remember to run `libtool --finish /usr/local/apache2/modules'
/bin/cp ../../../build/jk2/apache2//usr/local/apache2/modules/mod_jk2.so ../../../build/jk2/apache2/mod_jk2.so
make[1]: Leaving directory `/root/src/tomcat/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/server/apache2'
--

cp /root/src/tomcat/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/mod_jk2.so /usr/local/apache2/modules/
cp /root/src/tomcat/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf/workers2.properties /usr/local/apache2/conf/

vi /usr/local/apache2/conf/httpd.conf
267 LoadModule jk2_module    modules/mod_jk2.so



[root@minsouk conf]# cat workers2.properties
# Shared memory handling. Needs to be set.
[shm]
file=/var/log/httpd/shm.file
size=1048576

# Example socket channel, explicitly set port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

# Announce a "status" worker
[status:status]

# Uri mapping
[uri:/jsp-examples/*]
worker=ajp13:localhost:8009

[uri:/servlets-examples/*]
worker=ajp13:localhost:8009

[uri:/tomcat-docs/*]
worker=ajp13:localhost:8009

[uri:/*]
worker=ajp13:localhost:8009

[uri:/status/*]
worker=status:status




cd /usr/local/share/jakarta-tomcat-5.0.28/conf/

[root@minsouk conf]# cat jk2.properties
## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.

## COMMENTS WILL BE _LOST_

## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
channelSocket.port=8009
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config  is working
# shm.file=${jkHome}/work/jk2.shm
shm.file=/var/log/httpd/jk2.shm

# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:

# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
apr.jniModeSo=inprocess


[root@minsouk conf]# catalina.sh stop
Using CATALINA_BASE:  /usr/local/share/jakarta-tomcat-5.0.28
Using CATALINA_HOME:  /usr/local/share/jakarta-tomcat-5.0.28
Using CATALINA_TMPDIR: /usr/local/share/jakarta-tomcat-5.0.28/temp
Using JAVA_HOME:      /usr/local/share/j2sdk1.4.2_05
[root@minsouk conf]# /usr/local/apache2/bin/apachectl stop
[root@minsouk conf]# /usr/local/apache2/bin/apachectl start
[root@minsouk conf]# catalina.sh start
Using CATALINA_BASE:  /usr/local/share/jakarta-tomcat-5.0.28
Using CATALINA_HOME:  /usr/local/share/jakarta-tomcat-5.0.28
Using CATALINA_TMPDIR: /usr/local/share/jakarta-tomcat-5.0.28/temp
Using JAVA_HOME:      /usr/local/share/j2sdk1.4.2_05


이상으로 모든 설정을 마칩니다.


참고 DATA
kldp.org 의 이름없는 문서 (죄송합니다. 이름이 없어서 이름을 못 넣었습니다.)
포스데이터 장윤기님 인용


후기 php 와 jsp 는 동시에 돌아가지 않았습니다. 문제의 원인을 좀 분석해 주시면
고맙겠습니다.


w3c 설정(예전글 첨부) 프레임 분할에서 3사 쿠키 적용문제
####################################################################################################


cd /root/apache/httpd-2.0.49/server/mpm/prefork


./configure --enable-layout=Apache --enable-so --enable-mods-shared=all --disable-info
make
make install

####주의할것 Apache 의 config.layout 의 구성에서 지정한 값으로 바꿀것

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-config-file-path=/etc --enable-track-vars
make
make install



아파치에서 p3p 설정을 위한 // 개인보호 정책 파일을 셋팅하기 위한 설정

<IfModule mod_alias.c>
Alias /w3c/ "/home/renew/public_html/w3c/"
<Directory "/home/renew/public_html/w3c">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</IfModule>

<IfModule mod_headers.c>
Header add P3P "policyref=\\"http://siatkids.com/w3c/p3p.xml\\" CP=\\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV I
NT DEM CNT STA POL HEA PRE LOC OTC\\""
Header set P3P "policyref=\\"http://siatkids.com/w3c/p3p.xml\\" CP=\\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV I
NT DEM CNT STA POL HEA PRE LOC OTC\\""
</IfModule>


///////////////////////////////////////////////////////////////////////////////////////////////////////
[root@siatdb /home/renew/public_html/w3c]# vi info.html

여기는 유아교육 전문 사이트 siatkids.com 입니다.<br>
자세한 개인정보 보호 정책은 사이트 내의 정보를 보기시 바랍니다.<br>
///////////////////////////////////////////////////////////////////////////////////////////////////////
[root@siatdb /home/renew/public_html/w3c]# cat p3p.xml
<?xml version="1.0" ?>
<META xmlns="http://www.w3.org/2002/01/P3Pv1">
<POLICY-REFERENCES>
<POLICY-REF about="http://siatkids.com/w3c/p3policy.xml">
<INCLUDE>/*</INCLUDE>
</POLICY-REF>

</POLICY-REFERENCES>
</META>
///////////////////////////////////////////////////////////////////////////////////////////////////////
[root@siatdb /home/renew/public_html/w3c]# cat p3policy.xml
<?xml version="1.0" encoding="EUC-KR"?>
<POLICY xmlns="http://www.w3.org/2002/02/P3Pv1"
discuri="http://siatkids.com/w3c/info.html">

<ENTITY>
<DATA-GROUP>
<DATA ref="#business.name">본 사이트는 유아교육 전문사이트 입니다. 원활한 사이트 사용을 위해서 당사의 홈페이지의 설정을 "이 사이트에서 항상 쿠키 사용할 수 있음" 을 선택해 주십시요.  연락처 011-9585-0915 김민석
</DATA>
</DATA-GROUP>
</ENTITY>
<ACCESS><all/></ACCESS>

</POLICY>
///////////////////////////////////////////////////////////////////////////////////////////////////////
이상의 설정으로 해당 서버의 모든 쿠키 설정은 보통높음까지 설정해서 쿠키 정보가 남겨지게 된다.
익스 6의 바뀐 개인 정보 설정으로 인해서 생기는 현상이다.
더 참고하고 싶은 것이 있다면

w3c 와 p3p 설정에 대해서 검색해 보시기 바랍니다.


//참고값
<IfModule mod_headers.c>
Header add P3P "CP=\\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\\""
Header set P3P "CP=\\"ALL CURa ADMa DEVa TAIa OUR BUS IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC OTC\\""
</IfModule>




디비
####################################################################################################

create database siatdb;

INSERT INTO `db` VALUES ('%','siatdb','siat','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO `user` VALUES ('%','siat',password('1234'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0)
,('localhost','siat',password('1234'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);

flush privileges;

INSERT INTO `user` VALUES ('localhost','kughwado','52ca78923d5f87e1','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0);

[처음 사용을 위한 암호설정]
mysql> update user set Password=password('1234') where User='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

디비스키마만 뜨기
mysqldump -u root -p -d testdb > testdb.sql





Samba 설정
####################################################################################################
bz2 일경우 j 옵션으로 푼다.

tar zxvf samba-3.0.6.tar.gz
make
make install


[root@minsouk samba]# cd /usr/local/samba/
[root@minsouk samba]# ll
합계 32
drwxr-xr-x    2 root    root        4096  9월  3 11:09 bin
drwxr-xr-x    2 root    root        4096  9월  3 11:09 include
drwxr-xr-x    8 root    root        4096  9월  3 11:09 lib
drwxr-xr-x    6 root    root        4096  9월  3 11:09 man
drwxr-xr-x    2 root    root        4096  9월  3 11:09 private
drwxr-xr-x    2 root    root        4096  9월  3 11:09 sbin
drwxr-xr-x    7 root    root        4096  9월  3 11:09 swat
drwxr-xr-x    3 root    root        4096  9월  3 11:09 var

이렇게 생성된다.

cp /root/src/samba/samba-3.0.6/source/script/mksmbpasswd.sh /usr/local/samba/bin/mksmbpasswd.sh
cp /root/src/samba/samba-3.0.6/source/smbadduser /usr/local/samba/bin/smbadduser
chmod +x /usr/local/samba/bin/smbadduser


ln -s /usr/local/samba/bin/smbpasswd /usr/sbin/smbpasswd
ln -s /usr/local/samba/bin/mksmbpasswd.sh /usr/sbin/mksmbpasswd.sh
ln -s /usr/local/samba/bin/smbadduser /usr/sbin/smbadduser

vi /etc/pam.d/samba

#%PAM-1.0
auth required /lib/security/pam_pwdb.so shadow
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_pwdb.so shadow use_authtok
session required /lib/security/pam_pwdb.so

vi /usr/local/samba/lib/smb.conf 를 다음과 같이 설정

[global]
        workgroup = minsouk_linux_box
        server string = love_minsouk
        encrypt passwords = Yes
        obey pam restrictions = Yes
        pam password change = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *New*password* %n\\n *Retype*new*password* %n\\n *passwd:*al
l*authentication*tokens*updated*successfully*
        unix password sync = Yes
        log file = /var/log/samba/%m.log
        max log size = 0
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = No
        printing = cups

[homes]
        comment = hi_wowtv
        valid users = %S
        read only = No
        create mask = 0777
        directory mask = 0777
        browseable = No

[share]
        path = /home
        read only = No
        hosts allow = 192.168.128.19

smbpasswd minsouk
암호 입력


새로운 유저를 생성할때
/usr/local/samba/private/smbpasswd 파일을 열어
한라인 카피하고 저장
smbpasswd 명령을 이용해 만들어 준다
csh 이 안먹는데 왜 그렇지.....bash 쉘만 쓸 수 있어 아쉽군요 볼려니 귀찮아서 -_-;

[root@minsouk private]# /usr/local/samba/sbin/smbd
[root@minsouk private]# /usr/local/samba/sbin/nmbd

이제부터 수고를 막을려면 알아서 잘 링크와 자동 스크립트 화 하시길 바랍니다.
나머지 설정은 howto samba 나 삼바 메뉴얼을 보시길 바랍니다. 옵션 화려합니다.
책으로 4cm 넘습니다. -.- 필요한 것만 보세요


그럼 시작 > 실행 > \\\\192.168.128.18\\sw
안에 쏙 들어갈 수 있습니다.

share 는 루트만 쓰면 되겠죠?
homes 는 아무나 유저 만들어서 쓰고 ^^;


*** 기타 설정 도움말
1) smb.conf 에서 공유폴더의 등록

[공유폴더명]
comment = software <--- 공유폴더의 간단한 설명
browseable = yes <--- 접속자들이 윈도우 탐색기처럼 파일목록이 쫘르륵 보여질수 있게 할것인지 아닌지
path = /home <--- 이 공유계정의 홈디렉토리 위치(절대경로로 표시)
writable = yes <--- 쓰기가능한 공유폴더인지
read list = test <--- 읽기권한만 줄 유저목록 (각 유저는 , 로 구분함. 그룹의 경우에는 @를 앞에 붙임)
write list = test <--- 쓰기권한을 줄 유저목록 ( 위와 동일 )

이런식으로 여러개의 공유폴더를 만들고 read list와 write list에 각 사용자들을 등록해서
각 폴더마다 사용자들의 접근권한을 부여할수 있습니다.

예)
[seclab]
comment = secure lab share folder
browseable = yes
path = /home/seclab
writable = yes
read list = test, virus, kyuwoon
write list = test

2) 비번없이 접근을 시키기 위해서는 다음과 같이 명령합니다. 혼자 쓸때는 좋지만 절대 권장하지않습니다.
#/usr/local/samba/bin/smbpasswd -n username

swat 설정
####################################################################################################
[root@minsouk xinetd.d]# vi swat

service swat
{
        disable = no
        port            = 901
        socket_type    = stream
        wait            = no
        only_from      = 192.168.128.19
        user            = root
        server          = /usr/local/samba/sbin/swat
        log_on_failure  += USERID
}

파일을 만들어 주고
/etc/rc.d/init.d/xinetd restart

only_from 의 아이피는 자신의 swat 을 통해 접속하고자 하는 아이피 이다.
이넘은 루트만 들어갈 수 있어야겠죠?

잘 설정하시길
http://192.168.128.18:901/

아이디 암호 치면 쏙 들어 갑니다.



named 설정
####################################################################################################
귀차니즘의 끝에 이르러 그냥 설정파일만 카피해둠

/etc/hosts
127.0.0.1              localhost.localdomain  ns
165.229.66.56          ns.netmask.co.kr        ns
165.229.66.56          netmask.co.kr
165.229.66.245          ns2.netmask.co.kr      ns2


마스터 네임서버 설정
// generated by named-bootconf.pl

options {
        directory "/var/named";
};

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

include "/etc/rndc.key";

zone "66.229.165.in-addr.arpa" IN {
        type master;
        file "n.rev";
        allow-update { 165.229.66.245; };
};

zone "netmask.co.kr" IN {
        type master;
        file "db.netmask";
        allow-update { 165.229.66.245; };
};


/var/named/n.rev
$TTL 86400
@      IN      SOA    ns.netmask.co.kr.      webmaster.netmask.co.kr. (
                        2004080923 ; serial
                        86400 ; refresh
                        3600 ; retry
                        86400 ; expire
                        0 ; default_ttl
                        )
                IN      NS      ns.netmask.co.kr.
                IN      NS      ns2.netmask.co.kr.

56              IN      PTR    ns.netmask.co.kr.
247            IN      PTR    ns2.netmask.co.kr.
56              IN      PTR    www.netmask.co.kr.
56              IN      PTR    ftp.netmask.co.kr.
56              IN      PTR    mail.netmask.co.kr.

/var/named/db.netmask
$TTL 86400
@      IN      SOA    ns.netmask.co.kr.      webmaster.netmask.co.kr. (
                2004080923 ; serial
                10800 ; refresh
                3600 ; retry
                604800 ; expire
                0 ; default_ttl
                )
        IN      NS      ns.netmask.co.kr.
        IN      NS      ns2.netmask.co.kr.
        IN      MX      10      ns.netmask.co.kr.
        IN      HINFO  PIII933 REDHAT9

        IN      A      165.229.66.56
@      IN      A      165.229.66.56
www    IN      A      165.229.66.56
ftp    IN      CNAME  www
mail    IN      CNAME  www
ns2    IN      A      165.229.66.245
*      IN      CNAME  www

killall named
/etc/rc.d/init.d/named start

/var/log/messages 확인 이상한것 체크 끝


슬레이브 설정 마스터 설정에 따라 존 파일이 자동으로 생성됩니다.
####################################################################################################

// generated by named-bootconf.pl

options {
        directory "/var/named";
};

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/rndc.key";

zone "netmask.co.kr" IN {
        type slave;
        file "netmask.co.kr_slave_zone";
        masters { 165.229.66.56; };
};



killall named
/etc/rc.d/init.d/named start

/var/log/messages 확인 이상한것 체크 끝


sendmail 설정
####################################################################################################
jff 박성규 켑틴의 글입니다. parkseungkyu.com

스팸메일 필터링이라 하기 보다는 스팸과의 전쟁에 가깝다고 말할만큼 엄청한 스팸메일에 시달리는 경우가 많습니다.

리눅스 기반에 메일서버를 운영할 경우 sendmail, pop3, imap을 사용하게 되고 MDA로 procmail를 사용하게 됩니다.

procmail의 경우 procmailrc를 통해 필터링 룰을 설정하여 지정한 설정에 해당하는 경우 메일을 스팸메일로 간주하여 제거할 수 있습니다. 이제 procmail을 이용한 스팸 필터링을 이용하여 스팸메일로 부터 자유(95%이상, 필터링 룰에 따라 더 높은 수치를 만들수 있음)로워 지시기 바랍니다.

1. 준비사항

procmailrc를 이용하여 필터링을 할 경우 특정 한글코드 필터링을 위해 추가적으로 Hangul code conversion utilities 패키지를 설치하셔야 합니다.

hcode rpm 패키지이며 해당 패키지는 http://rpmfind.net 에서 hcode라는 키워드를 이용하여 검색하시면 쉽게 구하실 수 있습니다.
ftp://rpmfind.net/linux/SuSE-Linux/i386/8.2/suse/i586/hcode-2.1-361.i586.rpm

hcode 패키지를 구하셨다면 rpm 명령어로 해당 패키지를 설치하시기 바랍니다.

2. procmailrc 생성하기

이제 필터링 룰에 해당하는 procmailrc 파일을 생성하도록 하겠습니다. 생성 방법은 # vi /etc/procmailrc 를 이용하여 새로운 파일을 생성하며, /etc/procmailrc 파일에는 다음 내용을 추가합니다.

인용:

LOGFILE=/var/log/procmail
VERBOSE=no
PATH=/usr/bin:/usr/local/bin:/bin
SHELL=/bin/sh

# 인코드되어 날아오는 헤더를 디코드 하는 부분.
:0 Efhw
*^(Subject|From|Cc):.*=\\?EUC-KR\\?(B|Q)\\?
|formail -c | hcode -dk -m

:0 Efhw
*^(Subject|From|Cc):.*=\\?ks_c_5601-1987\\?(B|Q)\\?
|formail -c | hcode -dk -m

# 필터링 룰의 시작
# 특정 발신자 메일 수신 필터
:0
* ^From: .*(info@spam\\.com|test@test\\.*)
/var/spool/mail/spam

# 제목부분에 지정된 문자열이 존재할 경우 필터
:0
* ^Subject: .*(광\\.고|급한돈|카드값|다이어트|성장호르몬|광고|광-고|몰카|치한)
/var/spool/mail/spam

# 특정 확장자를 가지는 첨부파일이 있는 경우 필터
:0 B
* ^Content-Disposition: attachment;
* filename=".*(\\.vbs|\\.pif|\\.scr)"
/var/spool/mail/spam



내용을 보시면 직관적으로 아시겠지만, 주석을 달자면, 특수 문자 인식을 위해 \\ 기호를 사용합니다. 가령 hotmail.com 의 경우 hotmail\\.com 으로 적용합니다.

또한 연속적으로 나열할 경우 구분자로 파이프( | ) 기호를 사용하여 구분합니다.

필터링 대상에 해당되는 내용은 지정된 /var/spool/mail/spam 에 저장되게 되어 있습니다. 만약을 대비해 필터링 메일을 바로 삭제하지 않고 spam이라는 파일로 보관하는 것입니다.

스팸에서 해방되기 위해서는 이러한 문자 룰을 적절히 추가하시기 바랍니다. 물론 신고와 같은 적극적인 대응도 필요하겠죠? 


/etc/mail/sendmail.mc
====================================================================================================
divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl #    make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for Red Hat Linux')dnl
OSTYPE(`linux')dnl
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
dnl define(`SMART_HOST',`smtp.your.provider')
dnl #
define(`confDEF_USER_ID',``8:12'')dnl
define(`confTRUSTED_USER', `smmsp')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p')dnl
dnl #
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl #
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #    make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl
dnl #
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his quota.
dnl #
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl # NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl #      a kernel patch
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl #
LOCAL_DOMAIN(`wowgp.gpnet.co.kr')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`mydomain.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
====================================================================================================

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

/etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
gpnet.co.kr
wowgp.gpnet.co.kr
211.218.125.37

/etc/mail/virtualhost
webmaster@gpnet.co.kr          user1@gpnet.co.kr
root@gpnet.co.kr                user2@gpnet.co.kr

makemap hash virtusertable < ./virtusertable



iptables 의 운용
####################################################################################################

다른 포트를 사용하는 사람은 알아서 잘 설정
이걸 설정할때 idc 로 부웅 가야하는 불상사가 일어날 수 있다.
설정에서 telnet을 임시로 열어두고 작업하는 건 어떨까 생각해본다.

[root@minsouk /]# cat ipt.sh
#!/bin/sh
# This configuration is added by minsouk 2004-08-07
# HP 01195850915
# Please note me any problem

modprobe iptable_filter

#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p udp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 00-0C-76-E9-17-FF -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m mac --mac-source 00-0A-5E-42-06-20 -j ACCEPT
#iptables -A INPUT -p tcp --dport 143 -j ACCEPT

iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT

iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flag SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j REJECT
iptables -A INPUT -p tcp --dport 22 -j REJECT
iptables -A INPUT -p tcp --dport 955 -j REJECT
iptables -A INPUT -p udp --dport 955 -j REJECT
iptables -A INPUT -p tcp --dport 0:1023 --syn -j REJECT
iptables -A INPUT -p tcp --dport 2049 --syn -j REJECT
iptables -A INPUT -p udp --dport 0:1023 -j REJECT
iptables -A INPUT -p udp --dport 2049 -j REJECT
iptables -A INPUT -p tcp --dport 6000:6009 --syn -j DROP
iptables -A INPUT -p tcp --dport 7100 --syn -j REJECT
iptables -A INPUT -p tcp --dport 7100 -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


맥어드래스 설정에 의해서 두개의 이더넷 카드를 제외하면 아무도 ssh 로 들어갈 방법이 없다.
패킷 조작에 의해서 가능할 것 같지만 누가 그정도까지 시도할까 ^^;
솔직히 귀찮다.

[root@ns /]# /etc/rc.d/init.d/iptables save
Saving current rules to /etc/sysconfig/iptables:          [  확인  ]

####################################################################################################
        End of TEST                        2004-09-02
####################################################################################################







관리자 (2004-09-04 22:02:31) 

iptables 에서 정책을 설정하지 않으면 모두 accept 이다. 



관리자 (2004-09-04 22:04:27) 

scp 명령어를 써서 카피하면 빠르게 카피 할 수 있습니다.
ftp 깔아야 한다는 엉뚱한 생각하시면 곤란 곤란 ^^;

scp -r -P xx ./sss xxx@netmask.co.kr:xxxx 



관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
따돌림을 받을까 두려워서 집단에 맹목적으로 따라가서는 안 된다. 네가 할 일은 네가 스스로 결정해야 한다. (고승제의 《구멍가게 둘째딸 마거릿 대처》중에서)