因胸联盟 发表于 2015-1-16 17:16:53

来讲讲:利用Linux体系Iptables防火墙

使用gcc或g++进行编译,使用gdb进行调试;
Linux的内置firewall机制,是经由过程kernel中的netfilter模块完成的(www.netfilter.ort)。Linuxkernel利用netfilter对收支的数据包举行过滤,netfilter由三个划定规矩表构成,每一个表又有很多内建的链构成。经由过程利用iptables命令能够对这些表链举行操纵,如增加、删除和列出划定规矩等。
  1、Netfilter划定规矩表―filternatmangle
  filter,用于路由收集数据包。是默许的,也就是说假如没有指定-t参数,当创立一条新划定规矩时,它会默许寄存到该表内。
  INPUT收集数据包流向服务器
  OUTPUT收集数据包从服务器流出
  FORWARD收集数据包经服务器路由
  nat,用于NAT表.NAT(NetAddressTranslation)是一种IP地点转换办法。
  PREROUTING收集数据包抵达服务器时能够被修正
  OUTPUT收集数据包由服务器流出
  POSTROUTING收集数据包期近将从服务器收回时能够被修正
  mangle,用于修正收集数据包的表,如TOS(TypeOfService),TTL(TimeToLive),等
  INPUT收集数据包流向服务器
  OUTPUT收集数据包流出服务器
  FORWARD收集数据包经过服务器转发
  PREROUTING收集数据包抵达服务器时能够被修正
  POSTROUTING收集数据包期近将从服务器收回时能够被修正
  1.设置Iptables
  当数据包进进服务器时,LinuxKernel会查找对应的链,直到找到一条划定规矩与数据包婚配。假如该划定规矩的target是ACCEPT,就会跳多余下的划定规矩,数据包会被持续发送。假如该划定规矩的target是DROP,该数据包会被拦阻失落,kernel不会再参考其他划定规矩。
  Note:假如从始至终都没有一条划定规矩与数据包婚配,并且表开端又没有dropall的划定规矩,那么该数据包会被accept。Cisco则相反,在表开端会因含denyall的划定规矩。
  1.)Iptables的命令选项
  iptables[-ttables]commandoptionparametertarget
  -A在链尾增加一条划定规矩
  -C将划定规矩增加到用户界说链之前对其举行反省
  -D从链中删除一条划定规矩
  -E重定名用户界说的链,不改动链自己
  -F清空链,删除链上的一切划定规矩
  -I在链中拔出一条划定规矩
  -L列出某个链上的划定规矩,如iptablesCLINPUT列出INPUT链的划定规矩
  -N创立一个新链
  -P界说某个链的默许战略
  -R交换链上的某条划定规矩
  -X删除某个用户相干的链
  -Z将一切表的一切链的字节和数据包计数器清零
  2.)Iptables的命令参数
  -pCprotocol
  使用于数据包的协定范例,能够是TCPUDPICMP或ALL。!也可以使用。
  当利用-ptcp时,还可以使用其他能够选项,以便同意进一步界说划定规矩。选项包含:
  ――sport同意指定婚配数据包源端口.port1:port,暗示port1和port2之间的一切端口
  ――dport目标端口,和――sport相同。
  当利用-p!udp时,也有特别的选项供使包含:
  ――sport,――dport,与-ptcp不异,只不外用以用于UDP包。
  利用-picmp参数时,只要一个选项可用。
  ――icmp-type,同意在过滤划定规矩中指定icmp范例。
  -sCsource指定命据包的源地点。该参数后跟一个IP地点,一个带有sub-netmask的收集地点,或一个主机名。(不倡议利用主机名)
  -d,--destination数据包的目标地点,同-s.
  -j,――jump用于指定一个target,告知划定规矩将该婚配的数据包发送到该target。Target能够是ACCEPT,DROP,QUEUE,RETURN.假如没有-j,那末不会对数据包举行任何操纵,只是将计数器加1。
  -i--in-interface,关于INPUTFORWARDPREROUTING链,该参数指定命据包抵达服务器时所利用的端口。
  -o--out-interface,关于OUTPUTFORWARDPOSTROUTING链,该参数指定命据包分开服务器时利用的端口。
  3.)Iptables的命令target
  创立划定规矩的最初一步是指定Iptables对数据包的操纵。只需某一划定规矩婚配该数据包,就不会再有其余划定规矩的操纵。内建的target有:ACCEPTDROPQUEUERETURN。
  ACCEPT:同意数据包经由过程,抵达目标地。
  DROP:回绝数据包经由过程,抛弃该包。
  QUEUE:将数据包发送回到用户使用程序处置。
  RETURN:不再依据以后链的其他划定规矩来反省数据包,而是间接前往,持续被发送到其目标地点,或下一个链。
2.使用Iptables划定规矩示例
  同意WWW
  iptablesCAINPUTCptcpCdport80CjACCEPT
  该划定规矩被增加到filter表的INPUT链,同意目标端口是80的数据包。
  在外部接口上同意DHCP
  iptablesCAINPUTCieth0Cptcp--sport68--dport67ACCEPT
  iptablesCAINPUTCieth0Cpucp--sport68--dport67ACCEPT
  以上同时同意TCP和UDP协定。
  3.保留和恢复Iptables
  保留Iptables
  利用iptables-save可将现行的iptables划定规矩保留,
  iptables-save>iptables保留路径,如#iptables-save>/etc/iptables.up.rule
  恢复Iptables
  利用iptables-restore可从设置文档恢复iptables表到现行iptables表.
  iptables-restore</etc/iptables.up.rule
  2、UbuntuServer中的Iptables
  UbuntuServer6.06中已默许安装iptables,版本是1.3.3.默许形态是封闭。
  经由过程修正/etc/network/interfaces可将iptables翻开:
  autolo
  Ifaceloinetloopback
  autoeth0
  ifaceeth0inetdhcp
  #增加以下内容
  pre-upiptables-restore</etc/iptables.up.rule
  #calltherestoredrulewhenactivetheeth0
  post-downiptables-save>/etc/iptables.up.rule
  #restoretheiptablesrulewhenshutdowntheinterfaceeth0
  然后从头激活eth0便可。
  别的,可随时修正/etc/iptables.up.rule设置文件,来变动iptables的划定规矩。Iptables.up.rule格局以下:
  #Generatedbyiptables-saveV1.3.3onTueJul3114:18:442007
  *filter
  :INPUTACCEPT
  :FORWARDACCEPT
  :OUTPUTACCEPT
  -AINPUTCiloCpicmpCjDROP
  -AINPUTCieth0CpicmpCjDROP
  COMMIT
  #CompletedonTueJul3114:10:442007
  行与行之间不克不及有空行。
  三.Summary
  iptables表链中每条划定规矩的按次很主要,假如首条是acceptall,那么一切的数据包城市被同意经由过程firewall,因而应该得当的布置划定规矩按次。
  一般的法例是:回绝一切同意多数.

</p>
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。

因胸联盟 发表于 2015-1-18 17:43:00

一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。

变相怪杰 发表于 2015-1-24 15:35:06

随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。

灵魂腐蚀 发表于 2015-2-1 22:37:14

众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户。

再现理想 发表于 2015-2-7 16:34:23

老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。

莫相离 发表于 2015-2-22 16:59:00

甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。

简单生活 发表于 2015-3-7 01:46:26

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

若相依 发表于 2015-3-14 07:15:04

对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。

愤怒的大鸟 发表于 2015-3-21 01:32:56

其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
页: [1]
查看完整版本: 来讲讲:利用Linux体系Iptables防火墙