您当前的位置:首页 >> 地理
每天五分钟学习Linux系列之 - 系统安全配置
发布时间:2019-11-05
 

20年IT从业,二哥的团队使用最多的系统就是Linux,开发,运维的小伙伴们都离不开Linux系统,特别是大数据和人工智能领域更是如此,但由于日常工作忙,小伙伴们没有太多成块的时间系统的学习Linux, 并且现版CentOS7/RHEL7系统跟原来的CentOS6/RHEL6有了比较大的差别,所以我们就萌生了居于新版的CentOS7写一个每天五分钟学习Linux的主题,让更多小伙伴们能够每天在地铁上,公交车里利用5分钟的碎片时间学习一下Linux知识,以便更好的服务工作,如果能够帮你提高工作效率,是我们的愿望。

每天五分钟学习Linux系列之 - 系统安全配置

这里没有太多理论的东西,我们我讲到的知识点都是多年来我们实际工作中要经常要用到东西,今天的五分钟主题是“Linux系统安全配置”。

先补充一个知识点“系统状态保存”

这是很实用的一个小技巧,假设你正在学习Linux系统,现在已经是晚上23点了,你需要去休息了,但你又有很多事情没有做完明天得继续,那么如何保存目前系统的所有状态以便下次开机的时候恢复到目前的系统状态呢?有一个很简单的命令可以做到

systemctl hibernate

这个命令不止能帮你把系统状态保存,并且保存完成后帮你关机到Power-off状态, 下次你开机的时候系统就会恢复到关机前的状态,包括打开的应用和文件。

Linux系统安全配置

所谓的安全,就是要保护你的系统免受外来的不当侵害,我们最常用的保护技术就是防火墙,下面我们就说说Linux下的防火墙使用。selinux也是一种很好安全措施,但是日常工作中使用到的场合稍微少一些,我们会留到这个系列的最后再讨论。

Centos7的防火墙用firewalld 替代原来的iptables, 实际上它们是兼容iptables, 并且你可以使用firewall的相关命令来管理iptables, 我们现在看一张图。

每天五分钟学习Linux系列之 - 系统安全配置

firewall还是用到iptables的相关命令去调用底层的netfilter,为了照顾到centos6及以前的系统(目前还是有相当多公司在使用),我们在这里两种都说一下,你可以选择使用iptables或者新版的firewall作为安全设置,在这里提醒大家不要去手工修改iptables和firewall的配置文件,使用命令行工具或者tui工具修改,如果你安装了图形界面也可以使用gui工具修改,但多数情况下Linux服务器是不会安装gui界面的,这里重点介绍两种方法,一是命令行直接修改二是tui修改,具体如下

先安装一下所需工具


yum install firewall-config
yum install system-config-firewall

新版firewall命令行下的配置修改方法

查看我们现在的防火墙设定里面允许了哪些服务通过

firewall-cmd --list-services
每天五分钟学习Linux系列之 - 系统安全配置

然后我们增加一个允许通过的条目, 如果不能准确的记住要增加的服务名称的拼写,不要紧的,使用firewall-cmd --get-services列出来看一下就都知道了。

  • 添加删除服务
firewall-cmd --add-service=ftp --zone=public

这个命令是将tftp这个服务添加到防火墙的允许条目里面去,但这是临时起效的,重启系统或服务会丢失,需要永久起效要这样做:

firewall-cmd --permanent --add-service=tftp --zone=public
每天五分钟学习Linux系列之 - 系统安全配置

--reload一下使它生效,这样我们就看到tftp这个service被添加到防火墙的允许列表里面了。

如果想要删除它,就这样做:

firewall-cmd --permanent --remove-service=tftp --zone=public
每天五分钟学习Linux系列之 - 系统安全配置

这里有必要说一下这个zone,就是指约束域约束范围的意思,--zone=public是指所有人所有机器都可以访问的意思,还有其他的zone,我们可以用 firewall-cmd --get-zones 获取所有,一般情况下,系统会默认帮我们建有这么几个zones: block dmz drop external home internal public trusted work, 直接使用就是了。

现在假设我们要在trusted这个zone里面添加一台主机192.168.2.100,以便这台主机获得你赋予这个约束域的所有访问权限(即通过防火墙的权限),做法如下:

firewall-cmd --permanent --zone=trusted --add-service=http
firewall-cmd --permanent --zone=trusted --add-source=192.168.2.100

这样这台机器就拥有了你赋予给trusted这个zone的所有权限,它现在拥有http的访问权限,以后无论哪台机器加入都这个zone都会获得同样的权限,反过来,以后无论你往这个zone里面添加任何的services, 所有该zone里面的主机都会获得同样的权限。

要删除它就把--add变成--remove就可以了。

firewall-cmd --permanent --zone=trusted --remove-source=192.168.2.100
  • 添加删除一个端口

如果我们只想开放一个端口,但却先不要绑定一个系统服务,而是打开这个端口给某一个我们自定义的应用使用,做法跟上面差不多只是命令:

firewall-cmd --permanent --add-port=50070/tcp
每天五分钟学习Linux系列之 - 系统安全配置

  • 传统的iptables防火墙配置(tui)
yum install system-config-firewall

然后命令行下打入system-config-firewall,出来tui界面

systemctl stop firewalld
system-config-firewall-tui
每天五分钟学习Linux系列之 - 系统安全配置

这个就比较简单,所见即所得,想要启用那个服务就在定制里面直接勾选就可以了,想要打开端口就使用“转发”=>“添加”即可。

看看手机,五分钟差不多了,今天就到这里。

你有没有get到一些东西呢!一节我们将继续讲讲如何配置使用安全的Linux远程访问及如何远程自动执行命,这对开发和系统管理来说是非常有用的。也可以点击文章标题处的“关注”加关注我们的头条号以便需要时查看,我们会一两天更新一篇图文上来。

我们欢迎大家多给一些“不成熟的小建议”,谢谢各位阅读!下一节再见,拜~