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

西部数码网站管理助手3.0教程网站城市切换如何做

西部数码网站管理助手3.0教程,网站城市切换如何做,wordpress 刷新缓存,做动画视频的网站1 iptables安装 1.1 iptables和iptables-service的关系 iptables 是基于内核的,和 iptables-services 没有关系,不用安装任何工具包就可以使用 iptable 命令添加的防火墙规则, 但是iptables添加的规则是临时的,基于内存的&…

 1 iptables安装

1.1 iptables和iptables-service的关系

iptables 是基于内核的,和 iptables-services 没有关系,不用安装任何工具包就可以使用 iptable 命令添加的防火墙规则,

但是iptables添加的规则是临时的,基于内存的,在系统重启后会消失,所以需要 iptables.service 服务来对添加的规则进行保存,

这样在系统重启后重载对应的防火墙规则。

1.2 安装iptables和iptables-service

第一步:1、关闭防火墙
[root@localhost ~]# systemctl status firewalld
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld第二步:查看 iptables 是否安装,安装iptables-services
[root@localhost ~]# rpm -qa iptables
iptables-1.4.21-34.el7.x86_64                              # 系统默认装有 iptables
[root@localhost ~]# yum install iptables                   # 有新版本会安装最新版本
[root@localhost ~]# rpm -qa iptables
iptables-1.4.21-35.el7.x86_64
[root@localhost ~]# yum install iptables-services          # 安装 iptables-services 
[root@localhost ~]# rpm -qa iptables-services
iptables-services-1.4.21-35.el7.x86_64第三步:启动iptables
[root@localhost ~]# systemctl enable iptables.service        # 设置 iptables 开机启动
[root@localhost ~]# systemctl start iptables                 # 开启 iptables
[root@localhost ~]# systemctl status iptables                # 查看 iptables 状态
● iptables.service - IPv4 firewall with iptablesLoaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)Active: active (exited) since Fri 2023-10-06 13:05:53 CST; 2s ago第四步:#防火墙相关模块 加载到内核中,写入到开机自启动.
cat >> /etc/rc.local <<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state 
EOF
sysctl -p

2 什么是iptables

iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作

Netfilter模块:

它是主要的工作模块,位于内核中,在网络层的五个位置(也就是防火墙四表五链中的五链)注册了一些钩子函数,用来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT、DROP等等。

2.1 iptables的工作流程

  1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
  2. 如果匹配成功规则,即明确表示是拒绝(DROP)还是接收(ACCEPT),数据包就不再向下匹配新的规则。
  3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
  4. 防火墙的默认规则是所有规则都匹配完才会匹配的。

3 具体的四表五链

3.1 四表五链定义

四表:filter、nat、managle、raw,默认是filter表。表的处理优先级:raw>managle>nat>filter

四表

filter

过滤数据包

nat

网络地址转换(端口映射、地址映射等。)

mangle

用于对特定数据报的修改。

raw

优先级最高,设置raw时一般是为了不再让iptables做数据报的链接跟踪处理,提高性能。

五链

PREROUTING

数据包进入路由表之前,对数据包做路由选择前应用此链路中的规则,所有的数据包进来的时候都先由这个链处理

INPUT

通过路由表后目的为本机,进来的数据报应用此规则链上的策略

FORWARD

通过路由表后,目标地址不为本机,做转发数据报时应用此规则链上的策略

OUTPUT

由本机产生的外出的数据包向外转发时,应用此规则链中的策略

POSTROUTING

数据报做路由选择后发送后到网卡接口之前应用此链中的规则,所有的数据包出来的时候都先由这个链处理

3.2 表与链之间的包含关系:

filter

INPUT、FORWARD、OUTPUT

nat

PREROUTING(DNAT)、OUTPUT、POSTROUTING(SNAT)

mangle

PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

raw

PREROUTING、OUTPUT

3.3 数据包在4张表和5条链的流向:

4. iptables规则介绍

iptables [-t TABLE] COMMAND CHAIN [num] 匹配标准 -j 处理办法

