前言:服务器安全问题是每个运维从事人员不可避免的一部分工作,在linux管理界乃至计算机界也都是一个首要考虑的问题。最近公司的部分机器需要暴露在公网环境下,如果不做安全策略的话,可能睡到半夜就会被叫起来处理问题,为睡眠安稳计,为工作质量计,特整理下关于基本安全防护的注意点与可操作点:

公司的部分主机需要能够与公网通信,相应的,远程连接安全是肯定需要做加固的,而一台主机基本的安全策略应包括但不限于以下几点:

1.禁止主机被ping:如果能够ping通某个主机或者IP,那么攻击者就认为此系统处于活动状态,继而进行攻击或破坏。如果没有人能ping通机器并收到响应,那么就可以大大增强服务器的安全性,在linux下可以执行如下设置,来禁止ping请求:

[root@localhost ~]#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

可以加上面的一行命令到/etc/rc.d/rc.local文件中,以使每次系统重启后自动运行。

2.禁止系统被重启:在linux的默认设置下,同时按下Control-Alt-Delete键,系统将自动重启,这种情况下很容易被重启,从而导致不可预知的问题,而禁止Control-Alt-Delete组合键重启系统,需修改/etc/inittab文件:

[root@localhost ~]#vi /etc/inittab
找到:ca::ctrlaltdel:/sbin/shutdown -t3 -r now    在之前加上"#"或者删除此行,即可,然后
[root@localhost ~]#telinit q

3.限制shell history所记录的命令:默认情况下,bash shell会在文件$HOME/.bash_history中存放多达1000条命令记录,攻击者可以根据这些命令来判断出主机的关键文件以及其他的关键信息,那就减少它所记录的命令或者关闭它:

[root@localhost ~]#vi /etc/profile
找到:HISTSIZE=1000
表示在文件$HOME/.bash_history中记录最近的1000条历史命令。将其修改为合适的值,如果将“HISTSIZE”设置为0,
则表示不记录历史命令,那么也就不能用键盘的上下键查找历史命令了。

4.删除系统默认的不必要用户和组:Linux提供了各种系统账户,在系统安装完毕,如果不需要某些用户或者组,就要立即删除它,因为账户越多,系统就越不安全,越容易受到攻击,具体的话根据实际情况,一般Linux系统中可以删除的默认用户和组分别为删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。根据自己的需要进行操作。具体的命令为

[root@localhost ~]# userdel username
[root@localhost ~]# groupdel groupname

5.限制ssh访问IP:基于ssh的连接本质上来说是安全的,连接被监听是一般不用考虑的安全问题,但非法连接却是一个极大的安全隐患,但是我们可以于hosts.allow和hosts.deny文件允许或禁止ssh或telnet操作,降低系统被暴力破解的可能,具体的操作如下:

[root@localhost ~]#vi /etc/hosts.allow或者hosts.deny
ssh允许/禁止单个ip
sshd:192.168.220.1
ssh允许/禁止ip段
sshd:192.168.220.
telnet允许/禁止单个ip
in.telnetd:192.168.220.1
telnet允许/禁止ip段
in.telnetd:192.168.221.
值得一提的是,hosts.allow的优先级高于hosts.deny,所以呢,甚至可以将host.deny设置为ALL,拒绝所有ssh或telnet连接,在hosts.allow文件中配置业务IP,以实现最高的安全需求。

本条策略可以基于脚本来进行,可以使用脚本对安全日志进行过滤,将多次尝试进行ssh连接的IP信息写入hosts.deny文件中,直接拒绝它的请求,具体的操作方法如下:

#!/bin/bash
num=10 #连接上限
for i in `awk '/Failed/{print $(NF-3)}' /var/log/secure|sort|uniq -c|sort -rn|awk '{if ($1>$num){print $2}}'`
do echo "sshd:$i" >> /etc/hosts.deny
done

对secure文件做日志分割后,可以每天执行一次脚本,写入定时任务即可。如果觉得这样做比较麻烦,可以参照我的博客/系统安全/防止ssh暴力破解的小工具denyhosts中的介绍,使用denyhosts工具来进行防爆破安全加固,而且使用denyhosts可以更细致的根据需求完成拒绝请求。

6.修改ssh端口,禁止root用户远程登陆:所有的ssh非法连接都是基于指定端口与指定账户密码的,如果修改了默认的端口并禁止root用户远程登陆,那么安全性无疑是进一步的加强了:

