您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > linux服务器安全配置
一、linux防火墙配置RedHatLinux为增加系统安全性提供了防火墙保护。防火墙存在于你的计算机和网络之间,用来判定网络中的远程用户有权访问你的计算机上的哪些资源。一个正确配置的防火墙可以极大地增加你的系统安全性。为你的系统选择恰当的安全级别。高级如果你选择了“高级”,你的系统就不会接受那些没有被你具体指定的连接(除了默认设置外)。只有以下连接是默认允许的:DNS回应DHCP—任何使用DHCP的网络接口都可以被相应地配置。如果你选择“高级”,你的防火墙将不允许下列连接:1.活跃状态FTP(在多数客户机中默认使用的被动状态FTP应该能够正常运行。)2.IRCDCC文件传输。3.RealAudio.4.远程X窗口系统客户机。如果你要把系统连接到互联网上,但是并不打算运行服务器,这是最安全的选择。如果需要额外的服务,你可以选择“定制”来具体指定允许通过防火墙的服务。注记:如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。中级如果你选择了“中级”,你的防火墙将不准你的系统访问某些资源。访问下列资源是默认不允许的:1.低于1023的端口—这些是标准要保留的端口,主要被一些系统服务所使用,例如:FTP、SSH、telnet、HTTP、和NIS.2.NFS服务器端口(2049)—在远程服务器和本地客户机上,NFS都已被禁用。3.为远程X客户机设立的本地X窗口系统显示。4.X字体服务器端口(xfs不在网络中监听;它在字体服务器中被默认禁用)。如果你想准许到RealAudio之类资源的访问,但仍要堵塞到普通系统服务的访问,选择“中级”。你可以选择“定制”来允许具体指定的服务穿过防火墙。注记:如果你在安装中选择设置了中级或高级防火墙,网络验证方法(NIS和LDAP)将行不通。无防火墙无防火墙给予完全访问权并不做任何安全检查,安全检查是对某些服务的禁用。建议你只有在一个可信任的网络(非互联网)中运行时,或者你想稍后再进行详细的防火墙配置时才选此项。选择“定制”来添加信任的设备或允许其它的进入接口。信任的设备选择“信任的设备”中的任何一个将会允许你的系统接受来自这一设备的全部交通;它不受防火墙规则的限制。例如,如果你在运行一个局域网,但是通过PPP拨号连接到了互联网上,你可以选择“eth0”,而后所有来自你的局域网的交通将会被允许。把“eth0”选为“信任的”意味着所有这个以太网内的交通都是被允许的,但是ppp0接口仍旧有防火墙限制。如果你想限制某一接口上的交通,不要选择它。建议你不要将连接到互联网之类的公共网络上的设备定为“信任的设备”。允许进入启用这些选项将允许具体指定的服务穿过防火墙。注意:在工作站类型安装中,大多数这类服务在系统内没有被安装。DHCP如果你允许进入的DHCP查询和回应,你将会允许任何使用DHCP来判定其IP地址的网络接口。DHCP通常是启用的。如果DHCP没有被启用,你的计算机就不能够获取IP地址。SSHSecure(安全)SHell(SSH)是用来在远程机器上登录及执行命令的一组工具。如果你打算使用SSH工具通过防火墙来访问你的机器,启用该选项。你需要安装openssh-server软件包以便使用SSH工具来远程访问你的机器。TelnetTelnet是用来在远程机器上登录的协议。Telnet通信是不加密的,几乎没有提供任何防止来自网络刺探之类的安全措施。建议你不要允许进入的Telnet访问。如果你想允许进入的Telnet访问,你需要安装telnet-server软件包。“(HTTP)”HTTP协议被Apache(以及其它万维网服务器)用来进行网页服务。如果你打算向公众开放你的万维网服务器,请启用该选项。你不需要启用该选项来查看本地网页或开发网页。如果你打算提供网页服务的话,你需要安装httpd软件包。启用“(HTTP)”将不会为HTTPS打开一个端口。要启用HTTPS,在“其它端口”字段内注明。邮件(SMTP)如果你需要允许远程主机直接连接到你的机器来发送邮件,启用该选项。如果你想从你的ISP服务器中收取POP3或IMAP邮件,或者你使用的是fetchmail之类的工具,不要启用该选项。请注意,不正确配置的SMTP服务器会允许远程机器使用你的服务器发送垃圾邮件。FTPFTP协议是用于在网络机器间传输文件的协议。如果你打算使你的FTP服务器可被公开利用,启用该选项。你需要安装vsftpd软件包才能利用该选项。其它端口你可以允许到这里没有列出的其它端口的访问,方法是在“其它端口”字段内把它们列出。格式为:“端口:协议”。例如,如果你想允许IMAP通过你的防火墙,你可以指定imap:tcp.你还可以具体指定端口号码,要允许UDP包在端口1234通过防火墙,输入1234:udp.要指定多个端口,用逗号将它们隔开。窍门:要在安装完毕后改变你的安全级别配置,使用安全级别配置工具。在shell提示下键入redhat-config-securitylevel命令来启动安全级别配置工具。如果你不是根用户,它会提示你输入根口令后再继续。二、linux系统安全关于分区一个潜在的黑客如果要攻击你的Linux服务器,他首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区纪录数据,如log文件和email,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。关于BIOS记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样可以阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等等。关于口令口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN(口令最小长度)。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS(口令使用时间)。关于Ping既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行,这样就可以阻止你的系统响应任何从外部/内部来的ping请求。echo1/proc/sys/net/ipv4/icmp_echo_ignore_all关于Telnet如果你希望用户用Telnet远程登录到你的服务器时不要显示操作系统和版本信息(可以避免有针对性的漏洞攻击),你应该改写/etc/inetd.conf中的一行象下面这样:telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login。关于特权账号禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。为删除你系统上的用户,用下面的命令:userdelusername为删除你系统上的组用户帐号,用下面的命令:groupdelusername在终端上打入下面的命令删掉下面的特权用账号:userdeladmuserdellpuserdelsyncuserdelshutdownuserdelhaltuserdelmail如果你不用sendmail服务器,就删除这几个帐号:userdelnewsuserdeluucpuserdeloperatoruserdelgames如果你不用Xwindows服务器,就删掉这个帐号。userdelgopher如果你不允许匿名FTP,就删掉这个用户帐号:userdelftp关于su命令如果你不想任何人能够su为root的话,你应该编辑/etc/pam.d/su文件,加下面几行:authsufficient/lib-/security/pam_rootok-.sodebugauthrequired/lib-/security/pam_wheel-.sogroup=isd这意味着仅仅isd组的用户可以su作为root。如果你希望用户admin能su作为root.就运行下面的命令:usermod-G10adminsuid程序也是非常危险的,这些程序被普通用户以euid=0(即root)的身份执行,只能有少量程序被设置为suid。用这个命令列出系统的suid二进制程序:suneagle#find/-perm-4000-print你可以用chmod-s去掉一些不需要程序的suid位。关于账户注销如果系统管理员在离开系统时忘了从root注销,系统应该能够自动从shell中注销。那么,你就需要设置一个特殊的Linux变量“tmout”,用以设定时间。同样,如果用户离开机器时忘记了注销账户,则可能给系统安全带来隐患。你可以修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。编辑文件/etc/profile,在“histfilesize=”行的下一行增加如下一行:tmout=600则所有用户将在10分钟无操作后自动注销。注意:修改了该参数后,必须退出并重新登录root,更改才能生效。关于系统文件对于系统中的某些关键性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。如将inetd文件属性改为600:#chmod600/etc/inetd.conf这样就保证文件的属主为root,然后还可以将其设置为不能改变:#chattr+i/etc/inetd.conf这样,对该文件的任何改变都将被禁止。你可能要问:那我自己不是也不能修改了?当然,我们可以设置成只有root重新设置复位标志后才能进行修改:#chattr-i/etc/inetd.conf关于用户资源对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。例如,对所有用户的限制,编辑/etc/security/limits.con加入以下几行:*hardcore0*hardrss5000*hardnproc20你也必须编辑/etc/pam.d/login文件,检查这一行的存在:sessionrequired/lib/security/pam_limits.so上面的命令禁止corefiles“core0”,限制进程数为“nproc50“,且限制内存使用为5M“rss5000”。关于NFS服务器由于NFS服务器漏洞比较多,你一定要小心。如果要使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。你可以编辑文件/etc/exports并且加:/dir/to/exporthost1.mydomain.com(ro,root_squash)/dir/to/exporthost2.mydomain.com(ro,root_squash)其中/dir/to/export是你想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount
本文标题:linux服务器安全配置
链接地址:https://www.777doc.com/doc-3975648 .html