ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux - iptable(防火墙)

2020-12-28 10:29:50  阅读:215  来源: 互联网

标签:iptables 0.0 DROP 端口 防火墙 tcp iptable Linux


一、概念

此处先描述一些相关概念。

从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。
主机防火墙:针对于单个主机进行防护。
网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。

从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。

Linux的iptables

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter

netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。

iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:
网络地址转换(Network Address Translate)
数据包内容修改以及数据包过滤的防火墙功能

所以说,虽然我们使用service iptables start启动iptables"服务",但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

二、iptable工作流图解

在这里插入图片描述

三、常用命令

1. 初始化

命令作用
iptables -Fflush 清除所有的已定规则
iptables -Xdelete 删除所有用户“自定义”的链(tables)
iptables -Zzero 将所有的chain的计数与流量统计都归零
iptables -S查看整个iptable表

初始化完成如图
在这里插入图片描述

2. 保存iptable

service iptables save

若提示服务不存在,则执行
iptables-save

若提示命令不存在,则执行
/sbin/iptables-save

若还是找不到命令,重新确认iptables安装路径。

3. 禁止和开放端口

关闭所有的 INPUT FORWARD OUTPUT (端口)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

打开端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

-A 参数就看成是添加一条 INPUT 的规则
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS
到时我们要配置DNS用到53端口 大家就会发现使用udp协议的
而 --dport 就是目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 --sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收

禁止某个IP访问
iptables -A INPUT -p tcp -s 192.168.1.2 -j DROP

这里意思就是 -A 就是添加新的规则, 怎样的规则呢? 由于我们访问网站使用tcp的,
我们就用 -p tcp , 如果是 udp 就写udp,这里就用tcp了, -s就是 来源的意思,
ip来源于 192.168.1.2 ,-j 怎么做 我们拒绝它 这里应该是 DROP

如何删除规则
通过 iptables -L -n --line-number 可以显示规则和相对应的编号
num target prot opt source destination
1 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
2 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3 DROP tcp – 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
多了 num 这一列, 这样我们就可以 看到刚才的规则对应的是 编号2

那么我们就可以进行删除了
iptables -D INPUT 2
删除INPUT链编号为2的规则。

再 iptables -L -n 查看一下 已经被清除了。

补充资料:

iptables 添加,删除,查看,修改 https://www.cnblogs.com/jsonevery/articles/10122273.html

centos7后可以使用firewall

【Linux】开放指定端口 https://blog.csdn.net/yw_1207/article/details/89959357?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

参考资料

  1. iptables详解(1):iptables概念 http://www.zsythink.net/archives/1199/
  2. 保存iptables规则 https://blog.csdn.net/weixin_33749131/article/details/91912549
  3. Linux下iptables 禁止端口和开放端口 https://blog.csdn.net/buster2014/article/details/50070747

标签:iptables,0.0,DROP,端口,防火墙,tcp,iptable,Linux
来源: https://blog.csdn.net/qq_43612151/article/details/111830773

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有