​七周三次课(5月8日)Linux网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语法...

10.11 linux网络相关

220340_nBR6_3803395.png

ifconfig 查看网卡相关IP

ifcionfig -a  当网卡没有IP的时候,这个命令是不显示的,加上 -a 就可以查看到

开启网卡: ifup eth0

关闭网卡: ifdown eth0

以上就是关闭网卡ifdown和启动网卡ifup的操作,那么这两个命令什么时候用呢?有时候会单独对一个网卡做更改,比如改了配置文件,需要重启服务,这个时候不想所有的网卡都重启一遍,只想重启指定的网卡,这个时候就可以使用 ifdown 和 ifup 命令来操作。但是远程连接的话,最好不要使用 ifdown 这个命令,会直接连不上服务器,导致远程操作不了。所以,我们应该这样操作,输入命令 ifdown ens33 && ifup ens3

网卡设定虚拟网卡,具体操作:

cd /etc/sysconfig/network-scripts/

cp ifcfg-eth0 ifcfg-eth0\:0    // \反斜杠是脱义:

编辑文件: vim  ifcfg-eth0\:0 下图红框处

223546_14Pk_3803395.png

重启网卡服务: ifdown eth0:0 && ifup eth0:0

mii-tool eth0  查看网卡是否链接

ethtool  eth     查看网卡是否链接

224032_GfR3_3803395.png

hostnamectl  set-hostname  lxy 更改主机名

hostname 查看主机名

dns配置文件:  cat /etc/resolv.conf 

etc/host  文件解析

更改文件解析:

225149_upoM_3803395.png

总结:
ifconfig 查看网卡IP
yum install net-tools 安装或更新 ifconfig 命令
ip add 查看网卡IP,结果相比于 ifconfig 命令杂乱
ifconfig -a 当网卡没有IP的时候,这个命令是不显示的,加上 -a 就可以查看到
ifdown 关闭网卡
ifup 启动网卡
ifdown ens00 && ifup ens00 关闭和启动网卡ens33同时进行,用于远程连接服务器时
mii-tool ens00 命令和 ethtool ens00 命令都可以查看网卡是否连接,显示的结果分别是 ok 和 yes
hostnamectl set-hostname   lxy-1 更改主机名为 - 1
vi /etc/sysconfig/network-scripts/ifcfg-ens33 可以更改配置文件为自定义内容
/etc/hostname 主机名配置文件
/etc/resolv.conf DNS配置文件
vi /etc/hosts 更改文件 /etc/hosts 的解析,可以实现IP地址的更改,但是更改仅仅在本机生效,一行里面同时也支持一个IP多个域名,仅支持一行的内容,换行就不能生效了,并且左边是IP,右边是域名。在重复的内容中,以后面的内容为准生效。

10.12 firewalld和netfilter

225442_gioc_3803395.png

  1. selinux 命令

selinux 是 Redhat/CentOS 系统特有的安全机制。不过因为这个东西限制太多,配置也特别繁琐所以几乎没有人去真正应用它。所以装完系统,我们一般都要把selinux关闭,以免引起不必要的麻烦。关闭 selinux 的方法为,使 “SELINUX=disabled”, 默认为 enforcing。
输入命令 vi /etc/selinux/config ,回车,见下图,

230817_zahw_3803395.png

保存该配置文件后,重启机器方可生效。我们可以使用 getenforce 命令获得当前 selinux 的状态

 getenforce    查看selinux 状态

setenforce 0   临时关闭selinux防火墙

2、 netfilter 防火墙

centos6和centos7都有iptables,这里的iptables是一个工具或者叫命令.在centos6中叫netfilter,centos7中防火墙叫firewalld.底层都是基于iptables.

systemctl disable firewalld  命令表示先停止防火墙服务

systemctl stop firewalld      命令表示关闭防火墙服务

接着开启 netfilter 防火墙,开启之前,需要先安装一个包,输入命令 yum install -y iptables-services 

安装完成之后,就可以开启 iptables 服务,即开启 netfilter 防火墙服务

