配置网卡(本地电脑)

Vment1   仅主机模式

Vment8   nat模式

物理机 : 192.16810.1  /255.255.255.0

服务器 : 192.168.10.10 /255.255.255.0

客户端A:192.168.10.20/255.255.255.0

客户端B:192.168.10.30/255.255.255.0

我们就按照这个来做。自己定也行

接下来说怎么配置网卡(4种方法)

下面先说第一种

用vim进入/etc/sysconfig/network-scripts/ifcfg-eno16777736进入网卡,ifcfg跟的是你网卡的名称,每个人是不一样的。

然后我们看一下里面的参数

TYPE说的是我们的网卡类型,这里是以太网

第二个BOOTPROTO是一个启动方式(获取网卡信息的一个方式)他有三个类型:第一个是静态(stat),第二个是dhcp,第三个是默认(none)

NAME代表网卡名称

UUID代表网卡唯一的标识符

HWADDR:网卡mac地址也就是物理地址。

ONEBOOT:这个参数是说让我们开机时候是否启动。很重要。

IPADDR0:网卡的IP地址

PREFIX0:子网掩码,他这里写了24位。我们也可以写成NETMASK=255.255.255.0

然后我们重启网卡,# systemctl restart network

这里说一下,如果你用的虚拟机,重启网卡报错,那么很有可能你的mac地址不对,这里你用ip addr命令查看一下还了就好了。然后在本机上ping一下。

记住3句话

1.Linux系统一切都是文件

2.设置服务选项实际就是在修改服务的配置文件。

3.要想让服务执行最新的参数,需要重启该服务。

第二种方法

用工具nmtui

RHEL5/6       setup

EHRL7           nmtui

回车

然后选择编辑Edit

我们将它改为30,然后选中OK回车

这时候我们会发现网络还没有通,那是因为我们没有重启网卡,记住修改完配置文件必须重启对应服务。

然后我们说第三种

命令nm-connection-editor

这没什么好说的。

记住这两个必须勾上就行了。

对了,别忘了重启服务哈

第四种方法。

如果你实在懒得记的话,那你看那个小电脑没,点击他

然后给他先关了再打开就行了。

这样修改是不用重启服务的,但是你公司如果没有安装图形化界面的话你还是老老实实的记命令吧。选择自己喜欢的就好了。

----------------------------------------------------------------------------------------------------------------------------------

接下来我们学习配置防火墙

input:从外部到内部的过程

output:从内网到外网输入的一个过程

forward :转发链到第三方

策略规则

从上往下逐条匹配的,当匹配到中间一条之后就会执行,就不会往下匹配了。所以我们把重要的写在上面。

思路

1:防火墙的功能主要是防止外部到内部的一个入侵。

2:功能里面我们要有策略,而这个策略是从上到下的。并且当匹配到之后就会终止匹配动作。

3:动作不光可以静止掉我们某个流量,他可以做4种动作

(1)允许动作  ACCEPT(比如你妈来了)

(2)拒绝动作  REJECT(但是对方会受到你拒绝的信息)(比如推销洗发水的)

(3)对方依然不能进来,并且不知道你在家DROP(举个例子,有100个人来干你,敢出声不)

(4)LOG  日志

下面配置一下实例

Iptables  (在RHEL7.4以后就没有了)(难度最大)

iptables中常用的参数以及作用

参数 作用
-P 设置默认策略
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据
-o 网卡名称 匹配从这块网卡流出的数据
-p 匹配协议,如TCP、UDP、ICMP
--dport num 匹配目标端口号
--sport num 匹配来源端口号

显示Iptables -L所有策略的

iptables -L清空防火墙所有策略

我们会发现他只有这种格式了,策略都没了。

Chain INPUT(policy ACCEPT)

接下来:

把INPUT规则链的默认策略设置为拒绝:(默认的规则链只能使用DROP不能是REJECT,程序所规定的)

回车我们发现他ping不通了。

默认禁止所有流量去访问我们的服务器iptables -P INPUT DROP。-P是设置默认策略。

-I插入规则到前面  -A插入到后面  规则链的话叫做INPUT   -p协议的意思, ping的协议叫做icmp,就是说我们允许icmp协议,说白了就是允许你ping,-j代表动作了,ACCEPT是允许这个动作。我们会发现又ping通了。但是其他动作是不行了,只能ping.

将INPUT规则链设置为只允许指定网段的主机访问本机的22端口,拒绝来自其他所有主机的流量

-I我们给他放到最前面,INPUT 规则链名称 ,别忘了规则链是从上到下的。-s 是来源的地址 192.168.10.0/24 , -p 代表协议(TCP),--dport 22端口号。-j ACCEPT的话-j本身没什么作用,当加上ACCEPT允许动作的时候才有用,比如说这是老冀,你只说这是没什么用,对吧。

