기본적으로 리눅스에 cvs가 설치되긴 하지만 따로 제거하였거나 최신버전을 설치하기위해선
http://www.cvshome.org/ 사이트에 방문하여 다운받아 설치하면 된다.
음... subversion 이라고 cvs 의...업그레이드(?) 버전이있는데
이 서브버전은 cvs와 같이 커밋단위가 아닌 체인지셋단위라고 한다.
속도면 이나 뭐 이런저런면에서 더 낫다고 하는데...써보질 않아서...와닿지는 않는다..-0-;;;

1. 버전확인하기
drz> cvs --version (엔터)
현재 설치되어있는 cvs의 버전을 확인할수 있다.
설치되어있지않다면 없는 명령이라고 나올테고....

2. cvs user 만들기
drz> adduser cvs (엔터)
/home 폴더에 cvs라는 폴더가 계정과함께 생성된다.
drz> cd /home/cvs (엔터)
이동이동 -0-//
만들면 cvs그룹이 자동으로 생성되었겠지만 수동으로 만들경우
cvs그룹도 만들고 cvs폴더로 사용할 폴더로 만들어주어야 한다.

마지막으로 꼭 해야할 작업인데 사용할 사용자를 cvs그룹에 포함도 시켜놓고 진행하든 뭐 천천히
다 작업하고나서 포함시키든 별 상관없다. 하지만 꼭 cvs그룹에 사용할 유저 포함은 시켜야된다는거~~
그룹 파일은 /etc/group 이다.

3. 저장소 초기화
drz> cvs -d /home/cvs init (엔터)
초기화를 하게되면 저장소(/home/cvs)에 cvs에서 사용하는 제어파일들이 있는 폴더들이 생성되고 파일도 생성된다.

4. cvs용 계정 등록
cvs에서는 계정을 따로 사용한다...고한다..-0-;;;;
초기화를 하고나면 /home/cvs/CVSROOT 이런 폴더가 있는데 이곳에 passwd 파일을 생성해야한다.
passwd파일의 포맷은 아래와 같다.

아이디:암호화된비번:그룹

의 형식이다. 실제로 적어보면

zekill:jdksDKU9032LKldp:cvs

뭐 이런거다...유저를 추가할때마다 한줄한줄 추가해주면 된다.
여기서 암호화된 암호(-0-)는 htpasswd 라는 툴을 이용해 생성하면 된다.
사용법은 " htpasswd -nb 아이디 암호화하려는비번 (엔터)" 이다.
실제로 적어보면
drz> htpasswd -nb zekill 12345 (엔터)
하면 12345가 암호화되어 튀어나온다. 그암호를 암호넣는부분에 살며시 넣어주면 된다.

그리고 여기에 추가되는 아이디는 로컬사용자 아이디로 cvs그룹에 속해있어야 한다



5. cvs 서비스 등록
cvs가 이미 설치되어 있는 서버라면 xinetd 폴더에 cvs 라는 서비스가 존재할것이다.
이 파일을 수정해도 되고 다른이름으로 이뿌게 파일명 만들어서 생성해도 된다.
파일을 열고 내용을 보면

service cvs
{
       disable         = no
       flags           = REUSE
       socket_type     = stream
       wait            = no
       user            = cvs
       server          = /usr/bin/cvs
       server_args     = -f --allow-root=/home/cvs pserver
}

이렇다. 아 생성한 파일명을 다른이름으로 했다면 첫번째 줄에 서비스 이름도 바까주는게 좋다.
바꾸면 서비스가 안돌아가는건진 모르겠지만..할튼 같게 해놓는게 보기에도 좋지 않은가..-0-;;;
서버 아규먼트의 폴더는 cvs 저장소디렉토리이다 pserver 인증방식으로 실행된다

됐으면 xinetd 를 재시작하자
drz> service xinetd restart (엔터)

cvs는 2401 포트를 사용하기에 잘 시작되었는지 보려면
drz> netstat -an | grep 2401 (엔터)
해서 2401 포트가 열렸는지 확인하면 된다.


====================================================
이클립스로 두명이상 작업하게되어 리눅스서버에 cvs서버를 세팅하여 사용중인데
음...cvs고마울때가 많긴 하지만....그래도.....귀차낭...ㅜㅜ
2007/09/01 23:33 2007/09/01 23:33
의헌이형 방화벽 베끼기...카카카 좀 낳아보이려낭...ㅜㅜ
음...의헌이형한테 혼날려낭..-0-a

