iptables网络过滤器部署管理

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 或更高版本,否则需要下载该工具并安装使用它。

iptables表链结构:

iptables网络过滤器部署管理_第1张图片

表名包括:

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

规则链名包括:

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTOUTING链:用于源地址转换(SNAT)。

2 iptables 启动

1 systemctl stop firewalld
2 systemctl disable firewalld
3 systemctl start iptables.service
4 systemctl enable iptables.service
5 iptables -nL #查看iptables的设置
6 iptables -F #清空所有iptables更改
7 service iptables save  #保存更改到/etc/sysconfig/iptables
8 vim /etc/sysconfig/iptables #iptables的配置文件

iptables网络过滤器部署管理_第2张图片

3 iptables 命令行管理

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

动作包括:

  • accept:接收数据包。
  • DROP:丢弃数据包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址转换。
  • DNAT:目标地址转换。
  • MASQUERADE:IP伪装(NAT),用于ADSL。
  • LOG:日志记录。

4 iptables参数规则管理策略部署

1 iptables -A   INPUT  -s 172.25.254.250 -p tcp --dport 22 -j ACCEPT #添加22端口被172.25.254.250连接时是被允许的;-s 匹配来源172.25.254.250的数据包(-s 192.168.1.0/24 匹配来自 172.25.254.250/24 网络的数据包); -A 添加 ,-p 端口; dport 目的地端口,-j +REJECT,DROP,ACCEPT(可执行动作)REJECT直接拒绝,DROP访问拒绝,无任何提示,ACCEPT允许访问                
2 iptables -nL
3 iptable -D INPUT 1 #删除filter表中第一条规则INPUT链的第一行;
  #iptables -D INPUT -s 172.25.254.64 -j ACCEPT #按内容删除
4 iptables -A INPUT -p tcp --dport 80 -j     ACCEPT #添加
5 iptables -I INPUT 1 -p tcp --dport 80 -j REJECT #插入到第一行策略
6 iptables -P INPUT DROP #设置filter表INPUT链的默认规则 ,当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
7 iptables -R INPUT 2 INPUT 1 -s 172.25.254.64 -p tcp --dport 80 -j ACCEPT #将原来的第二条规则策略改为源为172.25.254.64访问80端口时为允许状态,即只对该主机开放80端口
8 iptables -t filter -I INPUT 2 -j ACCEPT -t 表
9 iptables -N westos #添加自定义链名
10 iptables -E westos WESTOS #修改规则链名称
11 iptables -X WESTOS #删除自定义链
12 iptables -t nat -F #清空nat策略, -F 仅仅是清空链中规则,并不影响 -P 设置的默认规则

iptables网络过滤器部署管理_第3张图片

iptables网络过滤器部署管理_第4张图片

iptables网络过滤器部署管理_第5张图片

5 当访问ssh http iscsi https时,iptables允许访问或拒绝,从而提高系统管理的安全性

查看端口lsof -i

1 iptables -F #刷新策略
2 iptables -nL
3 iptables -A INPUT -p tcp --dport 22 -j     ACCEPT #接收sshd的数据包
4 iptables -A INPUT -p tcp --dport 53 -j     ACCEPT #接受DNS域名解析数据包访问
5 iptables -A INPUT -p tcp --dport 80 -j     ACCEPT #接收http阿帕器数据包访问
6 iptables -A INPUT -p tcp --dport 3260 -    j ACCEPT #ISCSI数据监听数据包访问
7 iptables -A INPUT -i lo -j ACCEPT #回环接口

6 访问状态不同,策略部署也不同

当用户访问过时或者正在访问时,读取第一条策略;当用户第一次访问则读取后面的策略,当用户两者都不属于就会被拒绝
1 iptables -nL
2 iptables -F
3 iptables -nL
4 iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT #ESTABLISHED访问过的;RELATED正在访问的
5 iptables -nL
6 iptables -A INPUT  -m state --state NEW     -p tcp --dport 22 -j ACCEPT
7 iptables -A INPUT  -m state --state NEW     -p tcp --dport 80  -j ACCEPT
8 iptables -A INPUT  -m state --state NEW     -p tcp --dport 3260  -j ACCEPT
9 iptables -A INPUT  -m state --state NEW     -p tcp --dport 443  -j ACCEPT
10 iptables -A INPUT  -m state --state NEW     -i lo -j ACCEPT
11 iptables -nL
12 iptables -A INPUT -j REJECT
13 iptables -nL
14 service iptables save
15 cat /etc/sysconfig/iptables #查看配置文件,即部署是否生效

iptables网络过滤器部署管理_第6张图片

iptables设置

iptables网络过滤器部署管理_第7张图片

查看配置文件:

iptables网络过滤器部署管理_第8张图片

7 iptable命令实现端口伪装

双网卡服务端
1 iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.232 #-o eth1匹配从网络接口eth1出去
2 iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j DNAT --to-dest 172.25.0.132 #-i eth1 匹配从eth1出去
3 ptables -t nat -nL:查看nat策略
4 iptables -t nat -L PREROUTING:查看nat表PREROUTING链的规则
单网卡客户端
ssh [email protected]
w -i
查看172.25.0.132是否伪装成了172.25.254.232

伪装测试:

iptables网络过滤器部署管理_第9张图片

 

你可能感兴趣的:(iptables,网络过滤器部署管理)