热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

快速理解iptables入门教程

一、iptables安装一般系统已经自带,没有安装请参照下面安装(redhat系):Yuminstalliptables(debian系)Sudoapt-getinstalliptablesiptables&nda

一、iptables安装

一般系统已经自带,没有安装请参照下面安装
(redhat系):Yum install iptables
(debian系)Sudo apt-get install iptables
iptables –version查看版本
iptables v1.4.14 即为OK,已正常安装。iptables v1.x.x即为版本号。

二、三表五链

三个表: FilterNAT、Mangle。默认使用Filter。
Filter:用于一般信息包过滤,包含了INPUT、OUTPUT、FORWARD链。
NAT:用于需转发(NAT)的信息包,包含了OUTPUT、PREROUTING、POSTROUTING。
Mangle:包含一些规则来标记用于高级路由,包含PREROUTING和OUTPUT链。如查信息包及其头内进行了任何更改,则使用该表。
五个内置链:
PREROUTING  数据包进入路由表之前,用于修改目的地址(DNAT)。
INPUT  通过路由表后目的地为本机,匹配目的 IP 是本机的数据包。
FORWARD  通过路由表后,目的地不为本机,匹配穿过本机的数据包。
OUTPUT  由本机产生,向外转发。
POSTROUTING  发送到网卡接口之前,用于修改源地址 (SNAT)。
 

快速理解iptables入门教程
iptables(netfilter)五条链相互关系

 

快速理解iptables入门教程 
三表五链处理过程中的位置

三、目标(target)

ACCEPT (-j ACCEPT) 当信息包与ACCEPT目标的规则完全匹配时,会被接受即允许前往目的地,并将停止遍历链。
DROP (-j DROP) 当信息包与DROP目标的规则完全匹配时,会阻塞该包即丢弃该包。
REJECT (-j REJECT) 该目标工作方式与DROP目标相同,比DROP好的是REJECT不会在服务器和客户机上留下死套接字,并将错误消息发回给信息包的发送方。
RETURN (-j RETURN) 该目标是让与该规则相匹配的信息包停止遍历所有链,如果该链是INPUT之类的链,则使用该链的缺省策略处理该信息包。
还有其它的高级点的目标,如LOG、REDIRECT、MARK、MIRROR和MASQUERADE等。
 

四、命令和语法

iptables基本语法
iptables [-t 表名] -命令 -匹配 -j 动作/目标
iptables内置了filter、nat和mangle三张表,我们可以使用-t参数来设置对哪张表生效哈~也可以省略-t参数,则默认对filter表进行操作。
命令(command):
-I (--insert) 插入
-A(--append)追加
-D(--delete)删除
-P(--policy)策略
 
匹配(match):
-p(--protocol)协议
-s(--source)源
-d(--destination)目标
--in-interface eth2短格式:-i eth2      表示从eth2进
--out-interface eth0短格式:-o eth0       表示从eth0出
(--sport、--dport)来源端口、目的端口
附加模块使用-m来匹配
按包状态匹配   (state)
按来源 MAC 匹配(mac)
按包速率匹配   (limit)
多端口匹配   (multiport)
 
配置SNAT命令基本语法
iptables -t nat -A POSTROUTING -o 网络接口 -j SNAT --to-source IP地址
配置DNAT命令基本语法
iptables -t nat -A PREROUTING -i 网络接口 -p 协议 --dport 端口 -j DNAT --to-destination IP地址


五、策略保存

iptables 的保存和自动启动
开机自动启动服务用chkconfig iptables on
所有iptables命令都输入后都是当时有效,系统重启后就无效了。
#service iptables save
提示将iptables规则保存到/etc/sysconfig/iptables 文件中
iptables还提供了保存工具iptables-save,其实service iptables save也是调用iptables-save,也提供了恢复iptables规则的工具iptables-restore。
 
建议使用统一的iptables规则文件/etc/sysconfig/iptables(可以是其它位置如/etc/iptables.d/iptables.rule)。
iptables-save > /etc/sysconfig/iptables
iptables-restore
 
这个也能实现上面的功能:echo '/sbin/iptables-restore >/etc/rc.d/rc.local

六、常用实用策略

该内容来自其互联网。
注意:确保规则循序正确,弄清逻辑关系,学会时刻使用 -vnL
先开启转发:echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -F       清除预设表filter中的所有规则链的规则
iptables -X      清除预设表filter中使用者自定链中的规则
iptables -Z       清除预设表filter中使用计数器
iptables -F -t nat 
iptables -X -t nat 
iptables -Z -t nat     
可根据需求设置默认策略
iptables –P INPUT DROP
iptables –P FORWARD DROP
iptables –P OUTPUT ACCEPT 
这样默认把INPUT 、FORWARD 设置成DROP,只有OUTPUT是ACCEPT,如需要也可以设置成DROP。

(以后再来完成)按拓扑图进行一个案例设置:

FTP

SSH

MYSQL

NAT1-3389

NAT2-web


推荐阅读
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
author-avatar
mobiledu2502891447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有