猫头鹰
信安舆情早知道

Linux安全防护(1)

背景分析

linux开源带来的便利也带来了很多安全问题,网络运维人员保障Linux安全就成了一门必修课。当然现在有很多的硬件防火墙以及WAF,但是那不是小资企业可以hold住的,本文从软件以及服务配置方面简单总结Linux入门级安全防护,希望可以帮助到大家。

0x00 使用软件级别安全防护

使用SELinux

SELinux是用来对Linux进行安全加固的,它可以让你指定谁可以增加文件,谁只可以删除文件,或者谁还可以移动文件,从文件的访问控制层次上来说,它相当于一个ACL;

配置文件:/etc/selinux/config (centos7系统)

状态:

  • getenforce 与 setenforce命令可以修改
  • disabled:关闭策略
  • permissive:启用SELinux但是即使违反了策略它也会让你继续操作;仅仅一个记录功能
  • enforcing:启用SELinux,违反策略时阻止你的操作

查看文件标签:ls –Z,如果我们需要查看文件夹的标签,需要使用ls -dZ 参数来进行查看

1

在文件所属组的后面就是我们文件的标签,它表示SELinux对这个文件的策略

修改策略:chcon与semanage,这个两个命令都可以修改文件标签

2

恢复文件标签:restorecon

常见场景分析:

当我们需要配置一个Web目录时,如果Web目录不是默认的目录,访问可能出现403
这个时候,我们需要将我们的Web目录的标签修改为httpd_sys_content_t

3

使用iptables

Iptables是一个应用框架,它允许用户为自己系统建立一个强大的防火墙。它是用来设置、维护和检查Linux内核中IP包过滤规则的。在现在新的Centos7系列的系统中,iptables已经逐渐的在被淘汰,而开始使用firewall防火墙

配置文件:/etc/sysconfig/iptables-config (centos7系统)

这里贴出一个在博客园的关于iptables的使用:
http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html

因为在centos7中,我已经很少使用iptables来作为防火墙,而是使用的下一个firewall,所以这里对iptables叙述很少,大家可以自行查看上面的文章;

使用firewall

在centos7中,防火墙具备很强的软件防护功能,在默认程度上:

4

默认开启了dhcpv6客户端以及ssh防火墙功能;

Example:

firewall-cmd –add-service=http #让防火墙通过http服务

firewall-cmd –add-port=80/tcp #这条命令实际上与上一条等价(http使用80端口时)

#上面的命令都只是临时生效,当我们的服务器重启后就会失效所以我们需要跟一个参数

firewall-cmd –permanent –add-service=http #参数permanent代表永久生效

#一般我们更改了防火墙以后需要对防火墙做一个重新载入动作

firewall-cmd –reload

#其他命令大家就可以使用-h来查看了,使用很方便,在centos7中自动补齐功能也很方便。

防火墙具备很多功能,同时他具备图形界面与命令行界面两种模式,对于基本的防火墙配置,个人推荐使用命令行模式,当我们需要配置一些负责的规则策略时,比如rich rule我们就可以使用我们的图形界面:

5

在firewall中分为9种工作模式

  1. block:阻塞,任何接入网络的链接都被拒绝
  2. drop:丢弃,任何流入网络的数据包都被丢弃
  3. external:外部网络,只允许选择的连接介入
  4. internal:内部网络
  5. public:用以可以公开的部分,只允许选中的连接接入
  6. dmz:隔离区,允许隔离区的网络接入
  7. work:用在工作网络
  8. home:用在家庭网络
  9. trusted:受信任的网络,允许所有网络接入我们的系统

比如:我们将我们的区域设定为drop,这个时候我们会发现我们就不能够访问这台服务器

6

使用入侵检测系统

  • AIDE:针对文件的入侵检测系统
  • snort:开源的针对网络的入侵检测系统
  • linux-dash:针对Web的监控系统
  • ntopng:基于Web的网络流量监控系统

参考:《Centos配置IDS入侵检测系统》

当然网上还有很多开源的项目可以选择

0x01 安全配置服务

SSH访问控制

尽可能的取消telnet登录,采用ssh进行登录;

ssh配置文件:/etc/ssh/sshd_config #一定要注意是sshd

  • 修改默认端口:Port 10512
  • 不允许使用空密码:PermitEmptyPasswords no
  • 不允许root用户登录:PermitRootLogin no
  • 不允许输入密码登录:PasswordAuthentication no (可以很好的防止爆破,但是如果密钥文件泄漏则会出现安全问题,当然可以通过其他方式来进行防御)
  • 重新生成密钥:KeyRegenerationInterval 1h (如果我们使用密钥进行登陆,可以设置多少时间后密钥重新生成)
  • 密钥加密方式:RSAAuthentication yes (是否使用RSA进行加密)

禁用不必要的服务及用户

在我们的Linux系统中有很多不需要的服务、应用,然而这些服务还是会开机运行,这样会导致攻击者利用这些服务的漏洞来进行攻击,最好的办法就是停止这些服务。

比如我们的Linux服务器只是一台Web服务器,那么就不需要ftp、smtp等服务我们就可以关闭;当然我们也可以让服务不允许通过防火墙,这样通过防火墙来保护我们的服务器也可以。

7

在linux系统中,系统运行所必须的服务

8

同时,一台新的Linux操作系统中有很多我们用不到的角色用户,我们同样可以删除这些用户,或者将这些用户设置为不能登录系统;

9

可被删除的用户:adm、lp、sync、shutdown、halt、operator、games

10

可被删除的用户组:adm、lp、games、dip等;

当然具体的需要还是要根据用户的选择,同时我们也可以修改用户的bash文件

usermod -s /sbin/nologin username

使用全盘加密

加密的数据更难被窃取,在安装Linux系统的时候我们可以对整个系统进行加密,采用这种方式,即使有人进入了我们的系统,也不能得到我们的数据;

Web应用配置

  • 提供Web服务时,需要更新我们组件的补丁,防止利用已知漏洞来进行攻击;
  • 严格限制权限,防止得到Web Shell以后直接得到系统权限;
  • 限制Web用户只能访问Web目录,不能访问其他目录;
  • 严格控制提供上传点的文件类型;

…………

系统安全

使用su 与 sudo命令时:

  • su:切换用户
  • sudo:提升权限,所以sudo是su的特定一种形态

这里是指定可以使用su命令的用户

11

注意红色圈起来的一行,就是启用pam_shell认证,这个时候没有加入wheel的用户就不能使用su命令了!

12

对于sudo的一些配置vim /etc/sudoers 在centos7中,如果你不想修改原来的配置文件,你可以将这一行includedir
/etc/sudoers.d 的注释去掉,然后在/etc/sudoers.d/目录下写我们的配置文件

13

删除提示信息

在linux的4个文件中存在提示系统的一些信息:

  • /etc/issue /etc/issue.net 这两个文件记录了操作系统的名称及版本号,用户通过本地终端就会显示/etc/issue文件中内容,通过ssh或telnet登录就会显示/etc/issue.net的文件内容;
  • /etc/redhat-release 这个文件也记录了操作系统名称和版本号;
  • /etc/motd 这个文件是系统的公告信息,每次用户登录后就会显示在终端上;

未完待续~~~

 

*作者:Blood_Zer0  Mottoin原创稿件,未经许可禁止转载!

转载请注明来自MottoIN,未经允许不得转载!MottoIN » Linux安全防护(1)

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们