跳至正文

CentOS服务器配置笔记


本文将重点涉及

开启sudo用户
ssh server配置
ftp server配置
samba server配置
nfs server配置
防火墙设置
开机启动服务设置
磁盘配额
为新用户配置以上服务
自动备份
其它优化


本文将不涉及

CentOS的安装
源的设置
ftp server中文编码
用户组磁盘配额
除dump外的自动备份方法

我使用的是CentOS 5.7,安装时选了Server版。

更新系统:

# yum update

1、开启sudo用户

因为root存在权限太大、误操作容易导致系统崩溃、多人同时拥有root账号将使通过root进行的hack行为无法判断是哪个人所为等问题,采用sudo用户的方式将权限适当下放,管理系统将安全得多。这也是Debian系的安全策略。

以root用户登录后,先创建一个新用户:

# useradd newnuy
# passwd newnuy

并安装sudo程序:

# yum install sudo

编辑/etc/sudoers,添加全权限的sudo用户newnuy:

# visudo

在该文件中添加如下配置:

1
newnuy  ALL=(ALL)       ALL

下面就转用newnuy用户进行配置。

2、ssh server配置

安装openssh,这样ssh登录就自动打开了:

$ sudo yum install openssh

因为密码登录的方式,每次输入密码很麻烦,而又容易被hack。所以打开基于协议2的rsa和dsa key登录,在/etc/ssh/sshd_config中使用如下配置即可:

1
2
3
Protocol 2
RSAAuthentication yes
PubkeyAuthentication yes

重启sshd:

$ sudo /etc/init.d/sshd restart

3、ftp server配置

安装vsftpd:

$ sudo yum install vsftpd

在/etc/vsftpd/vsftpd.conf中使用如下配置:

1
2
3
4
5
6
anonymous_enable=NO    # 禁止匿名登录
local_enable=YES       # 允许本地用户登录
write_enable=YES       # 允许写入
max_per_ip=2           # 每个ip最多2个线程
local_max_rate=500000  # 500KB/s的速度上限
chroot_local_user=YES  # 不能访问家目录的上层目录

重启vsftpd:

$ sudo /etc/init.d/vsftpd restart

4、samba server配置

windows用户可能会比较钟情于samba共享的方式,因为可以较为直观地读出写入。安装samba:

$ sudo yum install samba

重启samba:

$ sudo /etc/init.d/smb restart

5、nfs server配置

在/etc/exports中添加如下配置内容,将用户pub的家目录以只读方式共享给所有ip的客户机:

1
/home/pub/ *(ro,all_squash)

因为nfs挂载无需密码,虽然可以限制客户机ip,但仍能通过指定ip的方式获取共享目录下的内容,所以建议不要对用户的主目录开启nfs共享。重启nfs:

$ sudo /etc/init.d/nfs restart

6、防火墙设置

设置哪些服务可以通过防火墙:

$ sudo system-config-securitylevel-tui

或者清除防火墙规则:

$ sudo /sbin/iptables -F

7、设置开机启动服务

将ssh、vsftpd、samba、nfs设置为开机启动:

$ sudo /sbin/chkconfig --level 3 sshd on
$ sudo /sbin/chkconfig --level 3 vsftpd on
$ sudo /sbin/chkconfig --level 3 smb on
$ sudo /sbin/chkconfig --level 3 nfs on

8、磁盘配额

/home是单独的分区,在/etc/fstab中使用以下配置使/home以支持磁盘配额的方式被挂载:

1
/dev/sdaX  /home  ext3  defaults,usrquota,grpquota  1 2

然后先卸载/home,再挂载/home:

$ sudo umount /home
$ sudo mount -a

执行以下命令,若包含类似输出则表示/home以支持磁盘配额的方式被成功挂载:

$ mount
/dev/sdaX on /home type ext3 (rw,usrquota,grpquota)

扫描文件系统,并创建相应磁盘配额文件:

$ sudo /sbin/quotacheck -avug

开启磁盘配额:

$ sudo /sbin/quotaon -avug

9、应用于新用户

新建用户:

$ sudo useradd test00
$ sudo passwd test00

为该用户开启samba服务并设置初始samba密码:

$ sudo smbpasswd -a test00

对该用户设置磁盘配额:

$ sudo /usr/sbin/edquota -u test00

设置出现的配置文件中的soft和hard项即可,单位KB:

1
2
  Filesystem       blocks       soft       hard     inodes     soft     hard
  /dev/sdaX      13562972   20000000   21000000     247286        0        0

10、自动备份

在/etc/下新建脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
# /etc/dump_back.sh
src_path="/home"
tar_path="/media/backup/"
tar_name="img_home_backup_"
tar_name2="2_img_home_backup_"
for((i=0; i<=9; i=i+1))
do
    if [ ! -f "${tar_path}${tar_name}$i" ]; then
        /sbin/dump -"$i"uf "${tar_path}${tar_name}$i" ${src_path}
        /bin/chmod 400 "${tar_path}${tar_name}$i"
        break
    fi
done
if [ $i == 9 ]; then
    for((j=0; j<=9; j=j+1))
    do
        mv "${tar_path}${tar_name}$j" "${tar_path}${tar_name2}$j"
    done
fi

这个脚本每次执行时,会依次对/home利用dump做0-9级备份。当然,需要可执行权限:

$ sudo chown 744 /etc/dump_back.sh

将这个脚本添加到守护进程中,每晚22时开始执行:

$ sudo crontab -e

在打开的文件中写入:

1
0 22 * * * /etc/dump_back.sh

重启守护进程服务:

$ sudo /etc/init.d/crond restart

11、PATH变量扩展、bash补全优化、系统时间校正

CentOS默认的PATH变量有点不全,可以通过在/etc/profile末加入以下内容适当扩展:

1
export PATH=/sbin:/usr/sbin:/usr/local/sbin:$PATH

优化bash shell补全:

$ sudo yum install bash-completion

并在/etc/bashrc中添加如下配置内容:

1
2
3
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

系统时间与网络同步:

$ sudo yum install ntp
$ sudo ntpdate us.pool.ntp.org

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注