iptables防火墙


防火墙是什么

简单来说,防火墙就是:对数据包进行接收,转发,拒绝,丢弃,标记,统计,修改等一系列,防止数据泄露和外界侵入,有过滤数据的功能,能够对访问自己或经过自己的数据报文,按照一定的规则,进行处理的设备。


安装iptables

yum install iptables  iptables-devel iptables-services iptables-utils -y

使用 init 脚本 配合 service 命令 :

cp  /usr/libexec/iptables/iptables.init     /etc/rc.d/init.d/iptables

用service iptables start / stop / save 来进行管理

防火墙规则的保存文件:/etc/sysconfig/iptables

#从当前临时配置的规则,统统写入/etc/sysconfig/iptables 永久保存。
service iptables save

五表五链

iptables的结构是由表(tables)组成,而表(tables)是由链组成,链又是由具体的规则组成。因此我们在编写iptables的规则时,要先指定表,再指定链。表(tables)的作用是区分不同功能的规则,并且存储这些规则。

man iptables

五表(功能)

security          #用于强制访问MAC的规则
raw               #实现不追踪某些数据包
mangle            #用于给数据包做标记,然后根据标记去操作那些包
nat               #用于网络地址转换
filter            #用于包过滤

五链(检查点)

PREROUTING        #处理流入的数据包
INPUT             #处理流出的数据包
OUTPUT            #防火墙本机产生的数据包的策略
FORWARD           #处理转发的数据包,针对非本机,目的不是本机的策略
POSTROUTING       #用于在进行路由选择后处理数据包

在这里插入图片描述

规则表的先后顺序: security→raw→mangle→nat→filter

在这里插入图片描述


iptables参数

-t <表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-I:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目; 
-F:清除规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
--dport  匹配目标端口号
--sport   匹配来源端口号
-j <动作>:指定要跳转的目标;
-i <网络接口>:指定数据包进入本机的网络接口;
-o <网络接口>:指定数据包要离开本机所使用的网络接口。

-j参数接的动作主要包括:

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

规则运用

防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。

禁止其他主机访问本机80端口

iptables -A INPUT -s 192.168.152.101 -d 192.168.152.101 -p tcp  --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

禁止192.168.152.101这个ip访问本机

iptables -t filter -A INPUT -s 192.168.152.101 -j DROP

将所有iptables以序号标记显示

将所有iptables以序号标记显示
iptables -L -n --line-numbers
#删除INPUT里序号为8的规则
iptables -D INPUT 8

禁止他人PING,只允许自己ping

#查看icmp这个协议的一些参数
iptables -p icmp -h

iptables -A INPUT -s 192.168.152.101 -d 192.168.152.101 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
posted @ 2023-02-21 14:28  李轻轻的linux之路  阅读(77)  评论(0编辑  收藏  举报