微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CentOS iptables

iptables 简介

netfilter/iptables 组成Linux平台下的包过滤防火墙。

rule 包

是否允许通过的规则

chinas 链

数据包传播的路径

tables 表

提供特定的功能,包含filter nat mangle raw4个表,分别用于实现包过滤,网络地址转换,包重构(修改)和数据跟踪处理。

iptables 在内核的5个规则设置位置

  1. 内核空间中:从一个网络接口进来,到另一个网络接口去的
  2. 数据包从内核流入用户间的
  3. 数据包从用户空间流出的
  4. 进入/离开本机的外网接口
  5. 进入/离开本机的内网接口

五个规则链:
1. PREROUTING (路由前)
2. INPUT (数据包流入口)
3. FORWARD (转发管卡)
4. OUTPUT(数据包出口)
5. POSTROUTING(路由后)

防火墙策略:
1. 通,有身份认证才能进
2. 堵
filter:定义允许或不允许,用在INPUT FORWARD OUTPUT
nat 定义地址转换 用在PREROUTING OUTPUT POSTROUTING
mangle 修改报文原数据 用在5个规则链上

规则的写法

格式:

iptables [-t table] COMMAND chain rules -j ACTION
-t table :指定表名(filter/nat/mangle/raw)
COMMAND:命令,对链扫操作命令
chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的
rules:规则
-j ACTION :指定如何进行处理

比如:不允许172.16.0.0/24的进行访问。
 iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP
 当然你如果想拒绝的更彻底:
 iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT

 iptables -L -n -v  #查看定义规则的详细信息

COMMAND

链管理命令(立即生效)

-P 设置认策略

iptables -P INPUT (DROP|ACCEPT) 认是关的/开的

-L 查看iptables规则列表

-F flash , 清空规则链

iptables -t nat -F PREROUTING
iptables -t nat -F 清空nat表的所有链

-X 用于删除用户自定义的空链

使用方法跟-N相同,但是在删除之前必须要将里面的链给清空

-E 用来给用户自定义的链重命名

iptables -E oldname newname

-Z 清空链,及链中认规则的计数器

iptables -Z

规则管理命令

-A 追加
-I num : 插入
-R num :Replays替换/修改第几条规则
-D num : 删除第几条规则

查看管理命令 “-L”

附加子命令:

-n 以数字方式显示ip,否则显示主机名 -v 显示详细信息 -vv 更详细 -vvv 更更详细 -x 在计数顺上显示精确值 --line-numbers 显示规则的行号 -t nat:显示所有的关卡的信息

匹配标准

通用匹配

-s 源ip
-d 目标ip
-p 协议,TCP/UDP/ICMP
-i eth0 从某网卡流入
-o eth0 从某网卡流出

扩展匹配

-p tcp 扩展:

--dport xx-xx 指定目标端口范围 --dport xx 指定目标端口 --sport 指定源端口 --tcp-flags tcp的标志位

-p udp 扩展:

--dport --sport

-p icmp 扩展:

--icmp-type 8 匹配表求回显数据包

显式扩展-m

-j ACTION

  • DROP 丢弃
  • REJECT 拒绝
  • ACCEPT 接受
  • DNAT
  • SNAT
  • MASQUERADE 源地址伪装
  • REDIRECT 重定向
  • MARK 打防火墙标记
  • RETURN 返回

状态检测

端口的4种关系:
NEW TCP新连接
ESTABLISHED 已建立的连接
RELATED 如TCP 20/21一来一去的端口
INVALID 无法识别的

地址转换

示例

iptables -P INPUT DROP                 拒绝所有连接
iptables -I FORWARD -d www.xxx.com -j DROP   拒绝访问某网址
iptables -I FORWARD -s 192.168.1.X -j DROP   禁止某客户机上网
iptables -I FORWARD -s 192.168.1.0/24 -p tcp -dport 21 -j DROP 禁止某子网使用FTP
iptables -F
iptables -X
iptables -F -t mangle
iptables -t mangle -X
iptables -F -t nat
iptables -t nat -X
把三个表清空

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
设定INPUT、OUTPUT的认策略为DROP,FORWARD为ACCEPT。

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
先把“回环”打开

iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT
在所有网卡上打开ping功能,便于维护和检测。

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -j ACCEPT
打开22端口,允许远程管理。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。