实战精华 | 搭建服务器的之后总结的一些个人经验

最近帮实验室装了两台服务器,计算用的服务器放在内网,通过一台堡垒机与外界相连。碰到很多小问题,在这里记录一下。

组建内网

这一部分没有太多好说的,堡垒机需要有两块网卡,一块对外一块对内,内网服务器一块就够了。组网的时候根据情况可以手工指定IP也可以DHCP。如果内网只有一台机器的话可以找一根网线直连两台机器,如果机器多的话还是买个路由器吧,最好找高级一点的,可定制的功能多一点,否则会很坑。

端口转发

从外面访问内网服务器的时候有三种方法:

  1. 最简单的办法是先ssh到堡垒机,再ssh到内网的服务器。这样做的问题是需要同时在堡垒机和内网服务器上创建账号,而有的时候我们并不希望用户访问堡垒机,堡垒机对用户应该是透明的。
  2. 第二种办法是ssh隧道,我们可以通过堡垒机建立隧道,把外面的请求转发到内网。但建立隧道本身也比较麻烦。 这篇博客 对于ssh隧道讲得非常清楚。
  3. 最方便解决办法就是端口转发:将堡垒机上的端口与内网服务器需要访问的端口建立映射关系,例如将堡垒机的1234端口映射到内网服务器的22端口,这时 ssh -p 1234 <bastion server IP> 实际登录到的就是内网服务器。端口转发的本质是把堡垒机当成了路由器。这篇博客对于端口映射讲得非常清楚。

时间校准

一个与世隔绝的服务器时间往往不准,有时候是设置问题,有时候是BIOS上的时钟本来就不准。想要校准的话,最方便的当然是手工设置,但这样无法保证精度,而且过一段时间可能又会产生偏差。比较好的办法是用NTP在线校准时间,但是内网无法访问公共NTP服务器。这时可以把堡垒机配置成一个NTP server,然后让内网的服务器都跟堡垒机校准。

当然我们也可以给内网服务器指定一个网关(堡垒机),然后打开堡垒机的转发功能,这样内网服务器就可以直接上网了。但有时候我们并不想这么做。

用户管理

用户管理涉及到批量添加/删除用户,用户分组,权限控制,磁盘限额,限时登录等等。

批量添加/删除用户

下面是我写的一个小脚本,需要读取一个记载了用户名和登录密码的文本文件,然后依次创建每一个用户。

需要注意,通过 useradd-p 参数指定密码时候一定要给出crypt加密后的密码,不是原始密码。在CentOS 7上,crypt加密后的密码可以由 openssl passwd -crypt $password 生成, $password 代表原始密码。 mkpasswd 这个命令似乎也可以。

限制用户磁盘空间

在前面的脚本里也看到了,可以通过 quota 命令限制每个用户(或每个用户组)使用的磁盘空间。但如果你的文件系统是xfs,就需要用 xfs_quota 。为了支持磁盘限额,首先内核要足够新(Linux 2.4以上),其次分区挂载的时候需要加上 usrquotagrpquota 两个参数(在 /etc/fstab 里)。

限制用户登录时间

我们的服务器是教学用的,学生可以通过预约获得使用权限。我们需要控制学生只能在预约的时间段登录,这个时间段之外,不仅不能登录,如果有这个用户的进程还要杀掉。限制用户登录时间有很多办法,例如写一个crontab,预约时间结束就用 passwd 或者 usermod 把用户账户置为锁定状态,到下一次预约时间再解锁。但这样相当于一次预约要写两行crontab,对于我这种懒人很不友好。

我选择的办法是用PAM里的时间模块,这种办法首先要编辑 /etc/security/time.conf ,在里面写入允许(或禁止)用户登录的时间,然后再编辑 /etc/pam.d/loginauth 条目后加入 account required pam_time.so 。这种办法有一个局限,只能指定周几,不能指定具体的日期。不过我们的预约正好也是以周为单位,所以无所谓了。

杀死某个用户的所有进程

有两个方便的命令 killallpkill 。当然也可以用 psgrepkill 等命令组合起来,实现更复杂的功能。

作者:huangbo10 来源:http://blog.csdn.net/huangbo10/article/details/53167053

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

基于Netty实现海量接入的推送服务技术要点

27950
来自专栏恰童鞋骚年

NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装

  随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了...

13120
来自专栏IT笔记

SVN自动化部署全流程之架构之美

公司一直没有一个完善的部署流程,基本都是通过上线打包以后SSH手动拖拽部署项目。 当然网上也有现成的持续集成工具,比如jenkins。Jenkins是一个开源软...

44070
来自专栏進无尽的文章

基础篇-服务器工作实现的浅析

对于一个前端开发的人员来说,了解服务器的基础知识,个人觉得是非常必要的,于是就有一个这篇侧重于Java的服务器相关知识的文章,只是简单介绍对于我也是一个拓展。

15920
来自专栏腾讯移动品质中心TMQ的专栏

常用流量测试方法及一些思考

App性能测试中流量测试是其中重要的一项,网络场景(wifi、非wifi)、用户使用场景(页面加载流量、场景使用流量、待机流量),这些都是需要考虑的测试点。

56850
来自专栏编程直播室

折腾git pages+hexo+NexT初识hexo开始本地试运行准备服务器准备上传工具先告一段落发表文章主题

24460
来自专栏逸鹏说道

Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,...

36850
来自专栏JetpropelledSnake

Linux学习笔记之Linux计划任务Crontab

cron 是 UNIX, SOLARIS,LINUX 下的一个十分有用的工具。通过 cron 脚本能使计划任务定期地在系统后台自动运行。

22520
来自专栏琯琯博客

awesome-sysadmin-cn资源

系统管理员 资源列表,内容包括:备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理 备份 备份软件 Amanda:客户端-服务器模型备...

744120
来自专栏FreeBuf

记我在HackerOne上参与的一次漏洞众测邀请项目

这是一件关于我参与Hackerone平台某漏洞邀请项目的事,在此我要感谢该项目发起公司,他们友善的态度、及时的漏洞修复和奖金发放效率,让所有存在的提交漏洞都能在...

44340

扫码关注云+社区

领取腾讯云代金券