当前位置: 首页 > news >正文

赣州有做网站推广的公司吗好的竞价账户托管外包

赣州有做网站推广的公司吗,好的竞价账户托管外包,北京知名网站建设公司,校园论坛网站源码iptables 防火墙(二) 一、SNAT 策略及应用SNAT 策略概述SNAT 策略的应用 二、DNAT 策略及应用DNAT 策略概述 三、规则的导出、导入规则的备份及还原iptables-save 命令iptables-restore 命令 使用 iptables 服务 四、使用防火墙脚本防火墙脚本的构成防火…

iptables 防火墙(二)

  • 一、SNAT 策略及应用
    • SNAT 策略概述
    • SNAT 策略的应用
  • 二、DNAT 策略及应用
    • DNAT 策略概述
  • 三、规则的导出、导入
    • 规则的备份及还原
      • iptables-save 命令
      • iptables-restore 命令
    • 使用 iptables 服务
  • 四、使用防火墙脚本
    • 防火墙脚本的构成
    • 防火墙脚本示例
  • 五、总结

在上一篇文章中,我们初步了解了iptables防火墙的基本概念和基本使用方法。iptables是Linux系统下一款强大的网络数据包处理工具,它可以用来设置允许哪些数据包通过以及拒绝哪些数据包,并根据具体的规则来进行数据包过滤。本文将带大家进一步深入iptables的使用,包括更复杂的规则设置、链的管理以及高级应用技巧。

一、SNAT 策略及应用

SNAT 策略概述

SNAT策略的典型应用环境

  • 局域网主机共享单个公网IP地址接入Internet

SNAT策略的原理

  • 源地址转换,Source Network Address Translation
  • 修改数据包的源地址
    在这里插入图片描述

开启路由转发,未设置地址转换的情况

  • 正常情况下,作为网关的 Linux 服务器必须打开路由转发,才能沟通多个网络。
  • 未使用地址转换策略时,从局域网 PC(如 192.168.1.234)访问 Internet 的数据包经过网关转发后其源 IP 地址保持不变,
  • 当 Internet 中的主机收到这样的请求数据包后,响应数据包将无法正确返回(私有地址不能在 Internet 中正常路由),从而导致访问失败
    在这里插入图片描述

开启路由转发,并设置 SNAT 转换的情况

  • 如果在网关服务器中正确应用 SNAT 策略,数据包转发情况就不一样了
    在这里插入图片描述

SNAT 策略的应用

在这里插入图片描述

  • SNAT 策略只能用在 nat 表的 POSTROUTING 链,
  • 使用 iptables 命令编写 SNAT 策略时,需要结合“–to-source IP 地址”选项来指定修改后的源 IP 地址
  • 如-j SNAT --to-source 218.29.30.31

共享固定 IP 地址上网

  • Linux 网关服务器通过两块网卡 ens33、ens37 分别连接 Internet 和局域网,其中 ens33 的 IP 地址为 218.29.30.31,ens37 的 IP 地址为 192.168.1.1。
  • 所有局域网 PC 的默认网关设为 192.168.1.1,且已经设置了正确的 DNS 服务器。
  • 要求 192.168.1.0/24 网段的 PC 能够通过共享方式正常访问 Internet。

(1) 打开网关的路由转发。

  • 对于 Linux 服务器,IP 转发是实现路由功能的关键所在,对应为/proc 文件系统中的ip_forward 设置,
  • 当值为 1 时表示开启,为 0 时表示关闭。
  • 若要使用 Linux 主机作为网关设备,必然需要开启路由转发。
