CentOS 5.5安全配置
一、系统安全记录文件
CentOS内部的记录文件是检测是否有网络入侵的重要线索,如果系统是直接连到Internet,发现有很多人对系统做Telnet/FTP登录尝试,可以运行”#more/var/log/secure|greprefused”来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。
二、启动和登录安全性
1.BIOS安全
设置BIOS密码且修改引导次序禁止从软盘启动系统。
2.用户口令
用户口令是Linux安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,并且绝对不要在任何地方写出来。
修改改密码长度需要编译login.defs文件
vi/etc/login.defs
PASS_MIN_LEN8
3.注释掉不需要的用户和用户组
应该禁止所有默认的被操作系统本身启动的并且不必要的账号,第一次安装系统时就应该这么做,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。
vi/etc/passwd
#userdeladm
#userdellp
#userdelsync
#userdelshutdown
#userdelhalt
#userdelnews
#userdeluucp
#userdeloperator
#userdelgames
#userdelgopher
#userdelftp
vi/etc/group
#groupdeladm
#groupdellp
#groupdelnews
#groupdeluucp
#groupdelgames
#groupdeldip
#groupdelpppusers
4.口令文件
chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
#chattr+i/etc/passwd
#chattr+i/etc/shadow
#chattr+i/etc/group
#chattr+i/etc/gshadow
5.禁止CtrlAltDelete重新启动机器命令
修改/etc/inittab文件,将”ca::ctrlaltdel:/sbin/shutdown-t3-rnow”一行注释掉。
然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:
#chmod-R700/etc/rc.d/init.d/*
这样便仅有root可以读、写或执行上述所有脚本文件。
6.限制su命令
当不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:
authsufficient/lib/security/pam_rootok.sodebug
authrequired/lib/security/pam_wheel.sogroup=isd
这时,仅isd组的用户可以su作为root。此后,如果希望用户admin能够su作为root,可以运行如下命令:
#usermod-G10admin
7.删减登录信息
默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等,对于一台安全性要求较高的机器来说这样泄漏了过多的信息,可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。
#Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou
#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot.
#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
8、更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降
不允许使用低版本的SSH协议
vi/etc/ssh/ssd_config
将#protocol2,1改为
protocol2
将PORT改为1000以上端口
vi/etc/ssh/sshd_config
Port10000
同时,创建一个普通登录用户,并取消直接root登录
useradd'username'
passwd'username'
vi/etc/ssh/sshd_config
PermitRootLoginno#取消root直接远程登录
9、关闭那些不需要的服务,记住少开一个服务,就少一个危险。
以下仅列出需要启动的服务,未列出的服务一律关闭:
#setup
acpid
anacron
cpuspeed
crond
irqbalance\\仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。
microcode_ctl
network
random
sendmail
sshd
syslog
yum-updatesd
10、启用iptables防火墙,对增加系统安全有许多好处。设置好防火墙的规则。
vi/etc/sysconf/iptables
*filter
:INPUTDROP[0:0]
:FORWARDDROP[0:0]
:OUTPUTACCEPT[0:0]
#allowlocalloopbackconnections
-AINPUT-ilo-jACCEPT
#dropINVALIDconnections
-AINPUT-mstate--stateINVALID-jDROP
-AOUTPUT-mstate--stateINVALID-jDROP
-AFORWARD-mstate--stateINVALID-jDROP
#allowallestablishedandrelated
-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
#addanymoreruleshere
COMMIT
三、限制网络访问
1.NFS访问
使用NFS网络文件系统服务,应该确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/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成只读系统,
root_squash禁止root写入该目录。为了使改动生效,运行如下命令。
#/usr/sbin/exportfs-a
2.Inetd设置
首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用”stat”命令进行检查。
#chmod600/etc/inetd.conf
然后,编辑/etc/inetd.conf禁止以下服务。
ftptelnetshellloginexectalkntalkimappop-2pop-3fingerauth
如果安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:
#killall-HUPinetd
默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳
可以修改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为”ALL:ALL”可以默认拒绝所有访问,然后在/etc/hosts.allow文件中添加允许的访问。
例如,”sshd:192.168.10.10/255.255.255.0gate.openarch.com”表示
允许IP地址192.168.10.10和主机名gate.openarch.com允许通过SSH连接。
配置完成后,可以用tcpdchk检查:
#tcpdchk
tcpchk是TCP_Wrapper配置检查工具,它检查tcpwrapper配置并报告所有发现的潜在/存在的问题。
3.登录终端设置
/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,可以编辑/etc/securetty且注释掉如下的行。
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
这时,root仅可在tty1终端登录。
4.避免显示系统和版本信息。
如果希望远程登录用户看不到系统和版本信息,可以通过一下操作改变/etc/inetd.conf文件:
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h
加-h表示telnet不显示系统信息,而仅仅显示”login:”。
5.修改相应配置文件停止ipv6。
#vi/etc/modprobe.conf
aliasnet-pf-10off
aliasipv6off
#shutdown-rnow
四、防止攻击
1.阻止ping如果没人能ping通系统,安全性自然增加了,为此,我们可以在/etc/rc.d/rc.local文件中增加如下一行
:
#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all
2.防止IP欺骗
编辑host.conf文件并增加如下几行来防止IP欺骗攻击。
orderbind,hosts
multioff
nospoofon
3.防止DoS攻击
对系统所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数和内存使用数量等。
例如,可以在/etc/security/limits.conf中添加如下几行:
*hardcore0
*hardrss5000
*hardnproc20
然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。
sessionrequired/lib/security/pam_limits.so
上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。
经过以上的设置,Linux服务器已经可以对绝大多数已知的安全问题和网络攻击具有免疫能力,但一名优秀的系统管理员仍然要时刻注意网络安全动态,随时对已经暴露出的和潜在安全漏洞进行修补。
五、内核参数调整
#vi/etc/sysctl.conf
sysctl-wnet.ipv4.conf.default.accept_source_route=0
sysctl-wnet.ipv4.icmp_echo_ignore_broadcasts=1
#sysctl-wnet.ipv4.icmp_echo_ignore_all=1
sysctl-wnet.ipv4.icmp_ignore_bogus_error_responses=1
sysctl-wnet.ipv4.ip_conntrack_max=65535
sysctl-wnet.ipv4.tcp_syncookies=1
sysctl-wnet.ipv4.tcp_syn_retries=1
sysctl-wnet.ipv4.tcp_fin_timeout=5
sysctl-wnet.ipv4.tcp_synack_retries=1
sysctl-wnet.ipv4.tcp_syncookies=1
sysctl-wnet.ipv4.route.gc_timeout=100
sysctl-wnet.ipv4.tcp_keepalive_time=500
sysctl-wnet.ipv4.tcp_max_syn_backlog=10000
到这基本就结束了,欢迎广大CentOS爱好者与我们进行交流探讨。
分享到:
相关推荐
在CentOS 5.5操作系统上配置Java环境是开发或运行Java应用程序的基础步骤。下面将详细介绍这个过程,包括所需的软件包、编译工具以及Apache HTTP Server的安装,因为这些通常是与Java环境配置相关的。 首先,我们...
CENTOS5.5 软 RAID1 配置及更换硬盘方案 在本文档中,我们将详细阐述软 RAID1 的配置方法和更换硬盘的步骤。软 RAID1 是一种软件 RAID 方式,它可以将多个硬盘组合成一个 RAID 设备,从而提高数据的安全性和可用性...
总结:CentOS 5.5的安装过程涉及多个步骤,从准备阶段到最终的系统配置,每个环节都需要仔细处理。虽然现在CentOS已经更新到更高级的版本,但了解这个过程对于理解Linux系统的安装原理仍然很有价值。通过这些步骤,...
在本文中,我们将详细介绍如何在CentOS 5.5系统上配置vsftpd(Very Secure FTP Daemon)服务。vsftpd是一款广泛使用的、安全且高效的FTP服务器软件,它支持多种认证方式,并且能够通过多种配置选项来满足不同的需求...
本文将深入解析如何在CentOS 5.5环境下安装LAMP堆栈,以及相关组件的配置细节。 ### 一、系统环境准备 首先,确保你的系统是CentOS 5.5,这是一个基于Linux内核的开源操作系统。此版本发布于2010年,虽然现在已经...
首先,确保您已经安装了 CentOS 5.5。这个版本基于 Red Hat Enterprise Linux 5.5,包含了诸如 Apache 2.2、PHP 5.1.6 和 MySQL 5.0 等组件。为了获取最新的 ISO 映像,您可以参考提供的链接:...
### Linux CentOS5.5 Samba服务配置详解 #### 一、概述 Samba服务是Linux系统中用于实现SMB(Server Message Block)协议的服务程序,主要用于实现Linux与Windows系统之间的文件共享和打印服务。本文将详细介绍...
在CentOS 5.5操作系统中配置FTP服务并采用虚拟用户进行权限管理,可以提高系统的安全性,因为虚拟用户不直接对应于系统用户。以下是一个详细的步骤指南,涵盖了从安装依赖库到配置FTP服务以及创建虚拟用户的整个过程...
【CentOS 5.5 LIVE CD 种子】 CentOS 5.5 是一个基于Linux的开源操作系统,它是一个社区支持的项目,旨在提供与Red Hat Enterprise Linux (RHEL)高度兼容的稳定环境。LIVE CD 版本是CentOS的一种发行方式,允许用户...
### CentOS 5.5 下 Oracle 10g 安装指南 #### 一、环境准备 在开始安装 Oracle 10g 数据库之前,需要确保操作系统环境已经准备好。本指南适用于 CentOS 5.5 64位系统。操作系统版本:Red Hat Enterprise Linux 5.5...
在CentOS 5.5b操作系统上安装LAMP涉及以下步骤: 一、准备工作 首先,确保系统具备必要的编译工具,如gcc、gcc-c++和make。这些工具可以通过`yum`包管理器安装。如果无法联网,可以使用安装光盘作为yum源。具体...
在Linux环境下,特别是CentOS 5.5 64位系统上安装Oracle 10g(版本10.2.0.1)并进行升级(至10.2.0.5)是一个涉及多步骤和多个依赖项的过程。以下是安装过程中的一些关键知识点: 1. **解决依赖问题**:在安装...
【CentOS 5.5 安装教程】 在本文中,我们将详细介绍如何安装CentOS 5.5这一历史悠久的Linux发行版。CentOS是一个基于Red Hat Enterprise Linux (RHEL)源代码的开源操作系统,旨在提供与RHEL高度兼容的稳定环境,但...
总的来说,CentOS 5.5 Mondo Rescue 离线包是Linux系统管理者的得力助手,它提供了安全、全面的备份方案,确保在系统出现问题时能够迅速恢复,保障业务连续性。尽管CentOS 5.5已经不再维护,但其遗留的知识和工具,...
以上是CentOS 5.5环境下MySQL的基本配置流程,确保正确执行每个步骤,以实现稳定的数据库服务、数据安全和高可用性。在实际环境中,还需要根据具体需求调整配置参数,例如内存使用优化、表引擎选择、性能监控等。
Linux CentOS 5.5 是一个基于Red Hat Enterprise Linux (RHEL)的开源操作系统,它提供了稳定、安全且功能丰富的服务器平台。以下是对安装过程的详细说明: 1. **启动安装**:首先,需要通过光盘或者USB驱动器引导...
在虚拟机上安装Linux CentOS 5.5是一个常见的任务,特别是在学习和测试环境中。...此外,由于CentOS 5.5已经非常老旧,不再接受安全更新,所以仅用于学习或对旧系统兼容性的测试,不推荐用作生产环境。
CentOS 5.5是一款基于Red Hat Enterprise Linux (RHEL) 5.5版本的开源操作系统,专为需要稳定性和安全性的工作环境设计。本教程旨在提供一个全面的指南,帮助用户在虚拟机或物理机器上顺利安装CentOS 5.5。 #### 二...