#!/bin/sh
#############################################
#
# 방화벽 구성 -- zekill@shinbiro.com
#
#############################################
# Main configuration
IPTABLES="/usr/local/sbin/iptables"

# INTERNET IP
INTERNET_PRIV7="xxx.xxx.xxx.234"
INTERNET_PRIV6="xxx.xxx.xxx.235"
INTERNET_PRIV5="xxx.xxx.xxx.236"
INTERNET_PRIV4="xxx.xxx.xxx.237"
INTERNET_PRIV3="xxx.xxx.xxx.238"
INTERNET_PRIV2="xxx.xxx.xxx.239"
INTERNET_PRIV1="xxx.xxx.xxx.240"
INTERNET_USER="xxx.xxx.xxx.241"

INTERNET_FILE="xxx.xxx.xxx.248"
INTERNET_HTTP2="xxx.xxx.xxx.249"
INTERNET_HTTP1="xxx.xxx.xxx.250"
INTERNET_LCL="xxx.xxx.xxx.251"
INTERNET_DNS_SUB="xxx.xxx.xxx.252" #sub dns
INTERNET_SMTP="xxx.xxx.xxx.253"
INTERNET_POP3="xxx.xxx.xxx.253"
INTERNET_DNS_MAIN="xxx.xxx.xxx.253" #main dns

# INTERNAL IP
INTERNAL_LAN="100.100.100.0/24"
INTERNAL_LCL="100.100.100.1"
INTERNAL_DNS="100.100.100.2"
INTERNAL_SMTP="100.100.100.2"
INTERNAL_POP3="100.100.100.2"
INTERNAL_DOTNET="100.100.100.3"
INTERNAL_HTTP1="100.100.100.4"
INTERNAL_HTTP2="100.100.100.5"
INTERNAL_FILE="100.100.100.6"
INTERNAL_IBFILE="100.100.100.7"
INTERNAL_XP="100.100.100.8"

INTERNAL_USER="100.100.100.11-100.100.100.250"


# Let's load it!
echo "Loading zekill firewall:"

# iptables이 설치되어있는지 체크
echo -n "Checking configuration..."
if ! [ -x $IPTABLES ] ; then
    echo
    echo "ERROR IN CONFIGURATION: IPTABLES doesn't exist or isn't executable!"
    exit 1
fi
echo "passed"

# IP 포워딩 허용
if [ -e /proc/sys/net/ipv4/ip_forward ] ; then
    echo 1 > /proc/sys/net/ipv4/ip_forward
else
    echo "ip_forward not found"
fi
# 위에것 보다는 아래 한번 실행
#/etc/sysctl.conf 파일안에 net.ipv4.ip_forward=1 라고 추가하면 위의 내용

# Enable TCP Syncookies
if [ -e /proc/sys/net/ipv4/tcp_syncookies ] ; then
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
else
    echo "tcp_syncookies support not found"
fi

# 정의되지 않은 에러 메시지를 막음
if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ] ; then
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
else
    echo "icmp_ignore_bogus_error_responses support not found"
fi

# ip 주소를 스푸핑한다고 예상되는 경우 로그에 기록하기
if [ -e /proc/sys/net/ipv4/conf/all/log_martians ] ; then
    echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
else
    echo "log_martians support not found"
fi

# 스프핑 막기
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
else
    echo "rp_filter support not found"
fi

# 브로드캐스트, 멀티캐스트 주소에 ICMP 메시지 보내는것 막기
# "smurf" 공격 방지용
# 커널 2.2 이상에 해당
if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ] ; then
   echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
else
    echo "icmp_echo_ignore_broadcasts support not found"
fi


#########################################################
# 체인 플러시
#########################################################
${IPTABLES} -F
${IPTABLES} -X
${IPTABLES} -t nat -F
${IPTABLES} -t nat -X
${IPTABLES} -t filter -F INPUT
${IPTABLES} -t filter -F OUTPUT
${IPTABLES} -t filter -F FORWARD
${IPTABLES} -t nat    -F PREROUTING
${IPTABLES} -t nat    -F OUTPUT
${IPTABLES} -t nat    -F POSTROUTING
${IPTABLES} -t mangle -F PREROUTING
${IPTABLES} -t mangle -F OUTPUT


#########################################################
# 기본 정책
#########################################################
${IPTABLES} -t filter -P INPUT DROP
${IPTABLES} -t filter -P OUTPUT DROP
${IPTABLES} -t filter -P FORWARD DROP

