10.11 Linux网络相关
10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法
10.11 Linux网络相关
ifconfig命令
ifconfig:查看网卡信息
用法:ifconfig [-a] [网卡名]
系统默认没安装ifconfig工具1
[root@localhost ~]# yum install -y net-tools
也可以查看指定的网卡
-a
:显示所有网卡 包含宕机的网卡
ifup命令 ifdown命令
ifup:启动指定网卡
ifdown:停止指定网卡
1 | [root@localhost ~]# ifdown ens33 ##启动ens33网卡 |
重启指定网卡可以把他们用&&连起来使用1
[root@localhost ~]# ifdown ens33 && ifup ens33 ##先down再up 顺序别搞错
设置虚拟网卡
1.先复制ens33网卡的配置文件为ens33:01
2[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ##先进入网卡的配置文件目录
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33\:0 ##\把:进行转义
2.编辑ens33\:0 的配置文件1
[root@localhost network-scripts]# vim ifcfg-ens33:0
把NAME DEVICE 改为ens:33 IPADDR 改ip地址就可以了
3.重启网卡1
[root@localhost network-scripts]# ifdown ens33 && ifup ens33
mii-tool命令 ethtool命令
mii-tool/ethtool:查看网卡是否连接
1 | [root@localhost /]# mii-tool ens33 |
1 | [root@localhost /]# ethtool ens33 |
Link detected:yes表示连接成功
hostname主机名
hostname:查看主机名
1 | [root@localhost ~]# hostname ##查看系统的主机名 |
系统的主机名存放在/etc/hostname/
目录下1
2[root@localhost ~]# cat /etc/hostname
localhost.localdomain
可以使用hostnamectl set-hostname 主机名
来更改主机名1
2
3[root@localhost ~]# hostnamectl set-hostname kun0769
[root@localhost ~]# cat /etc/hostname
kun0769
重新登录系统就会生效
DNS配置文件
DNS用来解析域名的 也是一个IP地址 就是把域名解析到某个IP地址上 像个警察局,帮忙问路
DNS也有配置文件 在/etc/resolv.conf
下 当网卡中指定了DNS就会自动在该文件下编辑好DNS了,手动在这文件下编辑DNS只是临时的 重启系统后还是按照网卡配置文件来解析域名
自定义域名文件
把自定义域名和某个IP地址来解析到一起 可以在/etc/hosts
文件下配置1
[root@kun0769 ~]# vim /etc/hosts
左边是IP地址 右边是域名 可以是多个
这里我ping www.g.cn 可以看到ip地址为203.208.43.111
现在想把 www.g.cn 域名自定义解析到1.1.1.1的ip地址上
10.12/10.13 Linux防火墙
SELinux是Linux系统下的一个安全子系统 由于复杂 一般选择关闭 这里只做理解其中SELinux的配置文件在/etc/selinux/config
文件下
可以手动把SELinux那行改为其他的状态
getenforce:查看系统SELinux的状态
1 | [root@kun0769 ~]# getenforce |
setenforce 0:临时把SELinux改为permissive状态 该状态遇到问题会警告 并没关闭
1 | [root@kun0769 ~]# setenforce 0 |
其实在Linux系统中有两个防火墙 一个叫netfilter 在CentOS6以前的版本都是使用它 另一个叫firewalld CentOS7开始默认用它 其他他们都是使用iptable工具来配置防火墙的
netfilter防火墙
由于我们系统是用CentOS7的 默认使用firewalld 所以这里要关闭掉firewalld 再启动netfilter
1.关闭firewalld
systemctl disable firewalld:开机不启动firewalld
systemctl stop firewalld:关闭firewalld服务
1 | [root@kun0769 ~]# systemctl disable firewalld |
2.启动netfilter
系统默认没有安装netfilter1
[root@kun0769 ~]# yum install -y iptables-services ##安装iptables-services包
systemctl enable iptables:开机启动netfilter
systemctl start iptables:开启netfilter
1 | [root@kun0769 ~]# systemctl enable iptables |
5个表和5个链
表:用于提供特定规则和功能
表名 | 作用 |
---|---|
filter | 用于过滤包 |
nat | 用于路由转发 |
mangle | 用于给数据做标记 用得少 |
raw | 用于不跟踪某些数据表 用得少 |
security | 用于强制访问控制规则 用得少 |
链:数据包经过的路径 是规则的集合体
链名 | 作用 |
---|---|
INPUT | 进入本机的数据包经过的链 |
OUTPUT | 从本机出去的数据包经过的链 |
FORWARD | 不是本机转发给其他地方的数据包经过的链 |
PREROUTING | 对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理) |
POSTROUTING | 对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理) |
不经过本机的包 PREROUTING--FORWARD--POSTROUTING
经过本机的包 PREROUTING--INPUT--本机--OUTPUT--POSTROUTING
10.14 iptable用法
iptable的配置为文件在/etc/sysconfig/iptables
下 里面存放着所有的规则
iptables -nvL:查看内存中iptables规则
1 | [root@kun0769 ~]# iptables -nvL |
iptables -F:清空内存中规则
1 | [root@kun0769 ~]# iptables -F |
service iptables restart:重启iptables服务 可以重新读取配置文件的规则
1 | [root@kun0769 ~]# service iptables restart |
service iptables save:保存规则到配置文件去
1 | [root@kun0769 ~]# service iptables save |
iptables -Z:把计算器清零
-A
:添加规则 一般放在最后面-I
:插入规则 一般放最前面 优先运行它-D
:删除规则 后面跟规则的原参数 可以跟规则的序号-t
:指定表 默认指定filter表-s
:指定源ip地址-d
:指定目的ip地址--sport
:指定源端口 必须先指定协议 即-p--dport
:指定目的端口 必须先指定协议 即-p-p
:指定协议 tcp utp-i
:指定网卡名-j
:指定行为 ACCEPT允许 DROP丢弃 REJECT拒绝-P
:指定链的默认行为
增加一条丢弃从192.168.188.1:123到192.168.188.128:80的包的规则
1 | [root@kun0769 ~]# iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP |
插入一条丢弃到80端口的包的规则
1 | [root@kun0769 ~]# iptables -I INPUT -p tcp --dport 80 -j DROP ##-I插入 优先过滤此规则 |
删除一条丢弃到80端口的包的规则
1 | [root@kun0769 ~]# iptables -D INPUT -p tcp --dport 80 -j DROP ##-D删除规则 后面必须和原参数一致 |
iptables -nvL –line-number:显示规则的序号
删除序号6的规则
1 | [root@kun0769 ~]# iptables -D INPUT 6 ##使用序号也可以删除规则 |
增加一条允许从192.168.1.0网段的进入到ens0de1包规则
1 | [root@kun0769 ~]# iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT |
把INPUT链的默认规则改为DROP
1 | [root@kun0769 ~]# iptables -P INPUT DROP |