基本流程
0.挂载数据盘
1.apt-get update
2.更改root密码 大小写字母+数字+特殊符号
3.新建用户,使用ssh key进行登录,禁止直接密码登录
4.禁止使用ssh登录root
5.更改ssh默认端口
6.配置防火墙 ufw
7.搭建lnmp
8.关闭lnmp, 修改/etc/my.cnf, 把 mysql 目录 重写指向 到 数据盘, 重启 lnmp
9.添加vhost www.localhost.com, 用于将默认配置的 探针, phpmyadmin, ftp 服务移至 其他目录, 并将默认目录 /home/wwwroot/default 改名使其失效
10.修改上传文件大小,上传超时,bug fix php pathinfo
11.安装ftp
12.更改ftp端口, 重启 /etc/init.d/pureftpd restart
13.通过 ufw 开放以上所需要用到的端口
服务器 web站点 目录结构是:
/data/
software/ #存放第三方软件包
lnmp #下载 lnmp 软件包
mysql/ #mysql数据库文件
data #mysql数据
logs #mysql二进制日志
www/ #存放web站点
myweb #我的站点
phpmyadmin #phpmyadmin
ftp #ftp
probe #探针
新建用户
新增用户 test
, 用户主目录 /home/test
, 该用户的登录Shell是 /bin/bash
useradd -s /bin/bash -d /home/test -m test
给与用户添加 sudo
权限
vi /etc/group
在 sudo:x:27: 后面添加用户
sudo:x:27:test
更改用户密码 passwd test
切换新用户,配置用户 ssh
su test
cd
mkdir .ssh
chmod -R 700 .ssh
将生成好的 ssh key 写入 .ssh/authorized_keys 文件中
vi .ssh/authorized_keys #粘贴你的公钥key
chmod 600 .ssh/authorized_keys
登录测试
ssh配置
1.禁止使用ssh登录root
修改 /etc/ssh/sshd_config
将属性 PermitRootLogin
改为 no
2.只允许公钥登录
出于安全考虑,我们需要禁止口令登录,只允许公钥登录。我们在远程主机中,配置 sshd_config
, 将 PasswordAuthentication
设置成 no
vi /etc/ssh/sshd_config
PasswordAuthentication no
3.修改ssh端口
将 ssh 端口 改为 40022
vi /etc/ssh/sshd_config
Port 40022
重启 ssh
配置防火墙 ufw
推荐设置
ufw enable #开启了防火墙并随系统启动
ufw default deny #关闭所有外部对本机的访问(本机访问外部正常)
这样设置已经很安全,如果有特殊需要,可以使用 sudo ufw allow
开启相应服务。如
ufw allow 40022 #允许外部访问 40022 端口
ufw delete allow 40022 #禁止外部访问 40022 端口
搭建lnmp
前往 https://lnmp.org/ 下载最新安装包并进行安装, 下载 安装包 到 /data/software/lnmp 目录下。根据官网 安装 lnmp 和 ftp。
LNMP一键安装包默认的上传大小是50MB,在上传大于client_max_body_size的值时会出现无法上传。
1、修改/usr/local/nginx/conf/nginx.conf 文件,查找 client_max_body_size 将后面的值设置为你想设置的值。
2、修改/usr/local/php/etc/php.ini 文件,查找 post_max_size 和 upload_max_filesize 将后面的值设置为你想设置的大小。
修改完执行/root/lnmp restart,重启完毕即可。
php cgi 默认对 pathinfo 支持是不完全的。 有可能会导致 nignx 运行PHP $_SERVER['PHP_SELF'] 为空。修复方法是设置 php.ini cgi.fix_pathinfo=1