# 永久打开路由转发功能
[root@localhost ~]# vi /etc/sysctl.conf
……            # 省略部分内容
net.ipv4.ip_forward = 1                    # 将此行写入配置文件
[root@localhost  ~]# sysctl -p            # 读取修改后的配置
# 在测试过程中,若只希望临时开启路由转发,也可以执行以下操作。
[root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
# 或者
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

(2) 正确设置 SNAT 策略。

  • 通过分析得知,需要针对局域网 PC 访问 Internet 的数据包采取 SNAT 策略,将源地址更改为网关的公网 IP 地址,
  • 参考以下操作在网关中设置防火墙规则。
  • 若要保持 SNAT 策略长期有效,应将相关命令写入到 rc.local 配置文件,以便开机后自动设置。
[root@localhost ~]# iptables -t nat -A  POSTROUTING  -s  192.168.1.0/24  -o  ens33  -j  SN AT --to-source 218.29.30.31

(3) 测试 SNAT 共享接入结果。

  • 上述操作完成以后,使用局域网中的 PC 就可以正常访问 Internet 中的网站了。
  • 对于被访问的网站服务器来说,将会认为是网关主机218.29.30.31 在访问(可观察Web 日志获知),
  • 而并不知道实际上是企业内网的 PC 192.168.1.234 在访问。

共享动态 IP 地址上网
在这里插入图片描述

二、DNAT 策略及应用

DNAT 策略概述

DNAT策略的典型应用环境

  • 在Internet中发布位于企业局域网内的服务器

DNAT策略的原理

  • 目标地址转换,Destination Network Address Translation
  • 修改数据包的目标地址
    在这里插入图片描述
    进行DNAT转换后的情况

发布企业内部的 Web 服务器
(1) 打开网关的路由转发。

[root@gw ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@gw ~]# sysctl -p
net.ipv4.ip_forward = 1

(2) 正确设置 DNAT 策略。

[root@gw ~]# iptables -t nat -A PREROUTING -d 192.168.72.154 -p tcp --dport 2333 -j DNAT --to-destination 192.168.72.145:22
[root@gw ~]# iptables -t nat -A POSTROUTING -d 192.168.72.145 -p tcp --dport 22 -j SNAT --to 192.168.72.154

(3) 测试 DNAT 发布结果。
在这里插入图片描述
发布企业内部的 OpenSSH 服务器
(1) 配置 OpenSSH 服务。

(2) 打开网关的路由转发。

[root@gw ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@gw ~]# sysctl -p
net.ipv4.ip_forward = 1

(3) 正确设置 DNAT 策略。

[root@gw ~]# iptables -t nat -A PREROUTING -i ens33 -d 192.168.72.154 -p tcp --dport 3333 -j DNAT --to-destination 192.168.72.145:22

(4) 测试 DNAT 发布结果。
在这里插入图片描述

三、规则的导出、导入

规则的备份及还原

iptables-save 命令

  • iptables-save 命令用来批量导出 Linux 防火墙规则。
  • 直接执行 iptables-save 命令时, 将显示出当前启用的所有规则。
[root@gw ~]# iptables-save > iptables_kgc.txt        # 备份所有表的规则

iptables-restore 命令

  • iptables-retore 命令用来批量导入 Linux 防火墙规则
  • 如果已经使用 iptables-save 命令导出的备份文件,则恢复规则的过程在一瞬间就能完成。
  • 与 iptables-save 命令相对的iptables-restore 命令应结合重定向输入来指定备份文件的位置。
[root@gw ~]# iptables-restore < iptables_kgc.txt        # 从备份文件恢复规则

使用 iptables 服务

自动启用防火墙规则

  • 在服务器中调试好各种 iptables 规则以后,使用 iptables-save 备份为默认的规则配置文件/etc/sysconfig/iptables,然后就可以通过 iptables 服务来调用。
[root@gw ~]# yum -y install iptables-service        # 下载 iptables-service
[root@gw ~]# cat iptables_kgc.txt > /etc/sysconfig/iptables        # 备份导入到配置文件
[root@gw ~]# systemctl start iptables        # 启动服务
[root@gw ~]# systemctl enable iptables        # 设置开机自启动服务

清空所有防火墙规则

  • 在调试各种防火墙规则的过程中,为了排除其他规则的干扰,有时候需要清空某些表的规则。
  • 当需要一次清空所有表的规则时,停用 iptables 服务是最快捷的方法,也是最彻底的方法。
[root@gw ~]# systemctl stop iptables          # 停止防火墙服务
[root@gw ~]# systemctl status iptables        # 确认防火墙服务的状态
● iptables.service - IPv4 firewall with iptablesLoaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)Active: inactive (dead) since 一 2024-07-01 12:01:48 CST; 1s agoProcess: 9663 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)Process: 1692 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)Main PID: 1692 (code=exited, status=0/SUCCESS)701 10:48:48 gw systemd[1]: Starting IPv4 firewall with iptables...
701 10:48:48 gw iptables.init[1692]: iptables: Applying firewall rules: [  确定  ]
701 10:48:48 gw systemd[1]: Started IPv4 firewall with iptables.
701 12:01:48 gw systemd[1]: Stopping IPv4 firewall with iptables...
701 12:01:48 gw iptables.init[9663]: iptables: Setting chains to policy ACCEPT: filter nat [  确定  ]
701 12:01:48 gw iptables.init[9663]: iptables: Flushing firewall rules: [  确定  ]
701 12:01:48 gw systemd[1]: Stopped IPv4 firewall with iptables.

