iptables
Iptables
1.防火墙
为了防止他人恶意访问
2.防火墙的种类
硬件防火墙:FS
软件防火墙:iptables 、firewalld
安全组

Iptables基本介绍
用户 ---> 调用iptables ---> ip_tables内核模块 ---> Netfilter(系统安全框架) ---> 过滤请求
包过滤防火墙
包:
在传输过程中,并不是一次性传输完成的;而是将数据分成若干分后,依次传输
包过滤防火墙:
过滤数据包的防火墙
如何实现过滤:
通过系统安全框架,过滤数据包
Iptables链的概念
四表五链
1.四表,作用
具备某种功能的集合叫表
filter : 负责过滤 (INPUT;OUTPUT;FORWARD)
nat : 网络地址转换 (PREROUTING;INPUT;OUTPUT;POSTROUTING)
mangle : 更改数据包内容 (PERTOUTING;INPUT;OUTPUT;POSTROUTING;FORWARD)
raw : 数据包跟踪 (PREROUTING;OUTROT)
2.五链,运行
PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING
[1]PREROUTING: 主机外报文进入,允许mangle,nat
(目标地址转换,将本机地址转换为真正的目标地址转换为真正的目标地址,响应报文)
[2]INPUT: 报文进入本机用户空间位置,允许fileter,mangle
[3]OUTPUT: 报文从本机用户空间出去的位置,允许filter,mangle,nat
[4]FORWARD: 报文进过路由并且发觉不是本机决定转发还不知道从哪个网卡出去,允许filter,mangle
[5]POSTROUTING: 报文进过又有被转发出去,允许mangle,nat
(源地址转换,把原始地址转换为转发主机出口网址地址)
流入本机:PREROUTING --> INPUT --> PROCESS(进程)
经过本机:PREOUTING --> FORWARD --> POSTROUTING
从本机流出:PROCESS(进程) --> OUTPUT --> POSTPOUTING
Iptables流程图
流入本机: A ---> PREROUTING ---> INPUT ---> B
流出本机:OUTPUT ---> POSTROUTING ---> B
经过本机: A ---> OUTPUT ---> POSTROUTING
---> PREROUTING ---> FORWARD ---> POSTROUTING ---> C
---> PREROUTING ---> INPUT ---> B
filter : INPUT 、OUTPUT 、FORWARD
nat : PREROUTING 、 OUTPUT、 POSTROUTING
raw : PREROUTING、 OUTPUT
mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING

iptables 使用 1.下载安装iptables yum install iptables 2.iptables命令格式 iptables [参数] 通常为某个表添加规则的格式为: iptables -t 表名 选项 链名称 条件 动作 3.iptables参数 -t:指定要操作的表 -L(--list):显示链的已有规则(默认为filter表的规则) -v:显示数据包和数据草包 -n:不将地址反解 -A(--append):向指定的链中追加规则(加在底部)。 -I(--insert):向指定的链的顶部插入规则 -F(--fiush):清空链的现有规则 -Z(--zero):清空链中的数据包计数器和字节计数器 -D(--delete):删除链中的规则 -R(--replace):替换链中的相应规则 -S(--list--rules):列出所有的规则 -N(--new--chain):创建用户自定义的链 -X(-delete--chain):删除用户自定义的链 -P(--policy):指定链的默认策略 4.iptables的规则参数 -s:指定源地址(发送请求的地址) -d:指定目标地址(要访问的地址) --sport:指定源端口(发送请求的端口) --dport:指定目标端口(访问的端口) -i:指定进来的网卡 -o:指定出去的网卡 -p:指定网络协议(TCP、UDP、ICMP等或用ALL表示全部) -m:指定模块 -j:执行动作 5.iptables动作 ACCEPT:将数据包放行,处理完此动作后将不再向下比对直接前往下一个规则链 REJECT:阻拦该数据包并通知对方 DROP:丢弃数据包不处理,之后将不再向下比对直接中断过滤程序 REDIRECT:将包重新导向另一个端口,处理完此动作后将继续比对其他规则
6.iptables模块
模块的作用是拓展iptables的功能
1.multiport模块
multiport模块的作用是能够连续匹配多个端口
参数:
--dports:指定多个端口(不同端口之间用逗号分隔,连续的端口号使用冒号分隔)
2.iprange模块
iprange模块的作用是能够指定一段连续的IP地址范围。
参数:
--src-range from [-to] :指定源地址范围
--dst-range from [-to] :指定目标地址范围
3.string模块
string模块的作用是指定匹配的字符串
参数:
--string [匹配内容] :指定要匹配的字符
--algo [bm/kmp] :匹配的查询算法
4.time模块
time模块的作用是根据时间段来匹配报文
参数:
--timestart hh:mm[:ss]:指定开始时间
--timestop hh:mm[:ss]:指定结束时间
--monthdays day[,day...]:指定一个月的某一天
--weekday day[,day...]:指定周还是周天
5.icmp模块
icmp模块的作用是禁止ping命令,默认本机无法ping别人,别人无法ping本机
参数:
--icmp-type {type[/code] | typename}
echo-request (8) 请求
echo-reply (0)回应
6.connlimt模块
connlimt模块的作用是限制并发的链接数
参数:
--connlimit-upto n :指定当链接数小于等于n时匹配
--connlimit-above n:指定当连接数大于n时匹配
7.limit模块
limit模块的作用是将报文的速率进行限制。单位为每秒、分、时、天
参数:
--limit rate [/second|/minute|/hour/day]:指定报文的速率
--limit-burst n :指定报文数量(默认为5)

浙公网安备 33010602011771号