序言
把你亲亲苦苦码出来的 “孩子” 买个家
还要给你的 “家” 购买个 “名字”
但是 “家” 啥都没,是时候为你的 “家” 做一次构建行动了
这次我是用ubuntu系统
IPtables && Fail2Ban : 给你的家做点安全措施
修改ssh port
进入sshd配置文件中:sudo vim /etc/ssh/sshd_config
修改以下内容1
2
3
4
5
6
7
8# 修改端口 ssh 只能到这个端口进来,不能用0 ~ 1024, 可用范围 1024 ~ 65535
Port *****
# 把root登录关闭
PermitRootLogin no
# 这里修改你登录的用户
AllowUsers <你登录的用户>
重启你的sshsudo service ssh restart
IPtables 设置
这一步需要细心点,建议打开多个连接
清除预设表filter中的所有规则链的规则sudo iptables -F
新建文件sudo vim /etc/iptables.up.rules
1 | *filter |
确定无误后,执行sudo iptables-restore < /etc/iptables.up.rules
启动防火墙sudo ufw enable
让防火墙自动开启:sudo vim /etc/network/if-up.d/iptables
fail2ban:
fail2ban防御性的动作库,通过监控系统的日志文件,根据检查到的任何可疑的行为触发不同的动作,例如给可疑的ip进行ip锁定。
安装fail2ban
sudo apt-get install fail2ban
打开配置文件:
sudo vim /etc/fail2ban/jail.conf
修改
1
2
3bantime=3600
destemail=<自己的邮箱>
action=%(action_mw)s查看fail2ban是否有运行:
sudo service fail2ban status
安装 nvm (node版本管理)
- 执行
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
orwget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
打开新终端登录进去
输入
1
2nvm --version
0.33.8
安装成功!
安装最新的node tls版本
nvm install -v 8.9.4
nvm use v8.9.4
设置node默认版本
nvm alias default v8.9.4
修改npm国内镜像源并安装npm
安装
npm --registry=https://registry.npm.taobao.org install -g npm
查看版本
npm -v
修改sysctl
fs.inotify.max_user_watches:表示同一用户同时可以添加的watch数目(watch一般是针对目录,决定了同时同一用户可以监控的目录数量)
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- (可选)用cnpm替代npm
npm --registry=https://registry.npm.taobao.org install -g cnpm
一般用npm网络不是太慢时,还是建议用npm。
如果是时用npm太慢时,可以用cnpm进行同步下载。cnpm sync <backage-name>
SSL : 让每个人带着白帽子进来
Git 私有仓库 : 托儿所
使用 PM2 管理 node 服务进程
使用 PM2
- 新建文件app.js
mkdir -p ~/webroot/app
cd ~/webroot/app
vim app.js
1 | // app.js |
启动pm2
pm2 start app.js
查看pm2当前运行列表
pm2 list
查看运行中的应用详情信息
pm2 show <app-name>
查看日志
pm2 logs
安装 nginx
解决当前问题,让外网能够访问80端口到我们的网站。
把nginx来自80端口的流量分配给node服务的端口。
因为在某云上可能会预装了apache,所以我们来将他删除掉
update-rc.d -f apache2 remove
sudo apt-get remove apache2
安装 nginx
sudo apt-get install nginx
查看 nginx 版本
nginx -v
在/etc/nginx/conf.d文件中新增配置文件
sudo vim /etc/nginx/conf.d/node-app-8081.conf
1 | upstream app { |
- 修改 /etc/nginx/nginx.conf 文件
sudo vim /etc/nginx/nginx.conf
将下面的#去掉,意思是 去掉server的版本信息 和 加载conf.d文件下的所有.conf
后缀的配置文件1
2
3#server_tokens off;
#include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
- 使用 nginx -t 查看刚刚配置的文件是否有误
sudo nginx -t
显示一下证明没问题1
2nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重启nginxsudo nginx -s reload
orsudo service nginx reload
安装 mongodb
根据官方提供的命令行进行下载和安装。
启动mongodsudo service mongod start
停止mongodsudo service mongod stop
重启mongodsudo service mongod restart
修改端口
进入conf配置
sudo vim /etc/mongod.conf
修改port端口
port: 27017
=>port: 19999
修改防火墙
重新载入防火墙
指定端口进入mongodb
mongo --port 19999
数据库导入
mongorestore -d: 数据库名字 : 数据库备份目录 进入mongodb
mongo
use <db-name>
show tables