#11、配置iptables和TCPWrappers。
 
iptables 是一个Linux内核提供的,运行在用户空间的程序,它允许用户配置自己的防火墙策略。我们可以使用防火墙将不必要的流量过滤出去。使用 iptables 能够避免很多拒绝服务(DoS)攻击。
 
#12、内核配置文件优化(/etc/sysctl.conf)。
 
/etc/sysctl.conf 文件用来修改服务器的运行时内核参数配置。Linux在启动时从配置文件中读取相关配置,一般内容如下:
 
# Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0
# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1
 
#13、合理安排磁盘分区。
 
将不同的系统文件分配到不同的磁盘分区上有助于构建一个安全的系统,确保下面这些文件目录都被挂在到单独的磁盘分区上。
 
/usr
/home
/var、/var/tmp
/tmp
 
为Apache和FTP服务的根目录创建单独的分区,检查 /etc/fstab 文件确保增加了以下配置
 
noexec:该分区不允许执行任何二进制文件(但是允许脚本运行)。
nodev:该分区不允许字符设备或特殊设备。
nosuid:该分区不允许设置SUID/SGID。
 
下面的例子限制用户进入到 /dev/sda5 中。
 
/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2
 
#13.1、磁盘配额。
 
确保对所有用户都启用了磁盘配额限制,实现磁盘配额的具体步骤可以查看这里
 
#14、关闭IPv6。
 
IPv6提供替代IPv4的新的TCP/IP协议,但是目前还没有太好的工具来检查IPv6网络的安全性。大多数Linux发行版开始默认使用IPv6协议。而黑客可以利用IPv6网络来发送一些管理员无法监测的内容,除非是网络配置需要,否则禁止使用IPv6。
 
#15、禁用不需要的SUID和SGID二进制。
 
所有启用了SUID和SGID位的二进制文件可能会造成系统的安全问题或者BUG,从而让所有本地或远程的用户使用这些文件。下面的命令可以找到这些文件
 