#########################################################
# 127.0.0.0/8 used to need an entry in INTERNAL_LAN
#########################################################
${IPTABLES} -t filter -A INPUT -s 127.0.0.1 -j ACCEPT


#########################################################
# Local traffic to internet or crossing subnets
#########################################################
${IPTABLES} -t filter -A INPUT   -s ${INTERNAL_LAN}  -d 0/0             -j ACCEPT
${IPTABLES} -t filter -A INPUT   -s 0/0              -d ${INTERNAL_LAN} -j ACCEPT
${IPTABLES} -t filter -A FORWARD -s ${INTERNAL_LAN}  -d 0/0             -j ACCEPT
${IPTABLES} -t filter -A FORWARD -s 0/0              -d ${INTERNAL_LAN} -j ACCEPT
#${IPTABLES} -t filter -A FORWARD -d ${INTERNAL_LAN} -m state --state ESTABLISHED,RELATED -j ACCEPT


#########################################################
# Source NAT
#########################################################
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_DNS}     -o eth0 -j SNAT --to ${INTERNET_DNS_MAIN}
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_SMTP}    -o eth0 -j SNAT --to ${INTERNET_SMTP}
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_POP3}    -o eth0 -j SNAT --to ${INTERNET_POP3}
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_HTTP1}   -o eth0 -j SNAT --to ${INTERNET_HTTP1}
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_HTTP2}   -o eth0 -j SNAT --to ${INTERNET_HTTP2}
${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_LAN}     -o eth0 -j SNAT --to ${INTERNET_USER}



#########################################################
# Masquerading
#########################################################
#${IPTABLES} -t nat -A POSTROUTING -s ${INTERNAL_LAN}     -o eth0 -j MASQUERADE


#########################################################
# Port Forwarding
#########################################################
# SMTP
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_SMTP}  --dport 25 -j DNAT --to ${INTERNAL_SMTP}:25
# DNS
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_DNS_MAIN}   --dport 53 -j DNAT --to ${INTERNAL_DNS}:53
${IPTABLES} -t nat -A PREROUTING -i eth0 -m udp -p UDP -s 0/0 -d ${INTERNET_DNS_MAIN}   --dport 53 -j DNAT --to ${INTERNAL_DNS}:53
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_DNS_SUB}    --dport 53 -j DNAT --to ${INTERNAL_DNS}:53
${IPTABLES} -t nat -A PREROUTING -i eth0 -m udp -p UDP -s 0/0 -d ${INTERNET_DNS_SUB}    --dport 53 -j DNAT --to ${INTERNAL_DNS}:53
# HTTP
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_HTTP1} --dport 80 -j DNAT --to ${INTERNAL_HTTP1}:80
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_HTTP2} --dport 8000 -j DNAT --to ${INTERNAL_HTTP2}:8000
# POP3
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_POP3} --dport 110 -j DNAT --to ${INTERNAL_POP3}:110

# MMS
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_FILE} --dport 1755 -j DNAT --to ${INTERNAL_FILE}:1755
${IPTABLES} -t nat -A PREROUTING -i eth0 -m udp -p UDP -s 0/0 -d ${INTERNET_FILE} --dport 1755 -j DNAT --to ${INTERNAL_FILE}:1755

${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_HTTP2} --dport 1755 -j DNAT --to ${INTERNAL_HTTP2}:1755
${IPTABLES} -t nat -A PREROUTING -i eth0 -m udp -p UDP -s 0/0 -d ${INTERNET_HTTP2} --dport 1755 -j DNAT --to ${INTERNAL_HTTP2}:1755


# msn-dcc
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_USER} --dport 6891:6901 -j DNAT --to-destination ${INTERNAL_USER}:6891-6901
# soribada-dcc
${IPTABLES} -t nat -A PREROUTING -i eth0 -m tcp -p TCP -s 0/0 -d ${INTERNET_USER} --dport 9001:9004 -j DNAT --to-destination ${INTERNAL_USER}:9001-9004
# soribada-dcc
${IPTABLES} -t nat -A PREROUTING -i eth0 -m udp -p UDP -s 0/0 -d ${INTERNET_USER} --dport 9001:9004 -j DNAT --to-destination ${INTERNAL_USER}:9001-9004
# Terminal
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d  ${INTERNET_HTTP2}   --dport 3389 -j DNAT --to ${INTERNAL_HTTP2}:3389
# FTP
#${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d  ${INTERNET_LCL}   --dport 21 -j DNAT --to 100.100.100.113:21
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d  ${INTERNET_HTTP2}   --dport 209 -j DNAT --to ${INTERNAL_HTTP2}:209
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d  ${INTERNET_HTTP2}   --dport 210 -j DNAT --to ${INTERNAL_HTTP2}:210


