搭建Linux系统的VPS的步骤教程

搭建Linux系统的VPS的步骤教程,第1张

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 操作系统 。有用户想要在Linux上搭建vps这篇 文章 主要介绍了实例讲解搭建Linux系统的VPS的步骤,包括防火墙和SSH等基本软件的部署 方法 ,非常细致,需要的朋友可以参考下

前期准备

需要购买一台拥有 root 权限的 VPS ,我选择的是 搬瓦工 ,当时购买的是 512 M 内存 5 G SSD,500 G 流量/月, 9.99 刀每年,但是好像现在这种低价套餐已经结束了。有意的朋友可以看一下其他的套餐或者别的公司的 VPS。有的朋友说 DigitalOcean 的速度非常快,看YouTube直接 1440p,但是我还没测试过,目前搬瓦工的速度能满足我的需求,而且 DO 的价格比较昂贵。

服务器购买后,安装 CentOS7,因为以下教程都是基于 CentOS7 的,安装新的 OS 后,搬瓦工会告诉你 SSH 的端口和 root 的密码,这些是自己无法自定义的,要记住了如果实在忘了也可以重置 root 密码,或者直接使用搬瓦工提供的在线SSH登录来操作也可,就是反应比较慢,所以我们以后还是常用 ssh 登录来配置 VPS ,Mac 下直接使用终端就好,win 下自行寻找一个 ssh 工具就好。

登录 ssh 的命令:

复制代码代码如下:

$ ssh -p vps 端 口号 root@vpsIP 地址

登录上以后就相当于在本地操作一样了,你可以使用各种 Linux 命令来操作了。

配置防火墙

如果 SSH 无法登录,那说明防火墙关闭了 SSH 端口,需要通过在线 SSH 登录进去关闭防火墙重新配置。

清除防火墙配置

复制代码代码如下:

$ iptables -F

清除 iptabels 所有表项,同时 nat 设置也没了,但是我们后续的脚本里会配置的,不用担心。如果 SSH 登录正常就不用管防火墙。

安装 firewalld

复制代码代码如下:

$ yum install firewalld firewall-config

$ systemctl start firewalld

P.S. 我在安装完 firewalld 之后然后启动服务的时候一直显示失败,然后重启了一遍服务器就可以正常的启动 firewalld 服务了,有类似情况的朋友可以重启一下服务器。

修改 SSH 端口

复制代码代码如下:

$ vi /usr/lib/firewalld/services/ssh.xml

会出现以下的内容:

复制代码代码如下:

SSH

Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.

将 port=”22”,修改成搬瓦工提供给你的端口号,然后重载 firewalld 就 OK。

vi 的命令: 按 “i” 是编辑模式,编辑后按 “esc” 退出编辑模式,然后按 Shift 输入“:” 和 “wq” 保存退出 vi。

复制代码代码如下:

$ firewall-cmd --permanent --add-service=ssh

$ firewall-cmd --reload

OK,现在准备工作都已就绪,安装了源,安装配置了防火墙,下一步开始搭建服务了。

搭建 Shadowsocks 服务

这个服务是最简单也是最常用的。

安装组件

复制代码代码如下:

$ yum install m2crypto python-setuptools

$ easy_install pip

$ pip install shadowsocks

安装时部分组件需要输入 Y 确认。小内存 VPS 可以分别安装组件。

安装完成后配置服务器参数

复制代码代码如下:

$ vi /etc/shadowsocks.json

写入如下配置:

复制代码代码如下:

{

"server":"0.0.0.0",

"server_port":8388,

"local_address": "127.0.0.1",

"local_port":1080,

"password":"mypassword",

"timeout":300,

"method":"aes-256-cfb",

"fast_open": false,

"workers": 1

}

将上面的 mypassword 替换成你的密码, server_port 也是可以修改的,例如 443 是 Shadowsocks 客户端默认的端口号。

如果需要修改端口,需要在防火墙里打开响应的端口,用 firewalld 操作就比较简单了:

复制代码代码如下:

$ vi /usr/lib/firewalld/services/ss.xml

下面代码粘贴到里面:

复制代码代码如下:

SS

Shadowsocks port

