iptables 基础
目录
iptables的使用
1.安装iptables
[root@m01 ~]# yum install iptables*
2.开启iptables
[root@m01 ~]# systemctl start iptables
3.关闭firewalld(防火墙)
[root@m01 ~]# iptables -v -L
4.查看iptables是否开启
[root@m01 ~]# systemctl status iptables
Active开头行显示"引号"内信息说明开启:"active (exited)" since 一 2021-12-27 16:22:43 CST; 12min ago
iptables四表五链
四表五链
1、那四个表,有哪些作用
具备某种功能的集合叫做表。
filter: 负责做过滤功能呢 : INPUT,FORWARD,OUTPUT
nat: 网络地址转换 PREROUTING、INPUT、OUTPUT、POSTROUTING
mangle: 负责修改数据包内容 PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD
raw: 负责数据包跟踪 PREROUTING、OUTPUT
2、那五条链,运行在那些地方
PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
1) PREROUTING: 主机外报文进入位置,允许的表mangle, nat(目标地址转换,把本机地址转换为真正的目标机地址,通常指响应报文)
2) INPUT:报文进入本机用户空间位置,允许的表filter, mangle
3) OUTPUT:报文从本机用户空间出去的位置,允许filter, mangle, nat
4) FOWARD:报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去,允许filter, mangle
5) POSTROUTING:报文经过路由被转发出去,允许mangle,nat(源地址转换,把原始地址转换为转发主机出口网卡地址)
流入本机:PREROUTING --> INPUT --> PROCESS(进程)
经过本机:PREROUTING --> FORWARD --> POSTROUTING
从本机流出:PROCESS(进程) --> OUTPUT --> POSTROUTING
iptables的格式
格式:iptables -t 表名 选项 链名称 条件 动作
-t 指定操作的表
-L, --list 列出当前表所有规则
-v 显示数据包和数据包大小
-n 不反解地址
-A, --append 追加一条规则到链中
-I, --insert 插入一条规则,插入到顶部
-F, --flush 清空
-Z, --zero 清空计数器( 包数量 、包大小)
-D, --delete 删除链中的规则
-R, --replace 修改
-S, --list-rules 列出所有的规则
-N, --new-chain 创建一个自定义 链
-X, --delete-chain 删除一个自定义链
-P, --policy 指定链的默认策略
1.查看四表
[root@m01 ~]# iptables -v -L -t filter(nat,mangle,raw)
2.查看指定表规则
[root@m01 ~]# iptables -t filter -L
3.查看指定表的数据包和数据包大小
[root@m01 ~]# iptables -t filter -L -v
4.不反解地址(不添加-n 在sorce一列显示为anywhere,若添加-n,则显示0.0.0.0/0(代表所有地址))
[root@m01 ~]# iptables -t filter -L v -n
iptables动作
# 以下为常用动作
ACCEPT: 将数据包放行,进行完此处理动作后,将不再比对其他规则,直接跳往下一个规则链
REJECT: 拦阻该数据包,并传送数据包通知对方
DROP : 丢弃包不予处理,进行完此处理动作后,将不再比对其他规则,直接终端过滤程序
REDIRECT : 将包重新导向到另一个端口,进行完此处理动作后,将会继续比对其他规则
iptables基本的条件匹配
# 协议
TCP<=http<-ssh
UDP
ICMP<=ping
ALL
Iptables-s,-d 源地址,目标地址
源地址 :发送请求的地址 -s(链接的这一方面)
目标地址 : 访问的地址 -d(需要访问的地址)
--sport源端口,--dport端口
源端口:发送请求的端口
目标端口:访问的端口
-i,-o,-m,-j 动作
-i:进来的网卡
-o:出去的网卡
-m:指定的模块
-j:转发动作
-P:指定协议
端口
端口在网络技术中,端口大致有两种意思
1.物理意义上的端口,比如:交换机,路由器等用户链接其他网络设备的接口
2.逻辑意义上的端口,一般是指TCP/IP协议中的端,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等
按照端号分布划分:
知名端口:众所周知的端口,范围0到1023,这些端口号一般固定分配给一些服务。
# 比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
动态端口:动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口,只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。
按照协议类型划分
TCP 端口
传输控制协议端口,需要在客户端和服务器之间建立链接,这样可以提供可靠的数据传输
# FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口
UDP端口
# UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。
" 查看本机端口占用的命令:netstat -nutlp"