-t:说明,不指定的时候,默认就是filter表
添加删除替换规则:
-A:附加一条规则,添加在链的尾部
-I CHAIN [num]:插入一条规则,插入为对应CHAIN上的第num条,不指定默认为第一条
-D CHAIN [num]:删除指定链中的第num条规则
-R CHAIN [num]:替换指定的规则例: iptables -A INPUT -p tcp --dport 22 -j ACCEPT  #放行访问本机22端口(ssh)
------------------------------------------------------------------------------------------------------------------------
管理规则链:
-F [CHAIN]:flush,情况指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链
-P CHAIN:设定指定链的默认策略    
-N:自定义一个新的空链
-X:删除一个自定义的空链
-Z:置零指定链中所有规则的计数器
-E:重命名自定义的链例: iptables -t nat -F       #清空NAT表中所有链上的规则例: iptables -t nat -F PREROUTING   #清空NAT表中PREROUTING链上的规则例: iptables -P INPUT ACCEPT   #指定filter表INPUT链默认策略是放行例: iptables -t nat -X   #删除NAT表中所有链上的规则-N案例(一个抵御洪水攻击的方案):1.在filter表中建一个名为tcp_packets的链:iptables -N syn-flood2.然后可以在自定义链中添加规则:iptables -A syn-flood -m limit --limit 100/s --limit-burst 150 -j RETURNiptables -A syn-flood -j DROP3.然后再把它作为jump的目标,这样我们就会从INPUT链跳入syn-flood链:#iptables -I INPUT -j syn-flood 
------------------------------------------------------------------------------------------------------------------------
查看规则:
-L:显示指定表中的规则
-n:以数字格式显示主机地址和端口号
-v:显示链及规则的详细信息
-x:显示计数器的精确值
--line-numbers:显示规则号码例: iptables -t nat -nL  --line-numbers     #查看NAT表中所有链上的规则,并显示规则序号
------------------------------------------------------------------------------------------------------------------------
通用匹配:
-s,--src :指定源地址
-d,--dst :指定目标地址
-p{tcp|udp|icmp} :指定协议
-i interface :指定数据报文流入的接口(eth0)
可用于定义标准的链:PREROUTING,INPUT,FORWARD
-o interface :指定数据报文流出的接口
可用于标准定义的链:OUTPUT,POSTROUTING,FORWARD例: iptables -t filter -A INPUT -s 192.168.1.1 -d 192.168.1.2 -p icmp -j DROP     #禁止源地址为192.168.1.1 ping 目的地址192.168.1.2
------------------------------------------------------------------------------------------------------------------------
隐含扩展匹配:不用特别指明由哪个模块进行的扩展,因为此时使用{tcp|udp|icmp}
-p tcp--sport PORT[-PORT]: 源端口--dport PORT[-PORT]: 目标端口--tcp-flags mask comp: 只检查mask指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0;--tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN     第一部分表示:我们需要匹配报文tcp头中的哪些标志位,这6个标志位分别为为”SYN、ACK、FIN、RST、URG、PSH”。第二部分表示:第二部分为SYN,则表示,第一部分需要匹配的标志位列表中,SYN标志位的值必须为1,其他标志位必须为0 --syn例: iptables -t filter -A INPUT -s 192.168.1.1 -d 192.168.1.2 -p tcp --dport 22 -j DROP     #禁止源地址为192.168.1.1 ping 目的地址192.168.1.2例: iptables -A INPUT -p tcp --dport 18:80 -j DROP #拒绝访问本机端口18到80之间的所有端口
-p icmp  (ping)--icmp-type 0: echo-reply   ping应答8: echo-request ping请求        例: iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.239.0/24 -j DROP 例: iptables -A INPUT -p icmp --icmp-type any -s 192.168.239.0/24 -j DROP
-p udp--sport--dport例: iptables -A INPUT -p udp --dport 45 -j DROP  #不允许访问本机udp45端口------------------------------------------------------------------------------------------------------------------------   显示扩展匹配:使用额外的匹配机制,必须指明由哪个模块进行的扩展,在iptables 中使用-m选型可完成此功能-m state:状态扩展结合ip_conntrack追踪会话状态NEW:新连接请求ESTABLISHED:已建立的链接INVALID:非法链接RELATED:相关联的 (ftp,需要加载模块) 例: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT   #允许连接状态为ESTABLISHED,RELATED的连接进入例: iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  ##允许连接状态为ESTABLISHED,RELATED的连接出去
-m multiport:离散的多端口匹配扩展--source-ports--destination-ports--ports-m multiport --destination-ports 21,22,80 -j ACCEPT            例: iptables -A INPUT -p tcp -m multiport --destination-ports 21,22,80 -j ACCEPT    #允许访问本机21,22,80端口
-m iprange   指定范围--src-range--dst-range例: iptables -A INPUT -p tcp -m iprange --src-range 172.16.100.3-172.16.100.100 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-m connlimit  作用:用于限制每一个客户端ip的并发连接数--connlimit-above n    //超过n个并发连接数! --connlimit-above n  //未超过n个并发连接数     iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT      #同一IP超过100以上并发时,就拒绝连接iptables -I INPUT -p tcp --syn --dport 80 -m connlimit ! --connlimit-above 100 -j ACCEPT    #同一IP未超过100以上并发时,就接受连接(和上面一个意思)-m limit  限制并发及速率--limit rate[/second|/minute|/hour|/day] 指定要隔多长时间才能签发一个新的通行证。--limit-burst number    the default is 5 指定刚开始时有多少通行证可用,不指定默认为5--limit 5/minute --limit-burst 3 意思是开始时有3个通行证,用完之后,1分钟只生成5个令牌,即每12秒生成一个,这期间没有剩余令牌的时候,到来的封包,无法匹配此条规则,就会继续往下匹配其他规则,如果有令牌了,则新到的封包就会匹配此条规则          例: iptables -A INPUT -d 192.168.2.102 -p tcp --dport 80 -m limit --limit 5/minute --limit-burst 3 -j ACCEPT -m string                --string pattern:指定要匹配的字符串。! --string pattern:反向匹配。--algo:指定匹配的查询算法,有bm和kmp两种算法。                  String模块的作用是来匹配请求报文中指定的字符串,经常应用于拦截用户访问某些网站的场景,将防火墙当做路由器使用,例如上班时间不允许用户访问淘宝网站等等场景例: iptables -t filter -I OUTPUT -p tcp -m string --string "taobao.com" --algo bm -j DROP #拒绝数据包中包含taobao.com内容的数据包。
------------------------------------------------------------------------------------------------------------------------
动作(target):
-j 
ACCEPT:放行
DROP:丢弃
REJECT:拒绝
DNAT:目标地址转换
SNAT:源地址转换
REDIRECT:端口重定向
MASQUERADE:地址伪装
LOG:日志     --log-prefix  prefix
MARK:打标记-j SNAT --to-source ipaddr[-ipaddr][:port[-port]]例: iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to-source 172.16.100.1  #(共享上网方案)把数据包中源地址是192.168.2.0/24转变为172.16.100.1-j DNAT--to-destination [ipaddr][-ipaddr][:port[-port]]例: iptables -t nat -A PREROUTING -d 172.16.100.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.7:8080  #(端口映射)把数据包中目的地址是172.16.100.7:80转变为192.168.100.7:8080    -j MASQUERADE (外网地址动态获取时使用)例: iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE  #(共享上网方案)把数据包中源地址是192.168.2.0/24转变为MASQUERADE,效果和SNAT一样
------------------------------------------------------------------------------------------------------------------------
-P 设置默认策略
iptables [-t table] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP]
-P 选项用来定义默认策略(Policy)。注意,这是大写字母 P。ACCEPT 表示接受数据包,DROP 表示丢弃数据包。
一般情况下,我们会把 filter 表的 INPUT 链的默认策略制订的严格一些,比如设为 DROP。而 FORWARD 和 OUTPUT 可以宽松些,设为 ACCEPT。比如我们可以通过下面的命令把 filter 表的 INPUT 链的默认策略设置为 DROP:例: iptables -P INPUT DROP