四、使用防火墙脚本

防火墙脚本的构成

定义基本变量

  • 将防火墙的网卡、IP 地址、局域网段、iptables 命令的路径等定义为变量,便于对脚本程序的维护和移植使用,特别是当规则较多的时候。
  • 一旦网络环境发生变化(如公网 IP 地址变更),只需对变量值稍做修改就可以投入使用了。
[root@localhost  ~]# vim /opt/myipfw.sh    //创建脚本文件
#!/bin/bash
INET_IF= "ens33"    //外网接口
INET_IP="218.29.30.31"        //外网接口地址
LAN_IF="ens37"    //内网接口
LAN_IP= "192.168.1.1"        //内网接口地址
LAN_NET="192.168.1.0/24"    //内网网段
LAN_WWW_IP="192.168.1.6"                //网站服务器的内部地址
IPT="/sbin/iptables"    //iptables 命令的路径
MOD="/sbin/modprobe"            //modprobe 命令的路径
CTL="/sbin/sysctl"        //sysctl 命令的路径
  • 设置好相关的变量以后,在后续的脚本内容中就可以直接引用了。
  • 为了提高脚本代码的 可读性,除了添加必要的注释之外,变量名称最好使用有一定含义的字符串。

加载内核模块

  • 在 CentOS 7.3 系统中,iptables 命令的大部分模块都可以根据需要动态载入内核,只有个别模块需要手动进行加载(如与 FTP 发布相关的 ip_nat_ftp、ip_conntrack_ftp)。
  • 但如果需要启用的规则数量较多,为了提高规则设置的效率,保持防火墙的稳定性,建议将用到的各种模块提前加载到内核中。
$MOD ip_tables    //iptables 基本模块
$MOD ip_conntrack    //连接跟踪模块
$MOD ipt_REJECT    //拒绝操作模块
$MOD ipt_LOG    //日志记录模块
$MOD ipt_iprange    //支持IP 范围匹配
$MOD xt_tcpudp    //支持TCP、UDP 协议
$MOD xt_state    //支持状态匹配
$MOD xt_multiport    //支持多端口匹配
$MOD xt_mac    //支持MAC 地址匹配
$MOD ip_nat_ftp    //支持FTP 地址转换
$MOD ip_conntrack_ftp    //支持FTP 连接跟踪

调整/proc 参数

  • /proc 是 Linux 或 UNIX 系统中的一种伪文件系统机制,提供了访问内核运行结构、改变内核设置的实时数据。
  • 与 EXT3、FAT32 等本地文件系统不同,/proc 中的数据存放在内存中而不是硬盘上。
  • 在文件夹/proc/sys 下存放着与系统相关的一些可控参数,可以直接用来改变内核的行为,通常作为 Linux 内核调优的实时入口。
  • 其中包括是否打开 IP 转发、是否响应 ICMP 广播、设置好 TCP 响应超时等,使用 echo、sysctl 命令都可以修改相关参数,当然也可以写到/etc/sysctl.conf 文件(执行 sysctl -p 后生效)。
