热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

详解Linux安全管理的基本技巧三

文章标题:详解Linux安全管理的基本技巧三。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  五、服务安全
  
  取消并反安装所有不用的服务,这样你的担心就会少很多。察看“/etc/inetd.conf”文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个“#”)。然后用“sighup”命令升级“inetd.conf”文件。
  
  第一步:
  
  更改“/etc/inetd.conf”权限为600,只允许root来读写该文件!
  
  # chmod 600 /etc/inetd.conf
  
  第二步:
  
  确定“/etc/inetd.conf”文件所有者为root。
  
  第三步:
  
  编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把不需要的服务关闭可以使系统的危险性降低很多。
  
  第四步:
  
  给inetd进程发送一个HUP信号:
  
  # killall -HUP inetd
  
  第五步:
  
  用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:
  
  # chattr +i /etc/inetd.conf
  
  这样可以防止对inetd.conf的任何修改(意外或其他原因)。唯一可以取消这个属性的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性质:
  
  # chattr -i /etc/inetd.conf
  
  同时修“/etc/services”文件的属性,防止未经许可的删除或添加服务:
  
  # chattr +i /etc/services
  
  别忘了以后要修改时,再把它们的性质改为可修改的就行了。
  
  六、其它综合设置安全
  
  1、TCP_WRAPPERS 使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有的主机("/etc/hosts.deny"文件中加入"ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允许访问的主机列表。
  
  第一步: 编辑hosts.deny文件(vi /etc/hosts.deny),加入
  
  # Deny access to everyone.
  
  ALL: ALL@ALL, PARANOID
  
  这表明除非该地址包在允许访问的主机列表中,否则阻塞所有的服务和地址。
  
  第二步:
  
  编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:
  
  ftp: 202.54.15.99 foo.com
  
  202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。
  
  第三步:
  
  tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp wrapper设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令:
  
  # tcpdchk
  
  2、修改“/etc/host.conf”文件
  
  “/etc/host.conf”说明了如何解析地址。编辑“/etc/host.conf”文件(vi /etc/host.conf),加入下面这行:
  
  # Lookup names via DNS first then fall back to /etc/hosts.
  
  order bind,hosts
  
  # We have mach!
  
  ines with multiple IP addresses.
  
  multi on
  
  # Ch!
  
  eck for
  
  IP address spoofing.
  
  nospoof on
  
  第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是否“/etc/hosts”文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对本机未经许可的电子欺骗。
  
  3、Shell logging Bash
  
  shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。
  
  第一步:
  
  “/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中可以保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如30。编辑profile文件(vi/etc/profile),把下面这行改为:
  
  HISTFILESIZE=30
  
  HISTSIZE=30
  
  这表示每个用户的“.bash_history”文件只可以保存30条旧命令。
  
  第二步:
  
  网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除。
  
  编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:
  
  rm -f $HOME/.bash_history
  
  4、禁止Control-Alt-Delete键盘关闭命令
  
  在"/etc/inittab" 文件中注释掉下面这行(使用#):
  
  ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  改为:
  
  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
  为了使这项改动起作用,输入下面这个命令:
  
  # /sbin/init q
  
  5、给"/etc/rc.d/init.d" 下script文件设置权限
  
  给执行或关闭启动时执行的程序的script文件设置权限。
  
  # chmod -R 700 /etc/rc.d/init.d/*
  
  这表示只有root才允许读、写、执行该目录下的script文件。
  
  6、隐藏系统信息
  
  在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服务器的名称。对于黑客来说这些信息足够它入侵你的系统了。你应该只给它显示一!
  
  个“login:”提示符。
  
  首先编辑
  
  /etc/rc.d/rc.local"
  
  文件,在下面显示的这些行前加一个“#”,把输出信息的命令注释掉。
  
  # This will overwrite /etc/issue at every boot. So, make any changes you
  
  # want to make to /etc/issue here or you will lose them when you reboot.
  
  #echo "" > /etc/issue
  
  #echo "$R" >> /etc/issue
  
  #echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
  
  #
  
  #cp -f /etc/issue /etc/issue.net
  
  #echo >> /etc/issue
  
  其次删除"/etc"目录下的“isue.net”和"issue"文件:
  
  # rm -f /etc/issue
  
  # rm -f /etc/issue.net
  
  7、禁止不使用的SUID/SGID程序
  
  如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这个程序。网管应尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。
  
  查找root-owned程序中使用s位的程序:
  
  # find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;
  
  用下面命令禁止选中的带有s位的程序:
  
  # chmod a-s [program!
  
  以上是一些基本的安全设置技巧。
推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
author-avatar
_大盗坂崎由莉nyS
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有