目录
防火墙是什么
简单来说,防火墙就是:对数据包进行接收,转发,拒绝,丢弃,标记,统计,修改等一系列,防止数据泄露和外界侵入,有过滤数据的功能,能够对访问自己或经过自己的数据报文,按照一定的规则,进行处理的设备。
安装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
标签:iptables,防火墙,链中,规则,INPUT,数据包
From: https://www.cnblogs.com/lqq-blog/p/17140918.html