位置: 编程技术 - 正文

文科生也能看懂的Linux iptables入门教程(文科生也能看懂的电子电路学PDf)

编辑:rootadmin

推荐整理分享文科生也能看懂的Linux iptables入门教程(文科生也能看懂的电子电路学PDf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:文科生也能看懂的电子电路学PDf,文科生能看懂博物馆吗,文科生能看懂三体吗,文科生也能看懂历史吗,文科生也能看懂历史吗,文科生也能看懂的统计学,文科生也能看懂的统计学,文科生也能看懂历史吗,内容如对您有帮助,希望把文章链接给更多的朋友!

对于斗胆开始玩vps的文科生来讲,iptables简直是地狱中的地狱。有几家vps供应商系统默认是带着些iptables规则的,以前我一向是难言之隐,一清了之。

我很早就知道这东西重要,但看着太难了,后来看到log里越来越多的攻击记录,心想这东西得必须学了,说不定哪天哪个龟孙子就攻进来了。网上及电子书中的教程一般对于文科生来讲比较难看懂,有的还画着图,号称a picture can tell a thousand words. 但有图也看不懂,你说画个桌子,我知道英语是table、日语称鸡鸡。但这个根本不存在的table,你画出来,对于连看懂火车时刻表都表示有困难的我,我会更糊涂的。

说闲话少说的时候,实际上是说了很多闲话….咬咬牙开始吧,我还是要不怕困难,写一个连文科生都能看懂的iptables心得!

如其名称所示,iptables,就是里面有好几个table,大约有过滤桌、nat桌、mangle桌啥的。后两个你先别管,等我搞明白了再来教你,第一个桌子从名称上一看就明白了,过滤数据用的,它也正是我们用来防止攻击用的——把坏人过滤掉,不让他进来!那我们就讲这个过滤桌吧。

这个桌子上放有一条一条的chain,就是链子。每个链子由尺子(rules)组成…严肃点,我不开玩笑了,这么说吧,table(表)由chain(链)组成,Chain又有规则组成(rules)。

既然我们只讲 filter table(过滤表),那么table这个概念就跟我们无关了,重点要理解“链”和组成“链”的“rule (规则)”。

链(chain)与规则 (rules)

filter table里面有三个默认的链,INPUT,OUTPUT 和 FORWARD。FORWARD呢对于做站基本用不上,我们就讲INPUT 和 OUTPUT。因为是别人要攻击我们,对于我们的服务器来讲,攻击是要进来的,即INPUT,诶?那么说把 INPUT这个链搞明白,就可以防守了?差不多吧。那我们就只讲 INPUT好了,越简单越好,关键是把概念理清楚,别的细节,都可以查到的的亲。另外,INPUT, OUTPUT, FORWARD都是由规则组成的链,INPUT搞懂了,其他的也就不难了。

平常我们看到iptables,就是一条条的规则,例如:

复制代码代码如下:iptables -A INPUT -p tcp --dport -j ACCEPT

看到INPUT这个词了吧?这说明这条规则属于INPUT这个链的,tcp是协议,网站都是用tcp的, –dport ,就是这个端口,也就是别人打开你的网站的时候需要与你的服务器的端口连起来,就像一条打印机线把电脑的打印机口与打印机连起来一样,不过网络上端口是虚拟的,但实际工作的时候是一回事,就是通信。对于INPUT(发进来)的数据包,是目标端口,即destination port, 简称 dport。

因为你的服务器上放了你的网站,你需要允许别人向端口发连接请求,ACCEPT,即接受请求和连接。现在你明白了吧?有了这句,别人就可以连接你的服务器,打开上面的网页了。

前面那个“-A”的意思append,与后面的INPUT连用的,就是把这条规则加到INPUT这个链的最后面。当然现我们INPUT这个链上啥都没有,加到最后面,也就是第一条了。

命令行的规则你大概明白了吧,“-”符号,后面直接跟的是参数名,参数名后跟空格,空格后跟这个参数的值(姑且这么理解吧)。例如 -p tcp ,这里的‘-p’是不能随便写的,是iptables程序定义的,你写个“-p”,程序就知道后面跟的是协议名称。你写个“-A”,iptables程序就知道后面跟的是链的名称。那么“–dport”里的两个减号“–”是啥意思呢?它的功能跟一个减号是一样的,都表示后面是参数名,不过两个减号后面跟的参数名的全称,一个减号跟的是简称,全称容易看懂,减称写起来省劲。例如上面这句规则也可以写成:复制代码代码如下:iptables -append INPUT --proto tcp --dport --jump ACCEPT

当然,爱装逼的理科生一般是不会写全称的,大都用一个减号,一个字母的简称。亲爱的windows用户,注意这里的参数名和参数值都是大小写敏感的,把“-p”写成“-P”,程序是不工作的。另外英语很好的你可以注意到了,即使是加了两个减号的“全称”,也不全,proto明明不对,该是protocol才对。你知道他们理科生语文不好,原谅他们吧。

光有这条还不够,因为你的vps上还有别的服务,例如你上传文件需要ftp或sftp,进入后台需要ssh,ftp的默认端口是,ssh是,我们把它们也加上。

复制代码代码如下:iptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPT

好了,你准备就开放这么多服务,最后在加一句

复制代码代码如下:iptables -A INPUT -j DROP

文科生也能看懂的Linux iptables入门教程(文科生也能看懂的电子电路学PDf)

它的意思是拒绝所有连接…这怎么行?不是说要允许,,和吗?这是因为INPUT是个链子,有头有尾,按顺序来的。如果有人连接你的口,第一句规则说ACCEPT,进来吧。那么他发来的一梭子弹弹就不再经过后面的规则了,当然也就不会被放在最后面的DROP这句拒绝了。

现在我们的全部规则是:复制代码代码如下:iptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -j DROP

翻译成文科生的语言就是发到(嘴巴),(菊花),(猫猫)三个口的数据将接受,想往别的地方塞数据,一律拒绝。复习一下开始说的,这些东东的意思是在INPUT这个链子上有四条规则,规则是按顺序一个一个来的,发来的数据被匹配后,就跳出链子,后面的规则就不再执行了。如果你把iptables -A INPUT -j DROP这条放在链头,你的vps就变成了石女,唯有通过服务商的面板重启了!

REJECT 和 DROP

刚才-j 后面的拒绝操作是DROP,正确的英语译文该是”REJECT”才对。是的,写成”-j REJECT”也是可以的。不同之处是REJECT比较客气,等于告诉想搞你的人“对不起,人家这两天不方便。”而DROP就是一声不坑地拒绝。对于入侵者,不用那么客气,用DROP好了。因为如果你回应了,等于告诉想搞你的人你是在线的,只是拒绝了,反而会引起他继续努力的斗志。

状态 (state)匹配

如果你喜颠颠地拿着上面几条去试验了,估计你的vps上的一些网站可能就竿屁了,iptables这个妹妹很难对付的。要想让你的服务器正常工作,还需要添加这一句在DROP那一句之前。

复制代码代码如下:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

“-m”是“匹配”的意思,-m state的意思是匹配数据包状态,用户发来的数据包分别带有不同的状态,即 NEW, ESTABLISHED, 和 RELATED。NEW 就是开头搭讪,ESTABLISHED,就是搭讪完了之后后续的数据包,RELATED就是与已经存在的连接相关的数据包。总之这句话的意思是,接受已经建立了连接的数据包,即搭讪之后的数据包。现在我们的INPUT链是这个样子的:复制代码代码如下:iptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -j DROP

意思是外面接受发往本机,,的tcp数据包,还接受发往任何端口的已建立(established)和相关(related)的数据包(第四句),剩下的INPUT数据包一律抛弃。

为毛要允许状态ESTABLISHED 和 RELATED的入站数据呢?因为你的服务器同时也是台电脑,还要从别的服务器下载东西。下载时,你的服务器先向别的服务器发出连接请求(new),别的服务器允许你连接,连接建立(ESTABLISHED)之后,就需要接受别的服务器发来的数据,对于你的服务器来讲属于INPUT。也就是说,如果没有iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT这句,wget curl啥的就都不工作了。有了这句,加上前三句,即允许别的电脑连接(new)你的,和端口,同时允许别的服务器在你的服务器先向它发请求的条件下向你发送数据。另外这些状态都是基于tcp协议来讲的(谢谢BOYPT)。

-A(–append)和-I (–insert)

刚才说了,-A INPUT的意思是把一条规则加在现有INPUT这个链子的最后面,那么写成-I INPUT,就是把一条规则强行插入到最前面。如果你比较变态,刚才的INPUT链倒着写也是可以的:复制代码代码如下:iptables -I INPUT -j DROPiptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -I INPUT -p tcp --dport -j ACCEPTiptables -I INPUT -p tcp --dport -j ACCEPTiptables -I INPUT -p tcp --dport -j ACCEPT

即后面一条总会插到现有INPUT链的最前面,最终形成的INPUT链跟前面是一样的。不过,不要试!因为你通常是远程操作你的vps的,你在命令行输入第一句,立马掉线!后面就全输不进去了!–insert也是有用的,例如前面这个INPUT链已经起了作用,你想在不清空现有INPUT链的基础上再开放一个端口,例如。那么就必须写成复制代码代码如下:iptables -I INPUT -p tcp --dport -j ACCEPT

如果你写成 -A,那么这条规则就被跟在DROP那句后面,发到的数据在来到新加的这句之前,就被干掉了。

如果你不想加到最前面,也可以在INPUT后面写个数字,表示添加的位置,如果把一条规则看成一行,也就是指定所谓的行号了。把上面添加端口的规则写成:复制代码代码如下:iptables -I INPUT 3 -p tcp --dport -j ACCEPT

那么就把它放在了第三条规则(即第三行)的位置了。在命令行里输入 iptables -nvx -L INPUT (查看现在生效的INPUT链),你会发现新增加的这条规则在端口那句的后面。

把上面的规则保存到文件里,运行一下,你的服务器就安全多了。

复制代码代码如下:iptables --flushiptables --delete-chainiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -p tcp --dport -j ACCEPTiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -j DROP

关于iptables的其他内容,如记录日志、屏蔽IP、建立自定义链……,日后再说吧!无论如何,搞懂今天讲的概念是最重要的,其他的细节都可以查到的,总是粘贴别人写好的规则,但一直啥也不懂,不是我们的文科生应该做的。

思考题:应用以上规则之后,服务器运行正常,但你无法在家ping你的服务器了!这是什么呢?

Linux系统怎么设置开机密码?Linux设置开机密码的方法 为了保证Linux系统的安全,应该给系统设置开机密码。注意,开机密码和登录密码是不同的。本文笔者就和大家分享一下给Linux设置开机密码的经验,希

Linux系统下怎么测试端口的连通性? 在工作中有很多时候都在去测试一下服务器端口是否能连通是否正常的情况,下面小编与大家分享一下在Linux环境下如何测试端口的连通性,分别测试TCP

一个优化的很不错的sysctl.conf配置分享 最近找了个不错的sysctl.conf的优化参数,在网站响应上已经算不错了的,time超时连接据说几乎为0了.系统:centos5.xsysctl.conf配置参数:复制代码代码如下:net.ipv4

标签: 文科生也能看懂的电子电路学PDf

本文链接地址:https://www.jiuchutong.com/biancheng/368313.html 转载请保留说明!

上一篇:Linux系统线上操作替换文件需要注意哪些(linux操作系统网课)

下一篇:Linux系统怎么设置开机密码?Linux设置开机密码的方法(Linux系统怎么设置中文输入法)

  • 什么情况下不能做近视激光手术
  • 烟叶税税率是多少2019
  • 代开运输发票会不会造成重复征税
  • 季报利润表本月金额和本年累计金额
  • 分公司小规模
  • 股东出让个人股权流程
  • 土地补偿款收入要交什么税
  • 银行卡撤销账户
  • 捐赠的固定资产按什么计价
  • 长期待摊费用摊出来钱去哪里了
  • 分包工程有哪些风险
  • 客户把发票弄丢了,红冲重新开了会有什么风险
  • 计提未发放的工资是否交个税
  • 足疗发票税点
  • 流转税率是什么意思
  • 汇算清缴时多缴的企业所得税怎么做会计分录
  • 其他公司代付工资怎么做
  • 国税登记流程
  • 自然人转让股权税收筹划
  • 稽查查补是什么意思
  • 固定资产一次性扣除账务处理
  • 应收账款周转率怎么分析
  • 跨月发票作废怎么红冲
  • 一般纳税人所得税2023年税率
  • 业务招待费有增值税吗
  • 增值税系统技术维护费需要勾选吗
  • 网速突然减慢
  • 屏幕颜色怎么变
  • hbuilder怎么下载
  • 长期挂账的其他应付账款怎么处理
  • php 代码生成
  • 将款项汇往外地采购专用账户会计分录
  • 国债持有期间未兑付的利息所得税
  • 公司有个税怎么交
  • 详解php处理字符的方法
  • php实现留言板功能
  • php实现文件上传的函数
  • 时间格式转换成小时数
  • 电力系统培训计划
  • 成本费用做账
  • 因质量原因退货和召回的产品,均应按照规定
  • 什么叫资本退出
  • python中的列表和元祖有什么区别
  • 设备调试费是什么税
  • window10解压文件
  • php用户评论
  • 企业需要准备哪些申报材料?
  • 新增四大行业营收排名
  • 亏损企业所得税汇算清缴怎么做
  • 建筑公司预收工程款
  • 无偿调入资产如何做账
  • 接待客人后的感受和过程
  • 汇票和本票的区别是
  • 等额本金还款计算公式
  • 预收租金可以记入成本吗
  • 暂估入库后发票来不了会计分录
  • 税务人员如何做好本职工作
  • 利润总额与应纳税所得额的差异国内动态
  • sql server获取字段长度
  • 数据库sql分组
  • sqlserver数据库备份
  • linux make命令怎么用
  • 硬盘安装64位win8.1/win8或win7操作系统图文教程
  • smsvchost.exe是什么文件 电脑中Svchost.exe病毒解决办法
  • 驱动安装过程中发生错误
  • winxp系统介绍
  • win10预览版与正式版
  • win7窗口大小怎么设置
  • win8.1关机没反应
  • win8设置无线网络
  • win7系统怎么关闭病毒防护
  • cocos2dx3.3 便条提示语功能简单实现
  • jquery拖拽功能
  • 中间件 .net
  • 使用粗盐热敷十大危害
  • shell监控端口状态
  • js如何实现重置功能
  • jqueryshow和hide封装
  • python能爬取app吗
  • 矿产资源税的计税依据
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设