安全对于linux/unix生产服务器而言是至关重要的,也是每一个系统管理员的基本功课。本文是《明明白白你的Linux服务器》系列的第四篇,下面所列的一切是关于Linux服务器的基本设置,力求用最简单的语言来说明Linux服务器的基础安全设置,尤其适用于新手;如果对Linux服务器的安全有更高要求,建议配合硬件防火墙来进行操作。

一、Linux服务器的硬件防护

我在项目实施中和自己的网站架设中,发现防DDOS***及SQL注入、跨站脚本、蠕虫、***扫描和***等***效果不错的方案有:

①华赛三层防火墙+天泰web防火墙;

②Juniper系列防火墙;

如果你的Linux或FreeBSD前端无任何硬件防护,一下要记得开启iptables或ipfw防火墙。虽然它们不能防DDOS***,但在安全防护上或多或少的有所作用;如果是windows2003服务器,建议开启它自带的系统防火墙,并禁ping。

建议采用64位的Linux操作系统,如CentOS 5.4;如果是UNIX,建议采用FreeBSD 8.0(也采用64位的)。多关注下服务器的内核漏洞,现在linux很多***都是针对内核的,保证内核版本为2.6.9以上。

二、远程连接你的Linux服务器

对于远程连接,建议只允许在内网进行ssh操作,而拒绝外网控制,这样做是比较安全的(此步操作可能要配合公司的网络工程师来操作)。

如果非要从外网进行ssh操作,建议正确配置x-shell、Putty等远程连接工具的公钥和私钥。root密码我一般设置为28位以上,建议用字母+数字的组合,如p@sSw0rdyuhongchun027nagios,而且某些重要的服务器必须只有几个人知道root密码,这个根据公司权限来设置,如果有公司的系统管理员离职,root密码一定要更改;玩linux久了的人都应该知道,更改root密码不会影响linux的crontab计划任务(这个在windows2003就不一样了,如果随意更改administrator密码,会直接影响其计划任务运行)。

三、Linux服务器如何防ssh暴力破解

我的Nagios外网监控服务器,刚开始测试时取的密码是redhat,放进公网一天就被人改了,郁闷死了;后来环境部署成熟以后发现仍然有不少外网ip在扫描和试探,看来不用点工具不行啊;呵呵,我尝试使用大家都推荐使用的DenyHosts,它是用Python2.3写的一个程序,它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。DenyHosts官方网站为:http://denyhosts.sourceforge.net

①检查安装条件

1、首先判断系统安装的sshd是否支持tcp_wrappers(默认都支持)

# ldd /usr/sbin/sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)

2、判断默认安装的Python版本

# python -V
Python 2.3.4

3、已安装Python2.3以上版本的情况可以直接安装DenyHosts

# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
# tar zxf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install

程序脚本自动安装到/usr/share/denyhosts

库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts

denyhosts.py自动安装到/usr/bin

②设置启动脚本

# cd /usr/share/denyhosts/
# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
# vi denyhosts.cfg

根据自己需要进行相应的修改

denyhosts.cfg

SECURE_LOG = /var/log/secure
#RedHat/Fedora Core分析该日志文件
#其它版本linux根据denyhosts.cfg-dist内提示选择。
PURGE_DENY = 30m
#过多久后清除
DENY_THRESHOLD_INVALID = 1
#允许无效用户(/etc/passwd未列出)登录失败的次数
DENY_THRESHOLD_VALID = 5
#允许有效(普通)用户登录失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登录失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解

如果需要DenyHosts随系统重启而自动启动,还需做如下设置:

# vi /etc/rc.local

加入下面这条命令

/usr/share/denyhosts/daemon-control start

③启动

# /usr/share/denyhosts/daemon-control start

如果要使DenyHosts每次重起后自动启动还需做如下设置:

# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 345 denyhosts on

然后就可以启动了:

service denyhosts start

DenyHosts配置文件:

vi /etc/denyhosts.cfg
SECURE_LOG = /var/log/secure #ssh日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = 5m#过多久后清除已经禁止的
BLOCK_SERVICE   = sshd#禁止的服务名
DENY_THRESHOLD_INVALID = 1#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO#是否做域名反解
DAEMON_LOG = /var/log/denyhosts#自己的日志文件
ADMIN_EMAIL = yuhongchun027@163.com#管理员邮件地址,它会给管理员发邮件

下面这个是全自动下载安装的小脚本(推荐),当然安装后还得手动调整配置文件。install_denyhosts.sh脚本内容如下:

#!/bin/bash
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar zxf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
echo "/usr/share/denyhosts/daemon-control start" >>/etc/rc.local
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start

下面是hostsdeny的示例:

Connection to 192.168.0.154 closed.
[root@autolemp ~]# ssh 192.168.0.154
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied (publickey,gssapi-with-mic,password)

参考: http://os.51cto.com/art/201008/215932.htm

转载于:https://blog.51cto.com/57388/1548838