systemctl enable iptables  表示开启防火墙服务

systemctl  start  iptables   表示启动防火墙服务

iptables -nvL  查看iptables 的默认规则

 

10.13 netfilter5表5链介绍

232621_v2TU_3803395.png

 以上就是 netfilter 防火墙的5个表,filter,nat,mangle,raw,security(Centos7之前没有这个表) 。
filter 表用于过滤包,最常用的表,有INPUT、FORWARD、OUTPUT三个链
nat 表用于网络地址转换,有PREROUTING、OUTPUT、POSTROUTING三个链
managle 表用于给数据包做标记,然后根据标记去操作那些包,几乎用不到
raw 表可以实现不追踪某些数据包,几乎用不到
security 表在centos6中并没有,用于强制访问控制(MAC)的网络规则,几乎用不到

五个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
PREROUTING:作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话
INPUT:作用于进入本机的包
FORWARD:作用于那些跟本机无关的包
OUTPUT:作用于本机送出的包,改变本地产生的包的目的地址
POSTROUTING:在包就要离开防火墙之前改变其源地址

iptables简介
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
iptables基础
规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息 包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规 则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的 主要工作就是添加、修改和删除这些规则。
iptables和netfilter的关系:
这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题。很多的知道iptables却不知道 netfilter。其实iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables。真正实现防火墙功能的是 netfilter,它是Linux内核中实现包过滤的内部结构。
iptables传输数据包的过程
① 当一个数据包进入网卡时,它首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
② 如果数据包就是进入本机的,它就会沿着图向下移动,到达INPUT链。数据包到了INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③ 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
selinux 、firewalld 、 netfilter 及其5表5链

下面说法是4表5链的内容,现在是5表5链,多出来的表也几乎用不到。
iptables的规则表和链:
表(tables)提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。
链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据 该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定 义的默认策略来处理数据包。
Iptables采用“表”和“链”的分层结构。具体见下图,
selinux 、firewalld 、 netfilter 及其5表5链

规则表:
1.filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
2.Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3.Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块:iptable_mangle(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
4.Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw

规则链:
1.INPUT——进来的数据包应用此规则链中的策略
2.OUTPUT——外出的数据包应用此规则链中的策略
3.FORWARD——转发数据包时应用此规则链中的策略
4.PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
5.POSTROUTING——对数据包作路由选择后应用此链中的规则
(所有的数据包出来的时侯都先由这个链处理)
规则表之间的优先顺序:
Raw——mangle——nat——filter
规则链之间的优先顺序(分三种情况):
第一种情况:入站数据流向
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包 的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通 过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。
第二冲情况:转发数据流向
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网 关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地 址等)进行处理。
第三种情况:出站数据流向
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

总结:
getenforce 查看当前 selinux 的状态,Enforcing 表示开启,Permissive 表示关闭。
setenforce 0 临时关闭 selinux
vi /etc/selinux/config 进入配置selinux文件,更改SELINUX=disabled,可以永久关闭selinux
systemctl disable firewalld 表示先停止防火墙服务
systemctl stop firewalld 表示关闭防火墙服务
5个表: filter,nat,mangle,raw,security
5个链: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
本机: PREROUTING →INPUT →OUTPUT →POSTROUTING
非本机:PREROUTING→FORWARD→POSTROUTING

10.14 iptables语法

202828_B1fQ_3803395.png

ipta les -nvL 查看规则

/etc/sysconfig/iptables    规则保存路径

iptables -F  清空规则  注:清空规则之后,使用命令 iptables -nvL,就看不到默认规则了,但是配置文件 /etc/sysconfig/iptables 里面的内容没有改变。也就是说,想要把当前的规则保存到配置文件里,还需要执行一个命令 service iptables save ,这样清空的规则才会生效。如果不保存的话,可以重启 iptables ,再加载回来

也就是说,重启服务器或是重启 iptables 规则,都会去加载配置文件上的规则。
这些默认的规则都在 filter 这个表上,-t 是指定表,不使用 -t 的话,默认就是 filter 这个表。nat 表里面都是没有规则的,见下图,

 