#PRIV1
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV1}   --dport 20   -j DNAT --to 100.100.100.111:20
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV1}   --dport 21   -j DNAT --to 100.100.100.111:21
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV1}   --dport 53   -j DNAT --to 100.100.100.111:53
${IPTABLES} -t nat -A PREROUTING -p UDP -s 0/0 -d ${INTERNET_PRIV1}   --dport 53   -j DNAT --to 100.100.100.111:53
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV1}   --dport 88   -j DNAT --to 100.100.100.111:88
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV1}   --dport 3389 -j DNAT --to 100.100.100.111:3389

#PRIV2
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV2}   --dport 20   -j DNAT --to 100.100.100.113:20
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV2}   --dport 21   -j DNAT --to 100.100.100.113:21

#PRIV3
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV3}   --dport 20   -j DNAT --to 100.100.100.108:20
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV3}   --dport 21   -j DNAT --to 100.100.100.108:21
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV3}   --dport 8080 -j DNAT --to 100.100.100.108:80
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV3}   --dport 3389 -j DNAT --to 100.100.100.108:3389

#PRIV4
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV4}   --dport 20   -j DNAT --to 100.100.100.106:20
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV4}   --dport 21   -j DNAT --to 100.100.100.106:21
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV4}   --dport 3389 -j DNAT --to 100.100.100.106:3389

#PRIV5
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV5}   --dport 3389 -j DNAT --to 100.100.100.107:3389
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV5}   --dport 8000 -j DNAT --to 100.100.100.107:8000

#PRIV6
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV6}   --dport 20   -j DNAT --to 100.100.100.112:20
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV6}   --dport 21   -j DNAT --to 100.100.100.112:21
${IPTABLES} -t nat -A PREROUTING -p TCP -s 0/0 -d ${INTERNET_PRIV6}   --dport 4000 -j DNAT --to 100.100.100.112:4000


#########################################################
# eth0 으로 들어오는 패킷에 대한 기본정책(모든 프로토콜과 포트)
#########################################################
${IPTABLES} -N Gl-In
${IPTABLES} -A INPUT -i eth0 -j Gl-In
# Ping Floods (ICMP echo-request)
${IPTABLES} -A Gl-In -m icmp -p ICMP  --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# pong accept
${IPTABLES} -A Gl-In -m icmp -p ICMP  --icmp-type echo-reply                        -j ACCEPT
# Allowing the rest of the ICMP messages in...
${IPTABLES} -A Gl-In -m icmp -p ICMP  --icmp-type ! echo-request                    -j ACCEPT
# SYN Packet DROP
${IPTABLES} -A Gl-In -m tcp  -p TCP ! --syn                                         -j ACCEPT
# ftp
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 20                                       -j ACCEPT
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 21                                       -j ACCEPT
# SMTP accept
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 25                                       -j ACCEPT
# dns c/s accept
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 53                                       -j ACCEPT
${IPTABLES} -A Gl-In -m udp -p UDP --dport 53                                       -j ACCEPT
# http
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 80                                       -j ACCEPT
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 8000                                       -j ACCEPT

# pop3
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 110                                      -j ACCEPT

# msn
${IPTABLES} -A Gl-In -m tcp -p TCP --dport 6891:6901                                      -j ACCEPT


#########################################################
# eth0 으로 나가는 기본정책
#########################################################
${IPTABLES} -N Gl-Out
${IPTABLES} -t filter -A OUTPUT -o eth0 -j Gl-Out
${IPTABLES} -A Gl-Out -m state --state ESTABLISHED,RELATED      -j ACCEPT
${IPTABLES} -A Gl-Out -s 0/0                -d ${INTERNAL_LAN}  -j ACCEPT
${IPTABLES} -A Gl-Out -s ${INTERNAL_LAN}    -d 0/0              -j ACCEPT
${IPTABLES} -A Gl-Out                                           -j DROP


