Linux 网络访问控制[通俗易懂]

Linux 网络访问控制[通俗易懂]网络访问控制

大家好,又见面了,我是你们的朋友全栈君。

网络访问控制:netfilter模块,可以对数据进行允许、丢弃、修改操作
数据包分类:源IP地址、目标IP地址、使用接口、使用协议、端口号、连接状态
过滤点:input、forward、output、prerouting、postrouting
功能点:filter、nat、mangle
这里写图片描述

规则:
iptables的基本语法格式
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

防火墙处理数据包的四种方式
ACCEPT 允许数据包通过
DROP 直接丢弃数据包,不给任何回应信息
REJECT 拒绝数据包通过,必要时会给数据发送端一个响应的信息。
LOG 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则

IPTables配置
最好配置第一条iptables规则为允许来自客户端主机的SSH。
iptables配置文件:/etc/sysconfig/iptables
通过iptables添加的规则不会永久保存。如果需要永久保存,可以执行service iptables save将iptables规则保存在/etc/sysconfig/iptables。
CentOS/RHEL系统会带有默认iptables规则,保存自定义规则会覆盖这些默认规则。

iptables通过规则对数据进行访问控制
一个规则使用一行配置
规则按顺序排列
当收到、发出、转发数据包时,使用规则对数据包进行匹配,按规则顺序进行逐条匹配
数据包按照第一个匹配上的规则执行相关动作:丢弃、放行、修改
没有匹配规则,则使用默认动作(每个chain拥有各自的默认动作)

常用功能:
做为服务器使用:过滤到本机的流量、过滤到本机发出的流量
作为路由器使用:过滤转发的流量、对转发数据的源/目标IP进行修改

基本操作:
列出现有iptables规则:iptables -L
插入一个规则:iptables -I INPUT 3 -p tcp –dport 22 -j ACCEPT
删除一个iptables规则:iptables -D INPUT 3 iptables -D INPUT -s 192.168.1.1 -j DROP
删除所有规则:iptables -F

匹配参数:
基于IP地址:-s 192.168.0.1 -d 192.168.0.2
基于接口:-i eth0 -o eth1
基于协议及端口:-p tcp –dport 22 -p udp –sport 53 -p icmp
取反参数:’l’ -s ‘l’ 192.168.1.1/24

常用NAT:
通过NAT进行跳转:iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-dest 192.168.1.10
通过NAT对出向数据进行跳转:iptables -t nat -A OUTPUT -p tcp –dport 80 -j DNAT –to-dest 192.168.1.10:8080
通过NAT对数据流进行伪装:iptables -t nat -A PREROUTING -o eth0 -j MASQUERADE
通过NAT隐藏源IP地址:iptables -t nat -A PREROUTING -j SNAT –to-source 1.2.3.4

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

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

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


相关推荐

  • 面试java工程师的自我介绍_软件开发和程序员一样吗

    面试java工程师的自我介绍_软件开发和程序员一样吗程序员面试时一段短短的自我介绍,其实是为了揭开更深入的面谈而设计的。下面学习啦小编为你带来java程序员面试自我介绍范文的内容,希望你们喜欢。关于java程序员面试自我介绍范文篇一本人叫小冰,今年22岁,现在是吉林大学软件开发与信息管理专业方向的三年级学生,对软件开发怀有浓烈的兴趣,且对JAVA语言尤其熟悉,能熟练使用jsp、struts、struts2、sring2和hibernate3等流行的…

    2025年6月28日
    5
  • InetAddress:通过InetAddress获取地址

    InetAddress:通过InetAddress获取地址当想通过代码知道自己主机地址和主机名,或者查询网络上服务器地址时,我们都可以用InetAddress类。java.net.InetAddress类是用来表示IP地址的高层表示,大多数有关于Java网络相关的类都和它有关系,例如socket,URL等。下面我们用代码介绍InetAddress类:packagecom.net2;importjava.net.InetAddress;impor…

    2022年6月23日
    42
  • SpringBoot重点详解–使用Druid+Jpa

    SpringBoot重点详解–使用Druid+Jpa目录Druid简介添加依赖与配置配置数据源配置Druid监控统计功能方式一(基于Servlet3.0注解的配置)方式二(基于Spring注解的配置)配置JPA应用测试Druid简介Druid是阿里巴巴开源的数据库连接池,号称是Java语言中最好的数据库连接池,能够提供强大的监控和扩展功能。GitHub地址:https://github.com/al…

    2022年7月23日
    27
  • GPU利用率低的解决办法[通俗易懂]

    GPU利用率低的解决办法[通俗易懂]watch-n0.1-dnvidia-smi#检查GPU利用率参数解决办法:1.dataloader设置参数2.增大batchsize3.减少IO操作,比如tensorboard的写入和打印。4.换显卡

    2022年6月30日
    142
  • 使用C#创建WebService实例

    使用C#创建WebService实例新增WebService专案更改服务程式名称重命名程式名称Service1.asmx修改为TestService.asmx此时下面的cs代表文件也会跟着修改,但可发现,代码中的类名并没有跟着变动修改类名称手动将类名称由Service1修改为TestService如果此时执行发布会发现还是会vb.net教程有问题,报错無法建立型別‘.Service1’修改服务绑定代码在TestService.asmx上右键选择打开方式,选择“Web服务编辑器”打开此时会看到服务所有设定,

    2022年7月21日
    12
  • SQL语句distinct的多个字段去重问题

    SQL语句distinct的多个字段去重问题经典例子selectdistinctname,idfromtable或者selectname,idfromtablegroupbyname像这样是错误的写法,distinct不起作用的曲线救国写法:selectname,idfromtablewhereidin(selectmin(id)fromtablegrou……

    2025年8月18日
    3

发表回复

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

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