205133_iBK5_3803395.png

205159_dK00_3803395.png

service iptables save 保存规则。当我们把规则写完之后,仅仅在当前内存中生效。想要重启后还依然生效,就要做这个保存规则的操作。

iptables -Z  可以把计数器清零

现在给filter表增加一条规则,

iptables命令选项输入顺序:

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

输入命令 iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 

205728_efrs_3803395.png

这条命令省略了 -t ,默认为 filter 表;-A 表示增加一条规则,另外还有-I (大写的i)表示插入一条规则,-D删除一条规则;INPUT 表示针对的链,还可以是OUTPUT或者FORWORD;-s 表示后面跟着指定的来源IP,-p 表示协议(tcp, udp, icmp),--sport/--dport 后跟来源端口/目标端口;-d 后跟目的IP(主要针对内网或者外网);-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝;ACCEPT即允许包)。上图中,最下面的红色框框内容就是刚刚增加上去的规则。
总结一下各个选项的作用:
-A/-D :增加删除一条规则;
-I :插入一条规则,其实跟-A的效果一样;
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到);
还有一种用法 -I(大写的i),输入命令 iptables -I INPUT -p tcp --dport 80 -j DROP ,回车,见下图,

210020_j43y_3803395.png

可以看到使用 -I 选项,规则就插入到第一行了。
既然可以增加和插入,肯定也可以删除,使用选项 -D ,输入命令 iptables -D INPUT -p tcp --dport 80 -j DROP 

iptables -nvL --line-number   查看规则行号

210219_8xZX_3803395.png

输入命令 iptables -D INPUT 7    根据行号删除规则

还有一个选项 -P(大写), 表示预设策略,这是默认的规则,在PuTTY上远程登录的话,输入命令 iptables -P OUTPUT DROP ,回车,会发现整个断掉了,什么也执行不了,只能重启。-P后面跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。

表名包括:

  • raw:高级功能,如:网址过滤。
  • mangle:数据包修改(QOS),用于实现服务质量。
  • net:地址转换,用于网关路由器。
  • filter:包过滤,用于防火墙规则。

规则链名包括:

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTROUTING:用于源地址转换(SNAT)。

动作包括:

  • accept:接收数据包。
  • DROP:丢弃数据包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址转换。
  • DNAT:目标地址转换。
  • MASQUERADE:IP伪装(NAT),用于ADSL。
  • LOG:日志记录。

总结:
iptables -nvL 查看 iptables 规则
service iptables restart 重启 iptables 规则
cat /etc/sysconfig/iptables 查看 iptables 配置文件
iptables -F 清空规则
-t 是指定表,不使用 -t 的话,默认就是 filter 这个表
service iptables save 保存规则
-Z (大写) 可以把计数器清零
iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 给filter表增加一条规则
iptables -I INPUT -p tcp --dport 80 -j DROP 在第一行插入一条规则
iptables -D INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 删除增加的规则
iptables -D INPUT -p tcp --dport 80 -j DROP 删除插入的规则
-A/-D :增加删除一条规则;
-I :插入一条规则,其实跟-A的效果一样;
-p :指定协议,可以是tcp,udp或者icmp;
--dport :跟-p一起使用,指定目标端口;
--sport :跟-p一起使用,指定源端口;
-s :指定源IP(可以是一个ip段);
-d :指定目的IP(可以是一个ip段);
-j :后跟动作,其中ACCEPT表示允许包,DROP表示丢掉包,REJECT表示拒绝包;
-i :指定网卡(不常用,但有时候能用到);
iptables -nvL --line-number 每一行规则前面加上行号
iptables -D INPUT 7 删除行号为 7 的规则
iptables -P OUTPUT DROP 用来指定链的默认策略,不要随意执行
iptables -P OUTPUT ACCEPT 恢复链的默认策略

iptables -P OUTPUT DROP 删除默认规则,不要随意执行
iptables -P OUTPUT ACCEPT 恢复默认规则

转载于:https://my.oschina.net/u/3803395/blog/1806486

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值