开发网站的时候,常常需要自己配置Linux服务器。

本文记录配置Linux服务器的初步流程,也就是系统安装完成后,下一步要做的事情。这主要是我自己的总结和备忘,如果有遗漏,欢迎大家补充。

下面的操作针对Debian/Ubuntu系统,其他Linux系统也类似,就是部分命令稍有不同。

第一步:root用户登录

首先,使用root用户登录远程主机(假定IP地址是128.199.209.242)。


ssh root@128.199.209.242

这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入yes,表示接受。然后,就应该可以顺利登入远程主机。

接着,修改root用户的密码。


passwd

第二步:新建用户

首先,添加一个用户组(这里假定为admin用户组)。


addgroup admin

然后,添加一个新用户(假定为bill)。


useradd -d /home/bill -s /bin/bash -m bill 

上面命令中,参数d指定用户的主目录,参数s指定用户的shell,参数m表示如果该目录不存在,则创建该目录。

接着,设置新用户的密码。


passwd bill 

将新用户(bill)添加到用户组(admin)。


usermod -a -G admin bill 

接着,为新用户设定sudo权限。


visudo 

visudo命令会打开sudo设置文件/etc/sudoers,找到下面这一行。


root    ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。


root    ALL=(ALL:ALL) ALL
bill    ALL=(ALL) NOPASSWD: ALL

上面的NOPASSWD表示,切换sudo的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。


root    ALL=(ALL:ALL) ALL
bill    ALL=(ALL:ALL) ALL

然后,先退出root用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。


exit
ssh bill@128.199.209.242

第三步:SSH设置

首先,确定本机有SSH公钥(一般是文件~/.ssh/id_rsa.pub),如果没有的话,使用ssh-keygen命令生成一个(可参考我写的SSH教程)。

在本机上另开一个shell窗口,将本机的公钥拷贝到服务器的authorized_keys文件。


cat ~/.ssh/id_rsa.pub | ssh bill@128.199.209.242 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'# 或者在服务器端,运行下面命令

echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys

然后,进入服务器,编辑SSH配置文件/etc/ssh/sshd_config。


sudo cp /etc/ssh/sshd_config ~
sudo nano /etc/ssh/sshd_config

在配置文件中,将SSH的默认端口22改掉,可以改成从1025到65536之间的任意一个整数(这里假定为25000)。


Port 25000

然后,检查几个设置是否设成下面这样,确保去除前面的#号。


Protocol 2PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication noRSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keysUseDNS no

上面主要是禁止root用户登录,以及禁止用密码方式登录。

接着,在配置文件的末尾,指定允许登陆的用户。


AllowUsers bill

保存后,退出文件编辑。

接着,改变authorized_keys文件的权限。


sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/

然后,重启SSHD。


sudo service ssh restart# 或者

sudo /etc/init.d/ssh restart

下面的一步是可选的。在本机~/.ssh文件夹下创建config文件,内容如下。


Host s1
HostName 128.199.209.242
User bill
Port 25000

最后,在本机另开一个shell窗口,测试SSH能否顺利登录。


ssh s1

第四步:运行环境配置

首先,检查服务器的区域设置。


locale

如果结果不是en_US.UTF-8,建议都设成它。


sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
sudo dpkg-reconfigure locales

然后,更新软件。


sudo apt-get update
sudo apt-get upgrade

最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭HTTP、HTTPs、SSH以外的端口,再比如安装Fail2Ban,详细可参考这篇《Securing a Linux Server》。

转载于:https://www.cnblogs.com/peijie-tech/articles/3747887.html

Linux服务器的初步配置流程相关推荐

  1. Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  2. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

  3. 全国战争linux添加eth0,linux服务器双线路接入配置

    linux服务器双线路接入配置 现在有两个专线外接进来分别是移动IP:218.204.242.XXX和电信IP:124.172.245.XXX 服务器的地址eth0和eth1的地址分别是:移动IP:2 ...

  4. linux服务器更改网络配置

    文章目录 前言 一.更改vmware的虚拟网络配置 二.修改window的网络配置 三.修改虚拟机内部的配置 四.映射(选做) 修改hostname 修改hosts 修改windows的配置 验证 前 ...

  5. Linux服务器开发初步

      服务器开发需要考虑的内容很多,比如服务器的架构.稳定性.性能以及负载能力等等. 事实上,在开发服务器的过程中,需要综合考虑各种因素,比如就客户端连接时间较短却又比较频繁的服务器(例如HTTP服务器 ...

  6. linux服务器ntp客户端配置【转】

    转自:https://www.cnblogs.com/kerrycode/archive/2015/08/20/4744804.html 在Linux系统中,为了避免主机时间因为在长时间运行下所导致的 ...

  7. TTN服务器LoRaWAN网关配置流程

    在LoRaWAN物联网网络中,LoRaWAN网关起到了绝对核心的作用,它在整个网络中像是一座桥梁建立起网络服务器与终端节点的通信,下面我们将简单介绍如何使用E890-470LG11网关实现TTN服务器 ...

  8. linux中内核4c,一台Linux服务器(4C8G配置)可以负载百万个连接?

    首先我们来看如何标识一个TCP连接?系统是通过一个四元组来识别,(src_ip,src_port,dst_ip,dst_port)即源IP.源端口.目标IP.目标端口.比如我们有一台服务192.168 ...

  9. linux服务器检查硬件配置,linux怎么查看服务器硬件配置

    你们知道怎么查看服务器的硬件配置信息吗?下面是学习啦小编带来的关于linux怎么查看服务器硬件配置的内容,欢迎阅读! linux怎么查看服务器硬件配置? 1.查看机器所有硬件信息: dmidecode ...

最新文章

  1. java maven清理打包运行
  2. 前端开发之JavaScript基础篇四
  3. Unity C# Sting.Format的学习
  4. rqt teb参数动态调试工具_16.ROS常用工具:Rviz/rqt
  5. python flask上传文件_Python-Flask-文件上传
  6. Linux位置无关代码实现,浅谈位置无关代码
  7. 选课_ctsc1997_ssl1606_树形dp
  8. Java 蓝桥杯 判断闰年
  9. ps读写ddr3里面的数据 zynq_Zynq:用PS控制DDR3内存读写
  10. 【并查集】Union Find
  11. 使用Python将数据插入数据库(一)
  12. Java 阻塞队列实现原理分析
  13. MySQL自定义函数用法详解-复合结构自定义变量/流程控制
  14. 中国省市区三级联动带下拉美化带数据库
  15. win7计算机高级还原,最好用的win7一键恢复64位方法
  16. java代码如何运行?
  17. 如何发表高质量的学术论文(硕士、博士均有参考价值)
  18. python一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
  19. 学苑教育杂志学苑教育杂志社学苑教育编辑部2022年第32期目录
  20. codis集群的搭建

热门文章

  1. C语言编程中关于负数的%运算的判定。
  2. *【HDU - 1506】【POJ - 2559】Largest Rectangle in a Histogram(单调栈或动态规划)
  3. html中如何让三个方块并排,html – 并排设置两个div,然后设置第三个div
  4. 按钮开关java代码,Android自定义实现开关按钮代码
  5. asp.net mvc 缓存CaChe使用
  6. android matrix 缩放,android – 如何获取任意矩阵的缩放值?
  7. java整型缓存_JAVA整型包装类的缓存策略
  8. 单元格自适应宽度_最详细的Excel模块Openpyxl教程(二)-单元格操作详解
  9. java服务器和linux_在Linux下开一个Java服务器(使用CatServer Pro)
  10. 变量的初始化与使用C语言程序注释,c - (为什么)使用未初始化的变量未定义行为?...