CentOS iptables

Posted 编程圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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端口,允许远程管理。

其它命令:

service iptables stop 关闭防火墙


以上是关于CentOS iptables的主要内容,如果未能解决你的问题,请参考以下文章

centos 安装iptables和iptables-services

centos iptable文件在哪

linux 命令iptables -t nat

Centos7中iptables规则无法保存

由于centos7默认没有iptables,请简述一下,怎么安装iptables防火墙,修改配置文件

centos 7的防火墙怎么开放端口