当前位置: 首页 > news >正文

linux iptables简介

表与链

iptables是4表五链

4表:filter表(过滤表) nat表 raw表 mangle表

五链:INPUT OUTPUT FORWARD PREROUTING POSTROUTING

(所有链的名字要大写)

pre…之前

post…之后

filter表

iptables默认操作就是这个表

实现防火墙的功能:屏蔽或准许端口ip

主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表iptables默认使用的表,这个表定义了三个链(chains)企业工作场景:主机防火墙
INPUT	负责过滤所有目标地址是本机地址的数据包,通俗来说:就是过滤进入主机的数据包(能否让数据包进入服务器
FORWARD	路过:负责转发流经主机的数据包,起转发的作用,和NAT关系很大
OUTPUT	处理所有源地址是本机地址的数据包
nat表

实现nat功能

​ 实现共享上网(内网服务器上外网)

​ 端口映射和ip映射

负责网络地址转发的,即来源与目的IP地址和post的转换
应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关
工作场景:1.用于企业路由(zebra)或网关,共享上网(POSTROUTING)2.做内部外部IP地址一对一映射(DMZ),硬件防火墙映射IP到内部服务器,FTP服务器(PREROUTING)3.web,单个端口的映射,直接映射80端口(PREROUTING)这个表定义了3个链,nat功能相当于网络的acl控制,和网络交换机acl类似
OUTPUT	和主机放出去的数据包有关,改变主机发出数据包的目的地址
PREROUTING	在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址,目的端口等
POSTROUTING	在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等	

环境准备工作

yum -y install iptables-services   //安装iptables services
rpm -ql iptables-services   //查看iptables软件包的内容
#/etc/sysconfig/iptables   //一些规则lsmod 就是查看内核中加载了哪些模块systemctl disable firewalld   //禁用firewalldiptables -nL   //查看filter表规则
iptables -t nat -nL  //查看nat表的规则,-t指定表

iptables命令参数

参数
-L		//显示表中的所有规则
-n		//不要把端口或IP反向解析为名字
指定表
-t		//指定表,不指定默认filter表
指定连接(加入/追加/删除)
-A		//append追加 加入准许类规则适用-A,把规则放最下面
-I		//insert把规则加在链的第一条 拒绝类规则放在所有规则最上面 拒绝类-I
-D		//delete删除  -D INPUT 1  
iptables -F   //清空规则
iptables -X   //清空自定义的链
iptables -Z   //链的计算器清零
iptables -t filter -I INPUT -p tcp --dport 22 -j DROP  //拒绝用户访问22端口
//-t 指定表 
//-I 插入,把规则放在最上面 
//-p 指定协议 tcp,udp,icmp
//--dport   目标端口
//DROP 丢弃动作,前面要加-j 后面加动作iptables -t filter -D INPUT 1
//-t 指定表
//-D 删除
//1   行数iptables -nL --line-number   //以数字行数形式显示iptables list
参数
-p		//协议protocal tcp/udp/icmp/all 指定端口的时候需要指定协议
--dport		//目标端口 dest detination 指定端口 加上协议-p tcp
--sport		//源端口  source源
-s			//source 源IP
-d		//destination 目标IP
-m		//指定模块 multiport   可以一次指定多个端口
-i		//input 输入的时候  从哪个网卡进来
-o		//ouput输出的时候 从哪个网卡出去
参数
-j		//满足条件后的动作:DROP/ACCEPT/REJECT//DROP REJECT拒绝//DROP 把数据丢弃,不会返回信息给用户//REJECT 拒绝 返回拒绝信息

IPTABLES

添加必要的网络地址转换规则,使外部客户端能够访问到内部服务器 上的 dns、mail、web 和 ftp 服务

INPUT、OUTPUT 和 FOREARD 链默认拒绝(DROP)所有流量通行

配置源地址转换允许内部客户端能够访问互联网区域。

yum -y install iptables-services.x86_64  iptables
SNAT规则
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens34 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens34 -j MASQUERADE[root@RouterSrv ~]# iptables -t nat -nvL POSTROUTING 
Chain POSTROUTING (policy ACCEPT 395 packets, 28294 bytes)pkts bytes target     prot opt in     out     source               destination         2   114 MASQUERADE  all  --  *      ens34   192.168.0.0/24       0.0.0.0/0           719 50161 MASQUERADE  all  --  *      ens34   192.168.100.0/24     0.0.0.0/0   
DNAT规则
iptables -t nat -A PREROUTING -d 81.6.63.254 -p udp --dport 53 -j DNAT --to 192.168.100.100  //将192.168.100.100udp53dns映射到81.6.63.254相应端口
iptables -t nat -A PREROUTING -d 81.6.63.254 -p tcp -m multiport --dport 53,80,443,465,993 -j DNAT --to 192.168.100.100  //映射192.168.100.100的dns http https mail  到81.6.63.254相应端口
iptables -t nat -A PREROUTING -d 81.6.63.254 -p tcp -m multiport --dport 20,21,137,138,139,444,445,4500:5000 -j DNAT --to 192.168.100.200  //映射192.168.100.200 FTP,文件传输 到81.6.63.254相应端口[root@RouterSrv ~]# iptables -t nat -nvL PREROUTING 
Chain PREROUTING (policy ACCEPT 7014 packets, 426K bytes)pkts bytes target     prot opt in     out     source               destination         229 16310 DNAT       udp  --  *      *       0.0.0.0/0            81.6.63.254          udp dpt:53 to:192.168.100.1006   360 DNAT       tcp  --  *      *       0.0.0.0/0            81.6.63.254          multiport dports 53,80,443,465,993 to:192.168.100.1000     0 DNAT       tcp  --  *      *       0.0.0.0/0            81.6.63.254          multiport dports 20,21,137,138,139,444,445,4500:5000 to:192.168.100.200
默认拒绝和放行必要流量
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 1194,2021 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 67,68 -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 53,80,443,465,993,21,20,137,138,139,444,445,4500:5000  -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dport 67,68 -j ACCEPT  
//这里尽量满足要求,写多不会扣分
//截完图后我会全部放行,因为目的已经达到了,没必要之后的操作浪费时间iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT[root@RouterSrv ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 1194,2021
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 67,68Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 53,80,443,465,993,20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 21Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0            multiport dports 67,68
[root@routersrv ~]# iptables -t nat -L -n --line-numbers
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  192.168.0.0/24       0.0.0.0/0           
2    MASQUERADE  all  --  192.168.100.0/24     0.0.0.0/0   iptables -t nat -D POSTROUTING 1       //针对nat的表进行删除

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 14-网络安全框架及模型-分层防护模型
  • 第八周:AIPM面试准备
  • WPF+Halcon 培训项目实战(8):WPF+Halcon初次开发
  • 词法语法语义分析程序设计及实现,包含出错提示和错误恢复
  • UDP信号多个电脑的信息传输测试、配置指南
  • 【c/c++】指针例图基础详解
  • H3CIE面试项目
  • Zookeeper之手写一个分布式锁
  • JavaScript二
  • js for和forEach 跳出循环 替代方案
  • AI又进化了,AI 写代码工具
  • 使用Jenkins和单个模板部署多个Kubernetes组件
  • openpose+smplx
  • 轮廓检测与处理
  • wpf-动态设置组件【按钮为例】样式
  • [deviceone开发]-do_Webview的基本示例
  • 「面试题」如何实现一个圣杯布局?
  • HTTP那些事
  • Java 内存分配及垃圾回收机制初探
  • Java基本数据类型之Number
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Meteor的表单提交:Form
  • React的组件模式
  • Shadow DOM 内部构造及如何构建独立组件
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue.js 移动端适配之 vw 解决方案
  • 大型网站性能监测、分析与优化常见问题QA
  • 配置 PM2 实现代码自动发布
  • 前端技术周刊 2019-01-14:客户端存储
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 实现菜单下拉伸展折叠效果demo
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • postgresql行列转换函数
  • 阿里云服务器购买完整流程
  • ‌内网穿透技术‌总结
  • #pragma once与条件编译
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (zhuan) 一些RL的文献(及笔记)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (三)SvelteKit教程:layout 文件
  • (一)基于IDEA的JAVA基础1
  • (转) 深度模型优化性能 调参
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net core 的缓存方案
  • .NET Core中的去虚
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 中 GetProcess 相关方法的性能
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件