iptables四表五链及默认规则使用,

网络基础
TCP/IP模型:
应用层===传输层===网络层===数据链里层===物理层
数据封装:
MAC帧头+IP报头+TCP/UDP报头===HTTP请求
数据帧
TCP/UDP报头:
随机产生一个大于1024的端口
目的端口:80
IP报头:
源IP地址
目的IP地址
MAC帧头:
源MAC地址
目的MAC地址
端口号Port:
作用:标识不同应用程序
数字:0---65535,小于1024端口为著名端口
常用端口:
http tcp/80
https tcp/443
SSH tcp/22
telnet tcp/23
ftp tcp/21(命令连接),tcp/20(数据连接)
mysql tcp/3306
smtp tcp/25
pop3 tcp/110
dns tcp/53,udp/53
dhcp udp/67(服务端),udp/68(客户端)
SAMBA tcp/139,tcp/445,udp/137.udp/138
ntp udp/123
zabbix tcp/10050(agent),tcp/10051(server)
ARP-----Address Resolution Protocol 地址解析协议
作用:根据已知的IP地址获取对应的MAC地址
Linux iptables
作用:
进行数据过滤:入方向,出方向,转发穿过服务器的
为数据打标记
网络地址转换
Linux防火墙
内核集成的模块netfilter
iptables工具:实现添加,删除,修改,查看防火墙规则
钩子函数,用来钩数据的
input:处理进来的数据
output:处理出去的数据
forward:处理转发的数据
prerouting:截获路由前的操作,数据处理没进网卡前
postrouting:截获路由后的操作,数据处理完了,从网卡流出去后
五条链
存规则的:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
iptables四表:
filter(实现实现数据过滤):INPUT,OUTPUT,FORWARD
nat (实现实现网络地址转换,换ip的):PREROUTING,OUTPUT,POSTROUTING
mangle(为数据打标记):INPUT,FORWARD,OUTPUT,PREROUTING,POSTROUTING
raw(数据跟踪的)PREROUTING,OUTPUT
iptables工具的使用
# iptales <command> <chain> <rule>
命令command
查看类:
-L:显示指定表中得规则
-n:以数字的格式显示IP及端口号
-v:显示规则相关的详细信息
-x:显示计数器显示精确的数字
--line-numbers:显示规则的号码
-t:<table>:指定表名,默认为filter表
# iptables -nL --line-numbers -v
管理规则
1)添加规则
-A:追加一条规则,添加到链的尾部
-I CHAI【number】:插入一条规则,插入为CHAIN的第number条;number不写表示插入到第一条。-I INPUT
2)删除规则
-D CHAIN【number】:删除指定链的第number条规则
3)修改规则
-R CHAIN【number】:替换指定的规则
4)清空所有规则
-F CHAIN
5)修改链的默认规则
-P CHAIN <处理方法>
规则的匹配标准
1)源IP地址
-s address
! -s 192.168.1.1
-s 192.168.1.0/24
2)目的IP地址
-d address
!-d 10.1.1.1
-d 10.1.1.0/24
3)协议
-p tcp -sport port1[:port2]
-p tcp --dport port1[:port2]
-p udp --sport port1[:port2]
-p udp --dport port1[:port2]
-p icmp
--icmp-type 8 echo-request
--icmp-type 0 echo-reply
4)匹配数据包进行的网卡接口
-i eth0
5)匹配数据包流出的网卡接口
-o eth1
数据包的处理行为 -j target
ACCEPT 允许
REJECT 拒绝
DROP 丢弃
LOG 记录日志
先堵后通
主机IP是192.168.150.163d
实例1:允许客户端访问SSH服务 -P(修改某一条链的默认规则)
[root@node1 ~]# iptables -P INPUT DROP
[root@node1 ~]# iptables -P OUTPUT DROP
[root@node1 ~]# iptables -P FORWARD DROP
[root@node1 ~]# iptables -A INPUT -s 192.168.122.1 -d 192.168.122.135 -p tcp --dport 22 -j ACCEPT
[root@node1 ~]# iptables -A OUTPUT -s 192.168.122.135 -d 192.168.122.1 -p tcp --sport 22 -j ACCEPT
实例2:允许所有客户端访问web服务器
[root@node1 ~]# iptables -I INPUT -d 192.168.122.135 -p tcp --dport 80 -j ACCEPT
[root@node1 ~]# iptables -I OUTPUT -s 192.168.122.135 -p tcp --sport 80 -j ACCEPT
实例3:允许客户端10.1.2.101 ping服务器
[root@node1 ~]# iptables -A INPUT -s 192.168.122.1 -d 192.168.122.135 -p icmp --icmp-type 8 -j ACCEPT
[root@node1 ~]# iptables -A OUTPUT -s 192.168.122.135 -d 192.168.122.1 -p icmp --icmp-type 0 -j ACCEPT
实例4:允许服务器ping其他主机
[root@node1 ~]# iptables -A OUTPUT -s 192.168.122.135 -p icmp --icmp-type 8 -j ACCEPT
[root@node1 ~]# iptables -A INPUT -d 192.168.122.1 -p icmp --icmp-type 0 -j ACCEPT
实例5:允许服务器ping本机
[root@node1~]# iptables -A INPUT -i lo -j ACCEPT
[root@node1~]# iptables -A OUTPUT -o lo ACCEPT
实例6:允许DNS服务器解析所有主机名
[root@node1~]# iptables -A INPUT -d 192.168.122.135 -p udp --dport 53 -j ACCEPT
[root@node1~]# iptables -A OUTPUT -s 192.168.122.135 -p udp --sport 53 -j ACCEPT
[root@node1~]# iptables -A INPUT -s 192.168.122.135 -p udp --dport 53 -j ACCEPT
[root@node1~]# iptables -A INPUT -d 192.168.122.135 -p udp --sport 53 -j ACCEPT
[root@node1~]# iptables -A INPUT -d 192.168.122.135 -p tcp --dport 53 -j ACCEPT
[root@node1~]# iptables -A OUTPUT -s 192.168.122.135 -p tcp -sport 53 -j ACCEPT
[root@node1~]# iptables -A INPUT -s 192.168.122.135 -p tcp --dport 53 -j ACCEPT
[root@node1~]# iptables -A OUTPUT -d 192.168.122.135 -p tcp --sport 53 -j ACCEPT
保存防火墙规则
Centos 6:
[root@node1~]# service iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables: [确定]
Centos 7:
[root@node1~]# iptables-save > /iptables.rule
恢复规则
[root@node1~]# iptables-restore < /iptables.rule
实例7:删除规则
[root@node1~]# iptables -D INPUT 3
实例8:修改规则
[root@node1~]# iptables -R INPUT 7 -d 192.168.122.135 -p icmp --icmp-type 0 -j ACCEPT
iptables模块
1、multiport 离散多端口
-m multiport
--sports port1,port2,port3
--dports port1,port2,port3
[root@node01 ~]# iptables -I INPUT -s 192.168.122.1 -d 192.168.122.135 -p tcp -m multiport --dports 80,139,445,22 -j ACCEPT
2、iprange
-m iprange
--src-range IP1[-IP2] 连续写多个连续的源ip
--dst-range IP1[-IP2] 连续写多个连续的目的ip
[root@node01 ~]# iptables -A INPUT -m iprange --src-range 192.168.1.1-192.168.1.10 -d 192.168.122.135 -p tcp --dport 80 -j ACCEPT
常说的加入白名单
3、state 状态,用连接的状态进行数据过滤
-m state --state <状态> 决定什么样状态接收,什么样状态拒绝,像ftp根据端口放行就很麻烦,使用-m state --state模块就简单很多
state状态:
NEW状态
针对某个服务的首次访问
ESTABLISHED状态
1、某服务的后续所有访问状态
2、表示服务器的响应数据
RELATED状态
相关联的连接,给ftp用的。比如ftp服务器,只有命令连接完成,才能进行建立数据连接
ftp两种工作模式
主动连接:
20/tcp:数据连接
21/tcp:命令连接
当客户端向服务端通过21端口建立命令连接,命令连接就是传输命令的,像get,put等,命令连接创建好后会通过20号端口主动向客户端建立数据连接
被动连接:
当客户端访问ftp服务器时候,通过21号端口建立命令连接后,ftp服务器会在本地随机产生一个大于1024的随机端口,完了告诉客户端,客户端在通过那个随机端口建立数据连接
INVALID状态
无效的连接
1、就不用每条都写OUTPUT的规则了,有一条ESTABLISHED就能全部能出去(响应)OUTPUT
[root@node01 ~]# iptables -I OUTPUT -s 192.168.122.135 -m state --state ESTABLISHED -j ACCEPT
2、保证首次访问和后续的所有访问都可以正常
[root@node01 ~]# iptables -I INPUT -d 192.168.122.135 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@node01 ~]# iptables -I INPUT -d 192.168.122.135 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
实例:允许ftp服务的访问
首先要卸载ip_nat_ftp和ip_conntrack_ftp
[root@node01 ~]# yum install -y iptables-services
# vim /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"
# systemctl restart iptables
[root@node01 ~]# iptables -I INPUT -d 192.168.122.135 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@node01 ~]# iptables -I INPUT 2 -d 192.168.122.135 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables四表五链及默认规则使用,的更多相关文章
- iptables 四表五链
netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加.编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则.这些规则存储在专用的信息包过滤表中 ...
- IPtables 之“四表五链”
目录 架构图 IP tables 简介 包过滤防火墙 Iptables如何过滤 "四表" "五链" Iptables流程 架构图 公司架构模式(酒店迎宾比喻) ...
- iptables详解(2):四表五链
关于iptables中“四表五链”,我们今天来好好唠唠: 1.表的概念: 我们把具有相同功能的规则的集合叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而ip ...
- 1、架构--架构图、Iptables(简介、四表五链、流程图、使用、扩展模块)、包过滤防火墙
笔记 1.画架构图 2.Iptables 1.1 什么是防火墙 防止别人恶意访问. 1.2 防火墙种类 硬件防火墙 F5 软件防火墙 iptables firewalld 安全组 3.Iptables ...
- Linux对外提供服务 网络操作 端口操作 1.开启服务监听端口 2.设置防火墙,放行访问端口的包 iptables&netfilter 四表五链和通堵策略
主题: Linux服务器上软件提供服务 1.网络操作 2.端口操作 1.网络操作 本机必须能够ping通目标主机(本地虚拟机或者远程主机) 2.端口操作 1.开启服务监听端口 2.设置防火墙,放行访问 ...
- iptable四表五链
链(内置): PREROUTING:对数据包作路由选择前应用此链中的规则: INPUT:进来的数据包应用此规则链中的策略: FORWARD:转发数据包时应用此规则链中的策略: OUTPUT:外出的数据 ...
- [转帖] iptables之四表五链
iptables之四表五链 http://www.cnblogs.com/clouders/p/6544584.html mark 学习一下 对防火墙一无所知.. iptables可谓是SA的看家本领 ...
- iptables之四表五链
iptables可谓是SA的看家本领,需要着重掌握.随着云计算的发展和普及,很多云厂商都提供类似安全组产品来修改机器防火墙. iptables概念 iptables只是Linux防火墙的管理工具而已. ...
- 期中架构&防火墙¥四表五链
今日内容 架构图 包过滤防火墙 Iptables 新建虚拟机 内容详细 一.架构图 用户通过域名访问一个网站类比开车去饭店用餐 访问网站的流程 1.浏览器输入网站的域名(www.baidu.com), ...
随机推荐
- angularjs学习第八天笔记(指令作用域研究)
您好,在前两天对指令的简单了解和系统指令学习后 今天主要研究其指针作用域的相关事情 每一个指令在创建时,其实就构成了自己的一个小的模块单元. 其对于的模块单元都有着其对于的作用域,其中作用域一般有两种 ...
- C# 数据库并发的解决方案(通用版、EF版)
自ASP.NET诞生以来,微软提供了不少控制并发的方法,在了解这些控制并发的方法前,我们先来简单介绍下并发! 并发:同一时间或者同一时刻多个访问者同时访问某一更新操作时,会产生并发! 针对并发的处理, ...
- Hibernate session中的createCriteria方法
在应用中获取session对象: Session session= HibernateUtil.getSession(); List list=session.createCriteria(Mete ...
- PPT文件流转为图片,并压缩成ZIP文件输出到指定目录
实现流程: 接收InputStream流->复制流->InputStream流转为PPT->PPT转为图片->所有图片压缩到一个压缩文件下 注意: 1.PPT文件分为2003和 ...
- Shaping Regions(dfs)
Shaping Regions Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 124 Solved: 39[Submit][Status][Web B ...
- python爬虫实例--网易云音乐排行榜爬虫
网易云音乐,以前是有个api 链接的json下载的,现在没了, 只有音乐id,title , 只能看播放请求了, 但是播放请求都是加密的值,好坑... 进过各种努力, 终于找到了个大神写的博客,3.6 ...
- Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版
描述: 之前有做过一个记账本APP,拿来练手的,做的很简单,是用Eclipse开发的: 最近想把这个APP重新完善一下,添加了一些新的功能,并选用Android Studio来开发: APP已经完善了 ...
- java设计模式学习
每次面试都需要看设计模式,每次都很好的理解了,但是实际开发中没有应用总是忘记.现在把它汇总一下. 二十三种设计模式 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模 ...
- (网页)Http状态码大全(200、404、500等)(转CSDN)
当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是由3位数字和原因短语组成的(比如最常见的 ...
- (网页)textarea去掉回车换行
转自CSDN: 1,把textarea内输入的内容中有回车换行的转成<br />传给后台, var content = $("#text").val().replace ...