5.规则保存与恢复:

注意,我们通过 iptables 命令设置的规则都保存在内存中,也就是说系统重启的话所有的配置都会丢失。
我们可以通过 iptables-save 命令把 iptables 的配置保存到文件中:
$ sudo iptables-save > /etc/sysconfig/iptables
在需要时再通过 iptables-restore 命令把文件中的配置信息导入:
$sudo iptables-restore < /etc/sysconfig/iptables

6.生产环境中iptables的设置

#把三个表清空,把自建的规则清空。默认规则(iptables -F命令会把所有规则情况,但是不会修改默认规则,如果默认规则当前是DROP,执行iptables -F会导致立马无法连接机器,因为所有数据包都被拒绝了)
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X
#1.允许本机回环lo接口数据流量流出与流入
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#2.允许ssh连接
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
#3.允许访问本机80,443端口
iptables -A INPUT -m multiport -p tcp --dport 80,443 -j ACCEPT
#4.修改INPUT链默认的规则为拒绝(如果要把默认策略设置为DROP的时候,一定要先放行远程登录等一系列权限后再设置为DROP,否则就会立马断开远程连接,也无法再次远程连接)
iptables -P INPUT DROP
#5.内存里规则保存到默认的规则文件里
iptables-save > /etc/sysconfig/iptables

