[转帖]加强Linux服务器安全的20项建议
加强Linux服务器安全的20项建议
https://ywnz.com/linuxyffq/99.html
一般情况下用 Linux 做桌面在默认配置下是很安全的,我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位,用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。 与恶意用户做斗争对于所有 Linux 系统管理员来说都是一项艰巨的任务,本文我们将介绍如何加强 Linux 服务器安全的 20 项建议,希望对保护你的系统有所帮助。 1.物理安全 在服务器 BIOS 中禁用光驱、软驱、U盘等可引导的外部设备,并启用 BIOS 密码及 GRUB 密码来限制对系统的物理访问。 2.磁盘分区 我们可以通过使用不同的分区来分散存储数据以获得更高的数据安全性,当发生任何灾难时,由于数据是隔离存储的,会将数据损失的几率降到最低。 3.尽量减少软件包以减少漏洞 建议管理员尽量避免在 Linux 中安装非必要的软件包,而且不要使用来源不明的包,以尽可能的避免程序漏洞。当一个服务出问题时,很可能会波及到其它服务甚至整个系统,所以「非必要的服务就不运行」这是一个铁则。 对于 CentOS 系统可以使用 chkconfig 来查看运行在 runlevel 3 的服务: /sbin/chkconfig --list |grep '3:on' 一旦发现有不需要的服务正常运行,可以使用如下命令禁用: chkconfig serviceName off 对于使用 RPM 包或 DEB 安装的服务可以使用 yum 或 apt-get 找出包名称并用如下命令移除: yum -y remove package-name sudo apt-get remove package-name 4.查看网络侦听端口 使用 netstat 命令可以看到什么样的网络应用正在侦听哪些端口,找出不必要的程序之后再用上面的方面来处理。 netstat –tulpn 5.使用安全的远程连接(SSH) Telnet 和 rlogin 都使用明文的协议,而且已被证实存在多种已经安全漏洞,SSH 是一种安全的协议,它可以使用加密技术与服务器进行通讯。 非必要时,不要使用 root 账户登录 SSH,要习惯使用 sudo 来切换身份。 SSH 22 端口目标过于明显,建议大家改成一个不常用的高端口并在 vi /etc/ssh/sshd_config 配置文件中至少配置如下选项: #禁用root登录 PermitRootLogin no #仅允许特定用户 AllowUsers username #SSH协议版本 Protocol 2 6.保持系统更新 尽量始终保持系统内核、应用补丁及安全修复处在最新状态: yum updates yum check-update 7.锁定定时任务 cron 可以指定哪些用户可以使用,只需将允许的用户添加到 /etc/cron.allow 或将禁用的用户添加到 /etc/cron.deny 中即可。如果希望禁用所有用户使用任务计划,只需将ALL添加到cron.deny文件当中。 echo ALL >>/etc/cron.deny 8.禁用USB存储设备检测 很多时候我们都需要禁用 USB 存储设备以防数据拷出,此时可以创建一个/etc/modprobe.d/no-usb文件并填入如下内容即可禁用 USB 存储设备检测: install usb-storage /bin/true 9.启用SELinux 安全增强型 Linux(SELinux)是在内核中提供的强制访问控制的安全机制。很多网络文章为了方便配置都建议大家禁用 SELinux 功能,我在这里到是建议大家在考虑关闭 SELinux 前应该三思。 SELinux 提供用户三种基本操作模式: Enforcing:启用和执行机器上的 SELinux 策略(默认配置) Permissive:在此种模式下,SELinux 不会强制执行系统上的安全策略,只会产生相应日志和警告。Permissive 模式在 SELinux 排错时经常会乃至。 Disabled:禁用 SELinux 功能 如果你想查看当前系统 SELinux 的状态可以使用: sestatus 如果要从禁用状态启用 SELinux 可以使用: setenforce enforcing 以上配置只对当前系统状态有用,重启会失效。要一劳永逸开关 SELinux 可以更改其配置文件/etc/selinux/config。 10.移除KDE/GNOME桌面 不论你是运行 LAMP 的专属服务器还是其它类型服务器,KDE 或 GNOME 这样 X Window 桌面环境是没多大必要使用的,禁用之后可以提高服务器性能和增强安全性。使用如下命令即可完全卸载: yum groupremove "X Window System" 11.禁用IPv6 IPv6 目前还没有大规模普及,如果你不使用 IPv6 协议,可以在 /etc/sysconfig/network 配置文件中将其禁用。 NETWORKING_IPV6=no IPV6INIT=no 12.限制用户重复使用旧密码 很多用户习惯在强制定期更换密码时重复循环使用以前的密码,这对于服务器管理员来说是一种非常不好的习惯。因此建议大家限制用户重复使用旧密码,该功能可以通过 PAM 来实现。 RHEL/CentOS/Fedora:/etc/pam.d/system-auth Ubuntu/Debian/Linux Mint:/etc/pam.d/common-password 在上述配置文件中的auth区块添加一行: auth sufficient pam_unix.so likeauth nullok 在password区块添加一行: password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5 配置好后,服务器会禁止使用最近 5 个被使用过的用户密码。 13.配置密码过期策略 Linux 中,用户密码是被加密存储到/etc/shadow文件当中的,要配置密码过期的详细信息需要用到change命令。例如要查看某个账户的密码过期日期和时间,可以使用如下命令: chage -l username 要更改密码过期策略可以使用类似如下命令: chage -M 60 username chage -M 60 -m 7 -W 7 username -M 密码使用最长天数 -m 密码使用最短天数 -W 密码过期提示天数 14.手动锁定或解锁账户 在不从系统中移除账户的情况下,对账户进行锁定和解锁是非常有用的一个安全手段。需要锁定一个账户时,可以使用如下命令: passwd -l accountname 账户锁定同样适用于 root 账户,当某账户被锁定时会增加 (!) 字串,账户解锁时移除 (!) 字串。需要解锁时使用如下命令: passwd -u accountname 15.强制使用强密码 弱密码或用生日密码之类的密码太容易被字典和社会工程学攻破了,所以建议大家打开强密码要求。Linux 中的强密码要求还是使用 PAM 模块,只需编辑/etc/pam.d/system-auth文件: /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1 16.启用Iptables 强烈建议大家使用 Iptables 来保护 Linux 服务器安全,Iptables 可以在不同的链上配置不同的规则来处理数据包。 17.在Inittab中禁用Ctrl+Alt+Delete 大多数 Linux 发行版中按下「Ctrl+Alt+Delete」时都会重启系统,对于 Linux 生产服务器来说,这几乎是一个白痴设计。如果你希望关闭这个默认重启功能,可以将/etc/inittab配置文件中的如下两千注释掉: # Trap CTRL-ALT-DELETE #ca::ctrlaltdel:/sbin/shutdown -t3 -r now 18.查看空密码账户 如果系统中存在有权限的空密码账户,就相当于开了一扇门。所以建议大家仔细清查一下: cat /etc/shadow | awk -F: '($2==""){print $1}' 19.忽略ICMP或广播请求 要忽略 ICMP 或广播请求我们可以编辑/etc/sysctl.conf配置文件: net.ipv4.icmp_echo_ignore_all = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 配置文件改好之后使用如下命令载入生效: sysctl –p 20.定期审查日志 建议大家将日志文件进行专门的集中存放和处理,这样可以比较有效避免入侵者对日志进行篡改,下面是 Linux 常见的默认日志路径: /var/log/message – 系统日志或当前活动日志 /var/log/auth.log – 验证日志 /var/log/kern.log – 内核日志 /var/log/cron.log – 任务计划日志 /var/log/maillog – 邮件服务器日志 /var/log/boot.log – 系统启动日志 /var/log/mysqld.log – MySQL 服务器日志 /var/log/secure – 包含验证和授权方面信息 /var/log/utmp或/var/log/wtmp – 登录记录文件 |
[转帖]加强Linux服务器安全的20项建议的更多相关文章
- Linux服务器安全加固10条建议
以下是服务器安全加固的步骤,本文以腾讯云的CentOS7.7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过. 设置复杂密码 服务器设置大写.小写.特殊字符.数字组成的12-16位的复杂 ...
- 20个Linux服务器安全强化建议(一)
Linux服务器安全对于保护用户数据.知识产权非常重要,同时还能减少你面对黑客的时间.在工作中,通常由系统管理员对Linux的安全负责,在这篇文章中,介绍了20条对Linux系统进行强化的建议.本文所 ...
- 20个Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- [转]20个你不得不知的Linux服务器性能调优技巧
Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...
- [转帖]如何用十条命令在一分钟内检查 Linux 服务器性能
如何用十条命令在一分钟内检查 Linux 服务器性能 时间:2016-09-28 作者:admin 分类:新手入门 阅读:246次 http://embeddedlinux.org.cn/emb- ...
- 20个Linux服务器安全强化建议(二)
接上文,继续介绍一些Linux服务器的安全配置. #6.强密码策略. 当我们使用 useradd.usermod 命令创建或维护用户账号时,确保始终应用强密码策略.例如,一个好的密码至少包括8个字 ...
- Linux命令(20)linux服务器之间复制文件和目录
linux的scp命令: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上 ...
- [转帖]windows+xshell+xming访问非桌面版Linux服务器
windows+xshell+xming访问非桌面版Linux服务器 2016年06月05日 00:09:11 jxxiaohou 阅读数:11996 标签: Linux 更多 个人分类: Linux ...
- Linux服务器安全配置
众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...
随机推荐
- linux 搭建 jenkins 前端自动构建时,老是提示 sh: vue-cli-service: command not found
如题. 在 shell 里面执行 env 发现一个 NODE_ENV=production 的环境变量,是这个东西的原因. 通过 unset NODE_ENV 命令去掉这个环境变量就可以了 ...
- JQuery动画之滑入滑出动画
1. 滑入动画(类似于商店的卷帘门) $(selector).slideDown(speed, 回调函数); 解释: 此语句实现的功能为, 在XX时间内, 下拉动画, 显现元素. 当 slideDow ...
- 2016 NEERC, Moscow Subregional Contest K. Knights of the Old Republic(Kruskal思想)
2016 NEERC, Moscow Subregional Contest K. Knights of the Old Republic 题意:有一张图,第i个点被占领需要ai个兵,而每个兵传送至该 ...
- Pap.er 模仿 - 第二天
最后更新:2017-12-19 在第一天中, 我们完成了项目的基本设置.隐藏Dock.显示和隐藏Popover等操作,接下来的这章中, Pap.er将会去搭建对应 UI. 一.设置Popover对应颜 ...
- 【洛谷4542】 [ZJOI2011]营救皮卡丘(最小费用最大流)
传送门 洛谷 Solution 这是一道神仙题! 考虑这个东西是个啥. emmm,如果两个点要到达,一定不能经过比他们大的. 所以Floyd搞定两点距离然后费用流跑一遍就是答案了! 代码实现 /* m ...
- mybatis之<trim
1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=&quo ...
- Go语言编程中字符串切割方法小结
1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是[]string的切片 复制代码代码如下: import ( "fm ...
- js中几种动态创建元素并设置文本内容的比较,及性能测试。
内容 1 appendChild (都兼容) 2.insertAdjacentHTML (都兼容) 3.innerHTML (都兼容) 4.createDocumentFragment (都兼容) 动 ...
- Configuring Windows for Certificate Logon
Setting up a Windows Domain ( on AD) Installing Domain Controller Roles,During installing Active Dir ...
- ubuntu进行apt-get时候出现Package ssh is not available, but is referred to by another package 错误
今天在ubuntu进行ssh安装的时候,出现如下错误. Reading package lists... Done Building dependency tree... Done Package s ...