运维之路第四期

萝らか妹 提交于 2020-03-11 10:58:22

第四期

目标

  1. 熟悉seLinux,了解seLinux的用途,关闭seLinux
  2. 熟悉iptables防火墙,掌握打开关闭,配置等基本选项
  3. 熟悉firewalled防火墙,掌握打开关闭,配置等基本选项
  4. 配合使用scanport进行

1.seLiunx

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
由于linux的权限采用的是文件-用户-用户组的模式,创建文件的用户具有文件的所有权限,一旦某个用户被突破,系统的风险的无限加大。而selinux不太一样,由管理员来创建安全规则,控制资源访问,比如定义了http进程可以访问哪些文件、哪些目录,即便root有所有文件的修改和访问权限,违反了管理员应用规则,一样无法访问,当然配置会比较复杂。

进入/etc/selinux目录中,查看config文件
在这里插入图片描述
selinux配置有三项:缺省是强制策略。
enforcing - 强制打开,拒绝违反安全策略
permissive - 遇到违反安全策略仍正常执行,但输出警告
disabled - 关闭安全策略
输入getenforce查看当前的状态为enforcing
这里介绍两种关闭方法

  1. 临时关闭:
setenforce 0
  1. 永久关闭:
vim /etc/sysconfig/selinux

SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot

重启后运营getenforce可以看到显示为disabled
在这里插入图片描述
虽然没啥人访问,不过安全起见,还是打开吧,O(∩_∩)O哈哈~

2.iptables

IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。
防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
IPTABLES 其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter
linux下IPTABLES配置详解
输入iptables -L -n -v查看已配置的规则

清除已配置的规则

iptables -F

配置规则后重启变会失效,所以要保存规则

/etc/rc.d/init.d/iptables save

之后重启iptables就生效了(^-^)V

service iptables restart

接下来我们尝试关闭iptables
输入service iptables stop
显示Failed to stop iptables.service: Unit iptables.service not loaded.
输入service iptables status
显示Unit iptables.service could not be found.
原来centos7默认没有了iptables文件
没关系,直接安装

yum install iptables-services

在这里插入图片描述
运行systemctl enable iptables
在这里插入图片描述
运行systemctl start iptables
运行service iptables status
启动成功(~ ̄▽ ̄)~
iptales -L -n -v
在这里插入图片描述
最基本的配置。。。。
关闭命令service iptables stop
开启命令service iptables start
但都只是本次配置生效,所以要记得保存哦
service iptables save
开启iptables后会发现原来的访问地址直接失效了,证明防火墙已生效
iptables -I INPUT -s [本机ip] -p tcp --dport 80 -j ACCEPT
设置只有本机ip能访问80端口
iptables -I INPUT -p tcp --dport 8080 -j DROP
禁用所有ip访问8080端口
更多例子
国际惯例,在kylin的主机上再配一次(注,kylin默认居然装了iptables)
不过kylin或ubantu的保存有些不一样(参考链接):

  1. 在/etc/iptables目录下新建rules.v4文件
    内容为
*filter
[你的规则]
COMMIT
  1. 保存现有的规则:
iptables-restore < /etc/iptables/rules.v4
  1. 新建一个bash脚本,并保存到/etc/network/if-pre-up.d/目录下:
    脚本内容:
#!/bin/bash
iptables-restore < /etc/iptables/rules.v4
  1. 添加权限
    chmod +x /etc/network/if-pre-up.d/iptables

这样,每次系统重启后iptables规则都会被自动加载。

3.firewalld

iptables service 管理防火墙规则的模式(静态):用户将新的防火墙规则添加进 /etc/sysconfig/iptables 配置文件当中,
再执行命令 /etc/init.d/iptables reload 使变更的规则生效。在这整个过程的背后,iptables service 首先对旧的防火墙规则进行了清空,
然后重新完整地加载所有新的防火墙规则,如果加载了防火墙的模块,需要在重新加载后进行手动加载防火墙的模块;
firewalld 管理防火墙规则的模式(动态):任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables 即可。还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables 作为防火墙规则管理入口。
是否可以理解为更加方便的iptables呢?_
 Centos7以前的系统版本默认使用iptables服务来管理防火墙,Centos7系统及以后使用firewalld服务替代了iptables服务,但是依然可以使用iptables来管理内核的netfilter。其实iptables服务和firewalld服务都不是真正的防火墙,只是用来定义防火墙规则功能的管理工具,将定义好的规则交由内核中的netfilter(网络过滤器来读取)从而实现真正的防火墙功能。

yum -y install firewalld 

一些命令:
开启防火墙:systemctl start firewalld
查看开放的端口和服务以及屏蔽的IP:firewall-cmd --zone=public --list-all
查看系统中查看系统中可用的服务:firewall-cmd --get-services
添加端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
查看:firewall-cmd --zone= public --query-port=80/tcp
添加端口段:firewall-cmd --zone=public --add-port=5060-5061/udp --permanent
添加IP+端口:firewall-cmd --permanent --zone=public --add-rich-rule=“rule family=“ipv4” source address=“0.0.0.0/24” port protocol=“tcp” port=“10050” accept”
删除端口:firewall-cmd --permanent --zone=public --remove-port=8080/tcp
删除IP+端口:firewall-cmd --permanent --zone=public --remove-rich-rule=“rule family=“ipv4” source address=“10.0.5.0/24” port protocol=“tcp” port=“10050” accept”
屏蔽IP(reject):firewall-cmd --permanent --add-rich-rule=“rule family=ipv4 source address=43.229.53.61 reject”
屏蔽IP(drop) : firewall-cmd --permanent --zone=public --add-rich-rule=“rule family=ipv4 source address=‘x.x.x.x/24’ drop”
热加载才能生效:firewall-cmd --reload
查看屏蔽结果:firewall-cmd --list-rich-rules
ps:iptables和firewalld两个只能开启一个哦
国际惯例:在kylin(ubantu)上再安装运行一次firewalld用法基本一致,安装不同

4.scanport

在这里插入图片描述
判断哪些端口可用的小工具,推荐一下

参考文档

http://www.zsythink.net/archives/1199
https://www.cnblogs.com/klb561/p/9011546.html
https://www.jianshu.com/p/90603f7b2119
https://www.cnblogs.com/faithH/p/11811286.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!