>> Delete No. 37959 article
No. 고수님 이것좀 봐주세요.. 브릿지를 이요한
iptables......

등록 2001-12-24 16:30:00 By localhost     조회 2
이름 ych3372    

		다름이 아니라 전 브릿지를 이요한 방화벽 설치를 하는데..
iptables로 합니다. 브릿지 사이트 가보니까 커널 2.4.16으로 업을 하고
패치를 하면 iptables를 사용할수 있다고 합니다.
그전에는 2.2.20으로 ipchains를 이용하면.. 잘 썼었는데... -.-''
 #!/bin/sh
#
# TOS(Type of Service)
# minimum delay		0x10
# maximum throughput	0x08
# maximum reliability	0x04
# minimum cost		0x02
# nomarl service	0x00
#!! Minimize-Delay 16 (0x10)
#!! Maximize-Throughput 8 (0x08)
#!! Maximize-Reliability 4 (0x04)
#!! Minimize-Cost 2 (0x02)
#!! Normal-Service 0 (0x00)
 ################################################################
echo ""
echo "Setting BRIDGE - FireWall ... start "
 IPTABLES="/sbin/iptables"
 # 체인 추가
# input, output, forward는 ipchain의 기본 체인임.
# shbridge은 브릿지를 관통하는(forward되는) 체인임.
# waninput은 wan에서 redzone 서버로 들어오는 체인임.
# laninput은 lan에서 reazone 서버로 들어오는 체인임.
# br_out은 redzone 서버에서 외부로 나가는 체인임.
   echo " RESET NETWORK FOR PACKET FILTERING SERVICE"
    echo
 
    CHKCHAIN=0
 
    # 서비스를 시작하기전 초기화
    echo "  * Reset Basic Table"
    ${IPTABLES} -Z
    CHKCHAIN=$?
    echo -n "  Reset Chain Counter          : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -P INPUT ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All INPUT Chain       : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -F INPUT
    CHKCHAIN=$?
    echo -n "  Remove rule of INPUT Chain   : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -P OUTPUT ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All FORWARD Chain       : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -F FORWARD
    CHKCHAIN=$?
    echo -n "  Remove rule of FORWARD Chain   : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -P FORWARD ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All OUTPUT Chain       : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -F OUTPUT
    CHKCHAIN=$?
    echo -n "  Remove rule of OUTPUT Chain   : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
     ${IPTABLES} -P SHBRIDGE ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All SHBRIDGE Chain       : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
     ${IPTABLES} -F SHBRIDGE
    CHKCHAIN=$?
    echo -n "  Remove rule of SHBRIDGE Chain   : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
      echo
    echo "  * Reset NAT Table"
    ${IPTABLES} -t nat -Z
    CHKCHAIN=$?
    echo -n "  Reset NAT Tabel Counter      : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t nat -P PREROUTING ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All PREROUTING Chain  : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t nat -F PREROUTING
    CHKCHAIN=$?
    echo -n "  Remove rule of PREROUTING    : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t nat -P POSTROUTING ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All POSTROUTING Chain : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t nat -F POSTROUTING
    CHKCHAIN=$?
    echo -n "  Remove rule of POSTROUTING   : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
 
    echo
    echo "  * Reset Mangle Table"
   
    ${IPTABLES} -t mangle -Z
    CHKCHAIN=$?
    echo -n "  Reset MANGLE Tabel Counter      : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t mangle -P PREROUTING ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All PREROUTING Chain  : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t mangle -F PREROUTING
    CHKCHAIN=$?
    echo -n "  Remove rule of PREROUTING    : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t mangle -P OUTPUT ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All OUTPUT Chain      : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
   
    ${IPTABLES} -t mangle -F OUTPUT
    CHKCHAIN=$?
    echo -n "  Remove rule of OUTPUT        : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
      ${IPTABLES} -t mangle -P SHBRIDGE ACCEPT
    CHKCHAIN=$?
    echo -n "  Accept All SHBRIDGE Chain      : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
     ${IPTABLES} -t mangle -F SHBRIDGE
    CHKCHAIN=$?
    echo -n "  Remove rule of SHBRIDGE        : "
    [ "${CHKCHAIN}" -eq 0 ] && echo "OK"
    [ "${CHKCHAIN}" -ne 0 ] && echo "Failed"
      KPCHK=0
      # ip 주소를 스푸핑한다고 예상되는 경우 로그에 기록하기
 
    echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
    KPCHK=$?
    echo -n "  * Logged Spoofing check : "
    [ "${KPCHK}" -eq 0 ] && echo "OK"
    [ "${KPCHK}" -ne 0 ] && echo "Failed"
     # 브로드캐스트, 멀티캐스트 주소에 ICMP 메시지 보내는것 막기
    # "smurf" 공격 방지용
    # 아래에서 해당 조항 참고
    # 커널 2.2 이상에 해당
 
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
    KPCHK=$?
    echo -n "  * Deny Ping at BroadCast : "
    [ "${KPCHK}" -eq 0 ] && echo "OK"
    [ "${KPCHK}" -ne 0 ] && echo "Failed"
 ## LOG 형식
