ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

iptables(下)规则

2021-03-27 17:29:10  阅读:148  来源: 互联网

标签:iptables -- 0.0 ACCEPT 规则 数据包


iptables安装

停止并禁止开机自启firewalld服务

systemctl stop firewalld &&  systemctl disable firewalld

检查是否安装了iptables

rpm -q iptables

没有安装,可以安装iptables

yum install -y iptables

升级iptables

yum update iptables 

iptables的语法规则

iptables 至少有三个预设的 table (filter, nat, mangle),较常用的是本机的 filter 表, 这也是默认的表。

查看规则

iptables [-t tables] [-L] [-nv](也可以使用iptables-save)
-t :后面接 table ,例如 nat 或 filter ,若省略此项目,则使用预设的 filter
-L :列出目前的 table 的规则
-n :不进行 IP 与 HOSTNAME 的反查,显示结果的速度会快很多!
-v :列出更多的信息,包括通过该规则的数据包总位元数、相关的网路接口等

例如查看nat表的规则

iptables -t nat -nL

[root@ll ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:90 to:80.0.0.0
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:90 to:80.0.0.0

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination     
  • Chain 就是链
  • policy 就是默认的规则
  • target:代表进行的动作, ACCEPT 是放行,而 REJECT 则是拒绝,此外,还有 DROP (丢弃) 的项目!
  • prot:代表使用的数据包协议,主要有 tcp, udp 及 icmp 三种数据包格式;
  • opt:额外的选项说明
  • source :代表此规则是针对哪个『来源 IP』进行限制
  • destination :代表此规则是针对哪个『目标 IP』进行限制

清除规则

iptables [-t tables] [-FXZ]
选项与参数:
-F :清除所有的已设置的规则;
-X :杀掉所有用户 “自定义” 的 chain;
-Z :将所有的 chain 的计数与流量统计都归零
此命令不会清除默认的规则(默认规则就是处理没有符合到任何一个规则的数据包的策略。)

设置规则

以下规则是生产环境下使用的默认规则
就是将进入本机的数据包默认是拒绝的,出去的数据包和需要转发的数据包都是放行的。

iptables -P INPUT   REJECT    
iptables -P OUTPUT  ACCEPT
iptables -P FORWARD ACCEPT
设置默认规则的语法

iptables [-t nat] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P :定义默认规则( Policy )。注意,这个 P 为大写
ACCEPT :该数据包可接受
DROP :该数据包直接丢弃,不会让 client 端知道为何被丢弃。

一般规则

在这里插入图片描述

例如
允许ping

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

关于 LOG

LOG 这个动作仅仅用于记录,并且不会影响这个数据包的其他规则的比对
就是把符合规则的数据包记录到 /var/log/messages 日志中
iptables -A INPUT -s 192.168.1.100 -j LOG
关于 TCP 和 UDP 的规则
语法
iptables [-AI 链] [-io 网络接口] [-p tcp,udp]
[-s 来源 IP/网段] [–sport 端口范围]
[-d 目标 IP/网段] [–dport 端口范围]
-j [ACCEPT;DROP;REJECT]
例如
只允许 192.168.1.0/24 网段的 1024到65534 端口访问本机的 22 端口

iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 \
--sport 1024:65534 --dport ssh -j ACCEPT

关于状态的规则

语法
iptables -A INPUT [-m state] [–state 状态]
-m :一些 iptables 的外挂模块,主要常见的有:
state :TCP 状态模块
mac :网卡的 mac 地址 (hardware address)
–state :一些数据包的状态,主要有:
INVALID :无效的数据包,例如资料破损的数据包状态
ESTABLISHED:已经连线成功的连线状态;
NEW :想要新建立连线的数据包状态;
RELATED :这个最常用!表示这个数据包是与我们主机发送出去的数据包有关

例如
只要已建立或相关数据包就予以通过,只要是不合法数据包就丢弃

iptables -A INPUT -m state \
--state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -m state --state INVALID -j DROP

保存规则

想要保存策略,需要安装iptable的服务

yum install -y iptables-services

启动服务

systemctl start iptables.service

之后使用 iptables-save > /etc/sysconfig/iptables 命令讲当前的规则保存网络地址转换开启防火墙主机的路由功能

echo "1" > /proc/sys/net/ipv4/ip_forward
sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0

DNET目标地址转换(或者端口转发)

将访问本机1000端口的数据包转发到192.168.100.10服务器的22端口

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport1000 -j DNAT --to-destination 192.168.100.10:22

标签:iptables,--,0.0,ACCEPT,规则,数据包
来源: https://blog.csdn.net/weixin_52346174/article/details/115268084

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有