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

给老外做兼职的网站/排名优化培训

给老外做兼职的网站,排名优化培训,如何做php分页网站,如何判断网站数据库类型为什么80%的码农都做不了架构师?>>> 一、防火墙-iptables 在早期的Linux系统中,默认使用iptables防火墙管理服务来配置防火墙,在RHEL/CentOS 7.x开始模式使用firewalld防火墙了。6.x版本使用iptables。防火墙分为主机防火墙、网络…

为什么80%的码农都做不了架构师?>>>   hot3.png

一、防火墙-iptables

在早期的Linux系统中,默认使用iptables防火墙管理服务来配置防火墙,在RHEL/CentOS 7.x开始模式使用firewalld防火墙了。6.x版本使用iptables。防火墙分为主机防火墙、网络防火墙。

1、selinux

关闭selinux,修改/etc/selinux/config配置文件

[root@node5 ~]# vim /etc/selinux/config 
SELINUX=enforcing

SELINUX=enforcing修改为SELINUX=disabled即可。

临时关闭selinux:

[root@node5 ~]# setenforce 0

查看selinux:

[root@node5 ~]# getenforce
Permissive
[root@node5 ~]# 

2、iptables

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工资并去执行匹配项中定义的行为,具体行为有:

ACCEPT:放行

REJECT:拒绝

DROP:丢弃

LOG:记录日志信息

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链根据数据包处理位置的不同进行分类,可分成:

PREROUTING:在进行路由选择前处理数据包

INPUT:处理流入的数据包

OUTPUT:处理转发的数据包

FORWARD:处理转发的数据包

POSTROUNTING:在进行路由选择后处理数据包。

2.1 安装iptables

RHEL/Centos 7.x要使用iptables,必须安装iptables-services:

[root@node5 ~]# yum install -y iptables-services

2.2 开启iptables

先关闭firewalld,再开启iptables:

[root@node5 ~]# systemctl stop firewalld
[root@node5 ~]# systemctl start iptables
[root@node5 ~]# 

查看规则:

[root@node5 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         45  3256 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:220     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 33 packets, 2988 bytes)pkts bytes target     prot opt in     out     source               destination         
[root@node5 ~]# 

二、netfilter(iptables)-5表5链

5个表:filter、nat、mangle、raw、security,默认是filter表。

5个链:PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUNTING

PREROUTING:在进行路由选择前处理数据包

INPUT:处理流入的数据包

OUTPUT:处理流出的数据包

FORWARD:处理转发的数据包

POSTROUNTING:在进行路由选择后处理数据包。

filter表:一般的过滤表,有INPUT、FORWARD、OUTPU三个链

nat表:用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链

managle表:用于给数据做标记的。很少用

raw表:用于实现追踪某些数据包

security表:用于强制访问控制(MAC)的网络规则

iptables传输数据包的过程

① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。 
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。 
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

三、iptables语法

1、iptables常用的参数介绍

-P:设置默认规则,给某个表设置默认的规则(ACCEPT、REJECT、DROP、LOG等)。

-F:清空规则链

-L:查看规则链

-A:在规则链末尾加入新的规则

-I [num]:在某条规则之前插入新的规则

-D num:删除某一条规则

-t 表名:指定表,如果不指定,则默认是filter表

-s:匹配来源地址

-d:匹配目录地址

-i 网卡名:匹配从这块网卡流入的数据

-o 网卡名:匹配从这块网卡流出的数据

-p:协议,比如tcp、udp、icmp等

-Z:计数器清零

--dport num:匹配目标端口

--sport num:匹配来源端口

2、用法举例

查看规则:iptabels -L或iptables -nvL,使用--line-number则会显示每条规则的序号。

[root@node5 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@node5 ~]# 

默认规则保存在:/etc/sysconfig/iptables文件中

清空规则:iptables -F

[root@node5 ~]# iptables -F

保存当前的规则:

[root@node5 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@node5 ~]# 

在RHEL7.0版本中,有BUG,就算保存了规则,但重启之后失效。

给某个链设置默认规则

例如,把INPUT链设置为DROP,一旦设置了DROP,则会拒绝所有的数据包流入。远程连接会断开。

[root@node5 ~]# iptables -P INPUT DROP
[root@node5 ~]# 

计数器清零:

[root@node5 ~]# iptables -Z

例1:禁止ping

root@node5 ~]# iptables -I INPUT -p icmp -j REJECT

设置此规则之后,就不能ping了:

250c1caaa838f442fcbabfc71bd43dd1244.jpg

删除刚才设置的禁止ping规则:

先查看一下是哪条规则

