centOS安装配置
http://blog.163.com/yxba_02/blog/static/187557620122965035886/
前 言
在 CentOS 安装好之后,安全性以及对硬件的适应性方面,可能并不完全符合我们的实际情况。在这里,对新的 CentOS 系统进行初始环境设置将以如下方面为原则:
1,为了安全,尽最大可能将访问限制限制到可能的最大程度;
2,为了节省内存及 CPU 使用率(以及安全方面的考虑),尽最大可能将不需要的服务关闭;
3,为了减少误操作可能带来的损失,平时通过 wheel 组用户登录进行系统管理;
4,为了让系统变的更加轻便、快速,将内核中不需要的模块卸载;
…………
CentOS 5.4 的安装后初始环境设定
安装网上有许多教程,这里不再赘述。安装完毕重新启动系统后,出现如下的状态:
CentOS release 5.4 (Final)
Kernel 2.6.18-164.el5 on an i686
sample login: ← 根据安装时网络设置的情况的不同,这里以“sample”为例,默认为“localhost”,其位置显示的是你设置好的主机名。
[1] 系统的登录与退出
sample login: root ← 用root用户来登录系统,输入用户名root
Password: ← 在这里输入安装时设置的root密码,输入时密码不会被显示
[root@sample ~]# ← root用户登录成功,提示符为“#”。若一般用户登录成功后,提示符为“$”
[root@sample ~]# exit ← 退出系统,或者用logout。login是登陆,logout就是退出了。
sample login: ← 退出系统成功
[2]建立 ~/.vimrc,设置家目录的永久行号 (.vimrc为使用VI的环境设置文件,自己可根据须要设置。)
[root@sample ~]# vi /root/.vimrc 注意:这里用的绝对路径指定在root的家目录,根据自己须要更改。.vimrc行号文件一定要建在用户的家目下,而且只对该用户有效。
在文件里添加set nu,然后保存退出。
[3]把系统语言改成英文版(主要是为了方便更好的学习) 我认为如果想学习好linux,最好不要用中文
[root@sample ~]#vi /etc/sysconfig/i18n 修改如下:
把默认的 LANG="zh_CN.UTF-8" 注释掉,改成LANG="en"。注释可以在前面加“#”号!
[4] 一般用户的建立与删除
[root@sample ~]# useradd centospub ← 建立用户名为 centospub 的一般用户,这里根据自己须要更改用户
[root@sample ~]# passwd centospub ← 为用户 centospub 设置密码
Changing password for user centospub.
New UNIX password: ← 输入密码(密码不会被显示)
Retype new UNIX password: ← 再次输入密码确认两次密码一致
passwd: all authentication tokens updated successfully. ← 密码设置成功
[root@sample ~]# userdel -r centospub ← 删除用户名为 centospub 的一般用户。注意,这里加参数-r是因为要连同其用户家目录一起删除。
[5] 通过一般用户登录为root用户
因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,建议在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。
[centospub@sample ~]$ ← 提示符为“$”,说明当前状态为一般用户centospub登录在系统中
[centospub@sample ~]$ su - ← 输入登录为root用户的命令。提示:如果当前为root用户,要切到普通用户,则输入“su 普通用户”,此时则不须密码。
Password: ← 输入root密码(密码不会被显示),回车
[root@sample ~]# ← 成功登录为root用户,提示符变为“#”
[root@sample ~]# exit ← 回到一般用户的登录状态。这里也不可以用"logout",不信你试一下,会报错,原因想必你应该知道!
[centospub@sample ~]$ ← 提示符变为“$”,回到了一般用户centospub登录系统的状态
[6] 建立管理员组内一般用户
在 一般情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统管理员级别的配置。但是,为了更进一步加强系统的安全性,有必要建立一个管理员的组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root用户。在UNIX下,这个组的名称通常为“wheel”。
[root@sample ~]# usermod -G wheel centospub ← 将一般用户 centospub 加在管理员组wheel组中。参数-G 修改用户所属的附加群组。
[root@sample ~]# vi /etc/pam.d/su ← 打开这个配置文件
#auth required /lib/security/$ISA/pam_wheel.so use_uid ← 找到此行,去掉行首的“#”
auth required /lib/security/$ISA/pam_wheel.so use_uid ← 变为此状态(在第6行的位置)
[root@sample ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs ← 利用管道符添加语句到行末,可以查看/etc/login.defs以检查
以上操作完成后,可以再建立一个新用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户,提示su: incorrect password(不正确的密码)
[7]屏蔽掉ctrl+alt+del重启电脑的快捷键。安全第一,防止习惯性的和windows一样重启电脑!
#vi /etc/inittab
:32 将第32行注释掉,在行首加#号;
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[8] root邮件的转送
在系统出现错误或有重要通知发送邮件给root的时候,让系统自动转送到我们通常使用的邮箱中,这样方便查阅相关报告和日志。
[root@sample ~]# vi /etc/aliases ← 编辑aliases,添加如下行到文尾
root: yourname@yourserver.com ← 加入自己的邮箱地址
[root@sample ~]# newaliases ← 重建aliasesdb
/etc/aliases: 79 aliases, longest 19 bytes, 825 bytes total
[root@sample ~]# echo test | mail root ← 发送测试邮件给root
如果成功的话,会在刚刚填入的 yourname@yourserver.com 的邮箱中收到测试的邮件。
[9] 配置或修改网卡配置文件
不联网是很痛苦的,所以必须作一些基本的设置,我这里以局域网为例,如果采用ADSL请参考其它相关文章。网卡的配置有多咱方式,分别介绍:
1.临时配置网卡IP地址 注意:既然是临时的,那么注销和重启将失效。
[root@sample ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
#ifup eth0 启用eth0网卡 (ifdown eth0 关闭)
2.图形命令配置
#setup 或者:netconfig 或者:#system-config-network-tui
如果netconfig命令找不到,则挂载光盘,安装netconfig包
启动网卡
#service network restart
3.脚本配置或修改网卡配置文件
[root@sample ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 这里eth0为第一块网卡,自己根本须要配置多个时更改。
DEVICE=eth0 //设备名
ONBOOT=yes //开机启动
BOOTPROTO=static //IP地址的获取方式(静态和DHCP)
IPADDR=192.168.10.3 //IP地址
NETMASK=255.255.255.0 //子网掩码
注意:以上几种方法配置好后都必须重启网卡服务:#service network restart (共有参数,start/stop/restart/status ,推荐重启用restart)
[10]停止打印服务
如果不准备提供打印服务,停止默认被设置为自动启动的打印服务。
[root@sample ~]# /etc/rc.d/init.d/cups stop ← 停止打印服务
Stopping cups: [ OK ] ← 停止服务成功,出现“OK”
[root@sample ~]# chkconfig cups off ← 禁止打印服务自动启动
[root@sample ~]# chkconfig --list cups ← 确认打印服务自启动设置状态
cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off ← 0-6都为off的状态就OK(当前打印服务自启动被禁止中)
[11]停止ipv6
在CentOS默认的状态下,ipv6是被启用的状态。因为我们不使用ipv6,所以,停止ipv6,以最大限度保证安全和快速。
首先再次确认一下ipv6功能是不是被启动的状态。
[root@sample ~]# ifconfig -a ← 列出全部网络信息
eth0
Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0x1400
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)
sit0
Link encap:IPv6-in-IPv4 ← 确认ipv6是被启动的状态
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
然后修改相应配置文件,停止ipv6。
[root@sample ~]# vi /etc/modprobe.conf ← 修改相应配置文件,添加如下行到文尾:
alias net-pf-10 off
alias ipv6 off
[root@sample ~]# shutdown -r now ← 重新启动系统,使设置生效
最后确认ipv6的功能已经被关闭。
[root@sample ~]# ifconfig -a ← 列出全部网络接口信息
eth0 Link encap:Ethernet HWaddr 00:0C:29:B6:16:A3
inet addr:192.168.0.13 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feb6:16a3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10288 (10.0 KiB) TX bytes:9337 (9.1 KiB)
Interrupt:185 Base address:0x1400 lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:952 (952.0 b) TX bytes:952 (952.0 b)
(确认ipv6的相关信息没有被列出,说明ipv6功能已被关闭。)
[12]关闭增强安全 (SELinux) 的缺省策略
禁用SELinux方法有两种:
1、命令方式下编辑/etc/sysconfig/selinux,把SELINUX=permissive改成SELINUX=disabled。需要提醒的是,修改SELINUX或者SELINUXTYPE后,只有在下次重启机器的时候修改方可生效。
2、图形界面方式修改SELinux,这里不再赘述。(其实有好多配置都可在图形下操作的)
CentOS下的账户管理
http://www.cnblogs.com/mophee/archive/2013/03/27/2984130.html
在Linux中,每个文件都分3类权限:账户本身的权限,账户所在群组的权限和其它权限。账户和群组是多对多的关系,即一个账户可以属于多个群组,一个群组可以包含多个账户。但是,对于每一个已登录的账户,只能存在一个当前生效的群组(初始群组)。
账户管理相关配置文件如下:账户信息文件是/etc/passwd、账户密码文件是/etc/shadow、群组信息文件是/etc/group、群组密码文件是/etc/gshadow。
1、/etc/passwd文件怎么看
如上图,/etc/passwd文件中每一行为一个账户,以冒号作为分割的每个字段意思按序号分别如下:
[1] 账户名。改名使用命令usermod -l
[2] 密码,该字段已启用。账户密码在/etc/shadow文件配置
[3] UID,账户的唯一标识。影响该字段值的命令包括:useradd -u、usermod -u
[4] GID,初始群组的唯一标识,关联/etc/group文件的第3个字段。该群组为账户默认的有效群组(有效群组可以使用newgrp命令进行切换)。影响该字段值的命令包括:useradd -g、usermod -g
[5] 描述。影响该字段值的命令包括:useradd -c、usermod -c
[6] 家目录绝对路径。影响该字段值的命令包括:useradd -d、usermod -d
[7] shell,账户默认启用的shell,当为/sbin/nologin时账户无法登录。账户能使用的shell可以用命令chsh -l查询(查询结果为/etc/shells文件的内容)。影响该字段值的命令包括:useradd -s、usermod -s
2、/etc/shadow文件怎么看
如上图,文件/etc/shadow的每一行对应一个账户的密码信息,以冒号作为分割的每个字段意思按序号分别如下:
[1] 账户名,关联/etc/passwd文件的第1个字段
[2] 密码,加密后的密文,加密算法由/etc/login.defs文件中的ENCRYPT_METHOD指定,此处为SHA512。影响该字段值的命令包括:usermod -L(前置!!冻结)、usermod -U(解冻)、passwd -l(冻结)、passwd -u(解冻)、
[3] 创建日期,上图显示的是一个数字,该数字表示自1970-01-01以来所经历的天数。影响该字段值的命令包括:chage -d
[4] 密码创建之后需经历多少天才能再次修改,0表示无此限制。影响该字段值的命令包括:passwd -n、chage -m
[5] 密码创建多少天之后就过期,99999天约等于99999/365年,好几百年意味着密码不会过期。影响该字段值的命令包括:passwd -x、chage -M
[6] 密码过期前多少天开始向用户发送警告信息。影响该字段值的命令包括:passwd -w、chage -W
[7] 密码过期后还能宽限多少天,在此时间段内用户还可以登录和修改密码,过了这个时间段用户就不能够登录了。影响该字段值的命令包括:useradd -f、usermod -f、passwd -i、chage -I
[8] 失效日期,一个数字,该数字表示自1970-01-01以来所经历的天数。过了这一天用户的密码就失效,无论是否过期均不可再登录。影响该字段值的命令包括:useradd -e、usermod -e、chage -E
[9] 保留
3、/etc/group文件怎么看
如上图,文件/etc/group的每一行对应一个群组,以冒号作为分割的每个字段意思按序号分别如下:
[1] 群组名。改名使用命令:groupmod -n
[2] 密码,已启用,群组密码在/etc/gshadow文件中配置
[3] GID,群组唯一标识,由/etc/passwd文件中的第4个字段关联,作为对应账户的初始群组。影响该字段值的命令包括:groupadd -g、groupmod -g
[4] 帐号名列表,以逗号隔开。这些帐号可以主动切换为该群组的成员,如上图用户mophee(初始群组为mophee)可使用newgrp命令将其生效群组切换为mysql或mail。影响该字段值的命令包括:useradd -G、usermod -[a]G
4、/etc/gshadow文件怎么看
如上图,文件/etc/gshadow中的每一行对应一个群组的密码信息,以冒号作为分割后的每个字段意思按序号分别如下:
[1] 群组名,与/etc/group中的群组名对应
[2] 密码,加密后的密文,使用命令gpasswd group_name可设置群组密码,使用gpasswd -r group_name删除密码
[3] 群组管理员,使用命令gpasswd -A user1,... group_name 可设置群组的管理员。注:群组管理员可以为群组成员设置密码
[4] 群组成员,该字段与/etc/group的第4个字段相同且同步更改,除了使用useradd -G、usermod -G命令维护外,还可使用gpasswd -[adM]进行维护。影响该字段值的命令包括:useradd -G、usermod -[a]G
-----------------------------------------------
理论上,修改以上4个配置文件就可以进行账户管理,但不建议这样进行账户管理。Linux提供足够的命令对账户进行管理,虽然这些命令实质上也是修改这4个文件的内容,但建议使用这些命令:
useradd:添加账户
useradd mophee #建立群组mophee,建立账户mophee,建立家目录/home/mophee且权限为700。无密码,无法登录。 useradd -u 519 -g users mophee2 #建立账目mophee2并指定UID为519,指定初始群组为users useradd -r mophee3 #建立系统帐号mophee3,UID和GID范围:100~499,无家目录
usermod:修改账户
userdel:删除账户
userdel mophee #删除账户mophee: #1、从/etc/passwd和/etc/shadow删除; #2、从/etc/group和/etc/gshadow的最后一个字段除移; #3、若其初始群组无其它成员账户,则删除群组 userdel -r mophee #除了删除账户外,还删除其家目录和邮件目录
passwd:账户密码管理
passwd -S mophee #列出帐号mophee相关的密码信息
chage:修改账户密码,一般用户可用此命令修改自己的密码
chage -l mophee #列出帐号mophee相关的密码信息
groupadd:添加群组
groupmod:修改群组
groupdel:删除群组
gpasswd:群组密码、群组管理员和成员管理
groups:查看所属群组
groups mophee #列出帐号mophee所属的群组
newgrp:切换有效群组
----------------------------------------------
与账户管理有关的其它配置文件:/etc/login.defs、/etc/default/useradd(使用命令useradd时的一些默认值)。
1、文件/etc/default/useradd怎么看
GROUP:预设的群组ID
HOME:家目录的基准目录,添加账户且创建其家目录等同于在该基准目录下新建一个与账户名同名的目录,影响/etc/passwd的第6个字段
INACTIVE:设置密码过期后是否失效,-1表示不会失效,影响/etc/shadow的第7个字段
EXPIRE:密码失效日期,影响/etc/shadow的第8个字段
SHELL:默认的shell,影响/etc/passwd的第7个字段
SKEL:创建家目录是参考的初始内容,即创建家目录时会将该目录下的内容复制一份到家目录中
CREATE_MAIL_SPOOL:是否创建对应的mailbox目录,yes/no,yes时会在/var/spool/mail/目录下创建与帐号名同名的目录用于存储该账户的邮件
2、文件/etc/login.defs怎么看
MAIL_DIR:邮件目录的基准目录,一般为/var/spool/mail
PASS_MAX_DAYS:自密码创建之日起到过期的天数,影响/etc/shadow的第5个字段
PASS_MIN_DAYS:密码创建之后不允许更改的天数,影响/etc/shadow的第4个字段
PASS_MIN_LEN:设置密码允许的最短长度,已启用,由pam模块取代该功能
PASS_WARN_AGE:密码过期之前开始发送警告信息的天数,影响/etc/shadow的第6个字段
UID_MIN:小于该数字值的UID均为系统帐号,默认设为500。使用useradd且未添加-r选项时添加的账户UID均大于此值
UID_MAX:系统支持最大的UID值
GID_MIN:与UID_MIN功能类似,影响的是GID
GID_MAX:与UID_MAX功能类似,影响的是GID
CREATE_HOME:默认是否创建家目录,yes/no
UMASK:家目录默认权限的反码,即该值为077时,家目录的权限为700
USERGROUPS_ENAB:设置在使用userdel命令删除账户时,如果其初始群组下没有其它成员账户,是否将群组也删除。yes/no
ENCRYPT_METHOD:加密算法,如SHA512