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

등록 2001-12-24 16:30:00     조회 1
이름 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은 어떨때 쓰는건지여..
그럼 고수님들 한수 부탁드립니다.
여기 저기 고수님들이 만들어 놓은걸 그대로 뺏겨다가.. 지금 테스트 중인데..
잘 되질 않네요.. 그럼 수고 하세요..--알고픈놈.
이름
암호
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 1.04 초 ] 작업시간: [ 0.01 초 ]

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

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789476388
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.