本教程将指导您如何防火墙工作在Linux的操作系统 ,什么是正Tables的Linux呢? 防火墙决定系统中传入和传出的数据包的命运。 IPTables是基于规则的防火墙,它预装在大多数Linux操作系统上。 默认情况下,它运行没有任何规则。 IPTables的被列入内核2.4,之前它被称为ipchains的或使用ipfwadm。 IPTables是一个前端工具,与内核交谈并决定要过滤的数据包。 本指南可能会帮助你粗略的想法和IPTables的基本命令,我们将描述实际iptables规则,你可以根据你的需要引用和定制。
不同的服务用于不同的协议,如:
- iptables的适用于IPv4。
- ip6tables适用于IPv6。
- arptables适用于ARP。
- ebtables的适用于以太网帧..
IPTables的主要文件有:
- /etc/init.d/iptables -初始化脚本启动|停止|重新启动和保存规则集。
- 在/ etc / sysconfig中/ iptables的 -在规则集的保存位置。
- / sbin目录/ iptables的 -二进制文件。
目前有三个表。
- 过滤
- NAT
- Mangle
目前,共有四条链:
- INPUT:默认链始发系统。
- 输出 :从系统默认链生成。
- 前锋 :默认链的数据包通过其他接口发送。
- RH-防火墙-1-输入 :用户定义的自定义链。
注:上述主要文件可能在Ubuntu Linux操作系统略有不同。
如何启动,停止和重新启动Iptabe防火墙。
# /etc/init.d/iptables start # /etc/init.d/iptables stop # /etc/init.d/iptables restart
要在系统引导时启动IPTable,请使用以下命令。
#chkconfig --level 345 iptables on
使用以下命令保存IPTables规则集。 每当系统重新启动并重新启动IPTables服务时,Exsiting规则将刷新或重置。 下面的命令保存在TPTables规则集中在/ etc / sysconfig中/ iptables的默认和规则文件应用或恢复的情况下的IPTables的刷新出来。
#service iptables save
检查IPTables /防火墙的状态。 选项“-L”(列表规则集),“-v”(详细)和“-n”(以数字格式显示)。
[root@youcl ~]# iptables -L -n -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 6 396 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 5 packets, 588 bytes) pkts bytes target prot opt in out source destination
使用数字显示IPTables规则。 有了说法“ 系列号码 ”的帮助,您可以添加或删除规则。
[root@youcl ~]# iptables -n -L -v --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 51 4080 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 45 packets, 5384 bytes) num pkts bytes target prot opt in out source destination
刷新或删除IPTables规则。 下面的命令将从表中删除所有规则。 执行上述命令之前执行规则集备份。
[root@youcl ~]# iptables -F
删除或追加规则,让我们首先看到链中的规则。 以下命令将在INPUT和OUTPUT链中显示规则编号,这将有助于我们添加或删除规则
[root@youcl ~]# iptables -L INPUT -n --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
[root@youcl ~]# iptables -L OUTPUT -n --line-numbers Chain OUTPUT (policy ACCEPT) num target prot opt source destination
让我们,如果你想删除INPUT链的规则没有5说。 使用以下命令。
[root@youcl ~]# iptables -D INPUT 5
要插入或在4和5之间的规则集添加规则INPUT链。
[root@youcl ~]# iptables -I INPUT 5 -s ipaddress -j DROP
我们刚刚试图覆盖IPTables的基本用法和功能。 一旦您完全了解TCP / IP和对设置的良好了解,您就可以创建复杂的规则。