资讯专栏INFORMATION COLUMN

前端新手的ubuntu初始化设置

GeekQiaQia / 2133人阅读

摘要:通过协议进行远程链接,登录云主机。将达到这些效果能够将访问的域名转发到端口的应用去处理对的访问将用的静态站呈现在解析中添加相应域名解析的记录重载的设置这时我们的静态站应该就可以通过访问了。


远程登录,增加用户,提升权限

linux允许多人、同时、在不同的地点,操作同一台服务器。
可以设置多个用户,分组,可以修改设置每个用户的权限。
通过ssh协议进行远程链接,登录云主机。

当拥有了一台云主机后:

先用root账户进行ssh远程登录
ssh -p [port] username@ip_address

用命令添加其他用户,并将用户拉入更高权限的组。
useradd manager -m 增加名为manager的用户,-m参数会同时在/home目录下建立manager目录
passwd manager设置manager用户的密码
gpasswd -a manager sudo 将manager添加到sudo组,-a参数表示添加用户到组

在sudoers文件中设置新增用户的权限,打开sudoers文件
vi /etc/sudoers

在root ALL=(ALL:ALL) ALL的下面一行,添加一行
manager ALL=(ALL:ALL) ALL

我在实作中执行完第3步后,不执行第4步,该用户也是具有管理员权限的。

要使用ssh进行远程免密链接,需要在我们的本地机上生成ssh的公钥和私钥。
这两把钥匙文件,其中公钥文件将交给远程服务器保存。
每次本地机进行ssh链接远程主机时,本地机会先用自己的私钥进行加密,而远程主机会用保存的本地机的公钥进行解密,确认对方的身份之后就可允许对方登录。
这么做就实现了免密登录。如果远程主机没有持有对方的公钥,那么本地机就需要输入自己的用户密码登录。

安装git

主要使用git将本地机代码push到服务器上。或者在服务器上从github clone代码。

首先更新apt-get的源,顺便升级已安装的软件,接着安装git包。
apt-get update
apt-get upgrade
apt-get install git

给manager用户在服务器上生成一个ssh公钥和私钥
ssh-keygen该命令会在用户根目录下创建.ssh目录,并生成id_rsa和id_rsa.pub文件

在本地机用户目录下的.ssh文件夹内,启动命令行工具,将本地机的公钥保存到服务器上
ssh-copy-id manager@id_address -p [port] 这行命令会在远端manager目录下生成一个authorized_keys文件。
cat .ssh/authorized_keys 在manager的用户根目录中(/home/manager)用cat命令打印出该文件内容

将服务器的ssh公钥保存到github上

尝试使用git
这里以push一个本地hexo静态站为例:

创建远端仓库
cd /var/repo
git init --bare hexo-blog.git
mkdir /var/www/hexo
vim /var/repo/hexo_static.git/hooks/post-receive 创建一个hooks钩子文件,在文件中添加如下两行
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
chmod +x /var/repo/hexo_static.git/hooks/post-receive 保存后使文件具有可执行权限

在hexo中设置仓库地址
在配置文件中修改如下信息

deploy:
type: git
repo: ssh://[uername]@[ip_address]:[port]/var/repo/hexo_static.git
branch: master

运行hexo d,将hexo静态站推到远端仓库

hexo建站可参考网络文章,或我的这篇
设置防火墙

主要设置iptables的配置项。
这里罗列一个简单的入门配置。
该配置能达到以下防护:

以下具体的端口号(如3989,8080,19898)可根据个人业务修改

只允许80端口和8080端口的http请求

只允许3989 19898端口的ssh访问

屏蔽对80端口在60s内访问超过150次的敏感ip

*filter

# allow all connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow out traffic
-A OUTPUT -j ACCEPT

# allow http https
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 8080 -j ACCEPT

# allow ssh port login
-A INPUT -p tcp -m state --state NEW --dport 3989 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 19898 -j ACCEPT

# ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7

# drop incommin sensitive connections
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 150 -j DROP

# reject all other inbound
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT

开启iptables设置规则 iptables-restore < /etc/iptables.up.rules

设置nginx

安装nginx
sudo apt-get install nginx