[root@node5 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 175 packets, 12625 bytes)pkts bytes target     prot opt in     out     source               destination         4   240 REJECT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachableChain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 125 packets, 13832 bytes)pkts bytes target     prot opt in     out     source               destination         
[root@node5 ~]# iptables -D INPUT 1
[root@node5 ~]# 

因为INPUT链只有一条规则,这条规则就是禁止ping的规则,所以是:

iptables -D INPUT 1
例2:在INPUT链中,设置只允许192.168.0.0网段的主机访问本机的22端口

[root@node5 ~]# iptables -I INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
[root@node5 ~]# 

查看一下:

[root@node5 ~]# iptables -L --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.0.0/24       anywhere             tcp dpt:sshChain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@node5 ~]# 

添加成功。

例3:在INPUT链中,添加拒绝所有人访问本机的80端口策略

[root@node5 ~]# iptables -I INPUT -p tcp --dport 80 -j DROP
[root@node5 ~]# iptables -I INPUT -p udp --dport 80 -j DROP

例4:在INPUT链中,添加拒绝192.168.0.100主机访问本机的80端口策略

[root@node5 ~]# iptables -I INPUT -s 192.168.0.100 -p tcp --dport 80 -j REJECT

例5:在INPUT链中,添加拒绝192.168.0.100主机访问本机的ens33网卡策略

[root@node5 ~]# iptables -I INPUT -s 192.168.0.100 -i ens33 -j DROP

四、filter表小案例

1、对192.168.0.0网段放行22端口,对全部主机放行80,21端口。

#!/bin/bash
#iptables命令的绝对路径
ipt="/usr/sbin/iptables"
#先清空已有的规则
$ipt -F
#设置INPUT链为DROP
$ipt -P INPUT DROP
#设置OUTPUT、FORWARD为ACCEPT
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
#指定状态
$ipt -A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#192.168.0.0网段的主机放行22端口
$ipt -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT
#放行80,21端口
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT

然后运行脚本:

[root@node5 ~]# sh set-iptables.sh

2、icmp示例:本机可以ping其他主机,其他主机不能ping本机。

