iptables网络过滤器

1.什么是iptables
    IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 信息包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。
2.iptables表链结构

表名:

raw高级功能,如:网址过滤
mangle数据包修改(QOS),用于实现服务质量
net地址转换,用于网关路由器
filter包过滤,用于防火墙规则

规则链名

INPUT链处理输入数据包
OUTPUT链处理输出数据包
PORWARD链处理转发数据包
PREROUTING链用于目标地址转换(DNAT)
POSTOUTING链用于源地址转换(SNAT)
3.iptables 启动

systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables.service 
systemctl enable iptables.service
iptables -nL #查看iptables的设置
iptables -F #清空所有iptables更改
service iptables save  #保存更改到/etc/sysconfig/iptables

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

动作

ACCEPT接收数据包
DROP丢弃数据包
REDIRECT重定向、映射、透明代理
SNAT源地址转换
DNAT目标地址转换
MASQUERADEIP伪装(NAT),用于ADSL
LOG日志记录
iptables -A INPUT -s 172.25.254.65 -p tcp --dport 80 -j REJECT  #拒绝172.25.254.65访问80端口
iptables -nL
iptables -D INPUT 1                                             #删除INPUT链的第一行
iptables -D INPUT -s 172.25.254.65 -p tcp --dport 80 -j REJECT  #按内容删除
iptables -N westos	        #添加自定义链名
iptables -E westos WESTOS	#修改规则链名称
iptables -X WESTOS	        #删除自定义链

新建规则


删除规则



自定义链

5.用iptable命令实现端口伪装

实验环境: 一台主机为双网卡 ip分别为 eth0:172.25.254.133   eth1:172.25.0.222

                    另一台主机为单网卡,ip为172.25.0.233 设置其网关为172.25.0.222

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.133
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 172.25.0.222

用ip为172.25.0.222的主机连接172.25.254.65

使用 w -i 命令 查看是谁连接的这台主机,发现ip显示为172.25.254.133 则伪装成功




阅读更多
上一篇linux下的shell脚本
下一篇shell中的文本处理(grep sed awk)
想对作者说点什么? 我来说一句
相关热词

没有更多推荐了,返回首页

关闭
关闭
关闭