当前位置:Linux教程 - Linux综合 - 简易防火墙建置与流量统计之二

简易防火墙建置与流量统计之二

  § 2.7 测试 以 eth1 做为对内的网络介面,其虚拟 IP 位址为 192.168.1.0 ~ 192.168.1.255,因为其第一个为网络号码,最后一个为广播号,所以可用的虚拟 IP 为 192.168.0.1 ~ 192.168.255.254,我们将闸道器(gateway)设为 192.168.0.1、子网络遮罩设为 255.255.255.0,将 192.168.1.2 ~ 192.168.1.254 之间的 IP 分配给内部的机器,之后内部的机器就可以互相通讯(‘ping’),但对于要连出去,还需要一个步骤,那就是使用一支程序,ipchains 来达成这个目的。先针对上述的问题,如果要让内部的机器连接到外部的网络,可先执行: /sbin/ipchains -A forward -s 192.168.0.0/24 - d 0.0.0.0/0 -j MASQ /sbin/ipchains -P forward DENY 第一个命令会将来源 192.168.0.0 ~ 192.168.255.255 的封包使用 IP 伪装,将伪装的封包送转送给预设的路由,到外部的网络。 第二个命令会将 forward 的预设政策设为 DENY。 你可以将这两行命令加在 /etc/rc.d/rc.local 档案中,使其每次开机时执行。 对于 ipchains 的使用,会在下面作更详细的说明。 第 3 章 封包过滤防火墙ipchains 若你使用的是新版的 Linux,里面都会有 ipchains 的套件,直接使用就可以让你建立封包过滤防火墙。 § 3.1 ipchains语法 其选项、来源 ip、目的地 ip、port 可以不加,表示为全部。 ipchains语法: ipchains 命令 input/forward/output 选项 源ip Port 目的ip port -j目标 范例: ipchains -A input -p all -s 192.168.1.2 -d eef.oit.edu.tw 23 -j DENY § 3.2 ipchains命令 可以有两种形式来指定,全名方式或缩写方式来表示 --add -A 增加新的 ipchains 规则 --delete -D 删除第一个 ipchains 规则,或某一个 ipchains 规则 --inser -I 插入一个新 ipchains 规则,其插入需指定规则中的数字,如果数字为 1 表示为第一个。 --replace -R 取代所选择的规则,其取代需指定规则中的数字。 --list -L 列出所选择设定的 ipchains 规则,如果没有规则被指定,会列出所有的规则出来。 --flush -F 将某个 ipchains 规则清除(例如:input、output、forward)这相当于去删除掉规则的功效。 --zero -Z 将所有规则中的封包和位元组计数器归零它也可以去指定-L, --list (list) 选项,会先列出之前的资料,再列出归零的资料。 --check -C 检查封包是否违反所设的规则,这是一个相当有用的测试,其是-s (来源), -d (目的地), -p(协定), -i (界面)更是必要。 --new -N 产生一个新的使用者定义规则(user-defined)。 --delete-chain -X 删除使用者定义的规则,如果没有指定任何的参数,它将会所有的定义的规则。 --policy -P 设定目标的政策,只有 input,forward,output 可以去设定。 --masquerade -M 这个选项可以去查看现在的伪装连接状况(须加上-L 选项),或是去设定 kernel 伪装参数(-S选项)。 --set -S 设定伪装停止时间变数 --help -h 列出描述命令语法的说明。 § 3.3 ipchains参数选项 可以有两种形式来指定,全名方式或缩写方式来表示 使用’!’去定义相反的意义:惊叹号’!’有’not’的意义,有许多选项可以加上’!’去使用,表示不是的意思。 例如: -s ! localhost 说明: 表示除了localhost的来源位址都可以。 --proto -p [!] protocol 协定:可以用数字或名字,例如:tcp、icmp、udp及all。 范例: ipchains -A input -p tcp -s 192.168.1.3 -d eef.oit.edu.tw FTP -j DENY 说明: 源地址为 192.168.1.3 的主机不能对 eef.oit.edu.tw 这台主机做 ftp 的动作请求。
[1] [2] 下一页 

-- source -s [!] 指定来源位址。 --source-port [!] port 指定来源的port。 --destination -d [!] 指定目的地位址 --destination-port [!] 指定目的地的port --icmp-type [!] 类型名称,指定ICMP类型 --interface -i [!] 网络接口名称 ,lo、eth0、eth1。 -- jump -j 指定规则的目标,如果没有指定的话,这条规则算是没有用处。 --numeric -n 取消DNS查询,直接使用IP -- log -l 将关于ipchains的讯息记录起来,记录于/var/log/messages内。 -- verbose -v 完整模式,会列出界面名称、规则、TOS伪装,封包和位元组计数也会列出,须和-L一起使用。 [!] --syn -y 只有当SYN设定时才会符合TCP封包 --TOS -t Type Of Service [!] --version -V 列出ipchains的版本 --bidirectional -b 双向模式

(出处:http://www.sheup.com)


上一页 [1] [2]