如何让Linux系统更安全?Linux是领先的操作系统,世界上最快的10台超级计算机都在运行Linux操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,还包括文本编辑器、高级语言编译器等应用软件。那么,Linux服务器安全提示有哪些呢?
1.物理系统的安全性
配置BIOS,禁止从CD/DVD、外部设备和软驱引导。接下来,启用GRUB的BIOS密码和密码保护,这可以限制对系统的物理访问。
设置GRUB密码以保护Linux服务器
2.磁盘分区
重要的是使用不同的分区,这可以为可能的灾难确保更高的数据安全性。通过划分不同的分区,可以对数据进行分组和隔离。当意外发生时,只会破坏故障分区的数据,其他分区的数据可以保留。你最好有以下分区,第三方程序要安装在单独的文件系统/opt下。
/
/boot
/usr
/var
/首页
/tmp
/opt
3.最少的软件包安装,最少的漏洞
你真的需要安装所有的服务吗?建议不要安装无用的包,避免这些包带来的漏洞。这将最大限度地降低风险,因为一个服务的漏洞可能会损害其他服务。并找出删除或停止未使用的服务,从而最大限度地减少系统漏洞。使用“chkconfig”命令列出在运行级别3运行的所有服务。
#/sbin/chkconfig-list | grep ' 3:on '当您发现一个不需要的服务正在运行时,请使用以下命令停止该服务。
# chkconfig serviceName off使用RPM软件包管理器(如YUM或apt-get工具)列出所有已安装的软件包,并使用以下命令卸载它们。
# yum-y remove package-name # sudo apt-get remove package-name 5 chk config命令示例
RPM命令的20个实例
用于Linux软件包管理的20个Linux YUM命令
25个APT-GET和APT-CACHE命令来管理包管理
4.检查网络监控端口。
在网络命令“netstat”的帮助下,您将能够看到所有打开的端口和相关程序。使用我上面提到的“chkconfig”命令关闭系统中不需要的网络服务。
tulpnlinux网络管理中的# Netstat-20 netstat命令
5.使用SSH(安全外壳)
Telnet和rlogin协议只能以纯文本格式使用,而不能以加密格式使用,这可能会导致安全漏洞。SSH是一种安全协议,在客户端与服务器通信时使用加密技术。
除非必要,否则不要直接登录root帐户。使用“sudo”执行命令。Sudo由/etc/sudoers文件制定,也可以使用“visudo”工具进行编辑,该工具将通过VI编辑器打开配置文件。
同时,建议将默认的SSH 22端口号改为其他更高的端口号。打开主SSH配置文件,进行以下修改以限制用户访问。
# vi /etc/ssh/sshd_config关闭超级用户登录
允许特定用户通过
AllowUsers用户名使用SSH协议版本2。
2协议2sh服务器安全维护五大最佳实践
6.确保系统是最新的。
始终确保系统包含最新版本的补丁、安全补丁和可用内核。
# yum更新
# yum检查-更新
7.锁定Cron任务
Cron有自己的内置特性,允许您定义谁能运行任务,谁不能运行任务。这由两个文件/etc/cron.allow和/etc/cron.deny控制,要锁定使用cron的用户,只需将他们的名字写在corn.deny中,并允许用户在运行cron时将他们的名字添加到cron.allow中。如果希望禁止所有用户使用corn,可以将“ALL”作为一行添加到cron.deny中
# echo ALL/etc/Cron . deny 11 Linux Cron调度实例
8.禁止USB检测
很多情况下,我们希望限制用户使用USB,以保证系统安全和数据泄露。创建一个文件“/etc/modprobe.d/no-USB ”,并使用以下命令禁止探测USB存储。
安装usb存储/bin/true
9.打开SELinux
SElinux (Security Enhanced linux)是linux内核提供的一种强制访问控制安全机制。禁用SELinux意味着系统失去了安全机制。在移除SELinux之前,请仔细考虑。如果你的系统需要发布到网络上,在公网上访问,那就更要注意了。
SELinux提供了三种基本的操作模式。它们是:
Enforce:这是默认模式,用于启用和实施SELinux安全措施。
许可模式:在这种模式下,SELinux将不执行安全措施,只执行警告和日志记录。这种模式在解决SELinux相关问题时非常有用。
关闭模式:SELinux关闭。
您可以使用命令行“system-config-selinux”、“get enforce”或“sestatus”来浏览selinux的当前状态。
# sestatus如果它处于关闭模式,请通过以下命令打开SELinux
# setenforce enforcing您还可以通过配置文件“/etc”/etc/SELinux/config”切换SELinux。
10.移除KDE或GNOME桌面。
不需要在专用的LAMP服务器上运行X Window desktop,比如KDE和GNOME。可以删除或关闭它们,以提高系统安全性和性能。打开/etc/inittab,然后将运行级别更改为3以关闭这些桌面。如果从系统中完全删除它,可以使用以下命令:
# yum groupremove 'X窗口系统'
1.关闭IPv6。
如果不使用IPv6,就要关闭,因为大部分应用和策略都不使用IPv6,目前对服务器来说也没必要。您可以在网络配置文件中添加以下几行来关闭它。
# VI/etc/sys config/network networking _ IPV6=no
IPV6INIT=否
12.限制用户使用旧密码。
如果您不希望用户继续使用旧密码,这一条非常有用。的旧密码文件位于/etc/security/opasswd中。可以用PAM模块来实现。
在RHEL/CentOS/Fedora中打开文件“/etc/pam.d/system-auth”。
打开# VI/etc/PAM . d/system-authubuntu/debian/Linux mint中的“/etc/pam.d/common-password”文件。
# vi /etc/pam.d/common-password在“auth”块中添加以下行。
AuthSufficentPam _ UNIX . solike AuthNullok在“password”块中添加以下行,以禁止用户重复使用他们过去的最后五个密码。
密码足够PAM _ UNIX . sonoloku use _ authtok MD5 shadow remember=5服务器只记录最后5个密码。如果您尝试使用您最近使用的5个旧密码中的任何一个,您将会看到以下错误消息。
密码已被使用。再选一个。
13.如何查看用户密码过期?
在Linux中,用户的密码以加密的形式存储在“/etc/shadow”文件中。要检查用户的密码是否已过期,您需要使用“chage”命令。它将显示密码的最后修改日期和密码到期日期的详细信息。这些细节是系统决定用户是否必须更改密码的基础。
要查看任何现有用户的过期信息,如到期日期和持续时间,请使用以下命令。
#chage -l username要修改任何用户的密码期限,请使用以下命令。
#chage -M 60用户名
#chage -M 60 -m 7 -W 7用户名参数
-M设置最大天数。
-m设置最小天数。
-W设置所需的天数。
14.手动锁定或解锁用户帐户。
锁定和解锁功能非常有用。您可以将帐户锁定一周或一个月,而不是将其从系统中删除。您可以使用以下命令锁定特定用户。
# passwd -l accountName提示:这个锁定的用户仍然只对root可见。这是通过用(!idspnonenote)替换加密的密码来锁定的。)来实现。如果有人想用这个账号访问系统,会得到如下图这样的错误提示。
# su - accountName
该帐户目前不可用。解锁锁定的帐户时,使用以下命令。此命令将被替换为(!idspnonenote)。)把密码改回来。
# passwd -u帐户名
15.增强密码。
相当一部分用户使用非常弱智的密码,他们的密码可以通过字典攻击或者暴力攻击被破解。pam中存在pam_cracklib“”模块,该模块可以强制用户设置复杂的密码。通过编辑器打开以下文件。
# vi /etc/pam.d/system-auth在文件中添加一行,使用认证参数(lcredit、ucredit、dcredit或ocredit对应小写字母、大写字母、数字和其他字符)
/lib/security/$ ISA/PAM _ crack lib . so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16.启用Iptable(防火墙)
强烈建议启用linux防火墙来禁止非法程序访问。使用iptable的规则来过滤入站、出站和转发的数据包。我们可以授权和拒绝源地址和目的地址对特定udp/tcp端口的访问。
17.禁止Ctrl Alt Delete重新启动。
在大多数linux发行版中,按“Ctrl-Alt-Delete”会重启系统。说是只在生产服务器上是一个很好的做法,可能会导致误操作。
该配置位于“/etc/inittab”文件中。如果你打开这个文件,你可以在下面看到一个类似的段落。默认行已被注释掉。我们必须评论他。这个特定的按钮将重启系统。
#陷阱CTRL-ALT-DELETE
# ca:ctrl altdel:/sbin/shut down-T3-r now
18.检查空密码帐户。
任何密码为空的帐户都意味着它可以被Web上任何未授权的用户访问,这对linux服务器是一个安全威胁。因此,请确保所有用户都有复杂的密码,并且没有特权用户。空密码帐户是一个可以轻松克服的安全风险。您可以使用以下命令来检查空密码帐户是否存在。
# cat/etc/shadow | awk-F:'($ 2==' '){ print $ 1 } '
19.登录前显示SSH提示。
在ssh验证时使用法律和安全警告是一个好建议。
20.监控用户行为。
如果你有大量的用户,收集每个用户的行为和他们的进程消耗的信息是非常重要的。用户分析可以在以后处理一些性能优化和安全问题的时候进行。但是如果你监控收集用户行为信息呢?
有两个有用的工具“psacct”和“acct”可用于监视系统中用户的行为和过程。这些工具在系统后台执行,持续记录系统中每个用户的行为以及Apache、MySQL、SSH、FTP等各种服务的资源消耗。
21.定期检查日志。
将日志移动到专用的日志服务器,这样可以防止入侵者轻易更改本地日志。以下是常见linux的默认日志文件及其用途:
/var/log/message记录系统日志或当前活动日志。
/var/log/auth . log身份验证日志。
/var/log/kern . log内核日志。
/var/log/cron . logcron日志(cron任务)。
/var/log/mail log邮件服务器日志。
/var/log/boot . log系统引导日志。
/var/log/mysqld . logMySQL数据库服务器日志。
/var/log/secure身份验证日志。
/var/log/utmp或/var/log/wtmp:登录日志。
/var/log/yum.log: Yum log。
22.重要文件的备份
在生产环境中,对于灾难恢复,有必要将重要文件备份并保存在安全的远程磁带库、远程站点或异地硬盘中。
23.网卡绑定
有两种类型的NIC绑定模式,需要在绑定接口上使用。
mode=0循环模式
模式=1激活和备份模式
网卡绑定可以帮助我们避免单点故障。在网卡绑定中,我们将两个或更多网卡绑定在一起,以提供一个虚拟接口,该接口设置ip地址并与其他服务器通信。当这样的网卡出现故障或由于其他原因无法使用时,我们的网络将保持可用。
24.保持/启动只读
Linux内核及其相关文件保存在/boot下,默认可以读写。设置为只读可以减少一些非法修改重要引导文件带来的风险。
# vi /etc/fstab在文件末尾添加下面一行并保存它
Label=/boot/boot ext 2 defaults,ro 1 2如果以后需要升级内核,需要修复回读写模式。
25、屏蔽网间控制报文协议(互联网控制消息协议)和广播请求
在/etc/sysctl.conf中添加下面几行,屏蔽掉砰和广播请求。
忽略网间控制报文协议(Internet Control Messages Protocol)请求:
网。IP v4。icmp _ echo _ ignore _ all=1
忽略广播请求:
网。IP v4。icmp _ echo _ ignore _ broadcasts=1运行下面这一行加载修改或更新:
#sysctl -p