Linux服务器 -- 安全篇相关推荐

  1. 明明白白你的Linux服务器——安全篇

    原文地址:http://os.51cto.com/art/201008/215932.htm#topx 一.Linux服务器的硬件防护 我在项目实施中和自己的网站架设中,发现防DDOS攻击及SQL注入 ...

  2. linux服务器安全文档,CentOS Linux服务器安全设置

    CentOS Linux服务器安全设置 我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全. ...

  3. redhat 添加ssh端口_Linux修改SSH远程登录端口 --服务器安全篇

    1.修改SSH远程登录端口为5000 输入 vi/etc/ssh/sshd_config Port 5000                        #把'#Port 22'修改为'Port 5 ...

  4. 跟我学,你的服务器安全吗?第二篇----数据库mysql安全篇

    目录 前言 本节为数据库(mysql)安全篇 1.数据库登录弱口令(高危) 2.确保没有用户配置了通配符主机名(高危) 3.为MySQL服务使用专用的最低特权账户(高危) 4.禁止使用--skip-g ...

  5. 跟我学,你的服务器够安全吗?第四篇----tomcat安全篇

    目录 前言 1.限制服务器平台信息泄漏(高危) 2.禁止显示异常调试信息(高危) 3.AJP协议文件读取与包含严重漏洞(高危) 4.开启日志记录(高危) 5.禁止Tomcat显示目录文件列表(高危) ...

  6. 跟我学,你的服务器安全吗?第三篇----apache安全篇

    目录 前言 1. 确保默认情况下拒绝访问OS根目录(高危) 2. 确保对OS根目录禁用覆盖(高危) 3. 配置专门用户账号和组用于运行 Apache(高危) 4. 确保已锁定apache用户帐户(高危 ...

  7. linux lanmp 安装教程,linux服务器一键安装包lanmp系列教程之一

    在我们安装了linux服务器WEB环境一键安装包lanmp后,可能会有不少疑问还有就是使用过程中出现的问题,下面为大家总结几点比较常见的,如若还有其他疑问,可到wdlinux论坛寻找相关教程. 1.如 ...

  8. linux mysql 安装启动失败,Linux服务器一键安装包的mysql启动失败

    Linux服务器上用一键安装包配置的环境,启动mysql失败,提示如下错误信息: 排查方法: 1.查看服务器的磁盘空间是否正常,登录服务器执行命令 df -h 查看磁盘空间,如果服务器的系统盘或者数据 ...

  9. LNMP一键安装包 – 简单单单配置好linux服务器

    LNMP一键安装包 – 简单单单配置好linux服务器 lnmp-org 网站.独立博客越做越大,腰包越来越鼓,不少做网站的朋友明显感受到了虚拟主机已经不足以满足自己网站的负载,加之服务器硬件以及带宽 ...

  10. 服务器系统linux下载软件,Linux服务器管理系统一键安装包(wdcp Lanmp)

    wdcp (WDlinux Control Panel) 是一套用PHP开发的Linux服务器管理系统,旨在易于使用和管理Linux服务器,可以在线通过网页管理服务器和虚拟主机.简单,方便,易操作.只 ...

最新文章

  1. 阿里巴巴发布《2015移动安全漏洞年报》
  2. ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
  3. asterisk libxml2
  4. leetcode题解(二叉树和递归问题)
  5. linux crontab定时任务详解
  6. ACMMM 2021-多模态宝藏!京东梅涛团队重磅开源第一个适用于多个任务的多模态代码库x-modaler...
  7. 牛客网面试题总结(试券)
  8. 【P2P网络】磁力链接转换为种子文件 magnet to torrent
  9. Android 和 Ios测试的区别
  10. 【mock】数据模板定义规范DTD 数据占位符定义规范DPD
  11. 坦克世界因计算机丢失,坦克世界新版本上线在即,玩家必须知道的几件事。
  12. 几个常用的后台管理系统
  13. python知识:装饰器@property有啥用途?
  14. 【Photoshop】——Ps基础学习笔记
  15. 国庆车流激增,南京启用无人机报路况
  16. Direx 自学总结一
  17. 面试中遇到的错题(持续更新)
  18. 树莓派连接RTL-SDR直接使用命令收听FM广播
  19. .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC不是可识别的文件,程序
  20. TopCoder提交测试

热门文章

  1. .net反编译工具reflector5.0 的介绍及使用
  2. Python3.x:pytesseract识别率提高(样本训练)
  3. javaEE开发中使用session同步和token机制来防止并发重复提交
  4. Qt中图片调用(2)
  5. Activity中的setDefaultKeyMode() (转载)
  6. .NET中栈和堆的比较
  7. opc客户端_通过OPC接口将TOP Server与Proficy iFix配合使用(上)
  8. Netty ChannelBuffer
  9. flume学习(六):如何使用event header中的key值
  10. go基于grpc构建微服务框架-集成opentracing