1、Iptables介绍
Centos系统内建了一个强大的防火墙,通常又被称为iptables
。准确的说应该叫iptables/netfilter。iptables工作于用户层,用户通过命令行给防火墙预定规则表。netfilter是一个内核模块,完成实际的过滤工作。有许多GUI软件方便用户来设置防火墙规则,但都缺乏一定的灵活性,并且限制用户了解其中真正发生了什么。
在开始配置Iptables之前,我们需要知道知道一些它是如何工作的。Iptables利用到了 IP 地址、协议(tcp,udp,icmp)和端口。我们不需要成为这方面的专家,但多少知道一些有助于理解iptables是如何工作的。
Iptables给预定义的链路(INPUT、OUTPUT、FORWARD)设置规则。链路校验IP包并根据定义的规则对其做相应的处理,如:接受、丢弃等。对包的处理又被称为:targets
。两个通常用到的target
一个是DROP
用于丢弃一个包、一个是ACCEPT
用于接受一个包。
链路
有三个预定义的链路定义在filter
表内,我们可以给它添加规则来处理通过链路的IP包。三个链路分别是:
- INPUT -所有发往本机的数据包
- OUTPUT -所有从本机输出的数据包
- FORWARD -所有的即不是发往本机也不是从本机发出的数据包,但是需要通过本机的数据包。通常用在本机当作一个路由器的情况下。
所有的规则最终被添加到链路的一张表内。一个数据包在链路的规则表内轮流被校验,从顶部开始,一旦匹配到规则,规则定义的行为被执行,例如接受(ACCEPT)、丢弃(DROP)数据包。一旦数据包被处理、后续的规则将不会被执行。如果一个数据包没有匹配到任何一条规则,那么链路的默认行为会被使用,这被称为链路的默认策略。通常有两种默认的链路配置策略:
- 1、 设置默认策略丢弃所有的数据包、添加规则指定我们需要允许的IP地址或者指定端口的服务,如FTP、web服务器、Samba文件服务等。
- 2、 设置默认策略接受所有的数据包、添加规则指定我们需要拒绝的IP地址或者指定端口等。
2、起步
确认iptables已经安装:
[luncher@localhost ide-server]$ rpm -qa iptables
iptables-1.4.21-13.fc21.x86_64
[luncher@localhost ide-server]$
查看当前配置信息:
[luncher@localhost ide-server]$ sudo iptables -L
[sudo] password for luncher:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp