服务器安全防护

互联网上每时每刻都存在着各种各样的扫描和攻击,但其中绝大多数的扫描都是盲扫,也就是说有的黑客或者不法分子希望能够猎获更多的服务器或者用户主机来完成一些事情,所以盲扫就是一种猎获大量主机的最好的方法。那在互联网上如何抵御盲扫,尽可能降低服务器沦陷的风险呢?本文将就互联网攻击展开部分讨论,并以部分数据来证明方法的合理性和可行性。

我们都知道,Linux服务器的默认ssh服务端口是22端口,而且国内售卖的绝大多数的vps或云主机提供商提供的服务器默认情况下都是没有对服务器做加固处理,而且系统的相关服务都是采用默认的方式来提供给用户,所以安全防护大多数需要用户自己去做。但是许多新站长都是没有充分经验的或者之前在这方面的经验不足,所以在服务器安全方面的意识不是很高。这是十分危险的事情,因为很可能你的服务器此时正面临着攻击或者已经被黑客攻击。那该如何预防或减少此类攻击事件的发生呢?我们将从以下几个方面来讨论说明如何来对我们的服务器进行加固。

1.更改非公用服务端口

或许你会想问,仅仅只是简单的更改服务端口有什么用呢?

其实我可以使用一段数据来证明,更改服务端口是多么的有用,而且这样做对于抵御盲扫攻击是多么的见效。

小编手里有一台服务器,小编常常用这台服务器做一些对公网的测试。从小编的服务器日志来看,服务器每天经受大量的扫描攻击和主机密码暴力破解,而且尝试主机的root账户登录的现象非常频繁,几乎每天都有成百上千次尝试,当然这只是粗略统计。小编认证查看了这些登录记录,还好没有用户能够成功登录主机,因为小编服务器的密码是字母数字和特殊字符的随机组合产生的随机密码,所以被破解的可能性非常小。但是看到这样的暴力破解,小编心里还是很不爽,一来浪费服务器的资源,虽然帐号登录尝试浪费不了很多的服务器资源,但是每天总是有这样多的一些垃圾日志,小编看着也头痛。所以小编就决心更改ssh服务端口到别的端口,在更改了端口之后,观察了数天,没有发现任何其它人的ssh登录尝试的记录,都是小编自己的成功登录主机的记录,这个数据是完全来自于真实的互联网环境的服务器的数据,完全具有实际的说服力。所以更改非公用服务,比如ssh这样只为管理员提供的服务的端口对于防止网络上的盲扫攻击是十分有用的。这里是更改服务端口之后的记录,每天只有小编自己的登录日志。

ssh-1

而在之前,非法登录是非常多了,包括各种用户口令的猜解,在图中可以看到,该ip使用了不同的用户名来登录主机,而且是在仅仅的几秒之内,而且还可以看到的是,小编也在此时成功登录了主机,却在登录的时候没有察觉到攻击的存在,但日志却很明显的展示给我们主机密码暴力破解时刻存在,包括你正在登录着你的主机的时候,如果不看日志是很难察觉到的。ssh-2

2.开启防火墙策略

防火墙对于拒绝网络攻击也是一个非常有用的工具,许多新站长或主机管理员并未意识到防火墙的重要性,以为只要管理好自己的服务器帐号密码即可保障服务器的安全,其实这是一种十分不对的想法,帐号密码可以用来登录主机,使用主机服务,但是帐号密码的安全性又如何能够保证好呢?如果你的主机上运行着一个web服务程序,而这个web程序存在漏洞,被攻击,不法分子从你的web程序获取到了数据库的帐号密码,那是不是就可以轻而易举的登录你的数据库了呢?

是的。事实绝对是这样的,你的主机数据库也随之沦陷,小编曾经对一台服务器做过安全测试,这台服务器是某地存储几万人当前个人信息和上百万人的历史信息的数据服务器,是sunos,OracleDB,这台服务器的管理员几乎没有对该服务器做任何的安全措施。从而小编轻而易举的登录了主机,从自动备份脚本中获取了数据库的帐号和密码,远程连接数据库,拥有完全的操纵权限,小编当时也感到十分的震惊!