#See all set user id files:
find / -perm +4000
#See all group id files:
find / -perm +2000
#或者一起查询
find / \(-perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls
 
#15.1、World-Writable文件。
 
因为安全原因,所有人都可以修改World-Writable文件,使用下面的命令可以找到所有此类文件。
 
# find /dir -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
 
#15.2、无属主文件。
 
如果一个文件没有任何的用户或者组权限,那么可能会造成安全问题,使用下面的问题来找到此类文件,并进行后续的修复。
 
# find /dir -xdev \( -nouser -o -nogroup \) -print
 
#16、使用集中的授权服务。
 
如果没有集中的授权认证系统,用户的权限数据将会变得不完成,从而导致一些过期的口令或者不用的用户一直保留下来。集中地授权认证服务允许我们控制Linux/Unix用户和授权数据,不要使用 NIS 服务,OpenLDAP是一个很好的选择。
 
#17、日志和审计。
 
为了收集黑客攻击行为,我们需要配置系统的日志和审计功能。默认情况下,syslog在 /var/log 目录下记录数据。这些数据也能帮助我们发现那些容易导致系统遭受攻击的错误配置,可以参考 这个文章 来了解更多的内容。
 
#17.1、使用Logwatch 或 Logcheck 监控可疑的日志信息。
 
使用 Logwatch或者 Logchek 读取日志文件,这些工具改善了阅读日志文件的体验。他们会将结果以邮件的形式进行报告,而我们只需要检查日志中的不常见项目就可以了。
 
#17.2、使用 auditd 服务。
 
auditd是系统提供的审计服务,负责将审计数据记录到磁盘中。在服务器启动期间,/et/audit/audit.rules的规则会被应用。我们修改配置文件来定义日志存放位置以及其他的选项。使用这个服务可以解决以下问题:
 
1、系统启动和关闭时间(reboot/halt)
2、事件的日期和时间
3、事件用户
4、事件类型
5、事件是否成功
6、记录事件发生变化的日期和时间
7、找出修改系统网络配置的账户
8、记录修改用户/用户组信息的事件
9、记录文件修改信息
 
具体可以查看这篇文章了解更多内容。
 
#18、加固 OpenSSH 服务器。
 
SSH协议经常用来进行远程登录和文件传输,同时SSH也是暴露在外的,使用以下方法可以对OpenSSH服务器进行加固。
 
 
#19、安装和使用入侵检测系统。
 
网络入侵检测系统可以检测到恶意的活动或者拒绝服务共计、端口扫描等类似的黑客行为。最好在系统上线前能够部署一套类似的系统,如果可能在系统接入网络前就安装配置好。AIDE就是一个非常好的例子。Snort也可以用来做实时的网络流量分析和入侵检测。
 
#20、保护文件、目录和邮件。
 
Linux系统提供了非常好的非授权的数据访问保护机制。文件权限和MAC确保数据不会被未授权的用户访问。但是,如果黑客具有物理的访问途径,那他还是能够很容易通过其他方式访问磁盘上的数据。我们可以使用将文件进行加密、使用密码、加密文件夹等方式来保护我们的重要数据。

20个Linux服务器安全强化建议(三)的更多相关文章

  1. 20个Linux服务器安全强化建议(一)

    Linux服务器安全对于保护用户数据.知识产权非常重要,同时还能减少你面对黑客的时间.在工作中,通常由系统管理员对Linux的安全负责,在这篇文章中,介绍了20条对Linux系统进行强化的建议.本文所 ...

  2. 20个Linux服务器安全强化建议(二)

    接上文,继续介绍一些Linux服务器的安全配置. #6.强密码策略.   当我们使用 useradd.usermod 命令创建或维护用户账号时,确保始终应用强密码策略.例如,一个好的密码至少包括8个字 ...

  3. 20个Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  4. Linux命令(20)linux服务器之间复制文件和目录

    linux的scp命令: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上 ...

  5. Linux服务器集群系统(三)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs3.html LVS集群中的IP负载均衡技术 章文嵩(wensong@linux-vs.org) 2002 年 ...

  6. linux服务器环境部署(三、docker部署nginx)

    一.下载nginx镜像 官网地址:https://hub.docker.com/_/nginx #下载镜像 默认为最新版本 docker pull nginx#下载指定版本 docker pull n ...

  7. [转帖]加强Linux服务器安全的20项建议

    加强Linux服务器安全的20项建议 2017-10-19 22:15:01作者:Linux编辑稿源:系统极客 https://ywnz.com/linuxyffq/99.html 一般情况下用 Li ...

  8. linux服务器开发三(网络编程)

    网络基础 协议的概念 什么是协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名 ...

  9. [转]20个你不得不知的Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

随机推荐

  1. MyEclipse不能重新发布的解决方案

    myeclipse2015已发布项目上右键clear不重新发布的解决方案: 该项目在server.xml中没有设置自动发布reloadable="true"

  2. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  3. 支付宝C# RSA签名 报系统找不到指定的文件问题解决

    做支付宝在线支付模块,安卓和苹果端都没为问题,服务器也能顺利的收到付款异步通知. 在做WEB端支付的时候遇到个奇怪的问题:本地localhost调试支付没问题,代码更新到服务器就出现了未将对象引用设置 ...

  4. js串讲回顾

    注:1.xx.nextSibling.css.xxx->xx的下一个元素的css样式;2. window.opener.document.getElementById("cms&quo ...

  5. $(document).ready(function(){});

    $(document).ready 里的代码是在页面内容都加载完才执行的,你直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,如果你标签里执行的代码调用了当前还没加载过 ...

  6. frameset

  7. js-方法

    最近觉得自己的基础貌似太薄弱了,找了几本电子书,整理了一下基础的 方法: Concat:返回一个新数组 var a=['a','b','c']; var b=['x','y','z']; var c= ...

  8. Linux Shell编程基础

    在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐 ...

  9. LeetCode Number of Connected Components in an Undirected Graph

    原题链接在这里:https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/ 题目: Giv ...

  10. easyui combobox级联(转载)

    一.创建combobox 有如下几种方式可以创建一个combobox 1.使用select标签,并加上class="easyui-combobox",这种方式比较适用于静态的选项. ...