设置nginx的配置文件
在/etc/nginx/conf.d下新建一个配置文件,命名为test-8080.conf的文件,填充类似如下内容。将达到这些效果:能够将访问app.test.cn的域名转发到8080端口的应用去处理;对blog.test.cn的访问将用hexo的静态站呈现

upstream test {
  server 127.0.0.1:8080;
}
server {
  listen 80;
  server_name app.test.cn;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_pass http://test;
    proxy_redirect off;

  }
}
server {
  listen 80;
  listen [::]:80 ipv6only=on;
  server_name blog.test.cn;
  root /var/www/hexo;
  index index.html index.htm;
}

在dns解析中添加相应域名解析的a记录

重载nginx的设置
sudo nginx -s reload

这时我们的hexo静态站应该就可以通过blog.test.cn访问了。

设置mongodb

参阅官网的安装教程进行mongodb的安装

修改mongodb的默认端口
sudo vi /etc/mongod.conf 在该文件将port更改为你想更改的port

去/etc/iptables.up.rules增加你设置的端口

重载iptables设定
iptables-restore < /etc/iptables.up.rules
如遇错误可尝试重启服务器,在进行重载

启动mongodb
sudo service mongod restart

打开mongo命令行工具
mongo --host 127.0.0.1:[port]

成功链接数据库说明安装配置正确

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23805.html

相关文章

  • 写给docker新手文章

    摘要:为什么要用对开发者来说启动速度快传统虚拟机需要数分钟的启动时间秒秒钟启动。开发者只需要代码到版本管理即可,接下来的自动测试,自动构建,自动部署都交给吧更轻松的扩展。 1. 前言 相见恨晚用来形容我对docker的热爱再合适不过了,自从用了docker,开发环境也不安装了,系统想换就换了,部署更是一键部署,再也不用担心在这台机器上跑的好好的,其它机器有问题了... 写这篇文章,也是为do...

    svtter 评论0 收藏0
  • 阿里云ubuntu新手建站

    摘要:输入最后一个扇区编号因为这里仅创建一个分区,所以按回车键采用默认值。新分区上创建一个文件系统,运行命令。如果出现新建文件系统的信息,说明挂载成功,可以使用新的文件系统了。挂载操作完成后,不需要重启实例即可开始使用新的文件系统。 新买的服务器选择ubuntu或者停止实例之后更换系统盘选择ubuntu之后,打开远程管理,提示login:后面加上用户名,开始为root。然后下面passwor...

    SmallBoyO 评论0 收藏0
  • 03-Docker新手入门存储篇

    摘要:的数据存储本篇文章来自于官方基于文档的指南学习整理如果英语好的同学其实可以看文档,更加详细。使用卷驱动程序的一种方法是通过运行命令。卷驱动程序通过名称创建卷,而不是像其他示例中的路径。 Docker的数据存储 Author:zhaojunlike@ Email:zhaojunlike@gmail.com 本篇文章来自于官方基于文档的指南学习整理 如果英语好的同学其实可以看文档,更加详...

    XGBCCC 评论0 收藏0
  • 03-Docker新手入门存储篇

    摘要:的数据存储本篇文章来自于官方基于文档的指南学习整理如果英语好的同学其实可以看文档,更加详细。使用卷驱动程序的一种方法是通过运行命令。卷驱动程序通过名称创建卷,而不是像其他示例中的路径。 Docker的数据存储 Author:zhaojunlike@ Email:zhaojunlike@gmail.com 本篇文章来自于官方基于文档的指南学习整理 如果英语好的同学其实可以看文档,更加详...

    voyagelab 评论0 收藏0
  • 数人云工程师手记 | 新手快速入门Docker最新版管理工具

    摘要:在之前公众号的数人云工程师手记基于的集群管理开发实践对的服务发现及负载均衡有详细的介绍。服务名称为服务命名,必须为英文或数字。 本文是数人云9月22日线上微信群分享的文章实录。数人云容器管理面板Crane开源以来,很多小伙伴对它还不是非常了解,数人云工程师金鑫从Crane技术背景、环境准备和使用步骤等方面为大家做了详细的介绍,并整理大家常见的问题逐一进行了解答。 引言 Docker1....

    Tangpj 评论0 收藏0

发表评论

0条评论

GeekQiaQia

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<