关于iptabels的-A与-I参数

关于iptabels的-A与-I参数

iptables-参数-A和-I

iptables -L -n --line-number 列出链所有的规则
iptables -F  清空规则
iptables-save 保存规则

最直观的讲解-A与-I的重要性

  • -A添加规则的参数,是添加规则在现有的后面
  • -I添加规则的参数,是添加在规则在现有的前面

如果是互不干涉的规则端口使用-A没关系不会受影响

假设node01节点的机器,我不想让他的ssh链接开放并且限制指定的主机连接
实验主机
三台都是均为虚拟机,主机的内网IP为192.168.1.250

IP 备注 ssh端口均为22
192.168.1.10 node01
192.168.1.20 node02
192.168.1.30 node03

在不设置的情况下先测试是否能登录

  • node02登录node01节点
[root@node02 ~]# ssh 192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:/OtoB97JsQT5QLHo0lPNYm443x1fDWgpw5XAwKmQFeo. ECDSA key fingerprint is MD5:fe:28:b2:d3:d4:12:02:45:a7:4b:bb:55:77:ce:94:6d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts. root@192.168.1.10's password: 
Last login: Tue Jan 12 09:04:53 2021 from 192.168.1.250
[root@node01 ~]# exit
登出
Connection to 192.168.1.10 closed.

把node01节点的22端口禁止不对外开放
一定一定要记住ssh端口在禁止之前先让自己能有权限登录,要不你会后悔!

`开放22端口给192.168.1.250这个地址`
[root@node01 ~]# iptables -A INPUT -s 192.168.1.250 -p tcp --dport 22 -j ACCEPT
`禁止22端口对外开放`
[root@node01 ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
`如果当你执行完上一条规则之后,你的命令行还能进行操作,就成功了,否则直接无反应断开连接!`

测试node02、node03节点是否可以进行登录

  • 登录失败

在这里插入图片描述
在这里插入图片描述
在node01节点看一下设置的规则以及编号顺序

[root@node01 ~]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.1.250        0.0.0.0/0            tcp dpt:22
2    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
。。。

在继续把node01节点的22端口开向node02节点

[root@node01 ~]# iptables -A INPUT -s 192.168.1.20 -p tcp --dport 22 -j ACCEPT

进行测试node02节点登录node01

  • 一样失败

在这里插入图片描述
到这里会有疑惑的人,为什么同样的使用方法我可以操作连接node01为什么node02不能连接到node01,

主要原因-A参数添加规则是在现有规则之后添加,刚操作做步骤如下
1.开放22端口给我自己的地址是我能继续操作终端
2.node01把22端口关闭
3.开发22端口给node02节点
这个是一个顺序读取规则的,这三个操作都是关于22端口但是在第二条已经被禁止掉了,所以如果还用-A参数只会一直添加在第2条禁止规则之后,所以无效!

再看一下node01节点的规则顺序

[root@node01 ~]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.1.250        0.0.0.0/0            tcp dpt:22
2    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
3    ACCEPT     tcp  --  192.168.1.20         0.0.0.0/0            tcp dpt:22

现在使用-I参数测试将22端口开放于node03节点

[root@node01 ~]# iptables -I INPUT -s 192.168.1.30 -p tcp --dport 22 -j ACCEPT

查看规则

  • 可以看到新添加的规则到了编号1的位置并且也在第2条禁止规则之上,所以node03节点可以登录,测试一下
[root@node01 ~]# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.1.30         0.0.0.0/0            tcp dpt:22
2    ACCEPT     tcp  --  192.168.1.250        0.0.0.0/0            tcp dpt:22
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
4    ACCEPT     tcp  --  192.168.1.20         0.0.0.0/0            tcp dpt:22

node03节点测试登录node01

[root@node03 ~]# ssh 192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. ECDSA key fingerprint is SHA256:/OtoB97JsQT5QLHo0lPNYm443x1fDWgpw5XAwKmQFeo. ECDSA key fingerprint is MD5:fe:28:b2:d3:d4:12:02:45:a7:4b:bb:55:77:ce:94:6d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.10' (ECDSA) to the list of known hosts. root@192.168.1.10's password: 
Last login: Tue Jan 12 09:23:31 2021 from 192.168.1.250
[root@node01 ~]# exit
登出
Connection to 192.168.1.10 closed.

看到这里希望你能明白iptables的-A于-I的区别!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101866.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 荣耀20青春版曝光用屏幕指纹,网友:不是侧边指纹更快吗?「建议收藏」

    荣耀20青春版曝光用屏幕指纹,网友:不是侧边指纹更快吗?「建议收藏」荣耀今年的手机,你会有一个共同的特征,那就是侧边指纹设计。之前采用背部指纹由于会破坏整体性,所以采用了侧边的指纹,不管是旗舰(除了去年的Magic2),还是千元机都是这种方案,荣耀官方给出的解释是,侧边指纹的解锁速度更快,而且荣耀这边还对比了相对更慢的三星S10系列的超声波方案,最终的结论是,侧边指纹完全超越了之前的三星解锁,所以让侧边指纹方案落地显得更为铿锵有力。…

    2022年8月10日
    6
  • Activiti教程(六)activiti的流程设计_未完待续

    Activiti教程(六)activiti的流程设计_未完待续一.idea配置activiti插件二.流程设计使用idea设计各种流程图并讲解流程空间的各自属性 

    2022年7月21日
    15
  • 整流桥厂家ASEMI的插件整流桥和贴片整流桥型号大全[通俗易懂]

    整流桥厂家ASEMI的插件整流桥和贴片整流桥型号大全[通俗易懂]编辑-Z整流桥厂家ASEMI的整流桥型号琳琅满目,太多的型号很多用户在选型的时候就犯难了,下面是整流桥厂家ASEMI的插件整流桥和贴片整流桥型号大全,给大家做一个类别整理。0.5A-0.8A50V~1000V贴片整流桥堆MBS-4贴片整流桥:MB2S,MB4S,MB6S,MB8S,MB10S,HD02,HD04,HD06,HD08,HD10;MBF-4贴片整流桥:MB2F,MB4F,MB6F,MB8F,MB10F;MBM-4插件整流桥:MB2M,MB4M,MB6M,..

    2022年8月24日
    5
  • mysql5.7的jdbc_JDBC连接mysql5.7简单例子

    mysql5.7的jdbc_JDBC连接mysql5.7简单例子1,准备jdbc的连接jar包,然后在eclipse中创建一个java项目(不是web项目)。2,将jdbc的jar包buildpath或者copy到java项目中都可以,等下给出项目结构图。3,给出jdbcc类的连接代码,packagejdbcDemo;importjava.sql.Connection;importjava.sql.DriverManager;importjava…

    2025年9月2日
    8
  • 8000401a错误解决方案(Excel)「建议收藏」

    8000401a错误解决方案(Excel)「建议收藏」前一阵子做开发需要用到Excel和Word编程,本人用的是Vista系统,开发环境是VS2005和Office2007,测试无任何问题,可是到部署的时候出现了一些令人很头痛的问题,老是会出现例如:检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误:8000401a。的错误,在网上查询了许多资

    2022年7月25日
    7
  • 二 详解VBA编程是什么

    二 详解VBA编程是什么详解VBA编程是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORDBASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言——–VisualBasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发语言VASUALBASIC的子集.实际上VBA是”寄生于”VB应用程序的版本.V

    2022年5月30日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号