保存退出,然后重启 firewalld 服务:

复制代码代码如下:

$ firewall-cmd --permanent --add-service=ss

$ firewall-cmd --reload

运行命令,启动 Shadowsocks 服务

运行下面的命令:

复制代码代码如下:

$ ssserver -c /etc/shadowsocks.json

至此 shadowsocks 搭建完成,shadowsocks 已经可以使用,如果你没有过高的要求,下面的步骤可以省略,下面是后台运行 Shadowsocks 的步骤。

安装 supervisor 实现后台运行

运行以下命令下载 supervisor:

复制代码代码如下:

$ yum install python-setuptools

$ easy_install supervisor

然后创建配置文件

复制代码代码如下:

$ echo_supervisord_conf >/etc/supervisord.conf

修改配置文件:

复制代码代码如下:

$ vi /etc/supervisord.conf

在文件末尾添加:

复制代码代码如下:

[program:ssserver]command = ssserver -c /etc/shadowsocks.json

autostart=true

autorestart=true

startsecs=3

设置 supervisord 开机启动,编辑启动文件:

复制代码代码如下:

$ vi /etc/rc.local

在末尾另起一行添加:

复制代码代码如下:

$ supervisord

保存退出(和上文类似)。另 centOS7 还需要为 rc.local 添加执行权限:

复制代码代码如下:

$ chmod +x /etc/rc.local

至此运用 supervisord 控制 Shadowsocks 开机自启和后台运行设置完成。重启服务器即可。

搭建 Strongswan 实现在 iOS 上连接 VPN

补充:Linux基本命令

1.ls命令:

格式::ls [选项] [目录或文件]

功能:对于目录,列出该目录下的所有子目录与文件对于文件,列出文件名以及其他信息。

常用选项:

-a :列出目录下的所有文件,包括以 . 开头的隐含文件。

-d :将目录像文件一样显示,而不是显示其他文件。

-i :输出文件的i节点的索引信息。

-k :以k字节的形式表示文件的大小。

-l :列出文件的详细信息。

-n :用数字的UID,GID代替名称。

-F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件“/”表示目录“@”表示符号链接“l”表示FIFOS“=”表示套接字。

2.cd命令

格式:cd [目录名称]

常用选项:

cd .. 返回上一级目录。

cd ../.. 将当前目录向上移动两级。

cd - 返回最近访问目录。

3.pwd命令

格式: pwd

功能:显示出当前工作目录的绝对路径。

相关阅读:Linux主要特性

完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

搭建Linux系统的VPS的步骤相关文章:

1. Linux VPS中使用Crontab实现定时重启任务

2. Linux系统怎么用命令释放内存

3. Linux服务器上的PPTP 搭建方法有哪些

4. VPS怎么设置安全配置

5. Linux查看操作系统安装时间的方法总结

日志文件存放目录: /var/log

[root@xing log]# cd /var/log

[root@xing log]# ls

messages:系统日志

secure:登录日志

————————————————

日志管理服务文件: vim /etc/rsyslog.conf

日志记录的日志级别:最不严重 ->最严重

debug, info, notice, warning, warn (same as warning), err, error (same

as err), crit, alert, emerg, panic (same as emerg)

测试提示:

[ming@xing etc]$ logger -p authpriv.emerg "==mingeror=="

[ming@xing etc]$

Message from syslogd@xing at Jul 18 11:00:41 ...

root: ==mingeror==

登录日志的错误信息同步写入 “/var/log/secure ” 文件中

————————————————

日志的异地备份

日志的异地备份至关重要。防止别人拿到你的root权限;用命令:echo "" >/var/log/secure 直接清空你的登录日志。

配置需备份日志的客户机(172.168.0.254):

[root@xing etc]# vim rsyslog.conf

————————————————

配置文件修改:

#*.* @@remote-host:514

authpriv.* @@172.168.0.1:514

————————————————

[root@xing etc]# setenforce 0 //执行setenforce 0 表示 临时关闭 selinux防火墙。

[root@xing etc]# getenforce

Permissive

[root@xing etc]# service rsyslog restart

————————————————

配置日志记录服务器(172.168.0.1):

