本文将重点涉及
开启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 |