#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. BizTalk开发系列(八) BizTalk Server 常识整理

    1.什么是BizTalk Server?     BizTalk 是业务流程管理服务器,用于连接人员,流程,有效管理和提升业务所需的信息.在原有版本业务 流程管理和SOA/ESB 的基础上,第5 个版 ...

  2. WPF 打开文件、文件夹

    打开文件代码: OpenFileDialog openFileDialog = new OpenFileDialog();            openFileDialog.Title = &quo ...

  3. Adding supplementary tables and figures in LaTeX【转】

    \renewcommand{\thetable}{S\arabic{table}} \renewcommand{\thefigure}{S\arabic{figure}} 这样就以Table S1, ...

  4. GDC2016 执着于光影表现的【全境封锁】的开放世界渲染

    执着于光影表现[全境封锁]的开放世界渲染 Snowdrop(雪莲花)引擎的全局照明技术介绍   补上原文链接:http://game.watch.impress.co.jp/docs/news/201 ...

  5. CSS成长之路----知识点篇

    一,ul--li列表水平排列,切居中对齐 主要是利用Li标签中的display属性.设置为display:inline,使li纵向排布,且能够使用text-align:center;使其居中显示 HT ...

  6. 有趣的BAT

    最近某个用到的第三方程序会产生很多日志文件在logs目录中,每天一个log文件,类似 2014-05-07001.log.日积月累这个目录文件数量非常多,手动清除还是比较麻烦的. 由于这个软件不是自己 ...

  7. pageX、pageY全兼容

    pageX.pageY全兼容 var pos=function(o,x,y,event){var posX=0,posY=0;var e=event||window.event;if(e.posX|| ...

  8. 【转】基于 CoreText 实现的高性能 UITableView

    引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITab ...

  9. iOS 两个App之间调起通信

    前言 假设需求是这样的:由一个app1跳转到app2之后,app2完成某项任务之后,怎么把app2的完成信息传到app1(自己的程序是app1),传的是什么类型的数据,怎么进行解析? 逻辑 本文章使用 ...

  10. autocomplete一次返回多个值,并且选定后填到不同的Textbox中

    $(txtTest1).autocomplete({ source: function (request, response) { $.ajax({ url: 'HttpHandler.ashx?to ...