作者 主題: 如要執行關於防火牆的Script  (閱讀 10278 次)

0 會員 與 1 訪客 正在閱讀本文。

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 於: 2002-01-09 16:30 »
如要執行貴站網中人大大在Linux Servers中所寫的防火牆的Script,需要哪些核心或模組?
要怎樣檢查這些有存在?
謝謝~

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #1 於: 2002-01-09 16:44 »
目前的 script 是給 2.2.x 核心使用的﹐如果您使用 2.4.x 核心﹐請參考這隻﹕


#!/bin/bash
#
# Script name: ipt_masq
# A simple script for masquerading, used in Linux (kernel 2.4.x).
#
# Copyleft 2002 by netman (netman@study-area.org).
#
# Redistribution of this file is permitted under the terms of
# the GNU General Public License (GPL).
#
# Date: 2002/01/08
# Version: 1.0

PATH=/sbin:/usr/sbin:/bin:/usr/bin
EXT_IF=ppp0
INT_IF=eth0

#
# ------------- ensure iptables ----------
CHK_IPTABLES=$(which iptables 2>/dev/null)
if [ -z "$CHK_IPTABLES" ]; then
   echo
   echo "$(basename $0): iptables program is not found."
   echo "   Please install the program first."
   echo
   exit 1
fi
# ------------- disable ipchains ----------
CHK_IPCHAINS=$(which ipchains 2>/dev/null)
CHK_IPCHAINS_M=$(lsmod | grep ipchains)
if [ -n "$CHK_IPCHAINS" ] && [ -n "$CHK_IPCHAINS_M" ]; then
   echo "Disabling ipchains..."
   /etc/rc.d/init.d/ipchains stop &>/dev/null
      || ipchains -F &>/dev/null
   rmmod ipchains
fi

# ------------- modules -----------
echo "Loading modules..."
modprobe ip_tables || exit 2
modprobe ip_conntrack_ftp
# --- all nat modules as well ---
for file in /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/ip_nat_*.o
do
   module=$(basename $file)
   modprobe ${module%.*}
done

# ------------- ipforwarding -----------
echo "Turning on IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward

# ------------- anti spoofing -----------
echo "Turning on anti-spoofing..."
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
   echo "1" > $file
done

# ------------- flushing ----------
echo "Cleaning up..."
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

# ------------- policies -------------
echo "Setting up policies to ACCEPT..."
iptables -P INPUT   ACCEPT
iptables -P OUTPUT   ACCEPT
iptables -P FORWARD   ACCEPT
iptables -t nat -P PREROUTING   ACCEPT
iptables -t nat -P POSTROUTING   ACCEPT

# ------------- ICMP -------------
echo "Creating icmpfilter chain..."
iptables -N icmpfilter
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    echo-request -j DROP
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    echo-reply -j ACCEPT
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    destination-unreachable -j ACCEPT
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    parameter-problem -j ACCEPT
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    source-quench -j ACCEPT
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    time-exceeded -j ACCEPT
iptables -A icmpfilter -i $EXT_IF -p icmp --icmp-type
    fragmentation-needed -j ACCEPT

# ------------- block -------------
echo "Creating block chain..."
iptables -N block
iptables -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A block -m state --state NEW,INVALID -i $EXT_IF -j DROP
iptables -A block -m state --state NEW -i ! $EXT_IF -j ACCEPT
iptables -A block -j DROP

# ------------- filter -------------
echo "Filtering packets..."
iptables -A INPUT -j icmpfilter
iptables -A INPUT -j block
iptables -A FORWARD -j icmpfilter
iptables -A FORWARD -j block

# ------------- masq -------------
echo "Masquerading internel network ...."
iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

# ------------- tproxy -------------
CHK_SQUID=$(/etc/rc.d/init.d/squid status 2>/dev/null | grep pid)
if [ -n "$CHK_SQUID" ]; then
    echo "Enabling transparent proxy...."
    INT_IP=$(ifconfig | grep $INT_IF -A 1
        | awk '/inet/ {print $2}' | sed -e s/addr://)
    if [ -z "$INT_IP" ]; then
        echo
        echo "$(basename $0): there is no IP found on $INT_IF."
        echo "  Please make sure $INT_IF is setup properly."
        echo
        exit 3
    fi
    iptables -t nat -A PREROUTING -d $INT_IP -i $INT_IF
        -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -t nat -A PREROUTING -i $INT_IF -p tcp -m tcp
        --dport 80 -j REDIRECT --to-ports 3128
fi
exit 0

## EOS




...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #2 於: 2002-01-09 18:16 »
好補喔.... :razz:

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #3 於: 2002-01-09 21:04 »
非常謝謝網中人大大提供這麼好的Script,
我的核心是2.2.14,
看樣子我可能要嘗試更新核心了

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #4 於: 2002-01-10 14:01 »
哦﹐如果您是 2.2.x 核心﹐將我提供的 script 下載回去﹐用 tar 解開就可以用了。

(可能需要修改一下界面設定)

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #5 於: 2002-01-11 14:59 »

我執行貴站網中人大大在Linux Servers中所寫的防火牆的Script後
~/ipchains.masq
顯示如下:
Turning on IP forwarding...
Turning on MASQ modules...
cleaning up rules...
Deny all...
Allow local network...
Turning on anti-spoofing...
Allow common protocols and optimizing...
ipchains: invalid port/service 'https' specified
Try 'ipchains -h' or 'ipchains --help' for more information.
Accept turn-back only...
Allow DNS...
Allow ICMP...
Allow FTP...
Allow ICQ...
Turning on MASQ...
Current firewall status:
/proc/sys/met/ipv4/ip_forward:1
INT_NET is 192.168.0.0/255.255.255.0 on eth1 with 192.168.0.3

請問是那裡有問題?

謝謝~

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #6 於: 2002-01-11 16:55 »
ipchains: invalid port/service 'https' specified
Try 'ipchains -h' or 'ipchains --help' for more information.

似乎只有這句有問題而已﹐您輸入下面命令的結果是什麼﹖

grep https /etc/services

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #7 於: 2002-01-11 17:57 »

我下完命令後沒有顯示什麼結果 , 以下是我下命令及完命令後顯示情形
# grep https /etc/services
#

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #8 於: 2002-01-11 20:06 »
那您用的版本是什麼呢﹖

如果是 Redhat7.1 的話﹐最起碼可以看到﹕

https        443/tcp                 # Mcom
https        443/udp                 # Mcom

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #9 於: 2002-01-11 21:12 »

我用的版本是OpenLinux eDesktop 2.4 ,
它的Linux 基本軟體:
Linux 核心 2.2.14
glibc 2.1.2-3
libc 5-1.0-2

麻煩網中人大大了,
謝謝~

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #10 於: 2002-01-12 15:16 »

請問https是做什麼用的

謝謝~

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #11 於: 2002-01-12 16:03 »
http + ssl

KK

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
如要執行關於防火牆的Script
« 回覆 #12 於: 2002-01-12 16:10 »

這樣說來 , 就是我的版本沒有支援https了,
這樣沒有關係吧?

Anonymous

  • 訪客
如要執行關於防火牆的Script
« 回覆 #13 於: 2002-01-12 23:15 »
沒關係﹐在 sciprt 中找到 https 那行﹐然後刪除或註解解就可以。

或是﹐可以根本不理會那個錯誤信息。