先不讨论上面的服务器存在的诸多安全隐患,返回来说防火墙策略的重要意义。数据库服务器在提供web服务的同时,如果没有对于公网提供直接的数据库访问权限的必要,一定要记得使用防火墙将公网的访问禁止,也就是禁止公网带该主机数据库端口的入站连接。这样即使不法分子通过不法渠道拿到了你的数据库的帐号和密码,也很难直接在公网远程登录你的数据库,这样可以在一定程度上防止黑客的入侵。当然这不是完全之策,最好的方法当然还是有一个足够强度的密码和没有安全漏洞的系统,当然即便是这样,也存在被入侵的可能性,如果能够在此基础上在加一层防火,难道不是更好吗?

小编为了维护主机的安全,也曾涉足过安全渗透领域,了解一些基本的渗透思想和要领,所以在此方面拥有一定的经验,防火墙对于系统安全的重要性十分重要。如果能够将防火墙使用好,你的系统完全可以抵御绝大部分的黑客攻击。

举一个简单的例子,黑客的盲扫工具非常多,在这里不进行说明,但是其中的一些工具有一个基本思想,他们也考虑到效率所以在攻击之前会先确定对方主机是否存活,所以会使用ping命令对对方主机是否存活进行确认,如果没有返回信息则会摒弃对该主机的扫描,进而提高命中率。而如果你的主机开启了防火墙,对外来icmp包不进行响应,则完全可以在一定程度上免于扫描和暴力破解的发生。

好了,今天的这篇文章就先到这里,其实服务器安全防护是一个很大的话题,涉及的领域非常广泛。小编其实是一个比较懒的人,懒得敲下许多文字去记录,所以博客里的文章大多是粗略的概述,其实每一篇文章都是发生在一件非常有意义或者对小编印象非常深刻的事情之后的,小编也非常希望能够有朋友来多多交流经验。

CentOS使用Bind搭建域名解析服务器

CentOS的软件包安装非常简单,如果想要安装一个DNS服务器,那么只需要一条命令即可快速完成

1.安装Bind DNS服务软件

yum install bind

执行该条命令即可快速完成Bind的安装

2.配置Bind

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;
        allow-transfer { none; };//不允许别人进行zone转移

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};
zone "staff.test.com" IN {
        type master;    //这个zone的类型
        file "named.staff.test.com"; //这个文件放在哪里
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

3.name.staff.test.com配置

$TTL    600
@       IN      SOA     ns.staff.test.com.  ns.staff.test.com.  (2013030801 1H 15M 1W 1D);
@       IN      NS      ns.staff.test.com.;
ns.staff.test.com.  IN      A       123.121.119.123;
www     IN      A       123.121.119.123;
test    IN      CNAME   www;
ssh     IN      CNAME   www.staff.test.com. ;

4.设置开机启动

chkconfig named on

5.所有配置完成

所有配置完成,下面就是要将域名的DNS转移到该服务器即可。相关设置需要在DNS注册商处完成,这里不再赘述。

修改ssh默认22端口

不少朋友有自己的VPS或自己的linux服务器,发现每天自己的服务器都会遭受大量的扫描和密码暴力破解,其实如果能够更改一下一些端口可以在一定程度上防御攻击现象的方式

修改ssh默认22端口 打开/etc/ssh/sshd_conf 找到Port 22这一行,将其改为 Port 31 (假设31为你想要的端口),如果前面有 # 号,注意去掉 #号。如果主机开起来iptables,为了安全起见,最好先在iptables中加入允许该端口通过的规则,再进行端口修改。修改完毕之后不要立即端口ssh连接重试,而要重新开启一个终端,使用新的端口号连接看能否正常登陆;如果没问题了,再在需要的时候断开你与服务器之间的连接,否则后果可能就是把自己锁在门外了~

CentOS配置PHP WEB环境

CentOS2

CentOS安装软件都非常简单,只要运行 yum install 软件名 即可,本文将介绍CentOS下将简单介绍如何配置php web环境

1.安装PHP

yum install php

2.安装mysql

yum install mysql-server  服务器

yum install php-mysql php模块

yum install mysql 客户端

3.安装FTP

yum install vsftpd

3.设置开机启动

chkconfig mysqld on
chkconfig httpd on
chkconfig vsftpd on

4.配置iptables

:INPUT DROP [22:2155]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [5:540]

-A INPUT -p tcp -m tcp –dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp –dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp –dport 21 -j ACCEPT

COMMIT

5.防火墙开机启动

chkconfig iptables on

6.允许服务器访问外网

iptables -A INPUT -m state –state RELATED -j ACCEPT    #保持与已经存在的连接相关的连接
iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT    #保持从本机发起的连接
/etc/rc.d/init.d/iptables save #保存防火墙设置

基本配置完成