Linux进阶-8.防火墙管理工具1:iptables

1.定义

什么是防火墙?防火墙是指一种将内网和外网逻辑上分隔开的一种技术,对两边的网络进行包过滤。防火墙可分为网络防火墙和主机防火墙。网络防火墙一般是在网络边界(如外网出口,局域网之间)上的硬件设备,可以对整个局域网内的主机和设备进行防护。主机防护墙是指在主机系统上的防护软件,可以针对每一台主机自定义防护等级。
什么是iptables?windows10的防火墙是defender防火墙,Linux的防火墙是处于内核的netfilter,iptables就是netfilter防火墙的一个命令行管理工具,处于用户层面,可以管理Linux的防火墙。

2.规则策略

规则是管理员预设的条件,数据包匹配到这个预设的条件后,会根据策略进行放行(accept)、拒绝(reject)和丢弃(drop)。拒绝和丢弃的结果相同数据包不会通过防火墙,区别拒绝是丢弃数据包,同时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息;而丢弃则是将数据包直接丢弃而用户不会得到任何系统上的提示。匹配成功后的数据包就不会继续匹配后面的规则了。
默认规则是防火墙中最后一条规则,是一条托底的规则,当数据包没有匹配所有预设条件时会匹配最后一条默认规则,放行或者丢弃。一般默认规则都是丢弃,如果设置成放行而过滤规则不够丰富,防火墙就是失去作用了。

3.数据方向

根据数据的流向可以将数据包分为以下几类,其中重点需要处理的就是外网进入内网的数据了。

    处理流入的数据包(INPUT)
    处理流出的数据包(OUTPUT)
    处理转发的数据包(FORWARD)
    在进行路由选择后处理数据包(POSTROUTING)
    在进行路由选择前处理数据包(PREROUTING)

4.iptables的使用

iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。

	参数 			作用
	-P 				设置默认策略
	-F 				清空规则链
	-L 				查看规则链
	-A 				在规则链的末尾加入新规则
	-I 				在规则链的头部加入新规则
	-D  			删除某一条规则
	-j				处理规则策略的动作ACCEPT、REJECT、DROP
	-s 				匹配源地址,加叹号“!”表示除这个IP外
	-d 				匹配目标地址
	-i 网卡名称 		匹配从这块网卡流入的数据
	-o 网卡名称 		匹配从这块网卡流出的数据
	-p 				匹配协议,如TCP、UDP、ICMP
	--dport num 	匹配目标端口号
	--sport num 	匹配来源端口号

4.1使用iptables -L查看策略,默认策略都是放通,这样防火墙并没有作用,我们清空策略并设置默认策略拒绝。

[root@localhost Desktop]# iptables -F
[root@localhost Desktop]# iptables -P INPUT DROP

这样再看另一台主机ping这台设备时就不通了,所以ping不通不一定是设备关机或者网络故障了,可能是开启了防火墙过滤了ICMP包了。

4.2开启只允许192.168.10.20这个主机对本设备的ping包策略。

[root@localhost Desktop]# iptables -I INPUT -s 192.168.10.30/32 -p icmp -j ACCEPT

4.3开启只允许192.168.10.20这个主机对本设备的SSH端口策略。

[root@localhost Desktop]# iptables -I INPUT -s 192.168.10.20 -p tcp --dport 22 -j ACCEPT

4.4添加所有人允许访问服务器的DNS策略。

[root@localhost Desktop]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
[root@localhost Desktop]# iptables -A INPUT -p udp --dport 53 -j ACCEPT

4.5开启自定义端口65510-65520的所有端口策略。

[root@localhost Desktop]# iptables -A INPUT -p udp --dport 65510:65520 -j ACCEPT
[root@localhost Desktop]# iptables -A INPUT -p tcp --dport 65510:65520 -j ACCEPT

4.6查看策略并保存。

[root@localhost Desktop]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.10.20        anywhere             tcp dpt:ssh
ACCEPT     icmp --  192.168.10.20        anywhere            
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpts:65510:65520
ACCEPT     tcp  --  anywhere             anywhere             tcp dpts:65510:65520
以下省略...

[root@localhost Desktop]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章