PS:如果公司的上下班是非常规律的,甚至可以设置ssh服务的服务时间为9:00-18:00,这样的话,所有的问题都将不是问题,但同样的,如果在这个时间段之外需要远程处理,那就比较麻烦了,这条策略仅作参考。

 [root@localhost ~]#vi /etc/ssh/sshd_config
ssh默认的端口是22,修改的话,直接添加Port XXXX就可以了,这样就完成了修改,将其改为了XXXX(最好选择大于10000的不常用高位端口)
将sshd_config文件中PermitRootLogin yes改为PermitRootLogin no,这样root用户就不能远程登陆了(修改后,reload sshd服务,不要restart ssh服务,防止出现问题,无法远程连接,就尴尬了)

7.限制账户登陆错误登陆次数:基于PAM模块来进行,功能为:任意账户登陆错误次数后,一定时间内拒绝再登陆,类似与支付密码与手机解锁的错误登陆限制,与之前的基于安全日志分析进行拒绝登陆的策略相比,前者是针对连接IP,后者是针对可连接账户。例:以三次为限,错误三次后五分钟内不能登陆,实现步骤如下:

[root@cinder ~]# echo "auth required pam_tally.so deny=3 unlock_time=5" >> /etc/pam.d/sshd 

8.釜底抽薪——禁止使用密码登陆ssh:root账户的失守基本都是基于ssh的口令,而基于ssh免密码验证的方法,无疑是从根本上解决了这个问题,如果说使用复杂密码是使服务器被破解的可能降到极低的话,而禁止使用密码则从根本上解决了这个问题,使暴力破解的可能性降低为0。方法如下:

使用ssh-keygen生成私钥公钥对,一直输入回车即可,下载私钥,发送给运维人员,然后修改/etc/ssh/sshd_config如下:

PasswordAuthentication no  #禁用密码登陆
RSAAuthentication yes   #使用密钥
PubkeyAuthentication yes  #使用密钥

9.设置一个简单的蜜罐:本条策略适用于容易被针对性攻击的主机,实现思路如下:

  在高位端口启动一个不常用的服务,使用脚本检测其访问IP,并将其加入防火墙的拒绝策略,拒绝来自该IP的所有数据包。众所周知,在入侵系统时,首先做的就是扫描,这样的话,就可以先敌一步,相对安全可靠,至于所启服务与脚本的编写就非常的宽广了,根据需求自行收集。

10.隐藏服务器的版本信息:这条策略主要针对的是web服务,如果对方访问了不存在资源,服务器404时,顺带给了对方web服务器的版本信息,这就相当危险了,对方拿着指定版本的服务器信息,就可以做针对性的攻击,十发九中。具体的隐藏办法根据服务器版本自行百度,不安全的设置如下图:

11.至少打开防火墙和设置一个复杂的密码:做了一大堆的安全策略,最后设置了123456的密码,防火墙也没有打开,这可能是一个笑话,而设置密码的时候需要注意:含有数字,大小写字母,特殊符号,尽可能的长,至少不少于10个字符。

12.为操作系统与所运行的应用安装更新:本条策略无具体方法,根据自己的操作系统版本与所运行应用的版本,在开源社区或者付费服务的提供商那里会有不断更新的补丁,及时对服务器或者应用打补丁。

水为之而寒于水:以上基本的安全策略可以完成对服务器的基本安全优化,针对当前业界服务器集群化的应用场景,集群所提供的服务往往只需要使用有限的几个端口,与有限的几个IP进行数据交互,那么我们可以这样做:指定一台服务器做服务跳板机,将其端口映射到其他服务器的业务端口,其他服务器的只允许跳板机的数据包进来,然后对跳板机做全部的安全策略(毕竟ping的安全策略也不适合对所有的服务器做),还有就是关于堡垒机的问题,堡垒机的概念和这个方案的思想差不多,但堡垒机能够更细化的解决这些问题,而且还可以记录子账号的操作,方便查出导致问题的人。

结语:通用的基本安全策略就是这些,如果阅读中发现不够全面,欢迎指出补充,如果需要对指定功能的服务器做安全,那肯定需要在此基础上继续完善,但可以肯定的是:没有永远完备无患的安全策略,只有不断升级完善的安全策略,最好的安全策略就是多看安全日志,根据不同的应用场景制订出相应的安全策略,才能在日益严峻的安全环境下安全无虞。

转载于:https://www.cnblogs.com/xiaoyuxixi/p/11374071.html

暴露在公网环境下主机的安全防护相关推荐

  1. 超级详细:公网环境下登录 Docker 仓库: Docker Hub 或 国内阿里镜像仓库!超级解惑!(推送镜像到docker hub 或 国内阿里云镜像仓库)

    文章目录 前言: 1.登录 Docker Hub : ①.注册 或 登录 Docker Hub: ②.创建储存库: ③.开始上传镜像: ④.下载镜像: 2.使用 国内阿里云 镜像仓库: ①.开通 容器 ...

  2. teredo实现ipv4公网环境下接入ipv6

    teredo实现ipv4公网环境下接入ipv6 系统:macOS High Sierra 10.13.3 测试成功 软件下载 下载安装Miredo http://www.deepdarc.com/mi ...

  3. 家庭宽带在有ipv6公网环境下,配置本地tomcat服务器+域名+ssl+ddns,实现ipv6建站、搭建简易的文件服务器、搭建webdav服务器等功能

    必备条件: 宽带运营商提供了ipv6 光猫拨号改为路由器拨号且路由器开启了ipv6 运营商未屏蔽ipv6的80/443端口(如果屏蔽了常用端口,那么可以尝试高一点的端口号.端口号范围:1 - 6553 ...

  4. 用于在公网环境下测试的Telnet/SSH服务器

    google: public telnet server list for example: telnet nethack.alt.org ssh nethack@alt.org 转载于:https: ...

  5. 【内网穿透服务器】公网环境访问内网服务器(以使用samba(smb)文件共享服务为例)

    公网环境访问内网服务器,以使用samba(smb)文件共享服务为例 Frp 挂载 Frp SSH端口 访问 访问 samba Linux cifs Windows Winscp等客户端 SFTP协议登 ...

  6. 转://SIHA环境修改主机名实施步骤

    目 录 1 实施需求 2 修改主机名 2.1 停止HAS服务 2.2 修改主机名 3 重新配置服务 3.1 使用root用户重新配置CSS & OHAS服务 3.2 设置cssd自动启动属性 ...

  7. 云计算虚拟化环境下的安全防护

    转载自(比特网):http://www.chinabyte.com/114/12243614.shtml 云计算虚拟化环境下的安全防护 2012-01-13 15:03 比特网 H3C 关键字:网络管 ...

  8. NAT环境下,内网用户使用公网地址访问内网服务器

    一.环境 1.单位内部有一台服务器,提供web.ftp.ssh等服务,ip地址为私网地址. 2.出口使用cisco路由器,做端口映射,使服务器对外提供服务. 3.内部用户可以通过私网地址访问服务器,外 ...

  9. 在windows11环境下如何通过主机名ping通其它系统

    在windows11环境下如何通过主机名ping通其它系统 (1)host映射 [1]说明 [2]应用 (2)修改windows11下的hosts 文件 [1]管理员身份打开记事本 [2]在记事本中打 ...

最新文章

  1. C/C++心得-结构体
  2. Android kernel Crash后,定位出错点的方法
  3. 在python中使用什么函数进行输出_Python中使用pprint函数进行格式化输出的教程
  4. CCF 2014-3-1 相反数
  5. EXTJS 6 新特性(译文)
  6. 拓端tecdat|R语言广义线性模型(GLMs)算法和零膨胀模型分析
  7. 中值滤波器及均值滤波器
  8. [流体力学][NS方程]关于质量、动量、能量的控制方程的推导
  9. 基于p5实现的大五人格“线条”效果
  10. [uniapp] 小程序禁止分享到朋友圈,但是不禁止转发给好友
  11. 实战分布式之电商高并发秒杀
  12. AR与VR的区别在哪?
  13. 防治脖子痛的简易保健操
  14. 1013. Battle Over Cities (25)
  15. 基于SSM的生产计划排程管理系统
  16. 阿里云服务器配置外网访问
  17. 用python画漂亮的图案-使用 Python Turtle 设计简单而又美丽的图形
  18. 面试题之JAVA高级篇
  19. python引用自己写的文件
  20. Java web:基于jieba分词器(或ansj分词器)的文章关键词字符云(词云图)

热门文章

  1. tomcat处理html流程,基于Tomcat运行HTML5 WebSocket echo实例详解
  2. 宽带和流量是分开的吗_宽带、带宽和流量的区别
  3. Word2007 无法给尾部空格加下划线
  4. 利用convert【ImageMagick】把pdf批量转换为图片踩坑(gs报错和清晰度问题)
  5. c# 正则表达式 Group
  6. 如何设置Mac电脑的DNS
  7. cmd命令行窗口打开python文件显示拒绝访问
  8. win10pro不够pro,win10专业工作站版本才是真的牛。
  9. 清除谷歌浏览器input框黄色底色
  10. 2022年国家高新技术企业申报秘笈来了