25 Linux安全和加固提示
物理系统安全
配置 BIOS中禁用从 CD / DVD, 外部设备 , 软盘驱动器在 BIOS引导。 接下来,启用 BIOS密码和保护也与 GRUB密码来限制你的系统的物理访问。2.磁盘分区
重要的是有不同的分区,以获得更高的数据安全性,以防万一发生任何灾难。通过创建不同的分区,可以分离和分组数据。当意外事故发生时,只有该分区的数据将被损坏,而其他分区上的数据仍然存在。请确保你一定以下单独的分区,并确保第三方应用程序应在 / opt单独的文件系统上。/ /boot /usr /var /home /tmp /opt
3.最小化包以最小化漏洞
你真的想要安装所有类型的服务吗?建议避免安装无用的包以避免包中的漏洞。这可以最小化一个服务的妥协可能导致对其他服务的损害的风险。从服务器中查找和删除或禁用不需要的服务,以尽量减少漏洞。使用 “chkconfig的 ”命令来找出哪些是在 级别3上运行的服务。# /sbin/chkconfig --list |grep '3:on'一旦发现任何不需要的服务正在运行,请使用以下命令禁用它们。
# chkconfig serviceName off使用 RPM包管理器,如“ 荫 ”或 “apt-get的 ”工具列出系统中的所有已安装的软件包,并使用以下命令将其删除。
# yum -y remove package-name
# sudo apt-get remove package-name
4.检查监听网络端口
随着 “netstat的 ”网络命令的帮助,您可以查看所有打开的端口和相关的程序。 正如我在上面使用 “chkconfig的 ”命令说,从系统中禁用所有不必要的网络服务。# netstat -tulpn
5.使用安全Shell(SSH)
的Telnet和 rlogin协议使用纯文本,未加密的格式,它是安全隐患 。SSH是与服务器的通信过程中使用的加密技术安全协议。 不要直接以 root身份登录,除非必要的。 使用“ 命令 ”来执行命令。 Sudo在 / etc指定 / sudoers文件也文件可与 “visudo命令 ”工具,它在 VI编辑器中打开进行编辑。 它也建议更改默认的 SSH 22端口号与其他一些更高级别的端口号。 打开主 SSH配置文件,并提出一些以下参数来限制用户访问。# vi /etc/ssh/sshd_config
禁用root登录
PermitRootLogin no
仅允许特定用户
AllowUsers username
使用SSH协议2版本
Protocol 2
6.保持系统更新
始终保持系统更新与最新版本补丁,安全修复程序和内核可用时。# yum updates # yum check-update
7.锁定Cronjobs
克龙有它自己的内置功能,它允许指定谁可以,谁可能不希望运行的作业。 这是通过使用称为 /etc/cron.allow和 /etc/cron.deny文件的控制。 要锁定使用cron的用户,只需在 cron.deny中添加用户名,并允许用户运行cron在 cron.allow文件添加。 如果您想使用的cron禁用所有用户,添加了 “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的安全策略。
- 宽容 :在这种模式下,SELinux的不会强制执行安全策略的系统上,只有警告和日志的操作。 该模式在排除SELinux的相关问题长期非常有用的。
- 禁用 :SELinux的关闭。
# sestatus如果禁用,使用以下命令启用 SELinux的 。
# setenforce enforcing它也可以 在“/ etc / SELinux的/配置 ”文件中,在那里你可以启用或禁用它进行管理。
10.删除KDE / GNOME桌面
有没有必要给你专用的上运行 的X Window桌面像 KDE或 GNOME LAMP服务器。 您可以删除或禁用它们,以提高服务器和性能的安全性。 要禁用简单打开文件 / etc / inittab中 “,并设置运行级别为 3。如果您希望从系统中完全删除它,请使用以下命令。# yum groupremove "X Window System"
11.关闭IPv6
如果你不使用 IPv6协议,那么因为大多数应用程序或政策不要求 IPv6协议,目前它不会在服务器上需要的,你应该禁用它。转到网络配置文件并添加以下行禁用它。# vi /etc/sysconfig/network
NETWORKING_IPV6=no IPV6INIT=no
12.限制用户使用旧密码
如果您要禁止用户使用相同的旧密码,这将非常有用。旧的密码文件位于 / etc /安全/ 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 sufficient pam_unix.so likeauth nullok将下面一行添加到“ 密码 ”部分,从重新使用过去的 5次密码的他或她的禁止用户。
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5只有最后 5个密码是由服务器记住。 如果您尝试使用任何最后 5旧密码,你会得到这样一个错误。
Password has been already used. Choose another.
13.如何检查用户的密码到期
在Linux中,用户的密码存储在加密格式 “/ etc / shadow文件 '文件。 要检查用户的密码过期,你需要使用“ 恰克 ”命令。它显示密码到期详细信息以及上次密码更改日期的信息。系统使用这些详细信息来决定用户何时必须更改其密码。 要查看任何现有的用户老龄化信息,如 到期日期和 时间 ,请使用以下命令。#chage -l username要更改任何用户的密码老化,请使用以下命令。
#chage -M 60 username #chage -M 60 -m 7 -W 7 userName
参数
- 天-M组最大数量
- -m天设置最小数
- -W设置警告的天数
14.手动锁定和解锁帐户
锁定和解锁功能非常有用,而不是从系统中删除帐户,您可以锁定一个星期或一个月。要锁定特定用户,可以使用follow命令。# passwd -l accountName注 :锁定的用户仍然仅适用于 root用户。 该锁定通过用 (!)字符串替换加密口令进行。如果有人试图使用此帐户访问系统,他会得到类似下面的错误。
# su - accountName This account is currently not available.要解锁或启用对锁定帐户的访问,请使用命令as。这将删除 (!)字符串加密的密码。
# passwd -u accountName
15.强制执行更强的密码
许多用户都使用软或弱口令和密码可能与 基于字典或砍死 蛮力攻击。 在 'pam_cracklib“模块是 PAM( 可插拔认证模块 )模块,它会强制用户设置强密码可用。使用编辑器打开以下文件。 阅读:# vi /etc/pam.d/system-auth与使用信用参数 (lcredit,ucredit,dcredi吨和/或 ocredit分别小写,大写,数字及其他)添加线路
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16.启用Iptables(防火墙)
我们强烈建议,以使 Linux的防火墙来保证服务器的未经授权的访问。 在 iptables的适用规则来过滤 传入 , 传出和 转发数据包。 我们可以指定源地址和目的地址,允许在特定的 TCP / UDP端口号否认。17.在Inittab中禁用Ctrl + Alt + Delete
在大多数Linux发行版,按 “CTRL-ALT-DELETE”将花费你的系统重新启动的过程。所以,这是不是一个好主意,至少在生产服务器上启用此选项,如果有人错误地这样做。 这是在定义 '/ etc / inittab中 '文件,如果你在该文件中仔细观察,你会看到类似下面一条线。默认行没有注释掉。我们必须评论出来。这个特定的密钥序列信令将关闭系统。# Trap CTRL-ALT-DELETE #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
18.检查帐户是否为空密码
任何具有空密码的帐户意味着它被打开以便未经授权访问网络上的任何人,并且它是Linux服务器中的安全性的一部分。因此,您必须确保所有帐户都具有强密码,且没有任何人具有任何授权访问权限。空密码帐户是安全风险,可以很容易地攻击。要检查是否有任何帐户使用空密码,请使用以下命令。# cat /etc/shadow | awk -F: '($2==""){print $1}'
19.登录前显示SSH横幅
在SSH身份验证之前,拥有带有一些安全警告的合法横幅或安全横幅总是一个更好的主意。设置这样的横幅阅读下面的文章。20.监控用户活动
如果你正在处理大量的用户,那么收集他们消费的每个用户活动和进程的信息,并在以后分析它们,或者如果有任何性能,安全问题的重要。但是我们如何能够监控和收集用户活动信息。 有两个被称为 “psacct'和 'ACCT'被用于监测在系统上的用户活动和过程的有用工具。 这些工具运行在系统后台,并持续跟踪系统和服务,如 Apache,MySQL和 SSH,FTP等有关安装,配置和使用的详细信息所消耗的资源上的每个用户的活动,请访问以下网址。21.定期审查日志
将日志移动到专用日志服务器中,这可以防止入侵者轻松地修改本地日志。下面是常见的Linux默认日志文件名称及其用法:- 在/ var /日志/消息 -当整个系统日志或当前活动日志可用。
- /var/log/auth.log -验证日志。
- /var/log/kern.log -内核日志。
- /var/log/cron.log - crond的日志(cron作业)。
- 在/ var /日志/ maillog中 -邮件服务器日志。
- /var/log/boot.log里 -系统启动日志。
- /var/log/mysqld.log - MySQL数据库服务器的日志文件。
- 在/ var /日志/安全 -验证日志。
- 在/ var /日志/ utmp文件或/ var /日志/ wtmp文件 :登录记录文件。
- /var/log/yum.lo G:Yum日志文件。
22.重要文件备份
在生产系统中,有必要采取重要文件备份,并将其保存在安全库,远程站点或异地灾难恢复。23.网卡绑定
有两种类型的在 网卡键合方式,需要在键合界面提。- 模式= 0 -轮循
- 模式= 1 -主动和备份
24.保持/ boot为只读
Linux内核及其相关文件在 / boot目录默认情况下是 为读写 。 它更改 为只读降低了关键的引导文件未经授权的修改的风险。 要做到这一点,打开“/ etc / fstab文件 ”的文件。# vi /etc/fstab在底部添加以下行,保存并关闭它。
LABEL=/boot /boot ext2 defaults,ro 1 2请注意,如果您需要在将来升级内核,您需要将更改重置为读写。
25.忽略ICMP或广播请求
加入“ 的/etc/sysctl.conf”文件下面一行忽略 平或 广播请求。Ignore ICMP request: net.ipv4.icmp_echo_ignore_all = 1 Ignore Broadcast request: net.ipv4.icmp_echo_ignore_broadcasts = 1通过运行以下命令加载新的设置或更改
#sysctl -p如果您在上述列表中错过了任何重要的安全或强化提示,或者您还有其他需要包含在列表中的提示。请我们的评论框放下你的评论 。youcl正在接收的意见,建议以及讨论改善一直感兴趣。