LOGFORMAT="-m limit --limit 1/h --limit-burst 3 -j LOG"
 ###### WAN TO LAN (eth1)######
echo " WAN TO LAN "
${IPTABLES} -A SHBRIDGE -s xxx.xxx.xxx.xxx -d xxx.xxx.xxx.xxx -o eth1 -j
ACCEPT
${IPTABLES} -A SHBRIDGE -s xxx.xxx.xxx.xxx/25 -d xxx.xxx.xxx.xxx/25 -o
eth1 -j DROP
${IPTABLES} -A SHBRIDGE -p icmp -s 0/0 -d xxx.xxx.xxx.xxx/25 -o eth1 -j
DROP 
${IPTABLES} -A SHBRIDGE -p tcp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx --dport 80 -o eth1 -j ACCEPT ${LOGFORMAT} --log-prefix
${IPTABLES} -A SHBRIDGE -p tcp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx --dport 80 -o eth1 -j ACCEPT
${IPTABLES} -A SHBRIDGE -p tcp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx --dport 23 -o eth1 -j ACCEPT   
${IPTABLES} -A SHBRIDGE -p tcp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx/25 --dport 137:139 -o eth1 -j DROP ${LOGFORMAT} --log-
prefix
${IPTABLES} -A SHBRIDGE -p udp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx/25 --dport 137:139 -o eth1 -j DROP ${LOGFORMAT} --log-
prefix
${IPTABLES} -A SHBRIDGE -p udp -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx/25 -o eth1 -j DROP 
${IPTABLES} -A SHBRIDGE -p all -s ! xxx.xxx.xxx.xxx/25 -d
xxx.xxx.xxx.xxx/25 -o eth1 -j ACCEPT 
#${IPTABLES} -A SHBRIDGE -m state --state INVALID -j DROP
   ##### LAN TO WAN (eth0)#####
echo " LAN TL WAN "
${IPTABLES} -A SHBRIDGE -s xxx.xxx.xxx.xxx/25 -d ! xxx.xxx.xxx.xxx/25  -
o eth0 -j ACCEPT
${IPTABLES} -A SHBRIDGE -s xxx.xxx.xxx.xxx/25 -d ! xxx.xxx.xxx.xxx/25  -
o eth0 -j ACCEPT 
 ##### LAN TO LAN (eth0)#####
echo " LAN TO LAN "
${IPTABLES} -A SHBRIDGE -s xxx.xxx.xxx.xxx/25 -d xxx.xxx.xxx.xxx/25  -o
eth0 -j ACCEPT
  # TOS 설정
    #
    echo
    echo "TOS Configuration"
    echo
 
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -s 0/0 --sport 80 -j TOS --
set-tos 0x10
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -d 0/0 --dport 21 -j TOS --
set-tos 0x10
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -d 0/0 --dport 22 -j TOS --
set-tos 0x10
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -d 0/0 --dport 23 -j TOS --
set-tos 0x10
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -d 0/0 --dport 23 -j TOS --
set-tos 0x10
    ${IPTABLES} -t mangle -A SHBRIDGE -p tcp -s 0/0 --sport 20 -j TOS --
set-tos 0x08
 대충 이렇게 설정을 했습니다.
전 2.4.16으로 커널업했구여.. 마스커 레이딩을 사용하지 않고 있습니다.
조기 위에 mangle은 어떨때 쓰는건지여..
그럼 고수님들 한수 부탁드립니다.
여기 저기 고수님들이 만들어 놓은걸 그대로 뺏겨다가.. 지금 테스트 중인데..
잘 되질 않네요.. 그럼 수고 하세요..--알고픈놈.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved