目前主流的国外vps以linux系统居多,因为linux系统是免费的,对服务商或用户来说都可以省一点钱,况且对于一般的网络应用,linux平台的性能和稳定性都大大优于win平台。唯一的不足就是linux平台的server不采用图形界面,易用性较差,大多数非专业人员配置、操控起来有难度,即使是专业人员,很多操作在命令行下也稍显繁琐,为了解决这个问题,就有了各种基于web的linux平台控制面板,将常用操作图形化,使之便于管理。
在众多linux发行版中,centos是非常优秀的一个,因为它是基于原来的Redhat Linux,是相对于RHEL(Red Hat Enterprise Linux,现已收费)的免费版本,性能优良,可用文档等资源也很丰富。而在众多的面板中,从资源占用、易用性等方面综合考虑,kloxo(原lxadmin)无疑最比较适合vps新手的,而且它的基本功能是免费的,唯一的商业限制是不能绑定超过40个域名,对一般用户来说完全够用。因此centos+kloxo平台是用vps搭建web服务非常不错的选择。
下面分几步来说明拿到vps后初始化设置的步骤,仅作简单记述以备忘。下面的方法主要来自网上收集。
——————————- 第一步 ——————————-
因为拿到的vps一般是安装了centos完全版的,自带有apache等组件,我们要使用kloxo自带的服务器组件,就需要先卸载自带的apache、mysql等。
卸载Mysql
# rpm -qa | grep mysql
mysql-3.23.58-9
php-mysql-4.3.4-11
mod_auth_mysql-20030510-4.1
mysql-server-3.23.58-9
说明:rpm -qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载从最下面的一个包开始,直到卸载掉第一个为止。
比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:
rpm -e mysql-server
说明:rpm -e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下:
rpm -e mod_auth_mysql
卸载Apache
# rpm -qa | grep httpd
卸载PHP
# rpm -qa | grep php
注意:卸载的时候如果卸载不掉,系统一般会提示包的依赖关系,并且列出依赖的包的名称,先卸载提示依赖的包就可以了。如果实在实在有卸载不掉的包,可以加-nodeps这个参数来卸载,比如我们卸载php-4.3.4-11,实在卸不掉了。就用:
rpm -e php-4.3.4-11 -nodeps
命令很强硬,应该行的。
——————————- 第二步 ——————————-
centos系统安全设置
1、更改SSH端口,最好改为10000以上,别人扫描到端口的机率也会下降
vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config
然后修改为port为需要的端口号
以root身份service sshd restart
2、删除系统臃肿多余的账号:
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp 如果你不允许匿名FTP,就删掉这个用户帐号
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers
3、增加普通账号,并禁止root远程登录:
useradd newuser //添加新用户
passwd newuser //修改密码
usermod -G10 newuser
或usermod -G wheel newuser //将用户加入wheel组,允许使用 su – 命令提权成root
vi /etc/ssh/sshd_config
添加一行:
PermitRootLogin no //禁止root远程登录
vi /etc/pam.d/su
#auth required /lib/security/$ISA/pam_wheel.so use_uid ← 找到此行,去掉行首的“#”
echo “SU_WHEEL_ONLY yes” >> /etc/login.defs //以上为禁止不在wheel组的用户使用su -命令
重启sshd服务
#service sshd restart
4、更改下列文件权限,使任何人没有更改账户权限:
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
5、编辑“host.conf”文件(vi /etc/host.conf)加入下面这些行:
order bind,hosts
multi on
nospoof on
chmod 600 /etc/xinetd.conf
vi /etc/xinetd.conf 禁止所有不需要的服务,如:ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等等,也可以直接通过setup命令来设置服务项。
改变了“inetd.conf”文件之后,别忘了给inetd进程发一个SIGHUP信号:
killall -HUP xinetd
chattr +i /etc/xinetd.conf //把inetd.conf设成不可改变,如果要改变xinetd.conf文件,你必须先清除这个不允许改变的标志:
chattr -i /etc/inetd.conf
又是为了服务器安全,可以配置防ping:
先用/sbin/ifconfig查看网卡信息,找到外网网卡名字,如venet0
运行
/sbin/iptables -A OUTPUT -o venet0 -p icmp -j ACCEPT
/sbin/iptables -A INPUT -i venet0 -p icmp –icmp-type echo-reply -j ACCEPT
/sbin/iptables -A INPUT -i venet0 -p icmp –icmp-type echo-request -j DROP
/sbin/service iptables save
看到OK后重启即可。
也可以通过使用MySQLTuner分析优化MySQL。MySQLTuner是一个Perl脚本,用来分析你的MySQL性能,并给出优化建议。
下载,执行:
# wget http://mysqltuner.com/mysqltuner.pl
# chmod +x mysqltuner.pl
# ./mysqltuner.pl
——————————- 第三步 ——————————-
安装kloxo
wget http://download.lxlabs.com/download/kloxo/production/kloxo-install-master.sh
sh ./kloxo-install-master.sh
yum install php-bcmath /*高精度数学运算组件,默认没安装,MD5运算时用到*/
yum check-update /*检查全部更新*/
yum update /*更新全部更新*/
yum clean all /*清理全部缓存的安装文件以节省空间*/
这就安装完了kloxo,可以web登陆面板了。
地址:https://yourdomain:7777/ /*安全连接*/
http://yourdomain:7778/ /*普通链接,常用*/
一般出于安全考虑要在面板里修改掉默认的7777和7778端口,修改后要ssh里运行:
/script/restart
重启kloxo服务使之生效。
下面就可以按照面板里的说明添加网站了。