<dl id='3vccl'></dl>
  • <ins id='3vccl'></ins>
  • <i id='3vccl'></i>
    <fieldset id='3vccl'></fieldset>
    <i id='3vccl'><div id='3vccl'><ins id='3vccl'></ins></div></i>
    <span id='3vccl'></span>
    <acronym id='3vccl'><em id='3vccl'></em><td id='3vccl'><div id='3vccl'></div></td></acronym><address id='3vccl'><big id='3vccl'><big id='3vccl'></big><legend id='3vccl'></legend></big></address>

      <code id='3vccl'><strong id='3vccl'></strong></code>

        1. <tr id='3vccl'><strong id='3vccl'></strong><small id='3vccl'></small><button id='3vccl'></button><li id='3vccl'><noscript id='3vccl'><big id='3vccl'></big><dt id='3vccl'></dt></noscript></li></tr><ol id='3vccl'><table id='3vccl'><blockquote id='3vccl'><tbody id='3vccl'></tbody></blockquote></table></ol><u id='3vccl'></u><kbd id='3vccl'><kbd id='3vccl'></kbd></kbd>
          1. linux服务器基本安全配置手册

            • 时间:
            • 浏览:9
            • 来源:124软件资讯网

              如果你想要搭建一个Linux服务器  ,而且希望可以恒久维护的话  ,就需要思量宁静性能与速率等众多因素  。一份准确的linux基本宁静设置手册就显得格外主要  。在我本文中就向各人先容在edhat/centos 4,5下的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 ope
              rator 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 检查一下sshd的监听端口对差池 netstat -lnp|grep ssh #iptables开放sshd的6022端口 vi /etc/sysconfig/iptables #若是使用redhat默认规则则增添 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6022 -j ACCEPT #或 iptables -A INPUT -p tcp --dport 6022 -j ACCEPT iptables -A OUTPUT -p udp --sport 6022 -j ACCEPT

              重启iptables 服务

              service iptables restart #测试两个端口是否都能连上  ,连上后再将22端口删除

              详细参考:
              Linux操作系统下SSH默认22端口修改要领

              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 # 蓝牙 chkconfig hidd off # 蓝牙 chkconfig ip6tables off # ipv6 chkconfig ipsec off # vpn chkconfig auditd off #用户空间监控法式 chkconfig autofs off #光盘软盘硬盘等自动加载服务 chkconfig avahi-daemon off #主要用于Zero Configuration Networking  ,一样平常没什么用建议关闭 chkconfig avahi-dnsconfd off #主要用于Zero Configuration Networking ,同上,建议关闭 chkconfig cpuspeed off #动态调整CPU频率的历程  ,在服务器系统中这个历程建议关闭 chkconfig isdn off #isdn chkconfig kudzu off #硬件自动监测服务 chkconfig nfslock off #NFS文档锁定功效  。文档共享支持  ,无需的能够关了 chkconfig nscd off #卖力密码和组的查询  ,在有NIS服务时需要 chkconfig pcscd off #智能卡支持  ,,若是没有可以关了 chkconfig yum-updatesd off #yum更新 chkconfig acpid off chkconfig autofs off chkconfig firstboot off chkconfig mcstrans off #selinux chkconfig microcode_ctl off chkconfig rpcgssd off chkconfig rpcidmapd off chkconfig setroubleshoot off chkconfig xfs off chkconfig xinetd off chkconfig messagebus off chkconfig gpm off #鼠标 chkconfig restorecond off #selinux chkconfig haldaemon off chkconfig sysstat off chkconfig readahead_early off chkconfig anacron off

              需要保留的服务

              crond , irqbalance , microcode_ctl ,network , sshd ,syslog

              由于有些服务已运行  ,以是设置完后需重启

              chkconfig 

              12.阻止系统响应任何从外部/内部来的ping请求

              既然没有人能ping通你的机械并收到响应 ,你可以大大增强你的站点的宁静性 。你可以加下面的一行下令到/etc/rc.d/rc.local  ,以使每次启动后自动运行  。

              echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #这个可以不做哈

              13.修改“/etc/host.conf”文件

              “/etc/host.conf”说明晰怎样剖析地址 。编辑“/etc/host.conf”文件(vi /etc/host.conf)  ,加入下面这行: # Lookup names via DNS first then fall back to /etc/hosts. order hosts,bind # We have machines with multiple IP addresses. multi on # Check for IP address spoofing. nospoof on

              第一项设置首先通过DNS剖析IP地址  ,然后通过hosts文件剖析  。第二项设置检测是否“/etc/hosts”文件中的主机是否拥有多个IP地址(好比有多个以太口网卡)  。第三项设置说明要注重对本机未经允许的电子诱骗  。

              14.不允许从差别的控制台举行root上岸

              "/etc/securetty"文件允许你界说root用户可以从谁人TTY装备上岸 。你可以编辑"/etc/securetty"文件  ,再不需要上岸的TTY装备前添加“#”标志  ,来克制从该TTY装备举行root上岸  。

              在/etc/inittab文件中有如下一段话:

              # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6

              系统默认的可以使用6个控制台  ,即Alt+F1,Alt+F2...  ,这里在3  ,4  ,5 ,6前面加上“#”  ,注释该句话  ,这样现在只有两个控制台可供使用 ,最好保留两个 。然后重新启动init历程  ,改动即可生效  !

              15.克制Control-Alt-Delete键盘关闭下令

              在"/etc/inittab" 文件中注释掉下面这行(使用#):
              ca::ctrlaltdel:/sbin/shutdown -t3 -r now
              改为:
              #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
              为了使这项改动起作用  ,输入下面这个下令:
              # /sbin/init q

              16.用chattr下令给下面的文件加上不行更改属性 。

              [root@c1gstudio]# chattr +i /etc/passwd [root@c1gstudio]# chattr +i /etc/shadow [root@c1gstudio]# chattr +i /etc/group [root@c1gstudio]# chattr +i /etc/gshadow

              【注:chattr是改变文件属性的下令  ,参数i代表不得恣意更动文件或目录,此处的i为不行修改位(immutable)  。检察要领:lsattr /etc/passwd  ,打消为chattr –i /etc/group】

              增补说明:这项指令可改变存放在ext2文件系统上的文件或目录属性  ,这些属性共有以下8种模式:

               a:让文件或目录仅供附加用途 。  b:不更新文件或目录的最后存取时间 。  c:将文件或目录压缩后存放  。  d:将文件或目录清除在倾倒操作之外 。  i:不得恣意更动文件或目录  。  s:保密性删除文件或目录 。  S:即时更新文件或目录  。  u:预防以外删除  。

              参数:

               -R 递归处置惩罚  ,将指定目录下的所有文件及子目录一并处置惩罚  。  -v<版本编号> 设置文件或目录版本  。  -V 显示指令执行历程  。  +<属性> 开启文件或目录的该项属性  。  -<属性> 关闭文件或目录的该项属性  。  =<属性> 指定文件或目录的该项属性 。

              17.给系统服务端口列表文件加锁

              主要作用:防止未经允许的删除或添加服务

              chattr +i /etc/services 【检察要领:lsattr /etc/ services  ,打消为chattr –i /etc/ services】

              18.系统文件权限修改

              Linux文件系统的宁静主要是通过设置文件的权限来实现的  。每一个Linux的文件或目录  ,都有3组属性  ,划分界说文件或目录的所有者  ,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)  。特殊注重  ,权限为SUID和SGID的可执行文件 ,在法式运行历程中  ,会给历程赋予所有者的权限  ,若是被黑客发现并使用就会给系统造成危害 。

              (1)修改init目录文件执行权限:

              chmod -R 700 /etc/init.d/* (递归处置惩罚 ,owner具有rwx  ,group无  ,others无)

              (2)修改部门系统文件的SUID和SGID的权限:

              chmod a-s /usr/bin/chage chmod a-s /usr/bin/gpasswd chmod a-s /usr/bin/wall chmod a-s /usr/bin/chfn chmod a-s /usr/bin/chsh chmod a-s /usr/bin/newgrp chmod a-s /usr/bin/write chmod a-s /usr/sbin/usernetctl chmod a-s /usr/sbin/traceroute chmod a-s /bin/mount chmod a-s /bin/umount chmod a-s /sbin/netreport

              (3)修改系统指导文件

              chmod 600 /etc/grub.conf chattr +i /etc/grub.conf 【检察要领:lsattr /etc/grub.conf ,打消为chattr –i /etc/grub.conf】

              19.增添dns

              #vi /etc/resolv.conf nameserver 8.8.8.8 #google dns nameserver 8.8.4.4

              20.hostname 修改

              #注重需先把mysql、postfix等服务停了 1.hostname servername 2.vi /etc/sysconfig/network service network restart 3.vi /etc/hosts

              21.selinux 修改

              开启selinux可以增添宁静性  ,但装软件时可能会遇到一些希奇问题
              以下是关闭要领

              #vi /etc/selinux/config

              改成disabled

              22.关闭ipv6

              echo "alias net-pf-10 off" >> /etc/modprobe.conf
              echo "alias ipv6 off" >> /etc/modprobe.conf
              #vi /etc/sysconfig/network
              NETWORKING_IPV6=no

              重启服务

              Service ip6tables stop Service network restart

              关闭自动启动

              chkconfig --level 235 ip6tables off

              23.设置iptables

              iptables 默认宁静规则剧本

              重启系统

              以上大部门设置可以运行剧本来完成 。linux宁静设置快捷剧本

              设置完成后重启系统

              其它设置项

              linux调整系统时区/时间的要领

              把/usr/share/zoneinfo里响应的时区与/etc/localtime做个软link.好比使用上海时区的时间:ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 若是要使用UTC计时方式 ,则应在/etc/sysconfig/clock文件里改UTC=TRUE 时间的设置: 使用date 下令加s参数修改  ,注重linux的时间花样为"月日时分年",也可以只修改时间date -s 22:30:20,若是修改的是年月日和时间  ,花样为"月日时分年.秒",2007-03-18 11:01:56则应写为"date -s 031811012007.56 硬件时间与当前时间更新: hwclock --systohc 若是硬件记时用UTC,则为 hwclock --systohc --utc

              linux调整系统时区/时间的要领

              1) 找到响应的时区文件

              /usr/share/zoneinfo/Asia/Shanghai

              用这个文件替换当前的/etc/localtime文件  。
              步骤: cp –i /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

              选择笼罩

              2) 修改/etc/sysconfig/clock文件  ,修改为:

              ZONE="Asia/Shanghai"
              UTC=false
              ARC=false

              3)
              时间设定成2005年8月30日的下令如下:

              #date -s 08/30/2005

              将系统时间设定成下战书6点40分0秒的下令如下:

              #date -s 18:40:00

              4)同步BIOS时钟 ,强制把系统时间写入CMOS  ,下令如下:

              #clock -w

              安装ntpd

              #yum install ntp #chkconfig --levels 235 ntpd on #ntpdate ntp.api.bz #先手动校准下 #service ntpd start

              设置语言

              英文语言 ,中文支持

              #vi /etc/sysconfig/i18n
              LANG="en_US.UTF-8"
              SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
              SYSFONT="latarcyrheb-sun16"

              tmpwatch 准时扫除

              假设服务器自界说了php的session和upload目录

              #vi /etc/cron.daily/tmpwatch 在240 /tmp 前增添 -x /tmp/session -x /tmp/upload #mkdir /tmp/session #mkdir /tmp/upload #chown nobody:nobody /tmp/upload #chmod 0770 /tmp/upload