用-L查看我们里面的策略,发现好多重复的,那么我们怎么清空多余的么,其中iptables -F是清空全部。如果要删除指定的我们这么写

# iptables -D INPUT 1就是删除第一条。

删掉了

向INPUT规则链中添加拒绝192.168.10.1主机访问本机80端口(Web服务)的策略规则

这个是拒绝某个IP从外部访问到内部的命令,然后我们iptables -F给他取消掉。

向INPUT规则链中添加拒绝所有人访问本机22端口的策略规则

向INPUT规则链中添加拒绝所有主机访问本机20~200端口的策略规则

但是请特别注意,使用iptables命令配置的防火墙规则默认会在系统下一次重启时失效,如果想让配置的防火墙策略永久生效,还要执行保存命令:

这样,我们配置的iptables就生效了。

----------------------------------------------------------------------------------------------------------------------------------

Firewalld防火墙的命令(zone区域)

他的两个工具

firewall-cmd            命令行

firewall-config         图形化

                                        firewalld中常用的区域名称及策略规则

区域 默认规则策略
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关

public重点

Runtime   当前生效模式,重启后失效。

Premanent 当前暂时不生效,但是但是重启后永久生效。

firewall-cmd命令中使用的参数以及作用

参数 作用
--get-default-zone 查询默认的区域名称
--set-default-zone=<区域名称> 设置默认的区域,使其永久生效
--get-zones 显示可用的区域
--get-services 显示预先定义的服务
--get-active-zones 显示当前正在使用的区域与网卡名称
--add-source= 将源自此IP或子网的流量导向指定的区域
--remove-source= 不再将源自此IP或子网的流量导向某个指定区域
--add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称> 将某个网卡与区域进行关联
--list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones 显示所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=<服务名> 设置默认区域允许该服务的流量
--add-port=<端口号/协议> 设置默认区域允许该端口的流量
--remove-service=<服务名> 设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议> 设置默认区域不再允许该端口的流量
--reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
--panic-on 开启应急状况模式
--panic-off 关闭应急状况模式

查看firewalld服务当前所使用的区域:

告诉我们是public

我们还可以通过set,也就是firewall-cmd --set-default-zone=drop给他切换成drop丢包。然后使用

#friewall-cmd --get-default-zone 来查看

流量必须经过你你才能看到效果。

查询eno16777736网卡在firewalld服务中的区域:

告诉我们没有区域。

把firewalld服务中eno16777736网卡的默认区域修改为drop,并在系统重启后生效。分别查看当前与永久模式下的区域名称:

然后进行查看,发现还是no zone

我们这样查看重启之后的效果。

在语句查看的基础上家一个--permanent参数就可以查看重启之后网卡所在的区域了。

这里需要说一下,比如我们公司没人入侵进病毒了,第一时间不是杀毒啊,而是先断网,从根源上遏制,然后再进项下一步处理。将损失降到最低。

上面的命令就是切断所有连接,就是ping也不行。

如果感觉好了之后,我们就可以关闭掉紧急模式,off之后连接又恢复正常。

这个命令就是说是否可以从外面访问我们内网网站服务,no不允许

然后是否可以访问内部ssh服务,告诉我们yes可以

然后我们将他的服务名称加进去他的策略当中去,用add

firewall-cmd --zone=public --query-service=https    当前生效

firewall-cmd --permanent --zone=public --query-service=https 永久生效,你查询的时候也得加上--permanent,不然查出来是不正确的。

对了,移除的命令是remove,也就是

firewann-cmd --zone=public --remove-service=https

切记我们一定要加--permanent命令让她永久生效,然后我们firewall-cmd --reload最后去加载一下。

对端口号放行

例如我们对端口号8080放行的话,那么

我们看到里面多了一条8080端口号信息。

让然我们也可以将add换成remove将它移除。

我们也可以允许放行某个段的端口号

就是把8080换成8000-9000.当然移除一样是remove

--permanent这个参数别忘了,一样的

我们默认的端口22大家都知道,这样就很容易让黑客来攻击,那我们怎么隐藏这个原始端口号呢,

我们让用户访问例如一个888段楼,然后转发到22端口号,这样外面看是888,实际上我们端口号是22.

流量转发命令格式为:firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

这样我们就转成功了。访问888端口号就可以访问。

firewalld中的富规则表示更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有针对性的策略配置。它的优先级在所有的防火墙策略中也是最高的。比如,我们可以在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的所有用户访问本机的ssh服务(22端口):

这个是复语句,特别长,我们只需要记住firewall-cmd --reload让她直接永久直接生效。

---------------------------------------------------------------------------------------------------------------

firewall-config 工具