[root@node5 ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

五、nat表使用

5.1 nat表应用举例

e0af264cc511ad9b4c4d472460ea6c72973.jpg

 

A机:有两块网卡,ens33(192.168.10.205)连接外网、ens38(10.0.0.100)连接内网

B机:只有一块网卡,ens36(10.0.0.101)连接内网

A、B可以通信。

需求1:可以让B机连接外网

A机设置:

·打开路由转发功能

[root@node5 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

这是临时生效,如要永久生效,则修改配置文件。

[root@node5 ~]# vim /usr/lib/sysctl.d/50-default.conf
net.ipv4.ip_forward = 1

·防火墙设置:

[root@node5 ~]# iptables -F
[root@node5 ~]# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o ens33 -j MASQUERADE

查看一下:

[root@node5 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 3 packets, 215 bytes)pkts bytes target     prot opt in     out     source               destination         Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         3   215 MASQUERADE  all  --  *      ens33   10.0.0.0/24          0.0.0.0/0           
[root@node5 ~]# 

规则设置成功。

B机设置:网关设为10.0.0.100

[root@node2 network-scripts]# vim ifcfg-ens36
# Generated by dracut initrd
NAME="ens36"
DEVICE="ens36"
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
IPADDR=10.0.0.101
PREFIX=24
GATEWAY=10.0.0.100
[root@node2 network-scripts]# systemctl restart network

设置完成上面之后,B机ping外网:

cded696a702760a693f0c6fd319350155c0.jpg

OK,B机可以连外网了。

9378e794ba5aa099bd58364e970f15a9cb4.jpg

但此时,物理机是ping不通10.0.0.100和10.0.0.101的。

需求2:物理机只能和A通信,让物理机机可以直接连B机的22端口。

A机打开路由转发,前面已经设置了

A机防火墙设置:

[root@node5 ~]# iptables -t nat -A PREROUTING -d 192.168.10.205 -p tcp --dport 1122 -j DNAT --to 10.0.0.101:22
[root@node5 ~]# iptables -t nat -A POSTROUTING -s 10.0.0.101 -j SNAT --to 192.168.10.205
[root@node5 ~]# 

查看一下设置的规则:

[root@node5 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 22 packets, 1966 bytes)pkts bytes target     prot opt in     out     source               destination         1    52 DNAT       tcp  --  *      *       0.0.0.0/0            192.168.10.205       tcp dpt:1122 to:10.0.0.101:22Chain INPUT (policy ACCEPT 4 packets, 621 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain POSTROUTING (policy ACCEPT 1 packets, 52 bytes)pkts bytes target     prot opt in     out     source               destination         35  2611 MASQUERADE  all  --  *      ens33   10.0.0.0/24          0.0.0.0/0           0     0 SNAT       all  --  *      *       10.0.0.101           0.0.0.0/0            to:192.168.10.205
[root@node5 ~]# 

B机网关:10.0.0.100

此时,物理机可以通过远程连接A机的1122端口连接到B机,这里使用Xshell演示:

71b6c8d1fb49418f23d1f9f249b7526e8eb.jpg

416880db5b7c4e21d8d71fbb85efc2b093e.jpg

5.2 SNAT、DNAT、MASQUERADE简介

SNAT是source networkaddress translation的缩写,即源地址目标转换。比如,多个PC机使用ADSL路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip,这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了,所以叫做SNAT,基于源地址的地址转换

DNAT是destination networkaddress translation的缩写,即目标网络地址转换,典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip,互联网上的访问者使用公网ip来访问这个网站,当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换

MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。

在iptables中有着和SNAT相近的效果,但也有一些区别,但使用SNAT的时候,出口ip的地址范围可以是一个,也可以是多个。

六、防火墙规则的备份和恢复

防火墙规则保存:service iptables save

[root@node5 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@node5 ~]# 

默认保存在/etc/sysconfig/iptables文件中。

如果想自定义保存文件,则可以使用命令iptable-save命令重定向到一个文件:

[root@node5 ~]# iptables-save > myiptables.txt

从已经保存的文件中恢复防火墙规则:

刚才已经把规则保存到myiptables.txt了,现在把规则清空,再恢复看看。

[root@node5 ~]# iptables -t nat -F
[root@node5 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination 

OK,规则已清空。下面使用iptables-restore命令恢复规则:

[root@node5 ~]# iptables-restore < myiptables.txt 

再查看一下:

[root@node5 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 DNAT       tcp  --  *      *       0.0.0.0/0            192.168.10.205       tcp dpt:1122 to:10.0.0.101:22Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)pkts bytes target     prot opt in     out     source               destination         0     0 MASQUERADE  all  --  *      ens33   10.0.0.0/24          0.0.0.0/0           0     0 SNAT       all  --  *      *       10.0.0.101           0.0.0.0/0            to:192.168.10.205
[root@node5 ~]# 

OK,恢复成功。

七、防火墙扩展

1、显式扩展

iptables扩展:显式扩展

2、网络防火墙

网络防火墙:网络防火墙

3、其他

其他内容:https://www.zsythink.net/archives/tag/iptables/page/2/

 

转载于:https://my.oschina.net/logmm/blog/1827236

http://www.jmfq.cn/news/4797397.html

相关文章:

  • 无锡网站建设多少钱/google海外版入口
  • 医院响应式网站建设方案/优秀网站设计欣赏
  • 导航网站怎么做seo/网络维护公司
  • 网站开源/山东关键词优化联系电话
  • wordpress添加搜索引擎/广州各区正在进一步优化以下措施
  • 阿里巴巴招聘官网/抖音seo排名优化
  • 做二维码的网站/专业软文平台
  • 网站在线报名怎么做/网站seo诊断工具
  • 专注七星彩网站开发/网站建设报价方案
  • 软件开发资源网站/兰州网络推广新手
  • 外贸网站模板建立/域名注册网站系统
  • html演示网站/广西南宁市有公司网站设计
  • 浅谈政府门户网站建设/全媒体广告代理加盟靠谱吗
  • wordpress最好用的编辑器/搜索引擎优化论文
  • 阿里巴巴网站建设的背景/武汉网站seo公司
  • hishop/济南seo整站优化价格
  • 韩国明星都在那个网站做直播/seo综合查询爱站
  • 北京知名的网站建设公司/市场营销教材电子版
  • 建设厅查询网站/sem竞价托管多少钱
  • 动漫做那个视频网站/女生学市场营销好吗
  • 建一个购物网站需要什么条件/什么是百度指数
  • 网站赌博代理怎么做/网络推广公司深圳
  • 直播类型网站开发/新站seo竞价
  • 快手作品推广网站/常州网站建设制作
  • 南通企业网页制作/百度seo关键词排名s
  • jsp网站购买空间/站长工具服务器查询
  • 上海宝山区网站建设/安卓优化大师app下载安装
  • 网站建设尚品/免费b站推广网站2023
  • 做网站被骗怎么办/免费平台
  • 学校语言文字网站建设/推广公司品牌