Linux防火墙

Linux防火墙_第1张图片

概念:

(1) Linux 防火墙 :
集成在内核里的 Netfilter 组件里,Linux 内核里已经自带一些防火墙的基本功能。并且,把我们生活中和工作中常用的常见的防火墙功能分成 PREROUTING INPUT OUTPUT FORWARD POSTROUTING 等五个功能模块,称之为hook。用iptables 命令工具向其写入规则!

Linux防火墙_第2张图片

(2) Linux 防火墙工具 :
iptables:命令行工具,工作在用户空间;用来编写规则,写好的规则被送往netfilter ,告诉内核如何去处理信息包
firewalld :CentOS 7 引入的新的前端管理工具,这里不细讲

iptables组成:

(1) 四个表table : raw-->mangle-->nat-->filter
raw: 关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
mangle: 修改数据标记位规则表
nat: 地址转换规则表
filter: 过滤规则表,根据预定义的规则过滤符合条件的数据包
(2) 五个链chain : INPUT OUTPUT PREROUTING FORWARD POSTROUTING
(3) Netfilter 表和链对应关系与图:

Linux防火墙_第3张图片
表和链的对应关系

Linux防火墙_第4张图片

iptables防火墙策略命令行语法:

iptables + 表 + 链 + 规则(匹配条件 + 处理动作)

**** 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 <目标> : 指定要跳转的目标; 
-i <网络接口> : 指定数据包进入本机的网络接口; 
-o <网络接口> : 指定数据包要离开本机所使用的网络接口;

Linux防火墙iptables实例:

查看防火墙策略:

~]# iptables -vnL   <-- 最最基本也要用这三个选项!裸配了...

清除已有规则:

~]# iptables -F     <-- 基本都用这个
~]# iptables -X  
~]# iptables -Z

屏蔽IP:DROP是丢弃的意思

~]# iptables -I INPUT -s 123.45.6.7 -j DROP       <-- 屏蔽单个IP的命令 
~]# iptables -I INPUT -s 123.0.0.0/8 -j DROP      <-- 封整个段即从123.0.0.1到123.255.255.254的命令 
~]# iptables -I INPUT -s 124.45.0.0/16 -j DROP    <-- 封IP段即从123.45.0.1到123.45.255.254的命令 
~]# iptables -I INPUT -s 123.45.6.0/24 -j DROP    <-- 封IP段即从123.45.6.1到123.45.6.254的命令

开放指定端口:

~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT         <-- 允许本地回环接口(即运行本机访问本机)
:
~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    <-- 允许已建立的或相关连的通行

~]# iptables -A OUTPUT -j ACCEPT     <-- 允许所有本机向外的访问

~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT     <-- 允许访问22端口

~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT     <-- 允许访问80端口

~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT     <-- 允许ftp服务的21端口

~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT     <-- 允许FTP服务的20端口

~]# iptables -A INPUT -j REJECT       <-- 禁止其他未允许的规则访问

~]# iptables -A FORWARD -j REJECT     <-- 禁止其他未允许的规则访问

结语:

这里只要还是以理论为主,iptables还有SNAT 和 DNAT模式才是重点;

NAT :

  • 请求报文: 修改源/ 目标IP,自由定义如何修改!
  • 响应报文:修改源 源/ 目标IP ,根据跟踪机制自动实现!

SNAT :

  • 让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装!
  • 请求报文:修改源IP

DNAT :

  • 把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射) ,但隐藏真实IP!
  • 请求报文:修改目标IP

你可能感兴趣的:(Linux防火墙)