草庐IT

Linux安全加固

田家少闲月- 2023-03-28 原文

安全加固的方案原则

  1. 版本升级
  2. 关闭端口服务
  3. 修改配置项
  4. 修改代码
  5. 主机和网络ACL(iptables)策略
  6. 部署设备防护

Linux安全加固的主要方向

  1. 账号管理与认证授
    1. 为不同的管理员分配不同的账号
    2. 检查高权限文件
    3. 去除不需要的账号、修改默认账号shell环境
    4. 限制超级管理员远程登录
    5. 删除root以外UID为0的用户
    6. 不应该存在位于高权限组的用户
    7. 缩短默认密码生存周期
    8. 设置密码强度策略(高强度密码)
    9. 设置强制密码历史(设置密码时不能跟之前的密码历史相冲突)
    10. 设置账户锁定策略(防账户猜测,暴力破解)
    11. 设置关键目录的权限
    12. 修改umask(反码)值(防止属于该组的其他用户级别组的用户修改该用户的文件)
      • /etc/profile
      • /etc/csh.login
      • /etc/csh.cshrc
      • /etc/bashrc
      • 在以上文件的末尾添加 umask 027
    13. 限制硬件资源(限制用户对系统资源的使用,减缓DDOS攻击)
    14. 对用户使用ls、rm设置别名等等(让ls随时看清文件属性,让rm需要确认后删除目标实施方法)
    15. 禁止任何人su切换为root账户(减少提权风险),让加入了wheel组的用户才可以切换root账户
    16. 去掉所有SUID和SGID(防止被利用提权)
    17. 为开放目录设置粘滞位
    18. 启用日志记录功能,使用日志服务器
    19. 重要日志权限不应该高于640
    20. 设置关键文件底层属性
      • chattr +a /var/log/messages
      • chattr +i /var/log/messages.*
      • chattr +i /etc/shadow
      • chattr +i /etc/passwd
      • chattr +i /etc/group
  2. 通讯协议
    1. 关闭非加密远程管理telnet
    2. 使用加密的远程连接ssh
    3. 设置访问控制列表(设置访问控制白名单,减少入侵的风险)
    4. 固化常用DNS解析(降低DNS被劫持的可能)
    5. 打开syncookie(当syn溢出时,使用cookie的方式写入文件来调用,来缓解syn flood<洪水攻击>)
    6. 不响应ICMP请求(不对ICMP请求做出响应,避免信息泄露,让用户无法ping)
    7. 禁止处理无源路由(防止中间人ARP抓包)
    8. 防御syn flood攻击优化(修改半连接上限,缓解syn flood攻击)
    9. FTP使用黑白名单限制(防止非法账户访问ftp)
    10. FTP设置上传文件后的默认权限(防止脚本执行)
    11. FTP设置banner信息(去掉banner信息)
    12. 配置可信任的NTP(时间)服务器,确保服务开启(保持时间同步,防止某些服务错误)
    13. 检查账户目录中是否存在高危文件:.netrc、.rhosts(防止被使用远程登录漏洞)
    14. 补丁装载(不推荐yum update,防止不兼容的软件版本使服务宕机,先进行服务器克隆,然后再进行补丁测试,没有问题再放到生产环境)
    15. 关闭NFS服务(防止被外挂文件系统,导致入侵)
  3. 服务进程与启动
    1.   关闭无用服务(systemctl list-unit-files | grep enabled 命令来查看所有开启的服务)
  4.   banner与自动注销
    1. 隐藏系统提示信息(避免信息提示泄露系统状态)
    2. 设置登录超时注销(防止疏忽导致命令行被他人利用)
    3. 减少history历史数量
    4. 跳过grup菜单(防止再grup菜单对引导过程进行修改)
    5. 关闭ctrl+alt+del重启功能(防止误操作重启服务器)

有关Linux安全加固的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  3. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  4. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  5. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

  6. ruby-on-rails - 最灵活的 Rails 密码安全实现 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我需要实现具有各种灵活需求的密码安全。这些要求基本上取自Sanspasswordpolicy:Strongpasswordshavethefollowingcharacteristics:Containatleastthreeofthe

  7. 常见网络安全产品汇总(私信发送思维导图) - 2

    安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un

  8. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  9. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  10. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

随机推荐