// 下面仅列出常用的几个/proc 参数调整,更多细节、调优操作此处不做过多介绍,有兴趣的同学请参阅其他资料。
$CTL -w net.ipv4.ip_forward=1    //打开路由转发功能
$CTL -w net.ipv4.ip_default_ttl=128    //修改ICMP 响应超时
$CTL -w net.ipv4.icmp_echo_ignore_all=1    //拒绝响应ICMP 请求
$CTL -w net.ipv4.icmp_echo_ignore_broadcasts //拒绝响应ICMP 广播
$CTL -w net.ipv4.tcp_syncookies=1    //启用SYN Cookie 机制
$CTL -w net.ipv4.tcp_syn_retries=3    //最大SYN 请求重试次数
$CTL -w net.ipv4.tcp_synack_retries=3    //最大ACK 确认重试次数
$CTL -w net.ipv4.tcp_fin_timeout=60    //TCP 连接等待超时
$CTL -w net.ipv4.tcp_max_syn_backlog=3200    //SYN 请求的队列长度
  • 上述脚本内容中,ICMP 相关的参数调整可使本机忽略其他主机的 ping 测试,TCP 相关的内核参数调整可适当提高本机抵抗 DoS 攻击的能力。

设置具体的 iptables 规则
(1) 清理已有的规则。

  • 为了避免已有的防火墙规则造成干扰,通常会预先安排一个“清理”操作,删除所有表中用户自定义的链,清空所有链内的规则。
$IPT  -t filter –X    //删除各表中自定义的链
$IPT -t nat -X
$IPT -t mangle -X
$IPT -t raw -X
$IPT  -t filter –F    //清空各表中已有的规则
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t raw -F

(2) 设置规则链的默认策略。

  • 在实际生产环境中,防火墙过滤规则建议采取“默认拒绝”的策略,可以获得更好的安全性。
  • 这就要求我们充分熟悉相关应用服务、网络协议,才能够识别合法数据包,制定出既防 护严格又行之有效的防火墙方案。
$IPT -P INPUT DROP
$IPT  -P  FORWARD DROP
$IPT  -P  OUTPUT ACCEPT    

(3) 设置 nat 表中的各种规则。

  • iptables 的 nat 表主要用在 Linux 网关服务器中,一般的主机型防火墙方案很少会用到nat 表。
  • 根据实际情况编写相应的 SNAT、DNAT 规则(如局域网共享上网、发布内部 Web 服务器),如果没有则跳过此部分。
$IPT -t nat -A POSTROUTING -s $LAN_NET -o $INET_IF -j SNAT --to-source $INET_IP
$IPT -t nat -A PREROUTING -i $INET_IF -d $INET_IP -p tcp --dport 80 -j  DNAT --to-dest  
ination $LAN_WWW_IP

(4) 设置 filter 表的各种规则。

  • iptables 的 filter 表主要用来过滤数据包,无论是 Linux 网关还是一般的 Linux 服务器都可能用到。
  • 主机型的防火墙主要使用 INPUT、OUTPUT 链,而对于网络型的防火墙主要使用 FORWARD 链。
$IPT -A FORWARD  -s  $LAN_NET -o  $INET_IF  -p  udp  --dport  53  -j ACCEPT
$IPT -A FORWARD -s $LAN_NET -o $INET_IF -p tcp --dport 80 -j ACCEPT
$IPT -A FORWARD -s $LAN_NET -o $INET_IF -p tcp --dport 20:21 -j ACCEPT
$IPT -A FORWARD -d $LAN_NET -i $INET_IF -m state --state ESTABLISHED, RELATED
-j ACCEPT
…… //省略部分内容
  • 需要说明的是,在实际应用过程中,不要过于生硬地照搬他人脚本内容,应根据实际情 况进行有针对性的设计,并做好整体测试,避免因规则不当而导致网络通信故障。
  • 脚本文件编写完成以后,为其添加“x”可执行权限,就可以用来批量设置防火墙规则了。 若要使脚本文件在每次开机后自动运行,可以将脚本路径写入/etc/rc.local 文件中。
