7月12日任务
10.11 Linux网络相关
10.12 firewalld和netfilter
10.13 netfilter5表5链介绍
10.14 iptables语法

扩展(selinux了解即可)
1. selinux教程  http://os.51cto.com/art/201209/355490.htm 

2.selinux pdf电子书  http://pan.baidu.com/s/1jGGdExK 



Linux网络相关命令

image.png


ifconfig Centos7中需要安装net-tools包

image.png


ifconfig -a 当网卡down的时候 就可以查看到


ifup ens33  打开 ens33这个网卡

ifdown ens33 关闭ens33这个网卡

网卡关闭的时候是没有ip的

使用场景就是当指定网卡的配置文件进行更改后,可以对这个网卡进行重启。但是记得远程不要down,down完就启动不了了。

ifdown ens33 && ifup ens33 正确的操作,关闭之后同时打开。

image.png


设定虚拟网卡来增加ip

先到网卡配置文件目录,

cd /etc/sysconfig/network-scripts/

拷贝当前网卡文件 cp ifcfg-ens33 ifcfg-ens33\:0 反斜线是为了脱义冒号

image.png

然后编辑新的文件,网卡名称,网卡的ip要修改。

image.png

然后重启网卡,就会出现了新的网卡信息。

image.png


window也可以ping通说明没有问题。

lvs keepalived 会用到虚拟网卡


mii-tool ens33 查看网线是否插好 如果这个命令不支持的话,可以使用 ethtool ens33

image.png


更改主机名

hostnamectl set-hostname 新主机名字 (centos6 不支持)

配置文件位置在 /etc/hostname 



DNS配置文件地址  /etc/resolv.conf

image.png

nameserver 就是DNS的配置

image.png

image.png

当然直接修改 /etc/resolv.conf文件也可以



/etc/hosts 这个文件是linux windows都有的,就是ip所对应的域名,支持一个ip对多个域名。可以在这自己随便定义,当然只是对这台机器生效。


image.png

image.png


image.png


注意 hosts文件中如果出现同一个域名被不同ip解析了,按照从下往上的顺序。

image.png

image.png




firewalld 和netfilter

image.png


selinux 临时关闭的命令

setenforce 0

getenforce 查看selinux的状态


selinux 永久关闭,到配置文件/etc/selinux/config中,

SELINUX=disabled

image.png

然后重启生效



Centos6中实际使用的 netfilter在centOS7里变成了 firewalld 

实际上都是使用iptables来添加规则。

因为在实际的运维环境中 CentOS6还是比较常见的,所以也需要安装netfilter

安装的过程是

  1. 首先把firewalld停止

    systemctl disable firewalld

  2.  再将这个服务stop

        systemctl stop firewalld

  3. 安装 iptables-services 

  4. systemctl enable iptables

  5. systemctl start iptables

netfilter是防火墙,iptables是防火墙工具




netfilter5链5表

man iptables

image.png


filter表,默认的表,包括了三个内置的链。input是进来的数据包,检查源ip是什么,可疑的话禁掉。forward是判断目标地址是不是本机,也可以更改或者转发。Output是本机包出去前做的操作。比如将ip加入黑名单


nat表,三个链。output和上面的一样。prerouting是用来更改数据包,进来的那一刻进行更改。outrouting是再出去的那一刻进行更改。nat使用的场景是实现路由的功能共享上网。还可以做端口映射,看下图。

image.png

后面的表几乎用不到,先暂时不说了。

managle用于给数据包做标记

raw表可以实现不追踪某些数据包

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

image.png


iptables 语法

image.png


查看规则 iptables -nvL

规则保存的位置

image.png

/etc/sysconfig/iptables 默认规则

image.png


规则不合适的话可以清空重新写规则。


重启iptables服务都会加载配置文件的规则的。

service iptables restart 

image.png


iptables -t filter/nat -nvL 查看filter/nat表的规则

image.png


image.png


清空规则 (内存中生效)

iptables -F


保存规则 (重启依然生效)

service iptables save


iptabels -t nat -t是指定表


iptables -Z 可以把计数器清零,就是清空下面的数字

只有连在一起写才能看到0,因为每时每刻都在通信。例子,有时候需要计算流量,一定时间内后清零再重新计算。

image.png

image.png

iptables -A INPUT -s 192.168.188.1 -p tcp --sport 1234 -d 192.168.188.128 --dport 80 -j DROP 即使不加-t filter但是默认的就是filter表

这条命令的意思是 -A add增加规则 input链 -s source来源ip  -p指定协议 tcp udp 等 --sport source port 1234 -d 目标ip  --dport 目标端口 -j 操作 DROP 扔掉 REJECT 拒绝 DROP和REJECT在阻挡ip的时候功能是一致的 ,区别是drop是数据包来了后直接扔掉,reject会告知。

也可以不写目标ip 来源ip直接写目标端口,

iptables -I INPUT -p tcp --dport 80 -j DROP

-I insert -A add 区别在于此,-I规则插入到最前面 -A在最后面

过滤规则从上往下执行 所以-I 进去的规则会排在最前面 首先满足 

image.png

iptables -I/-A/-D INPUT -s 1.1.1.1 -j DROP

-D 就是delete 删除规则,如果是还可以把这个复杂的规则找回来,只是改-A为-D 那还好,但是如果不记得怎么写的,那么长一串该如何删除呢?

image.png

iptables -I INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT 对网卡,指定eth0网卡


iptables -nvL --line-number 这样就给规则编号了,就可以容易的删除规则了

image.png

iptables -D INPUT 6 删除对应编号的规则

image.png

iptables -P INPUT DROP  

默认的规则 policy ACCEPT。如果数据包没有具体的规则来匹配就走默认的policy。 -P就是设定默认策略。但是一般不同,容易一棒子打死。