#########################################################
# eth1 으로 들어오는 기본정책
#########################################################
${IPTABLES} -N zk-In
${IPTABLES} -A INPUT -i eth1 -j zk-In
${IPTABLES} -A zk-In -p TCP  -m state --state NEW -s ${INTERNAL_LAN} -j ACCEPT
${IPTABLES} -A zk-In         -m state --state ESTABLISHED,RELATED    -j ACCEPT
${IPTABLES} -A zk-In -s ${INTERNAL_LAN} -d 0/0                       -j ACCEPT
${IPTABLES} -A zk-In -s 0/0             -d ${INTERNAL_LAN}           -j ACCEPT
${IPTABLES} -A zk-In                                                 -j DROP


#########################################################
# eth1 으로 나가는 기본정책
#########################################################
${IPTABLES} -N zk-Out
${IPTABLES} -t filter -A OUTPUT -o eth1 -j zk-Out
${IPTABLES} -A zk-Out -m state --state ESTABLISHED,RELATED               -j ACCEPT
${IPTABLES} -A zk-Out -p TCP -s 0/0                -d ${INTERNAL_LAN}    -j ACCEPT
${IPTABLES} -A zk-Out -p TCP -s ${INTERNAL_LAN}    -d 0/0                -j ACCEPT
${IPTABLES} -A zk-Out                                                    -j DROP


#########################################################
#포워딩되는 기본정책
#########################################################
${IPTABLES} -N zk-FORWARD                                                        
${IPTABLES} -t filter -A FORWARD -j zk-FORWARD                                                                    
${IPTABLES} -A zk-FORWARD -m state --state ESTABLISHED,RELATED          -j ACCEPT                                          
${IPTABLES} -A zk-FORWARD -d 0/0 -i eth0 -p tcp --syn --dport 6891:6901 -j ACCEPT # msn-dcc                      
${IPTABLES} -A zk-FORWARD -d 0/0 -i eth0 -p tcp --syn --dport 9001:9004 -j ACCEPT # 소리바다                      
${IPTABLES} -A zk-FORWARD -d 0/0 -i eth0 -p udp       --dport 9001:9004 -j ACCEPT # 소리바다                      

# 스트링 검사
${IPTABLES} -A zk-FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "default.ida" -j REJECT --reject-with tcp-reset
${IPTABLES} -A zk-FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "cmd.exe"     -j REJECT --reject-with tcp-reset
${IPTABLES} -A zk-FORWARD -p tcp --tcp-flags ACK ACK --dport 80 -m string --string "root.exe"    -j REJECT --reject-with tcp-reset

${IPTABLES} -A zk-FORWARD                                               -j ACCEPT


#########################################################
# Service mangle optimizations
#########################################################
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport 22 -j TOS --set-tos Minimize-Delay
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport 20 -j TOS --set-tos Minimize-Cost
${IPTABLES} -t mangle -A OUTPUT -p tcp --dport 21 -j TOS --set-tos Minimize-Delay


#########################################################
# Include Modules
#########################################################
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp


#All done!
echo "Done loading the firewall!"


# -- zekill@shinbiro.com
2007/09/01 23:28 2007/09/01 23:28
##################################################
# iptables script                                #
# written by zekill                              #
# DO NOT USE THE -t (table) OPTION IN THIS FILE! #
##################################################

*filter
# default
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# loopback accept
-A INPUT -s 127.0.0.1 -j ACCEPT

# local ip accept
-A INPUT -s 192.168.0.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -j ACCEPT

# syn packet drop
-A INPUT -i eth0 -m tcp -p TCP ! --syn -j ACCEPT

# dns c/s accept
#-A INPUT -i eth0 -m udp -p TCP --dport 53 -j ACCEPT
#-A INPUT -i eth0 -m udp -p UDP --dport 53 -j ACCEPT

# ftp
-A INPUT -i eth0 -m tcp -p TCP --dport 209 -j ACCEPT
-A INPUT -i eth0 -m tcp -p TCP --dport 210 -j ACCEPT

# http & ssl
-A INPUT -i eth0 -m tcp -p TCP --dport 8000 -j ACCEPT
#-A INPUT -i eth0 -m tcp -p TCP --dport 443 -j ACCEPT

# pong accept
-A INPUT -i eth0 -m icmp -p ICMP --icmp-type echo-reply -j ACCEPT

# established & related Accept (ex: ftp-data connect)
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# my IB com
-A INPUT -s xxx.xxx.xxx.0/24 -j ACCEPT

COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

# start address change
#-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to xxx.xxx.xxx.20

# Masquerade
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