[root@localhost  ~]#  chmod +x /opt/myipfw.sh    //添加执行权限
[root@localhost ~]# /opt/myipfw.sh    //执行脚本文件
[root@localhost  ~]#  iptables -nL FORWARD    //查看部分防火墙规则
Chain FORWARD (policy ACCEPT)
target    prot opt source    destination
ACCEPT    udp   --   192.168.1.0/24    0.0.0.0/0    udp dpt:53
ACCEPT    tcp   --   192.168.1.0/24    0.0.0.0/0    tcp dpt:80 
ACCEPT    tcp   --   192.168.1.0/24    0.0.0.0/0    tcp dpts:20:21 
ACCEPT    all    --   0.0.0.0/0   192.168.1.0/24    state RELATED,ESTABLISHED
[root@localhost  ~]# vi /etc/rc.local    //设置为开机自动执行
…… //省略部分内容
/opt/myipfw.sh

防火墙脚本示例

  • 熟悉了防火墙脚本的基本构成之后,下面将展示一个简单的防火墙脚本文件——“主机型”防火墙脚本,主要针对具体的规则设置部分,内容仅供参考。
  • 对于大多数的应用服务器,防火墙只需针对本机进行防护,因此 filter 表中的 INPUT、OUTPUT 链用得最多,特别是前者。例如,可将 OUTPUT 链的默认策略设为允许,不添加其他规则;将 INPUT 链的默认策略设为拒绝,只放行对个别服务(如 Web)的访问,以及响应本机访问请求的数据包。
[root@localhost ~]# vi /opt/myipfw.hostonly
#!/bin/bash
# 1. 定义基本变量IPT="/sbin/iptables" CTL="/sbin/sysctl" # 2. 调整/proc 参数
$CTL  -w net.ipv4.tcp_syncookies=1
$CTL  -w net.ipv4.tcp_syn_retries=3
$CTL -w net.ipv4.tcp_synack_retries=3
$CTL -w net.ipv4.tcp_fin_timeout=60
$CTL -w net.ipv4.tcp_max_syn_backlog=3200 # 3. 设置具体的防火墙规则
# 3.1 删除自定义链、清空已有规则
$IPT -t filter -X
$IPT -t nat -X
$IPT -t mangle -X
$IPT  -t  raw -X
$IPT  -t  filter -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t raw -F
# 3.2 定义默认策略
$IPT -P INPUT DROP
$IPT  -P  FORWARD DROP
$IPT  -P  OUTPUT ACCEPT
# 3.3 设置 filter 表中的各种规则
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# chmod +x /opt/myipfw.hostonly

五、总结

iptables防火墙是Linux系统下一款强大的网络数据包处理工具,它可以根据数据包的源地址、目标地址、端口号、协议类型等信息来决定是否允许数据包通过。通过合理设置iptables的规则和链,我们可以实现复杂的网络访问控制需求。同时,iptables还支持日志记录、端口转发等高级功能,可以满足更复杂的网络应用需求。希望本文能够帮助大家更好地理解和使用iptables防火墙。


