• iptables


    目录

    iptables

    匹配规则:由上到下依次匹配,一旦匹配不再匹配

    参数

    知识点

    REJECT与DROP

    REJECT与DROP的区别

    当使用的时REJECT时,客户端访问迅速返回的值是拒绝连接

    当使用的是DROP时,返回的时连接超时

    REJECT与drop适用场景及危险系数

    部署参考

    步骤及例子

    iptables

    匹配规则:由上到下依次匹配,一旦匹配不再匹配

    linux默认使用的是firewalld ,使用iptables需要安装相应的应用软件

    参数

    -t:指定操作的是呢个表(raw filter mangle nat)-t 表名

    -p:指定匹配的数据包协议类型

    -s:指定源地址 --source address/mask

    -d:指定目的地址 --destination address/mask

    -i:指定数据包来自哪一个接口(input froward prerouting)--in-interface name

    -o:指定数据包出口接口(input froward prerouting)--out-interface name

    -L:列出指定链上的规则,没有则列出所有链上的规则(-L chain)--list [chain]

    -A:在指定chain的末尾插入指定的规则,规则会被放在最后 --append chain rule-specification

    -I:在链的指定位置插入一个或多条规则,rulenum为1,指在链的头部插入(也是默认) --insert chain [rulenum] rule-specification

    -D:在指定的链中删除一个或多个规则

    -R:替换或者修改链的规则(--R chain rulenum rule-specification)

    -P:指定target

    -F:清空iptables链上的所有规则

    -N:创建一个新链(--new-chain chain)

    -X:删除指定的链,这个链中没有使用的规则(--delete-chain [chain])

    -E:给指定的链重命名(--rename-chain old-chain new-chain)

    -j:满足某个条件的时候,应该执行某个动作

    -h:帮助信息

    知识点

    iptables 涉及到5链4表

    5链:规则链,有相应的规则组成

    prerouting:处理前,目的地址转换

    input:流入的数据包

    outpt:流出的数据包

    forward:需要转发的数据包

    postouting:处理后,用于源地址转换

    4表:规则组成的表

    filter:过滤表--用于数据包的过滤

    3个动作:

    ACCEPT:允许访问

    REJECT:拒绝访问

    DROP:丢弃数据的操作

    REJECT与DROP

    REJECT与DROP的区别

    REJECT:对访问服务器的流量进行拒绝,连接会马上断开,断开之后,客户端会认为访问的服务器不存在
    DROP:丢弃数据包,不反馈给客户端任何反应,客户端会因为连接会话的超时,断开
    当使用的时REJECT时,客户端访问迅速返回的值是拒绝连接
    [root@localhost ~]# curl 192.168.27.120:80
    curl: (7) Failed connect to 192.168.27.120:80; Connection refused
    当使用的是DROP时,返回的时连接超时
    [root@localhost ~]# curl 192.168.27.120:80
    curl: (7) Failed connect to 192.168.27.120:80; Connection timed out

    REJECT与drop适用场景及危险系数

    REJECT与DROP的使用场景:
    REJECT:REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题;
    DROP:DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP(不很符合TCP连接规范)的处理方式,可能会对你的网络造成一些不可预期或难以诊断的问题。
    由于drop是单方面拒绝连接,所以客户端并未接受到具体信息,会导致客户端只能等到会话超时才能断开。
    并且当客户端程序或应用需要IDENT协议支持(TCP Port 113, RFC 1413),如果防火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是由于防火墙引起的问题还是网络设备/线路故障。

    部署参考

    在部署防火墙时,当客户端是企业内部或者是可信任的网络的时候使用REJECT,当面临危险网络或更高级别的防火墙规则部署时使用DROP
    

    步骤及例子

    1.安装iptables

    yum install -y ptables-services.x86_64 

    2.使用iptables的时候需要将firewalld停止

    systemctl start iptables.service

    3.iptables简单的查询命令

    iptables -vnL   #查看iptables的详细信息
    iptables -L
    iptables -L --line-numbers  #显示当前的iptables的规则的序号
    iptables -t <链名> -L     #只列出查看表的规则
    iptables -D <链名>  规则链的序号
    iptables -F     #清空岁所有的规则链

    4.开启iptables使浏览器可以访问httpd

    开启httpd服务
    systemctl restart httpd
    编写规则链
    iptables -I INPUT -P tcp --dport 80 -j ACCEPT
    查看是否写入规则链中
    iptables -vnL
    将iptables 策略规则永久写入
    service iptables save
    注意:默认iptables不会永久写入,当iptables重启后,iptables规则就会被清空,所以如果需要将iptables永久写入到策略规则中需要使用service iptables save
    
    确认
    curl 192.168.27.120:80

    5.另一台服务器(121)不可以远程连接主机(120)

    iptables -I INPUT -p tcp -s 192.168.27.121 --dport 22 -j REJECT
    
    iptables -I INPUT -p tcp -s 192.168.27.121 --dport 22 -j DROP

    6.本主机不可以远程访问另一台主机

    iptables -I OUTPUT -p tcp -d 192.168.27.121  --dport 22 -j REJECT

    7.禁止192.168.27.121访问本主机的80端口

    iptables -I INPUT -p tcp -s 192.168.27.121 --dport 80 -j REJECT
    

    当使用允许或者拒绝某个ip时

    可以使用两种方法:

    1.-A:始终在链的末尾插入(建议使用-A)

    2.-I:始终在链的最开始端插入

    -I与-A不能同时写入一条规则中

    当使用-A,先允许个例,在拒绝所有
    iptables -A  INPUT -p tcp -s ip --dport 22 -j 动作
    iptables -A  INPUT -p tcp --dport 22 -j 动作
    当使用-I,先拒绝所有,在允许个例
    iptables -I  INPUT -p tcp --dport 22 -j 动作
    iptables -I  INPUT -p tcp -s ip --dport 22 -j 动作
    

    iptables -A OUTPUT -p tcp --sport xxxx:xxxx -j DROP        #本主机对某个流出流量做限制,不允许此端口流出相关流量。

  • 相关阅读:
    【无标题(PC+WAP)花卉租赁盆栽绿植类pbootcms站模板
    python_data_analysis_and_mining_action-master-2
    Mybatis源码解析(八):插件机制
    《Journal of Renewable and Sustainable Energy》期刊介绍(SCI 4区)
    June 27 talk SofiE
    AOP实现系统告警
    2022山东健康展,健康产业展,DJK中国健博会,睡眠健康展
    HTML如何制作公司网站首页(web前端期末大作业)
    深入理解MySQL存储引擎、InnoDB与MyISAM的比较以及事务处理机制
    Kubernetes 学习总结(38)—— Kubernetes 与云原生的联系
  • 原文地址:https://blog.csdn.net/weixin_62173637/article/details/133785696