[root@xing etc]# vim rsyslog.conf

————————————————

开启接收端口模块

# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

———

配置备份的数据源及日志备份存放文件

:fromhost-ip,isequal,“172.168.0.254” /var/log/client/172.168.0.254.log

————————————————

[root@xing etc]# service rsyslog restart

———————

ss -antpl | grep 514

————————————————

注意:配置成功需关闭双方服务器的防火墙,或者修改防火墙配置。

在我们日常管理与维护服务器个过程中,我们都需要使用远程连接工具,今天我们就一同来总结下Linux常用的安全远程连接工具-OpenSSH。

【远程登录协议】

1、telnet:是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主

机工作的能力。默认使用的是TCP的23号端口,采用C/S架构,在用户登录的过程中传输的信息都是明文信息,安全无法保障,所以不建议用telnet。

2、ssh:为Secure Shell 的缩写,由IETF的网络工作小组所制定;SSH

为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH

协议可以有效防止远程管理过程中的信息泄露问题。默认使用的是TCP的22号端口,也是基于C/S架构,SSH有两个版本v1与v2。

sshv1:基于CRC-32做MAC(消息摘要认证),不安全,强烈建议不使用;

sshv2:基于双方主机的协商选择使用最安全的MAC方式 ,其有如下特点:1、加密机制及MAC机制由双方协商选定;2、基于DH实现密钥交换,基于RSA或DSA实现身份认证;3、客户端通过检查服务器端的主机密钥来判断是否能够继续通信;

【OpenSSH简述】

OpenSSH 是一组用于安全地访问远程计算机的连接工具。它可以作为rlogin、rsh

rcp以及telnet的直接替代品使用。更进一步,其他任何TCP/IP连接都可以通过SSH安全地进行隧道/转发。OpenSSH

对所有的传输进行加密,从而有效地阻止了窃听、连接劫持,以及其他网络级的攻击。OpenSSH 由 OpenBSD project 维护。

登录过程和使用rlogin或telnet建立的会话非常类似。在连接时,SSH

会利用一个密钥指纹系统来验证服务器的真实性。只有在第一次连接时,用户会被要求输入yes进行确认,之后的连接将会验证预先保存下来的密钥指纹。如果保

存的指纹与登录时接收到的不符, 则将会给出警告。 指纹保存在 ~/.ssh/known_hosts中,对于SSHv2指纹,则是

~/.ssh/known_hosts2。

默认情况下,较新版本的OpenSSH只接受SSHv2连接。如果能用版本2则客户程序会自动使用,否则它会返回使用版本1的模式。此外,也可以通

过命令行参数-1或-2来相应地强制使用版本1或2。 保持客户端的版本1能力是为了考虑较早版本的兼容性,建议尽量使用版本2。

【SSH服务器和客户端工作流程】

OpenSSH使用C/S架构:

服务端工具(S):sshd

客户端工具(C):ssh命令、putty、xshell、securecrt、sshshellclient;

【OpenSSH客户端组件-ssh】

配置文本:/etc/ssh/ssh_config

使用方法:

ssh [username@] host [COMMAND]或 ssh -l username host [COMMAND]

-p PORT:指定远程服务器端口;

-l username:指定登录远程主机的用户,不指定则使用当前用户;

username@:等同于 -l username

如果设置了COMMAND,表示使用username账户登录远程主机执行一次指定的命令并返回结果,不会停留在远程主机上;

[root@www ~]# ssh 192.168.0.110 #使用root用户登录;

The authenticity of host '192.168.0.110 (192.168.0.110)' can't be established.

RSA key fingerprint is 01:2e:43:cc:bc:1d:f1:e5:f0:f4:89:78:74:a9:49:44.

Are you sure you want to continue connecting (yes/no)? yes #第一次连接,需手动进行确认;

Warning: Permanently added '192.168.0.110' (RSA) to the list of known hosts.

root@192.168.0.110's password: #输入远程主机root账户的密码;

Last login: Mon May 11 16:44:52 2015 from 192.168.0.104

[root@mailCentOS6 ~]# #登录成功了,远程主机名为mailCentOS6;

[root@mailCentOS6 ~]# ls #显示远程主机root家目录下的文件;

2.sh boot.iso install.log sdb.mbr test1

anaconda-ks.cfg crontab install.log.syslog \temp\test

[root@mailCentOS6 ~]# exit #退出登录;

logout

Connection to 192.168.0.110 closed.

[root@www ~]# ssh root@192.168.0.110 ls #使用root登录远程主机,执行一次ls命令,返回结果便退出;

root@192.168.0.110's password: #第二次连接,就不需要输入yes了,直接输入密码即可;

2.sh

anaconda-ks.cfg

boot.iso

crontab

install.log

install.log.syslog

sdb.mbr

\temp\test

test1

[root@www ~]# #看到了吗,我们当前并没有登录在远程主机;

【OpenSSH服务器端组件-sshd】

配置文件:/etc/ssh/sshd_config(通过修改此文件可以修改ssh的默认监听端口与其他参数)

服务脚本:/etc/rc.d/init.d/sshd

服务启动|停止|重启:serveice sshd start|stop|restart

脚本配置文件:/etc/sysconfig/sshd

配置参数

# man sshd_config 查看配置参数的说明;

# vim /etc/sysconfig/sshd 通过编辑配置文件来修改配置参数;

#+空格+文字:以此格式开头的行表示改行为注释说明;

#+文字:以此格式开头的行表示可启用选项,不改变则表示使用该选项的默认设置,反之使用设定值“#”要去掉哦!

例:#Port 22 如不去掉#且22不变,表示使用默认的22号端口;

若把#Port 22改成port 7777,表示把sshd的监听端口改成7777;

注意:修改参数与配置后,必须重启服务(service sshd restart).

经常需要修改的参数:

[root@www ~]# cat /etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $

# This is the sshd server system-wide configuration file. See

# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with

# OpenSSH is to specify options with their default value where

# possible, but leave them commented. Uncommented options change a

# default value.

#Port 22 #修改默认监听的端口;

port 7777 #把sshd的监听端口改成7777;

#AddressFamily any #监听的地址家族,指定是监听在IPV4上还是IPV6上,any表示所有;

#ListenAddress 0.0.0.0 #指定监听的地址 (0.0.0.0表示本机的所有地址);

#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new

# installations. In future the default will change to require explicit

# activation of protocol 1

Protocol 2

# HostKey for protocol version 1

#HostKey /etc/ssh/ssh_host_key #使用shhv1用到的主机密钥;

# HostKeys for protocol version 2

#HostKey /etc/ssh/ssh_host_rsa_key

#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key

#KeyRegenerationInterval 1h

#ServerKeyBits 1024 #密钥长度;

# Logging

# obsoletes QuietMode and FascistLogging

#SyslogFacility AUTH

SyslogFacility AUTHPRIV

#LogLevel INFO

# Authentication:

#LoginGraceTime 2m #登录宽限期;

#PermitRootLogin yes #是否允许管理员直接登录;

#StrictModes yes

#MaxAuthTries 6 #最大密码输入错误次数;

#MaxSessions 10 #最大会话个数;

#RSAAuthentication yes #是否允许使用RSA机制来认证;

#PubkeyAuthentication yes

#--------中间不长改变的配置参数略----------

Subsystem sftp /usr/libexec/openssh/sftp-server #表示是否启动sftp功能;

# Example of overriding settings on a per-user basis

#Match User anoncvs

# X11Forwarding no

# AllowTcpForwarding no

# ForceCommand cvs server

sshd认证方式:

1、基于口令的认证;

2、基于密钥的认证;

# ssh-keygen -t rsa 用rsa算法生成密钥,默认密钥为id_rsa(私钥), id_rsa.pub(公钥)

# ssh-keygen -f /path/to/somefile -P oldpassword 根据现有的密钥文件生成密钥

-f /path/to/somefile: 密钥文件保存在的位置;

-P '': 指定生成旧密钥时使用的密码;

方法一:把本地主机生成的公钥 id_rsa.pub使用scp复制到远程主机的上,在远程主机使用cat id_rsa.pub>>.ssh/authorized_keys追加该公钥信息,这样就可以实现基于密钥认证的ssh登录;

方法二:# ssh-copy-id -i .ssh/id_rsa.pub USERNAME@HOST

[root@www ~]# ssh-keygen -t rsa #用rsa算法生成密钥;

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): #指定密钥存放路径及名称,一般不用

#修改,直接回车;

Enter passphrase (empty for no passphrase): #输入私钥密码;

Enter same passphrase again: #确认输入私钥密码;

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

c2:f9:c2:3d:4d:ca:52:39:7a:a7:33:de:42:11:d3:8f root@www.99.com

The key's randomart image is:

+--[ RSA 2048]----+

| . |

| o . |

| o o |

| . ...E . |

| + S.. |

| . B.= |

| =.B o |

| ++= |

| .o+. |

+-----------------+

[root@www ~]# ssh-keygen -f .ssh/id_rsa -P '' #根据现有密钥文件重新生成密钥;

Generating public/private rsa key pair.

.ssh/id_rsa already exists.

Overwrite (y/n)? y #提示是否确定要覆盖;

Your identification has been saved in .ssh/id_rsa.

Your public key has been saved in .ssh/id_rsa.pub.

The key fingerprint is:

bf:55:f0:0b:a5:ee:4e:4a:1d:d3:b1:0e:66:ee:55:9b root@www.99.com

The key's randomart image is:

+--[ RSA 2048]----+

| |

| |

| . o |

| * o |

| S O = .|

| . * B oo|

| o * +E |

| . B . |

| o.+ |

+-----------------+

#-----使用方法一:实现通过密钥文件完成身份验证(不需要输入密码)-----

[root@www ~]# scp .ssh/id_rsa.pub root@192.168.0.110:/root/ #使用spc命令复制公钥文件到远程

#主机的用户家目录下的.ss/路径下;

root@192.168.0.110's password: #输入登录远程主机的密码;

id_rsa.pub 100% 397 0.4KB/s 00:00 #提示复制成功;

[root@mailCentOS6 ~]# ls .ssh/ #验证确认文件复制成功;

id_rsa.pub known_hosts

[root@mailCentOS6 ~]# touch .ssh/authorized_keys #路径内没有自动验证密钥文件,创建一个;

[root@mailCentOS6 ~]# cat .ssh/id_rsa.pub >>.ssh/authorized_keys #把公钥追加到自动验证密钥文件;

[root@www ~]# ssh 192.168.0.110

Last login: Mon May 11 20:45:10 2015 from 192.168.0.111

[root@mailCentOS6 ~]# #OK了,看到了没有,不用输入密码我们就直接可以远程登录了!!

#-----使用方法二:实现通过密钥文件完成身份验证(不需要输入密码)-----

[root@mailCentOS6 ~]# rm -f .ssh/authorized_keys #删除原有保存的自动验证密钥文件;

[root@www ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.110 #使用命令自动传输生成自动验证密钥文件;

root@192.168.0.110's password:

Now try logging into the machine, with "ssh 'root@192.168.0.110'", and check in:

.ssh/authorized_keys #提示生成的文件;

to make sure we haven't added extra keys that you weren't expecting.

[root@www ~]# ssh 192.168.0.110 #验证看看是否可以登录;

Last login: Mon May 11 21:02:29 2015 from 192.168.0.111

[root@mailCentOS6 ~]# ls .ssh/ #看到了没有,我们现在已经登录到了mailCentOS6这台主机上了;

authorized_keys known_hosts

【命令补充】

scp: 利用ssh协议在主机之间实现安全文件传输的工具

scp SRC1... DEST

分两种情形:

1、源文件在本机,目标为远程主机

# scp /path/to/somefile... USERNAME@HOST:/path/to/somewhere

源可以是目录或文件有多个,目标必须是目录

2、源文件在远程,本地为目标

# scp USERNAME@HOST:/path/to/somewhere /path/to/somewhere

-r: 复制目录时使用(实现递归复制),scp默认不能复制目录;

-p: 保持源文件的元数据信息,包括mode和timestamp

-q: 静默模式,复制过程不显示状态信息;

-p PORT: 指定ssh协议监听的端口(远程主机)。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/368074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存