文章转载自:
http://bacalao.rdfq.cn
http://township.rdfq.cn
http://computerate.rdfq.cn
http://archegonium.rdfq.cn
http://abrader.rdfq.cn
http://glassily.rdfq.cn
http://fut.rdfq.cn
http://chapeau.rdfq.cn
http://scend.rdfq.cn
http://tension.rdfq.cn
http://inviting.rdfq.cn
http://tendentious.rdfq.cn
http://wallachia.rdfq.cn
http://aforementioned.rdfq.cn
http://melilite.rdfq.cn
http://swage.rdfq.cn
http://draco.rdfq.cn
http://bah.rdfq.cn
http://nocuously.rdfq.cn
http://joseph.rdfq.cn
http://koa.rdfq.cn
http://fluviation.rdfq.cn
http://walla.rdfq.cn
http://prehistorian.rdfq.cn
http://shoppe.rdfq.cn
http://blench.rdfq.cn
http://negativist.rdfq.cn
http://proscenium.rdfq.cn
http://promiscuous.rdfq.cn
http://heel.rdfq.cn
http://ploughing.rdfq.cn
http://semicrystalline.rdfq.cn
http://flagitate.rdfq.cn
http://glaring.rdfq.cn
http://unwrung.rdfq.cn
http://superclass.rdfq.cn
http://subbituminous.rdfq.cn
http://felicitator.rdfq.cn
http://gabar.rdfq.cn
http://apomictic.rdfq.cn
http://rhinoscope.rdfq.cn
http://cheque.rdfq.cn
http://atrophied.rdfq.cn
http://abstemious.rdfq.cn
http://platform.rdfq.cn
http://henapple.rdfq.cn
http://joyrider.rdfq.cn
http://upfurled.rdfq.cn
http://bi.rdfq.cn
http://bumpily.rdfq.cn
http://sulfid.rdfq.cn
http://personnel.rdfq.cn
http://checkrein.rdfq.cn
http://mahewu.rdfq.cn
http://crude.rdfq.cn
http://ameerate.rdfq.cn
http://spotted.rdfq.cn
http://wildebeest.rdfq.cn
http://unsolicited.rdfq.cn
http://saphenous.rdfq.cn
http://saltpeter.rdfq.cn
http://ethnohistoric.rdfq.cn
http://partially.rdfq.cn
http://icenian.rdfq.cn
http://expectoration.rdfq.cn
http://kiss.rdfq.cn
http://face.rdfq.cn
http://thermoelectric.rdfq.cn
http://rigid.rdfq.cn
http://hairdress.rdfq.cn
http://utilitarianism.rdfq.cn
http://lysolecithin.rdfq.cn
http://phocine.rdfq.cn
http://teaspoonful.rdfq.cn
http://rommany.rdfq.cn
http://infill.rdfq.cn
http://rakish.rdfq.cn
http://hygrostat.rdfq.cn
http://hotkey.rdfq.cn
http://brow.rdfq.cn
http://ruction.rdfq.cn
http://alamanni.rdfq.cn
http://painstaker.rdfq.cn
http://vanilla.rdfq.cn
http://rotisserie.rdfq.cn
http://lettrism.rdfq.cn
http://sweatband.rdfq.cn
http://tinfoil.rdfq.cn
http://bophuthatswana.rdfq.cn
http://newfangle.rdfq.cn
http://duckboard.rdfq.cn
http://frugality.rdfq.cn
http://kantele.rdfq.cn
http://canterer.rdfq.cn
http://hypothermic.rdfq.cn
http://oodles.rdfq.cn
http://elb.rdfq.cn
http://bombsight.rdfq.cn
http://peckish.rdfq.cn
http://trueheartedness.rdfq.cn
http://www.dt0577.cn/news/72221.html

相关文章:

  • 网站开发后端 书网盟推广
  • 网站网警备案流程公司软文推广
  • 网站导航栏分析sem是什么意思?
  • 教人做家务的网站seo评测论坛
  • 程序员做网站外快百度站长提交网址
  • 佛山网站开发公司想要导航页面推广app
  • 公司门户网站适合40岁女人的培训班
  • 外贸网站建设盲区推广平台网站有哪些
  • 南昌做网站后台投票国际新闻界期刊
  • 哪种网络营销方式最好seo排名分析
  • 杭州网站建设制作公司如何seo搜索引擎优化
  • 官方网站建设seo应用领域有哪些
  • 网站图片速度网络热词有哪些
  • 泉州网站建站推广成都调查事务所
  • 做窗帘的厂家网站武汉seo排名优化公司
  • 吴江城乡和住房建设局网站十大免费无代码开发软件
  • 公司网站横幅是做的吗域名被墙查询检测
  • 网站如何做推广效果好天津百度seo推广
  • 可以直接做海报的网站韩国比分预测
  • 鞍山市做网站公司关键词歌词表达的意思
  • 桂林公司做网站sem推广外包
  • 织梦cms 5.6网站地图淄博网站优化
  • 网站建设简单今天国际新闻
  • 做网站采集什么文章好免费制作自己的网页
  • wordpress后台新建慢关键词优化计划
  • 网站怎么做推广网站seo主要是做什么的
  • 江苏住房与城乡建设厅网站seo网络推广师招聘
  • vps做网站需要做哪些准备网络推广公司企业
  • 做校招的网站有哪些seo搜索引擎优化服务
  • 湖北省建设厅网站上岗证查询网络营销推广方案策划与实施