输入命令firewall-config命令

他是和命令一模一样的。

我们开始查看的ipp服务不允许,然后我们再图形界面点一下ipp

发现发马上就允许了

我们执行一个增加一个图形界面就对号一个。

1:选择运行时(Runtime)模式或永久(Permanent)模式的配置。

2:可选的策略集合区域列表。

3:常用的系统服务列表。

4:当前正在使用的区域。

5:管理当前被选中区域中的服务。

6:管理当前被选中区域中的端口。

7:开启或关闭SNAT(源地址转换协议)技术。

8:设置端口转发策略。

9:控制请求icmp服务的流量。

10:管理防火墙的富规则。

11:管理网卡设备。

12:被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量。

13:firewall-config工具的运行状态。

我们先将当前区域中请求http服务的流量设置为允许,但仅限当前生效。

尝试添加一条防火墙策略规则,使其放行访问8080~8088端口(TCP协议)的流量,并将其设置为永久生效,以达到系统重启后防火墙策略依然生效的目的。在按照图所示的界面配置完毕之后,还需要在Options菜单中单击Reload Firewalld命令,让配置的防火墙策略立即生效。这与在命令行中执行--reload参数的效果一样。

使用iptables命令实现SNAT技术是一件很麻烦的事情,但是在firewall-config中却是小菜一碟了。用户只需按图进行配置,并选中Masquerade zone复选框,就自动开启了SNAT技术。

为了让大家直观查看不同工具在实现相同功能的区别,这里使用firewall-config工具重新演示了前面使用firewall-cmd来配置防火墙策略规则,将本机888端口的流量转发到22端口,且要求当前和长期均有效,具体如图

配置富规则,让192.168.10.20主机访问到本机的1234端口号

如果生产环境中的服务器有多块网卡在同时提供服务(这种情况很常见),则对内网和对外网提供服务的网卡要选择的防火墙策略区域也是不一样的。也就是说,可以把网卡与防火墙策略区域进行绑定,这样就可以使用不同的防火墙区域策略,对源自不同网卡的流量进行针对性的监控,效果会更好。

最后,刘遄老师想说的是,firewall-config工具真的非常实用,很多原本复杂的长命令被用图形化按钮替代,设置规则也简单明了,足以应对日常工作。所以再次向大家强调配置防火墙策略的原则—只要能实现所需的功能

第四种方法:TCP Wrappers工具

我们前三个iptables firewall-cmd   firewall-config  一共7层,他们属于数据链路层(基于对协议、端口号、来访IP地址),而TCP Wrappers 是应用层(服务名称)

他是由两部分组成

/etc/hosts.allow    白名单(允许的服务名称以及IP地址)

/etc/hosts.deny     黑名单(拒绝的服务名称以及IP地址)

他的匹配顺序是先匹配白名单,当白名单没有的时候回匹配黑名单,如果白名单有的话就会停止匹配直接放行。没有的话匹配黑名单,当黑名单有的话就会禁止,当全部匹配完了都没有的话就会选择放行。

编辑我们拒绝的文件。

其中先说一下,我们SSH叫做协议的名称,sshd是服务的名称,别搞混了

ssh:192.168.10.相当于ssh:192.168.10.0/255.255.255.0,或者ssh:192.168.10.0/24怎么写都行。

现在我们的Xshell工具是可以连接的。但是

让我们加进去静止这个网段之后,我们看一下

连不上了,因为我们这个网段被禁止了。

我们限制所有主机的话就是这样做。里面加sshd:* (*代表所有主机)

让然我们还是连不上。这样所有主机都禁止了肯定不行,活都干不了了。所以我们给他在允许allow里面加进去我们公司里面内部的IP,但是其他人不行。

然后我们再试一下

又可以了。

TCP Wrappers服务的控制列表文件中常用的参数

客户端类型 示例 满足示例的客户端列表
单一主机 192.168.10.10 IP地址为192.168.10.10的主机
指定网段 192.168.10. IP段为192.168.10.0/24的主机
指定网段 192.168.10.0/255.255.255.0 IP段为192.168.10.0/24的主机
指定DNS后缀 .admin 所有DNS后缀为.admin的主机
指定主机名称 admin 主机名称为admin的主机
指定所有客户端 ALL 所有主机全部包括在内

最后说一下我们4个工具,有其中一个工具拒绝3个允许他还是拒绝。

