码迷,mamicode.com
首页 > Web开发 > 详细

Linux系统管理初步(四)Linux系统的防火墙-netfilter 编辑中

时间:2018-01-25 19:51:48      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:网络数   iptables   关注   等等   命令   生效   sys   自定义   代理   

一、Linux的防火墙

防火墙是日常应用中一个重要的维护内容,从防火墙开始我们才真正接触生产环境,网络安全越来越受重视,学好这部分内容是学好运维的重要一步。

一般情况下,桌面级环境中很少有人关注过防火墙,甚至杀毒软件都不装,对防火墙的操作当然不熟悉。真实生产环境中不可能不开防火墙。

linux的防火墙在centos6(含)前是netfilter,centos7开始使用新的firewalld,一般的我们从netfilter学起,firewalld是兼容netfilter的规则的。

二、netfilter学习环境搭建

因为centos7默认的防火墙是centos7,所以我们先要把firewalld停用,然后在换成centos6的netfiler,前期准备工作:关闭selinux、关闭centos7带的firewalld然后启动netfilter。

(一)关闭selinux功能

1、临时关闭

setenforce 0 关闭命令
getenforce 查看selinux状态命令

技术分享图片

只要确认getenforce状态是Permissive就可以了。只是暂时关闭,系统重启后仍会开启,需要通过修改配置文件方式永久关闭。

2、永久关闭
永久关闭该功能需要修改selinux的配置文件

vi /etc/selinux/config

技术分享图片
将SELINUX=enforcing改为disabled
注意不能改成下面那个SELINUXTYPE=disabled,否则系统会启动不了。

(二)关闭centos7的firewalld

systemctl stop firewalld #关闭firewalld功能
systemctl disable firewalld #停止firewalld开机启动

操作截图
技术分享图片
技术分享图片
这一步不像上面那步有操作过程提示,只要没报错就ok了。

(三)启动centos6或者5支持的netfilter防火墙

yum install iptables-services #安装netfilter功能,也就是常说的iptables,注意包名末尾是iptables和services复数形式,敲成iptables-service就没这个包
systemctl enable iptables #设置开机启动iptables服务
systemctl start iptables #开启iptables程序
iptables -nvL #查看iptables的默认规则

操作截图
技术分享图片

技术分享图片
1是设置开机启动,2是在当前bash下启动iptables,3是查看iptables的默认规则。

三、netfilter的表(table)与链条(chain)

netfilter使用5个表与5个链条控制网口传输过来的包的,哪些需要丢弃,哪些允许进来等等。

5个表分别是:
filter:主要用于过滤数据包,是系统预设的表。内含3个链:INPUT、OUTPUT、FOWARD,就是说数据包只要在这三个链中,你就可以用filter表中的规则来处理他。
nat:主要用于网络地址转换,内含3个链:PREROUTING、OUTPUT、POSTROUNTING。
mangle:主要用于给包做标记,然后根据标记处理包。内含全部五个链
raw:可以用来设定不被系统跟踪的数据包,这个表可以指定某些端口进来的数据不被跟踪。内含2个链:PREROUNTING和OUTPUT
security:在Centos6中没有,用于强制访问控制的网络规划,暂时先不研究。

5个链分别是:
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机。
OUTPUT:由本机产生,向外转发。
POSTROUTING:发送到网卡接口前

netfilter启动后,网络数据包在系统中的流向图:(转载至wiki)
技术分享图片

四、iptables命令

iptables用于操控netfilter防火墙,他能直接添加、修改或者删除PREROUTING、INPUT、FORWARDING、OUTPUT、POSTROUTING5个链中的规则,达到过滤数据包的目的

iptables命令写法

iptables -t 表名 <-A/I/D/R> 链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

选项含义
-t<表>:指定要操纵的表;
-A:向链规则中添加条目;
-D:从链规则中删除条目;
-I:向链规则中插入条目;
-R:替换链规则中的条目;
-L:显示链规则中已有的条目;
-F:清空防火墙规则;
-Z:清空链规则中包计数器与连接计数器;
-N:创建新的用户自定义规则链;
-P:定义链规则中的默认处置方式,如;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型,;
-s:指定要匹配的数据包源ip地址;
-j+动作:如何处理过滤出来的包,常见的有ACCEPT,;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
--dport
--sport

表名包括:

raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
nat:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。

链名包括:

INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录

五、iptables操作示例

1、显示、清空与保存操作现有的netfilter规则

iptables -nvL #显示现有规则,分表显示的
iptables -F #清空所有规则
iptables -Z #置零计数器,用于网络攻击分析
service iptables save #将规则保存到/etc/sysconfig/iptables文件中
systemctl restart iptables.service #重启iptables服务使指定的规则生效

技术分享图片

iptables的默认规则保存在/etc/sysconfig/iptables文件下
技术分享图片

2、链处理规则的增加、删除与修改

防火墙规则添加到链规则尾部

iptables -A INPUT

防火墙规则添加到链规则头部

删除防火墙某一条规则

修改防火墙默认链处理规则

3、

Linux系统管理初步(四)Linux系统的防火墙-netfilter 编辑中

标签:网络数   iptables   关注   等等   命令   生效   sys   自定义   代理   

原文地址:http://blog.51cto.com/11934539/2065176

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!