服务器安全部署指南
硬件配置
使用阿里云服务器 ECS,基本配置内存需要4G以上
操作系统
Ubuntu 14.04 64位版本(CentOS、Redhat系列内核版本较老,还是2.6系列。
环境配置
a)登陆系统: ssh root@ip
b)自动更新一下:
apt-get update; apt-get upgrade
创建基础账号,原则上服务器禁用root直接登陆。建议创建常规运维账号如 yl。设置登陆密码,部署公钥(维护一下授权运维人员电脑的公钥,将这些部署到运维账号的公钥列表中,下面详细说下)。
# useradd –m –s /bin/bash yl # passwd yl # usermod -G sudo yl
# 将yl 账号放到sudo组中,执行需要root权限的操作的时候
sudo /etc/init.d/php-fpm restart # mkdir –p /home/yl/.ssh; chown –R yl:yl /home/yl/.ssh
创建 authorized_keys 文件,并将授权用户的公钥放里面。
d)配置SSH服务,修改端口,禁用root登陆,禁用密码登陆(确保上面c步骤中公钥部署完成,否则不要做)。
# vi /etc/ssh/sshd_config
e)修改主机名称:
vi /etc/hostname
以及
vi /etc/hosts
f)重启服务器
运维账号登录
重启后,使用新建的运维账号进行登录。
应用环境
部署应用环境 nginx + php
首先nginx的稳定版本和php7.0系列稳定版本。Php需部署Phalcon框架,这个是一个基于C的高性能框架,对于我们自主运维的系统来说,略增加部署成本,但是系统稳定性以及性能等还是很有优势的,研发团队的主用框架以Phalcon为主。
a)Nginx的部署方法,使用官方的发布版本,通过apt管理安装,具体的步骤详见:http://nginx.org/en/linux_packages.html#stable,主要步骤为:1、添加source.list文件;
2、导入公钥key;
3、执行安装命令,依次执行如下命令
$ sudo vi /etc/apt/sources.list.d/nginx.list deb http://nginx.org/packages/ubuntu/ codename nginx deb-src http://nginx.org/packages/ubuntu/ codename nginx $ wget http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo apt-get update && sudo apt-get install nginx
b)PHP7.0的安装。由于PHP7.0的发布较新,目前尚未纳入Ubuntu的官方源中。我们使用第三方apt源,具体步骤如下:
$ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt-get update && sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readline php7.0-soap php7.0-mcrypt php7.0-mbstring php7.0-curl php7.0-bcmath php7.0-xml php7.0-zip php7.0-memcached
c)Phalcon的安装。根据其官方网站的推荐源安装。具体步骤如下:
$ sudo apt-get install curl $ curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash $ sudo apt-get update && sudo apt-get install php7.0-phalcon
d)确认phalcon已经加载(php –m,能够看到phalcon),重启php服务:
$ sudo /etc/init.d/php7.0-fpm restart