Linux新手随手笔记1.7的更多相关文章

  1. Linux新手随手笔记1.8

    配置网卡服务 将网卡的配置文件,保存成模板,叫做会话. nmcli命令查看网卡信息.nmcli是一款基于命令行的网络配置工具 只有一个网卡信息,下面我们再添加一个. 公司:静态IP地址 家庭:DHCP ...

  2. Linux新手随手笔记1.6

    RAID磁盘冗余阵列 1.I/O  速度 2.数据安全性  RAID 0 负载均衡.速度乘以二,但是数据安全性不行,任何一块盘损坏数据都会丢失. RAID 1 安全性性提升2倍,任何一个损坏另一个都有 ...

  3. Linux新手随手笔记1.5

    FHS Linux / 代表根目录 /root  管理员的家目录 /boot  启动引导文件,以及开机菜单都会保存在里面 /bin     保存我们系统中命令的目录,不止bin,只要带bin的比如sb ...

  4. Linux新手随手笔记1.4

    计划任务服务程序 计划任务 at  命令          一次性的 crond  服务   周期性的 23:29执行reboot命令(重启服务器) at -l      查看当前的计划任务 at  ...

  5. Linux新手随手笔记1.3

    shell脚本的编写(划重点) #!/bin/bash                    脚本的声明信息 #sjsjdhsjdhh                  脚本的注释 ls -l    ...

  6. Linux新手随手笔记1.2

    重定向 输入重定向:将命令输出结果写入一个文件或将一个文件内容导回到命令里面的这个过程叫做重定向 :标准(>) 输出重定向   :覆盖写入清空写入(>)/追加写入(>>) :错 ...

  7. Linux新手随手笔记1.1

    ifconfig   查询网卡信息 分别是网卡名称,物理IP地址,MAC地址,RX收到数据包大小,TX发送数据包大小 # uname # uname -a 查看内核版本号 # hostname 查看主 ...

  8. Linux新手随手笔记1.9-使用Apache搭建网站

    搭建网站 网站服务:让用户能够通过浏览器访问到的服务器上的文档资源. 对比Windows 和Linux部署服务方法对比 Windows:IIS Linux      :Apache ,nginx Ap ...

  9. Linux新手随手笔记

    RPM通过将安装规则与源代码打包到一起,来降低软件的安装难度 yum 通过将大量的常用RPM软件存放在一起,解决软件包之间的依赖关系,进一步降低软件的安装难度 rhel 5\6 init rhel 7 ...

随机推荐

  1. CF592D Super M

    嘟嘟嘟 首先这题虽然不是很难,但是黄题是不是有点过分了--好歹算个蓝题啊. 手玩样例得知,这哥们儿瞬移到的城市\(A\)一定是这些被攻击的城市构成的树的一个叶子,然后他经过的最后一个城市\(B\)和\ ...

  2. Scala设计模式

    尽管Scala还有一些基于语言特性的设计模式,单本文还是着重于介绍大家所周知的经典设计模式,因为这些设计模式被认为是开发者之间交流的工具. 创建型设计模式 1.工厂方法模式 2.延迟加载模式 3.单例 ...

  3. MySQL 表名和字段名不要使用保留字命名

    今天测试代码,新建了一张 Order 表,使用的 MySQL 数据库. 插入数据的时候报语法错误,我检查了好几遍,也没看出 SQL 语句哪里有问题,于是从 MyBatis 的日志里拷贝出 SQL 语句 ...

  4. Self Host 使用 Exceptionless 实时监控程序运行日志服务

    Exceptionless 是一个可以对 ASP.NET Core, ASP.NET MVC,WebAPI, WebForms, WPF, Console 应用提供系统的日志,错误监控.报表等服务实时 ...

  5. JavaScript一看就懂(2)闭包

    认识闭包之前需要先了解作用域,如果你对作用域还没有足够了解,请移步JavaScript一看就懂(1)作用域 什么是闭包? 我们可以先简单认为:一个函数a定义在另一个函数b里面,这个函数a就是闭包: f ...

  6. java编程行业微信群,无论新手老手欢迎加入,会一直更新

    纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群 纯技术交流群 每日推荐 - 技术干货推送 跟着泥瓦匠,一起问答交流 扫一扫,我邀请你入群

  7. 一段JAVA代码了解多线程,JUC、CAS原子性操作。

    @Test public void testPaceController_multiThread() throws InterruptedException { final PaceControlle ...

  8. 为什么要抛弃Pact?如何快速实现契约测试(CDC)

    前言 在前几天的博客中,我转载了一篇文章,其中介绍了契约测试和pact是怎么实施的,的确很有帮助.但我经过研究,其实是pact本身也是有缺陷的,结合我近期在使用的服务型工具和我的实际情况,觉得实现契约 ...

  9. [SpringBoot guides系列翻译]调用RESTfulWebService

    原文 参考链接 CommandLineRunner Bean 翻译如何调用RESTful WebService 这节将演示如何在SpringBoot里面调用RESTful的WebService. 构建 ...

  10. 【转载】java static 关键字的四种用法

    原文链接点这里,感谢博主分享 在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构 ...