7.iptables NAT实现共享上网和端口映射

7.1 NAT实现为内部服务器提供上网功能(共享上网)

iptables -t nat -A POSTROUTING  -s 172.16.1.7   -j SNAT  --to-source 10.0.0.61

1. 指定nat表,配置POSTROUTING链

2. 源ip是172.16.1.7这台主机进行共享上网,如果是多台(-s 172.16.1.0/24)

3. 指定使用SNAT功能,源地址转换.

4. 通过SNAT功能把数据包中的源ip地址改为防火墙公网的ip地址.(10.0.0.61)

5.如果公网ip不固定, -j SNAT --to-source 10.0.0.61 可以写为 -j MASQUERADE 伪装成公网ip.

环境介绍:

172.16.1.7 想要上网的机器,有2个网卡,eth0为外围,eth1为内网

172.16.1.61 实现NAT功能的防火墙机器,eth0为外围,eth1为内网

172.16.1.7 操作步骤

1.把机器上能上网的网卡关闭

sed -i 's/ONBOOT=yes/ONBOOT=no/' /etc/sysconfig/network-scripts/ifcfg-eth0

2.把不能上网的这张网卡配一个网关地址,地址为实现NAT的防火墙机器IP

vim eth1

GATEWAY=172.16.1.61

3.重启network

systemctl restart network

172.16.1.61操作步骤

1.由于是要把数据从eth1网卡转发到eth1,所以要开启ip_forward功能(内核转发功能)

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

sysctl -p

2.防火墙转发规则配置

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE

测试:

172.16.1.7 上ping 8.8.8.8看能不能通

7.2 NAT实现外部访问本机端口请求转发到内部其他机器特定的端口(端口映射)

iptables -t nat -A PREROUTING -p tcp --dport 6666 -j DNAT --to-destination 172.16.1.7:80

只要访问本机的6666端口,就会把请求转发到 172.16.1.7:80端口

http://www.yayakq.cn/news/374314/

相关文章:

  • wordpress建站案例申晨推荐的营销网站
  • 怎么做建设网站首页西安网站建设hyk123
  • 网站新开怎么做营销高校网站模板
  • 专业做二手房的网站建设银行网站查询
  • 微信手机客户端网站建设福州市市政建设开发有限公司网站
  • 电商网站建设网南宁高新区建设房产局网站
  • html5网站建设平台厦门专门建设网站的公司
  • 网站申请流程青岛做网站的公司哪个比较好
  • 炫酷网站欣赏合肥最好的网站建设
  • 做视频网站投入要多少wordpress熊掌号百度主动提交
  • 想象力网站建设那个网站上有打码的任务做
  • 河南做网站 河南网站建设wordpress调用菜单的代码
  • 网站建设的流程及步骤英文免费注册网站
  • 广州建网站哪家最好百度seo2022新算法更新
  • 网站一天要发多少外链网络设计包括哪些方面
  • 苏州姑苏区建设局网站新手如何做代理
  • 蕲春网站建设黑龙江开放网站备案
  • 郑州市做网站公司wordpress前端页面模板
  • 个人网站推广怎么做青岛seo
  • 江苏网站seo平台全国网站打开速度
  • wordpress 表格插件广州网站制作十年乐云seo
  • 计算机网站开发开题报告范文天津网站建设咨询
  • php会了 怎么做网站wordpress如何编辑器
  • 用dw做旅游的网站的设计wordpress手机版受钱吗
  • 千岛湖建设集团办公网站网络培训投诉平台
  • wordpress网站主题插件哪些网上订餐的网站做的好
  • ps如何做网站专题wordpress 路径中文乱码
  • 新手如何做英文网站赚美元网页网站设计与制作
  • 网站模版源码江苏网站建设推广
  • php做网站难么一家专业做家谱的网站