Day07 系统安全防护&防火墙(Enginner01)

一、SELinux

1.1 概述

Security-Enhanced Linux

由美国NSA主导开发,一套增强Linux系统安全的强制访问控制体系

集成到Linux内核(2.6及以上)中运行

RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略以及管理工具

1.2 三种运行模式

enforcing:强制,发现危险行为直接禁止

permissive:宽松,发现危险行为做记录,极端危险行为也会直接禁止

disabled:彻底不用SELinux

1.3 查看及临时切换模式

getenforce #查看SELinux运行模式

setenforce 0 #临时修改成permissive模式

1.4 /etc/selinux/config

SELinux的配置文件,修改SELINUX=permissive,这样就设置了电脑下次启动时的SELinux状态为permissive

二、配置高级连接

2.1 配置team(聚合连接、链路聚合、网卡绑定)

2.1.1 定义

和HSRP的功能类似,team的主要功能是对网卡设备进行备份。由多块网卡(team-slave)一起组建的虚拟网卡,即组队

man nmcli-examples可以看配置示例

2.1.2 配置方式

轮询(roundrobin)

热备份(activebackup):可以man teamd.conf,查找example,在第二个examle里面能看到"runner": {"name": "activebackup"}

2.1.3 配置步骤

2.1.3.1 添加team

nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'

2.1.3.2 添加team-slave

nmcli connection add type team-slave ifname eth1 master team0

nmcli connection add type team-slave ifname eth2 master team0

2.1.3.3 为team配IP地址

nmcli connection modify team0 ipv4.method manual ipv4.addresses '172.16.3.25/24' connection.autoconnect yes

2.1.3.4 激活team-slave

nmcli connection up team-slave-eth1

nmcli connection up team-slave-eth2

2.1.3.5 激活team

nmcli connection up team0

2.1.3.6 查看team状态

teamdctl team0 state

2.1.4 验证

ifconfig down eth1

teamdctl team0 state

三、配置IPV6

3.1 格式

128个二进制,8组用冒号分隔的十六进制数。每段内连续的前置0可省略、128个0为::

表示IPV6的任意地址

3.2 配置IP

nmcli connection modify ‘System eth0' ipv6.method manual ipv6.addresses ‘2003:ac18::305/64' connection.autoconnect yes

四、环境配置文件

4.1 ~/.bashrc

只影响指定用户的bash解释器环境,每次开启bash终端后生效

4.2 /etc/bashrc

影响所有用户的bash解释器环境,每次开启bash终端后生效

五、防火墙服务基础

5.1 准备工作-搭建基本web服务

服务端:Apache(组织)写出了httpd(软件)

5.1.1 yum -y install httpd

安装httpd软件包

5.1.2 systemctl restart httpd && systemctl enable httpd

启动httpd并设置为开机启动

5.1.3 /var/www/html

apache默认网站的网页文件根目录

5.1.4 index.html

apache默认主页文件名

5.2 准备工作-搭建ftp服务器

FTP主动/被动模式

数据:tcp/21 ftp控制命令

数据连接端口:tcp/20 上传/下载

主动模式:客户端主动向服务器的21端口发起连接,身份验证通过后,客户端打开一个高于1024的随机端口,假设是6666。客户端会用PORT命令告知服务器“我打开了6666端口,你可以来连接我。”。然后服务器用20端口与客户端的6666端口建立连接,开始数据的传输。这里的主动是指服务器主动把数据给客户端。

被动模式:当客户端所在网络使用了防火墙的时候,主动模式下服务器企图与客户端的随机高端口建立连接的行为很有可能被客户端的防火墙阻塞掉。这时客户端会做两件事情:

1.主动向服务器的21端口发起连接进行身份验证。

2.主动向服务器发送PASV命令,服务器会打开一个高于1024的随机端口,假设是7777端口。打开端口后会向客户端发PORT 7777命令,等于告诉客户端“我打开了7777端口,你可以来连接我。”,客户端会主动与7777端口连接,开始数据的传输。

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

5.2.1 yum -y install vsftpd

安装vsftp软件包

5.2.2 systemctl restart vsftpd systemctl enable vsftpd

启动vsftpd并设置为开机启动

5.2.3 /var/ftp/

默认共享目录路径

5.3 firewalld防火墙

防火墙最大的作用是隔离。阻止入站,允许出站。

管理工具:firewall-cmd、firewall-config(图形界面)

服务名称:firewalld

强大的地方:

-可以检测tcp协议三次握手中的标识位(SYN,ACK,FIN),如果有客户端一直发SYN,但是没建立连接;可以判断在尝试密码,可以丢入规则比较严格的区域;如果还是发SYN,则会丢入block区域;如果还发SYN,那么就丢入drop区域

-可以流量检测,设置流量优先级,比如百度流量优先

5.4 预设安全区域(security zone)

根据所在的网络场所区分,预设保护规则集。

必须记住的安全区域

public:仅允许访问本机的sshd等少数几个服务

trusted:允许任何访问

block:拒绝任何来访的请求

drop:丢弃任何来访的数据包。(生产环境常用)

......

5.4.1 firewall-cmd --get-default-zone

查看默认安全区域

5.4.2 firewall-cmd --zone=public --list-all

查看public区域的所有规则

5.5 防火墙判断的基本规则

查看客户端的请求当中的源IP地址,匹配所有区域中的策略,如果有策略则放该请求进入该区域;如果没有策略则放请求进入默认区域。策略匹配则停止

5.6 firewall-cmd --zone=public --add-service=http

为public区域添加允许访问http服务。因为firewalld可以识别7层的数据包,所以可以写协议名称

5.7 firewall-cmd --permanent

设置的规则永久写入到防火墙配置文件中

5.8 firewall-cmd --reload

重新加载防火墙配置文件,使通过--permanent写入的规则生效

5.9 firewall-cmd --set-default-zone=

修改默认区域,直接是永久生效的,不需要加--permanent选项

5.10 firewall-cmd --permanent --zone=public --add-source=172.25.0.0/24

添加信任的IP网段为172.25.0.0/24

5.11 firewall-cmd --permanent --zone=public --add-forward-port=port=5423:proto=tcp:toport=80

设置端口转发,在public区域里面对tcp/5423端口转发到tcp/80端口

本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068704,如需转载请自行联系原作者

上一篇:ubuntu ufw防火墙
下一篇:Firewalld防火墙