首页 运维 linux运维 如何增强Linux和Unix服务器的安全性

如何增强Linux和Unix服务器的安全性

May 19, 2023 pm 02:43 PM
linux unix

一、系统安全记录文件

操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到internet,您发现有很多人对您的系统做telnet/ftp登录尝试,可以运行"#more /var/log/secure grep refused"来检查系统所受到的攻击,以便采取相应的对策,如使用ssh来替换telnet/rlogin等。

二、启动和登录安全性

1.bios安全

设置bios密码且修改引导次序禁止从软盘启动系统。

2.用户口令

用户口令是linux安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说,只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,并且绝对不要在任何地方写出来。

3.默认账号

应该禁止所有默认的被操作系统本身启动的并且不必要的账号,当您第一次安装系统时就应该这么做,linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

可以用下面的命令删除账号。

# userdel用户名
登录后复制

或者用以下的命令删除组用户账号。

# groupdel username
登录后复制

4.口令文件

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow
登录后复制

5.禁止ctrl+alt+delete重新启动机器命令

修改/etc/inittab文件,将"ca::ctrlaltdel:/sbin/shutdown -t3 -r now"一行注释掉。然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:

# chmod -r 700 /etc/rc.d/init.d/*
登录后复制

这样便仅有root可以读、写或执行上述所有脚本文件。

6.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd
登录后复制

这时,仅isd组的用户可以su作为root。此后,如果您希望用户admin能够su作为root,可以运行如下命令:

# usermod -g10 admin
登录后复制

7.删减登录信息

默认情况下,登录提示信息包括linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/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
登录后复制

然后,进行如下操作:

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net
登录后复制

三、限制网络访问

1.nfs访问

如果您使用nfs网络文件系统服务,应该确保您的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)
登录后复制

/dir/to/export 是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

# /usr/sbin/exportfs -a
登录后复制

2.inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用"stat"命令进行检查。

# chmod 600 /etc/inetd.conf
登录后复制

然后,编辑/etc/inetd.conf禁止以下服务。

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth
登录后复制

如果您安装了ssh/scp,也可以禁止掉telnet/ftp。为了使改变生效,运行如下命令:

#killall -hup inetd
登录后复制

默认情况下,多数linux系统允许所有的请求,而用tcp_wrappers增强系统安全性是举手之劳,您可以修改/etc /hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为"all: all"可以默认拒绝所有访问。然后在/etc/hosts.allow文件中添加允许的访问。例如,"sshd: 192.168.1.10/255.255.255.0 gate.openarch.com"表示允许ip地址192.168.1.10和主机名gate.openarch.com允许通过ssh连接。

配置完成后,可以用tcpdchk检查:

# tcpdchk 
登录后复制

tcpchk是tcp_wrapper配置检查工具,它检查您的tcp wrapper配置并报告所有发现的潜在/存在的问题。

3.登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,您可以编辑/etc/securetty且注释掉如下的行。

# tty1

# tty2

# tty3

# tty4

# tty5

# tty6
登录后复制

这时,root仅可在tty1终端登录。

4.避免显示系统和版本信息。

如果您希望远程登录用户看不到系统和版本信息,可以通过一下操作改变/etc/inetd.conf文件:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -
登录后复制

加-h表示telnet不显示系统信息,而仅仅显示"login:"。

四、防止攻击

1.阻止ping 如果没人能ping通您的系统,安全性自然增加了。为此,可以在/etc/rc.d/rc.local文件中增加如下一行:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
登录后复制

2.防止ip欺骗

编辑host.conf文件并增加如下几行来防止ip欺骗攻击。

order bind,hosts

multi off

nospoof on 
登录后复制

3.防止dos攻击

对系统所有的用户设置资源限制可以防止dos类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

  • * hard core 0

  • * hard rss 5000

  • * hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so
登录后复制

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5mb。

以上是如何增强Linux和Unix服务器的安全性的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vscode需要什么电脑配置 vscode需要什么电脑配置 Apr 15, 2025 pm 09:48 PM

VS Code 系统要求:操作系统:Windows 10 及以上、macOS 10.12 及以上、Linux 发行版处理器:最低 1.6 GHz,推荐 2.0 GHz 及以上内存:最低 512 MB,推荐 4 GB 及以上存储空间:最低 250 MB,推荐 1 GB 及以上其他要求:稳定网络连接,Xorg/Wayland(Linux)

vscode 无法安装扩展 vscode 无法安装扩展 Apr 15, 2025 pm 07:18 PM

VS Code扩展安装失败的原因可能包括:网络不稳定、权限不足、系统兼容性问题、VS Code版本过旧、杀毒软件或防火墙干扰。通过检查网络连接、权限、日志文件、更新VS Code、禁用安全软件以及重启VS Code或计算机,可以逐步排查和解决问题。

notepad怎么运行java代码 notepad怎么运行java代码 Apr 16, 2025 pm 07:39 PM

虽然 Notepad 无法直接运行 Java 代码,但可以通过借助其他工具实现:使用命令行编译器 (javac) 编译代码,生成字节码文件 (filename.class)。使用 Java 解释器 (java) 解释字节码,执行代码并输出结果。

Linux体系结构:揭示5个基本组件 Linux体系结构:揭示5个基本组件 Apr 20, 2025 am 12:04 AM

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

VSCode怎么用 VSCode怎么用 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) 是一款跨平台、开源且免费的代码编辑器,由微软开发。它以轻量、可扩展性和对众多编程语言的支持而著称。要安装 VSCode,请访问官方网站下载并运行安装程序。使用 VSCode 时,可以创建新项目、编辑代码、调试代码、导航项目、扩展 VSCode 和管理设置。VSCode 适用于 Windows、macOS 和 Linux,支持多种编程语言,并通过 Marketplace 提供各种扩展。它的优势包括轻量、可扩展性、广泛的语言支持、丰富的功能和版

vscode 可以用于 mac 吗 vscode 可以用于 mac 吗 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有强大的扩展功能、Git 集成、终端和调试器,同时还提供了丰富的设置选项。但是,对于特别大型项目或专业性较强的开发,VS Code 可能会有性能或功能限制。

git怎么查看仓库地址 git怎么查看仓库地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 仓库地址,请执行以下步骤:1. 打开命令行并导航到仓库目录;2. 运行 "git remote -v" 命令;3. 查看输出中的仓库名称及其相应的地址。

vscode是什么 vscode是干什么用的 vscode是什么 vscode是干什么用的 Apr 15, 2025 pm 06:45 PM

VS Code 全称 Visual Studio Code,是一个由微软开发的免费开源跨平台代码编辑器和开发环境。它支持广泛的编程语言,提供语法高亮、代码自动补全、代码片段和智能提示等功能以提高开发效率。通过丰富的扩展生态系统,用户可以针对特定需求和语言添加扩展程序,例如调试器、代码格式化工具和 Git 集成。VS Code 还包含直观的调试器,有助于快速查找和解决代码中的 bug。

See all articles