# ftp posting
#-A PREROUTING -i eth0 -m tcp -p TCP --dport 209 -j DNAT --to 192.168.0.2:209
#-A PREROUTING -i eth0 -m tcp -p TCP --dport 210 -j DNAT --to 192.168.0.2:210

# http & ssl posting
#-A PREROUTING -i eth0 -m tcp -p TCP --dport 8000 -j DNAT --to 192.168.0.2:80
#-A PREROUTING -i eth0 -m tcp -p TCP --dport 443 -j DNAT --to 192.168.0.2:443

# Terminal Service posting
-A PREROUTING -i eth0 -m tcp -p TCP --dport 3389 -j DNAT --to 192.168.0.2:3389

COMMIT

*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A PREROUTING -p tcp --sport 22 -j TOS --set-tos Minimize-Delay
-A PREROUTING -p tcp --sport 210 -j TOS --set-tos Minimize-Delay
-A PREROUTING -p tcp --sport 209 -j TOS --set-tos Maximize-Throughput

-A OUTPUT -p tcp --dport 22 -j TOS --set-tos Minimize-Delay
-A OUTPUT -p tcp --dport 210 -j TOS --set-tos Minimize-Delay
-A OUTPUT -p tcp --dport 209 -j TOS --set-tos Maximize-Throughput

COMMIT
2007/09/01 23:27 2007/09/01 23:27
IP alias
이 기능을 사용하기 전에 먼저 커널에 ip_alias.o 모듈이 올라가 있는지 확인

lsmod 로 확인 가능

1.
/etc/sysconfig/network-script/ifcfg-eth0  파일을
/etc/sysconfig/network-script/ifcfg-eth0:0 이라는 이름으로 복사


2.
/etc/sysconfig/network-script/ifcfg-eth0:0
파일을 alias 할 IP 와 기타 정보를 수정하고, DEVICE=eth0:0 으로 수정


3.
/sbin/ifconfig eth0:0 up  명령을 실행한다음
/sbin/ifconfig 명령으로 확인


한번설정해 주시면 리부팅후에도 ifcfg-eth0:0 파일이 존재하는한 계속 적용
2007/09/01 23:25 2007/09/01 23:25
카카카 밑에보듯이 2001년에 어딘지모르는곳에서 퍼온글......
요샌 이정도는 기본세팅으로 되려낭....요샌 리눅스만저본지가 오래되서리..-0-;;;;


리눅스 설치후 초기보안 설정법
--------------------------------------------------------------------------------


작성일자 : 2001년 06월 30일
작성자 : yjchung
조회수 : 25655

--------------------------------------------------------------------------------
보안에 대한 약간내용을 정리해 보았습니다.

1. 서버로 사용할 예정이라면 X-Window는 설치하지 않는다
2. ps aux 또는 ps auxc로 확인하여 불필요한 데몬은 띄우지 않는다.
기본적으로 portmap / identd / atd / lpd /gp -t / xfs 등은 삭제.
3. /etc/rc.d/rc3.d에서 불필요한 서비스는 삭제한다.
4. 불필요한 계정은 삭제 한다.
ftp, xfs, adm, lp, newes, gopher를 /etc/passwd와 /etc/group 에서 주석처리 또는 userdel uid, groupdel gid를 하면 된다.
#userdel adm
#userdel lp
#userdel sync
#userdel shutdown
#userdel halt
#userdel news
#userdel uucp
#userdel operator
#userdel games
#userdel gopher
#userdel ftp (anymous FTP server를 운영하지 않으면 삭제 한다.)
#groupdel adm
#groupdel lp
#groupdel news
#groupdel uucp
#groupdel games
#groupdel dip
#groupdel pppusers
#gropudel slipusers

5. 퍼미션 설정변경-몇몇 중요한 설정 파일의 퍼미션을 변경하영 일반 유저들의 접근을 제한한다.

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/umonut
chmod 700 /sbin/netreport 로 사용을 불가능하게 한다.

chattr +i /etc/fstab와 같이 속성에 Lock을 걸어 파일을 수정 할 수 없게 한다.

6. 시스템 관련 명령어를 특정 그룹에서만 사용가능 하도록 설정
(특정적인 사용자에게만 권한을 줄 수 있다.)
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

- /etc/group을 열어
wheel:x:10:root,tt 와 같이 tt 라는 계정을 wheel 그룹에 추가 한다.
그러면, root를 포함하여 wheel 그룹에 속한 tt라는 계정만이 위 명령어를 수행할 수 있다.
2007/09/01 23:24 2007/09/01 23:24