
CTO下载-linux服务器基本安全配置手册.pdf
10页linux 服务器基本安全配置手册 linux 服务器 假如你想要搭建一个 Linux 服务器,并且希望可以长期维护的话,就需要考虑安全性能与速度等众多因素一份正确的 linux 基本安全配置手册就显得格外重要在我本文中就向大家介绍在 redhat/centos 下的 Linux 服务器基本安全配置手册 安装注意 1.删除系统特殊的的用户帐号: 禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查, Linux 提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越 容易受到攻击 #为删除你系统上的用户,用下面的命令: [root@c1gstudio]# userdel username #批量删除方式#这里删除“adm lp sync shutdown halt mail news uucp operator games gopher ftp “账号#如果你开着 ftp 等服务可以把 ftp 账号保留下来for i in adm lp sync shutdown halt mail news uucp operator games gopher ftp ;do userdel $i ;done 2.删除系统特殊的组帐号 [root@c1gstudio]# groupdel groupname #批量删除方式 for i in adm lp mail news uucp games dip pppusers pop users slipusers ;do groupdel $i ;done 3.用户密码设置 安装 linux 时默认的密码最小长度是 5 个字节,但这并不够,要把它设为 8 个字节。
修改最短密码长 度需要编辑 login.defs 文件#vi /etc/login.defs PASS_MAX_DAYS 99999 ##密码设置最长有效期(默认值) PASS_MIN_DAYS 0 ##密码设置最短有效期 PASS_MIN_LEN 5 ##设置密码最小长度,将 5 改为 8 PASS_WARN_AGE 7 ##提前多少天警告用户密码即将过期 然后修改 Root 密码 #passwd root New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. 4.修改自动注销帐号时间 自动注销帐号的登录,在 Linux 系统中 root 账户是具有最高特权的如果系统管理员在离开系统之前忘记注销 root 账户,那将会带来很大的安全隐患,应该让系统会自动注销通过修改账户中 “TMOUT”参数,可以实现此功能TMOUT 按秒计算编辑你的 profile 文件(vi /etc/profile), 在“HISTSIZE=“后面加入下面这行: TMOUT=300 300,表示 300 秒,也就是表示 5 分钟。
这样,如果系统中登陆的用户在 5 分钟内都没有动作,那么 系统会自动注销这个账户 5.限制 Shell 命令记录大小 默认情况下,bash shell 会在文件$HOME/.bash_history 中存放多达 500 条命令记录(根据具体的系 统不同,默认记录条数不同)系统中每个用户的主目录下都有一个这样的文件在此笔者强烈建议 限制该文件的大小 您可以编辑/etc/profile 文件,修改其中的选项如下: HISTFILESIZE=30 或 HISTSIZE=30 #vi /etc/profile HISTSIZE=30 6.注销时删除命令记录 编辑/etc/skel/.bash_logout 文件,增加如下行: rm -f $HOME/.bash_history 这样,系统中的所有用户在注销时都会删除其命令记录如果只需要针对某个特定用户,如 root 用户进行设置,则可只在该用户的主目录下修改 /$HOME/.bash_history 文件,增加相同的一行即可 7.用下面的命令加需要的用户组和用户帐号 [root@c1gstudio]# groupadd 例如:增加 website 用户组,groupadd website 然后调用 vigr 命令查看已添加的用户组用下面的命令加需要的用户帐号 [root@c1gstudio]# useradd username –g website //添加用户到 website 组(作为 webserver 的 普通管理员,而非 root 管理员)然后调用 vipw 命令查看已添加的用户 用下面的命令改变用户口令(至少输入 8 位字母和数字组合的密码,并将密码记录于本地机的专门文 档中,以防遗忘) [root@c1gstudio]# passwd username 8.阻止任何人 su 作为 root 如果你不想任何人能够 su 作为 root,你能编辑/etc/pam.d/su 加下面的行: #vi /etc/pam.d/su auth sufficient /lib/security/$ISA/pam_rootok.so debug auth required /lib/security/$ISA/pam_wheel.so group=website 意味着仅仅 website 组的用户可以 su 作为 root. 9.修改 ssh 服务的 root 登录权限 修改 ssh 服务配置文件,使的 ssh 服务不允许直接使用 root 用户来登录,这样减少系统被恶意登录 攻击的机会。
#vi /etc/ssh/sshd_config PermitRootLogin yes 将这行前的#去掉后,修改为: PermitRootLogin no 10.修改 ssh 服务的 sshd 端口 ssh 默认会监听在 22 端口,你可以修改至 6022 端口以避过常规的扫描 注意:修改端口错误可能会导致你下次连不到服务器,可以先同时开着 22 和 6022 两个端口,然后再 关掉 22 端口; 重启 sshd 不会弹掉你当前的连接,可以另外开一个客户端来测试服务; #vi /etc/ssh/sshd_config #增加修改 #Port 22 #关闭 22 端口 Port 6022 #增加 6022 端口 #重启 sshd 服务 service sshd restart 11.关闭系统不使用的服务: cd /etc/init.d #进入到系统 init 进程启动目录在这里有两个方法,可以关闭 init 目录下的服务, 一、 将 init 目录下的文件名 mv 成*.old 类的文件名,即修改文件名,作用就是在系统启动的时候找不到这个服务的启动文件。
二、 使用 chkconfig 系统命令来关闭系统启动等级的服务 注:在使用以下任何一种方法时,请先检查需要关闭的服务是否是本服务器特别需要启动支持的服务,以防关闭正常使用的服务 使用 chkcofig 命令来关闭不使用的系统服务 (level 前面为 2 个减号)要想在修改启动脚本前了解有 多少服务正在运行,输入: ps aux | wc -l 然后修改启动脚本后,重启系统,再次输入上面的命令,就可计算出减少了多少项服务越少服务在运行,安全性就越好另外运行以下命令可以了解还有多少服务在运行: netstat -na --ip 批量方式先停止服务 for i in acpid anacron apmd atd auditd autofs avahi-daemon avahi-dnsconfd bluetooth cpuspeed cups dhcpd firstboot gpm haldaemon hidd ip6tables ipsec isdn kudzu lpd mcstrans messagebus microcode_ctl netfs nfs nfslock nscd pcscd portmap readahead_early restorecond rpcgssd rpcidmapd rstatd sendmai l setroubleshoot snmpd sysstat xfs xinetd yppasswdd ypserv yum-updatesd ;do service $i stop;done 关闭启动服务 for i in acpid anacron apmd atd auditd autofs avahi-daemon avahi-dnsconfd bluetooth cpuspeed cups dhcpd firstboot gpm haldaemon hidd ip6tables ipsec isdn kudzu lpd mcstrans messagebus microcode_ctl netfs nfs nfslock nscd pcscd portmap readahead_early restorecond rpcgssd rpcidmapd rstatd sendmai l setroubleshoot snmpd sysstat xfs xinetd yppasswdd ypserv yum-updatesd ;do chkconfig $i off;done 以下为手动方式及解释,执行批量方式后不需再执行了 chkconfig --level 345 apmd off ##笔记本需要 chkconfig --level 345 netfs off ## nfs 客户端 chkconfig --level 345 yppasswdd off ## NIS 服务器,此服务漏洞很多 chkconfig --level 345 ypserv off ## NIS 服务器,此服务漏洞很多 chkconfig --level 345 dhcpd off ## dhcp 服务 chkconfig --level 345 portmap off ##运行 rpc(111 端口)服务必需 chkconfig --level 345 lpd off ##打印服务 chkconfig --level 345 nfs off ## NFS 服务器,漏洞极多 chkconfig --level 345 sendmail off ##邮件服务, 漏洞极多 chkconfig --level 345 snmpd off ## SNMP,远程用户能从中获得许多系统信息 chkconfig --level 345 rstatd off ##避免运行 r 服务,远程用户可以从中获取很多信息 chkconfig --level 345 atd off ##和 cron 很相似的定时运行程序的服务 注:以上 chkcofig 命令中的 3 和 5 是系统启动的类型,以下为数字代表意思 0:开机(请不要切换到此等级) 1:单人使用者模式的文字界面 2:多人使用者模式的文字界面,不具有网络档案系统(NFS)功能 3:多人使用者模式的文字界面,具有网络档案系统(NFS)功能 4:某些发行版的 linux 使用此等级进入 x windows system 5:某些发行版的 linux 使用此等级进入 x windows system 6:重新启动如果不指定--level 单用 on 和 off 开关,系统默认只对运行级 3,4,5 有效 chkconfig cups off #打印机 chkconfig bluetooth off # 蓝牙 chk。
