FreeBSD系统Web服务器安全设置的方法

  FreeBSD是一种类UNIX操作系统,那么接下来就由中国E盟频道的小编给小伙伴们分享一篇关于FreeBSD系统Web服务器安全设置的方法吧,感兴趣的朋友跟小编一起来了解一下吧!

  序言

  一、系统和服务程序的安装

  1. 系统安装

  2. 服务程序安装

  二、系统安全设置

  1. 用户控制

  2. 文件访问控制

  3. 系统服务和端口控制

  4. 日志管理和控制

  5. 文件指纹检测

  6. 系统指纹泄露和防范

  7. 系统内核安全

  8. 系统安全优化

  三、服务程序的安全设置

  1. Apache安全设置

  2. PHP安全设置

  3. Mysql安全设置

  4. vsFTPd安全设置

  5. SSH的安全设置

  四、防火墙的安装和设置

  1. 安装ipfw

  2. 配置ipfw

  五、Unix/Linux上的后门技术和防范

  1. 帐号后门

  2. shell后门

  3. cron服务后门

  4. rhosts后门

  5. Login后门

  6. Bind后门

  7. 服务后门

  8. rootkit后门

  9. 内核后门

  10. 其他后门

  六、结束语

  附录

  序言

  在我们跑Web服务器的时候,大家可能都会一致认为使用Linux+Mysql+Apache+PHP整个开源的系统是比较好的选择,但是我个人认为这是不合理的,首先要根据你的应用来觉得你使用什么服务。假如你需要跑Oracle等大型应用的话,而且Oracle在Linux下是支持的比较好的,那么使用Linux是个好的选择,因为在FreeBSD下安装Oracle是个非常麻烦的事情。那么如果是跑普通的网站应用的话,我觉得使用FreeBSD+Mysql+Apache+PHP是个好的选择,因为对于一个网站来讲,稳定安全是第一位的,否则你的网站什么时候被人修改了都不知道怎么回事,或者被黑客入侵,把数据修改或者删除,那就糟糕了,毕竟现在什么红客、黑客的一堆,不能不防。当然,不是说Linux不安全,但是在Linux下集成了很多不安全的程序,导致了它的不安全,但如果设置的好,Linux一样可以很安全。在中国网络应急响应中心(http://www.cert.org.cn)这几个月的数据来看,每个月被入侵成功最高的是Linux系统,占百分之六十多,然后过来是Windows系统,占百分之三十多,而FreeBSD的入侵比例是百分之几。

  任何系统都可以很安全,也可以很不安全,关键是管理员怎么做的,世界上没有最安全的系统,只有更安全的系统。下面的文章就是

  在FreeBSD平台上构建一个比较安全的Web服务器,希望对网管和网络安全爱好者能有一些启发,权当抛砖引玉,希望能够有更好阐述的文章。

  一、系统和服务程序的安装

  1. 系统安装

  为了保证系统的安全,我们系统准备采用最新的FreeBSD版本,首先是安全,系统兼容性也比较好,这个主要是个人习惯和需求,为了简单起见,这里我们选用了最新的FreeBSd5.3版本进行安装。整个安装过程我就不讲了,如果不清楚的朋友可以参考FreeBSD中文手册(http://www.freebsd.org.cn),整个过程不是很复杂,虽然没有Windows/Linux的系统安全简单,但是比起有些Unix的安装来讲是人性许多的。安装中必须把基本包和内核源代码都装上,为了以后编译内核方便,如果另外,如果喜欢使用ports安装软件的话,还要把ports装上,但是尽量一些没有必要的程序不要装。如果要安装Webmin等,还要把perl等包装上。系统文件拷贝完以后,会要求配置一些设置,比如把IP地址、名字服务器等设好,不要打开IPv6,不需要DHCP等服务,不要系统默认的FTP服务,配置 /etc/inetd.conf 时把SSH服务打开,方便我们进行远程管理,如果不想使用inetd这个超级服务来管理的话,可以关闭它,在/etc/rc.conf中添加inetd_enable="NO",然后设置sshd_enable="YES"一样可以打开SSH服务,后面我们会详细谈到SSH的设置。

  系统装完后,在 /etc/inetd.conf 中把除了ssh之外的服务全部关闭,特别是telnet和rlogin等服务,一定要慎重,否则很可能每几天系统就被入侵了。安装完系统后,建议对系统进行升级,比如使用 make world 或 cvsup 把系统内核和ports进行升级。这个步骤和Windows装完后打补丁差不多。

  2. 服务程序安装

  系统装完以后,就开始安装我们的应用软件,我们的方针还是最新的软件是最安全的,比如能够防止一些老版本中的溢出等等。我们基本就是要让我们的系统有数据库,同时能够处理Web服务,同时能够远程对网站进行文件管理的FTP服务。我们基本选择的程序都是比较通常的程序。另外,为了有个可视化的管理工具,我们同时也可以安装一个基于浏览器的管理工具Webmin,方便没有ssh客户端等等的时候进行管理。

  首先我们选用的Web服务是Apache httpd 2.0.53,这是目前的最新版本,当然你也可以考虑1.3的版本,主要是看个人习惯。我们网站是PHP程序编写,所以要安装PHP,版本是4.3.11,也是最新的版本,如果你的网站程序需要PHP5的支持,那么可以下载php5.0.4。数据库还是最快速的Mysql,选择的版本是最新的 4.0.23,如果你需要外键、事务、子查询、存储过程等的支持,那么你可以考虑4.1和5.0的版本。最后我们的FTP选择最安全的vsFTPd,因为它是最安全快速的,我在局域网中测试它的最高创数速率能够达到10MB/S,proFTPd只有8MB/S,vsFTPd针对小型FTP服务器支持非常好,毕竟我用户不多,几个更新网站而已,当然,如果你喜欢简单方便,也可以考虑使用FreeBSD自带的FTPd,功能和易用性也是不错的。如果你用户比较多,并且功能要求比较高,建议使用proFTPd、pure-FTPd、wu-FTPd等,但有些FTPd不是非常安全,选择时候一定要慎重考虑。

  服务器程序列表:

  Apache 2.0.53 下载地址:http://httpd.apache.org

  PHP 4.3.11 下载地址:http://www.php.net

  Mysql 4.0.23 下载地址:http://dev.mysql.com

  vsFTPd 2.0.2 下载地址:http://vsftpd.beasts.org

  反正最少的服务+最少的端口+安全的设置 = 最大的安全,尽量能够不需要使用的服务就不要安装,比如telnetd、rlogind等,那么相反会对服务器安全构成威胁。

  安装以上程序你可以采用手工编译安装,也可以采用FreeBSD的ports 来进行安装,这看个人爱好,我个人比较喜欢使用手工安装,如果不明白具体安装的朋友可以参考我的Blog上关于安装Apache+PHP+Mysql的方法。

  二、系统安全设置

  1. 用户控制

  尽量少的用户,我们的FTP帐户是和系统帐户绑定在一起的,所以我们添加用户的时候先建立一个目录,然后把新建的用户主目录指向到该目录下。假设我需要一个用户能够管理我的网站,而我网站的目录是在 /usr/www 目录下,那么我们新建立的用户 www_user 的主目录就指向 /usr/www 目录,同时它的shell是没有的:/usr/sbin/nologin ,主要是为了防止它通过ssh登陆到系统。同时FTP的密码也要设置的非常复杂,防止黑客通过暴力破解获得FTP权限。另外还要说道我们的root用户的密码,我想最少应该不要少于10位的数字+字母+字符的密码(我的密码是18位),否则是非常不安全的,如果密码简单,那么黑客通过短时间的暴力破解SSH中的root帐户,不用几天,系统就可能被攻破了,同时也建议最少一个月更改一次root用户的密码。(强烈建议一般帐户不要有登陆系统的权限,就是把shell设为/usr/sbin/nologin)

  一般如果要使用root权限建议建立一个属于wheel组的小用户,然后登陆后通过su命令提升为root用户进行管理,如果黑客通过破解了我们普通用户的权限后登陆系统,也不能直接通过root权限进行管理,这是一种安全防范的简单方法。

  2. 文件访问控制

  有时候被黑客入侵后拿到了小权限用户,比如传了一个WebShell到系统中,那么对方很可能会把 /etc/passwd 等内容直接读取出来,同时查看/etc/master.passwd中对加密后的root用户的密码hash进行破解,最后拿到密码进行登陆系统。那么我们就要控制部分文件只有root能够访问,其他用户无权访问。比如uname,gcc等,如果黑客拿到小权限用户后就会查看系统版本,然后找到该版本系统对应的溢出程序,使用gcc来进行编译,如果我们能够限制黑客访问uname和gcc等程序,能在一定程度上减缓黑客入侵的脚步。

  使用chmod来改变某个文件的权限信息,比如我要 /etc/passwd 和 /etc/master.passwd 文件只能允许root访问:

  使用八进制数字来设置

  # chmod 700 /etc/passwd

  # chmod 700 /etc/master.passwd

  使用字符标记来进行设置

  # chmod u+w+r+x,go-w-r-x /etc/passwd

  # chmod u+w+r+x,go-w-r-x /etc/master.passwd

  系统中有多个重要文件需要设置控制访问权限,一定要控制好,否则将会构成重要威胁。

  3. 系统服务和端口控制

  端口开的越多就越给黑客多一个入侵的机会,服务越多,危险越大,因为你不知道那些服务是不是有潜在的漏洞或者又发现了新的漏洞,所以尽量少的服务,比如sendmail默认是打开的,那么些建议你把sendmail关闭,关闭防范是在 /etc/rc.conf中加上:

  sendmail_enable = "NONE",如果设为"NO"那么只能够关闭掉pop3服务,不能关闭smtp的服务,所以要设置为"NONE"。

  系统中最好除了我们能够看到的Apache、Mysql、vsFTPd、SSH之外不要打开其他任何端口和服务。基本的方式是使用netstat -a 查看打开的端口,然后从对应的端口来找相关的服务,比如我们这里应该只允许开的端口有 21, 22, 80, 3306等,如果有其他端口,那么一定要仔细检查,很可能是黑客的后门或者是会对系统安全构成威胁的服务。同时有些服务不需要监听网络连接的话,只是需要本地的连接,比如Mysql,那么就可以关闭Socket监听,这个将在Mysql安全设置中讲解,另外,可以通过防火墙来控制部分端口访问和连接状况,比如Mysql的3306端口只允许192.168.0.1访问,那么我们就在ipfw里添加规则:

  ipfw add 10001 allow tcp from 192.168.0.1 to 10.10.10.1 80 in

  这样就能够防止黑客来访问服务器上的Mysql服务。具体防火墙的设置将在下面“防火墙设置”中详细讲解。

  4. 日志管理和控制 (未完)

  5. 文件指纹检测

  文件指纹就是我们文件的基本信息,比如文件权限、文件所属用户/组、文件最后修改日期、文件大小等等,这些都是重要信息,一般黑客入侵后都可能修改文件,那么文件指纹就不一样了。另外,文件的md5校验值也属于文件的指纹的一种。

  为了防止黑客篡改系统中的部分核心文件,比如 /etc/passwd, /etc/shadow, /etc/inetd.conf 等等,那么我们就可以考虑把部分重要文件进行备份,同时做一份目前有的文件的一个指纹保留,比如把 /etc,/bin, /usr/bin 目录下的文件进行指纹保留:

  # ls -l /etc > /var/back/etc.txt

  # ls -l /bin > /var/back/bin.txt

  # ls -l /bin > /var/back/usrbin.txt

  当然,还有就是给每个重要的文件加上md5校验值,如果觉得不对劲的时候就进行匹配,保证文件的安全。

linux

  你可以给你觉得需要做指纹备份的目录进行备份,一般这是为了以后被黑客入侵后的系统检测和系统恢复。比如可以通过文件被修改的时间来确定是不是被入侵,比如可以对比看 /etc/inetc.conf文件和备份的文件有什么不同来确定是不是安装了服务型后门等。# 程序崩溃时不记录

  kern.coredump=0

  # lo本地数据流接收和发送空间

  net.local.stream.recvspace=65536

  net.local.dgram.maxdgram=16384

  net.local.dgram.recvspace=65536

  # 数据包数据段大小,ADSL为1452。

  net.inet.tcp.mssdflt=1460

  # 为网络数据连接时提供缓冲

  net.inet.tcp.inflight_enable=1

  # 数据包数据段最小值,ADSL为1452

  net.inet.tcp.minmss=1460

  # 本地数据最大数量

  net.inet.raw.maxdgram=65536

  # 本地数据流接收空间

  net.inet.raw.recvspace=65536

  #ipfw防火墙动态规则数量,默认为4096,增大该值可以防止某些病毒发送大量TCP连接,导致不能建立正常连接

  net.inet.ip.fw.dyn_max=65535

  #设置ipf防火墙TCP连接空闲保留时间,默认8640000(120小时)

  net.inet.ipf.fr_tcpidletimeout=864000

  三、 服务程序的安全设置

  到这里就是本文的重点所在了,我们将花费比较多的文字进行描述,当然,所以描述不一定是非常正确的,也希望能够对你有一些帮助。我们系统默认是运行了包括Apache、Mysql、vsFTPd,SSH等服务,我们以下进行一一讲解。

  1. Apache的安全设置

  Apache的核心设置就是在 httpd.conf 里面,我们安装的Apache的目录是在 /usr/local/apache2/ 下,那么我们的配置文件就是在 /usr/local/apache2/conf/httpd.conf ,如果你是使用ports等安装的,配置文件应该是在/etc或/usr/local/etc目录下。使用ee或者vi打开配置文件:

  # ee /usr/local/apache2/conf/httpd.conf

  下面我们就要进行比较多的安全设置了,基本的服务、端口、主目录等等设置就不说了,只讲与安全有关的设置。

  (1)指定运行Apache服务的用户和组

  这是比较重要的,因为权限是继承的,如果运行Apache服务的用户权限太高,那么很可能使得入侵者通过WebShell等就会对系统构成严重威胁。一般我们运行Apache的是nobody用户和nobody组。在httpd.conf的250-275行之间找到User和Group选项,比如我们默认设置如下(去掉了注释信息):

  User nobody

  Group #-1

  (2) Apache的日志文件

  Apache的日志文件是非常重要的,可以发现apache的运行状况和访问情况,对于判断入侵等有重要帮助。它的默认选项是:

  # 错误日志存放目录,默认是存放在apache安装目录的logs下

  ErrorLog logs/error_log

  # 日志记录的级别,级别有debug, info, notice, warn, error, crit等,默认是“warn”级别

  LogLevel warn

  # 访问日志记录的格式,每一种格式都有不同的内容,根据你的需要进行定制,以获取最多访问信息

  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

  LogFormat "%h %l %u %t \"%r\" %>s %b" common

  LogFormat "%{Referer}i -> %U" referer

  LogFormat "%{User-agent}i" agent

  # 使用上面格式的那一种,默认是使用common

  CustomLog logs/access_log common

  文件格式预定义的格式内容:

  %a 远程用户IP

  %A 本地httpd服务器的ip

  %f 传送的文件名

  %h 远程主机

  %m 请求方式

  %l identd给出的远程名

  %p 连接的httpd端口号

  %P 请求的httpd进程

  %t 时间

  %T 服务请求时间

  你可以定制自己的日志格式,然后通过CustomLog logs/access_log common来进行调用。

  注意,日志文件是由运行Apache的用户进行打开的,要注意该文件的安全,防止被黑客改写或者删除。

  (3) Apache服务信息显示控制

  在配置文件中有个选项是控制是否显示apache版本信息、主机名称、端口、支持的cgi等信息的:

  ServerSignature On

  默认为On,那么将显示所有信息:

  我故意访问一个不存在的文件:http://www.target.com/404.html

  那么就会在给的错误提示中显示如下信息:

  Apache/2.0.53 (Unix) PHP/4.3.11 Server at target.com Port 80

  所有Apache和PHP的信息暴露无遗,这是很不安全的。当然同时还有Off和EMail选项,Off将不显示任何信息,EMail将显示管理员的邮箱地址,建议设为Off或者EMail,这样能够避免泄漏Apache服务器的信息给黑客。

  (4) 目录浏览

  在httpd.conf中可以设置apache能够对一些没有索引文件的网页目录进行目录浏览:

  Options Indexes FollowSymLinks

  AllowOverride None

  这是不合适也不安全的,建议不需要目录浏览:

  Options FollowSymLinks

  AllowOverride None

  (5) 用户主页

  设置httpd.conf中的:

  UserDir public_html

  能够使得每个使用系统的用户在自己的主目录下建立 public_html 目录后就能够把自己的网页放进该目录,然后通过:

  http://www.target.com/~用户名/网页 就能够显示自己的网页,这是不安全的,而且对于我们服务器来讲,这没有必要,所以我们直接关闭该功能:

  UserDir disabled

  或者把该内容改名,改成 一个黑客比较不容易猜到的文件名,比如:

  UserDir webserver_public_htmlpath

  也可以只允许部分用户具有该功能:

  UserDir enabled user1 user2 user3

  (6) CGI执行目录

  如果你的apache要执行一些perl等cgi程序,那么就要设置一下选项:

  ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

  但是这也给了黑客利用一些不安全的cgi程序来进行破坏,所以如果你不需要cgi的话,建议关闭该选项:

  #ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"

  (7) 控制PHP脚本只能访问指定目录

  在httpd.conf添加如下内容:

  php_admin_value open_basedir /usr/www

  后面的路径是你需要PHP脚本能够访问的目录,如果PHP脚本想要访问其他目录将出项错误提示。

  (8) 目录访问控制 (未完)

  这项内容最复杂,同时涉及的东西也比较多,我只能简单说一下,不清楚请参考其他文章。

  比如下面的内容:

  Options FollowSymLinks

  AllowOverride None

  就是允许访问每一个目录,里面设置的是允许执行的动作,一般包含的动作有:Options、AllowOverride、Order、Allow、Deny。

  Options是只对指定目录及其子目录能够执行的操作,Indexes、Includes、FollowSymLinks、ExecCGI、MultiViews、None、All等操作。

  AllowOverride是指定目录访问的权限,当然也可以通过 AccessFileName文件指定的 .htaccess 来控制。它的操作有:None、All、Options、FileInfo、AuthConfit、Limit等。

linux

  Order、Allow、Deny三个指令必须配合来控制目录访问权限。Order指定检查次序的规则,比如Order Allow, Deny,表示先按Allow检查,如果不匹配再按Deny进行检查。Order Deny, Allow ,表示先按Deny规则检查,如果不满足条件,再按Allow进行检查。(6) 控制数据库访问权限

  对于使用php脚本来进行交互,最好建立一个用户只针对某个库有 update、select、delete、insert、drop table、create table等权限,这样就很好避免了数据库用户名和密码被黑客查看后最小损失。

  比如下面我们创建一个数据库为db1,同时建立一个用户test1能够访问该数据库。

  mysql> create database db1;

  mysql> grant select,insert,update,delete,create,drop privileges on db1.* to test1@localhost identified by ’admindb’;

  以上SQL是创建一个数据库db1,同时增加了一个test1用户,口令是admindb,但是它只能从本地连接mysql,对db1库有select,insert,update,delete,create,drop操作权限。

  (7) 限制一般用户浏览其他用户数据库

  如果有多个数据库,每个数据库有一个用户,那么必须限制用户浏览其他数据库内容,可以在启动MySQL服务器时加--skip-show-database 启动参数就能够达到目的。

  (8) 忘记mysql密码的解决办法

  如果不慎忘记了MySQL的root密码,我们可以在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证 (./safe_mysqld --skip-grant-tables &),这样我们就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用探索者费大量系统资源:

  ls_recurse_enable=NO

  (8) 上传文件的默认权限,设置为022:

  local_umask=022

  如果要覆盖删除等,还要打开:

  write_enable=YES

  (9) ftp的banner信息,为了防止黑客获取更多服务器的信息,设置该项:

  ftpd_banner=banner string

  把后面的banner string设为你需要的banner提示信息,为了安全,建议不要暴露关于vsFTPd的任何信息。

  另外,如果你的信息比较多的话,可以设置为提示信息是读取一个文件中的信息:

  banner_file=/directory/vsftpd_banner_file

  (10) 打开日志功能:

  xferlog_enable=YES

  同时设置日志的目录:

  xferlog_file=/var/log/vsftpd.log

  启用详细的日志记录格式:

  xferlog_enable=YES

  (11) 如果打开虚用户功能等,那么建议关闭本地用户登陆:

  local_enable=NO

  vsFTPd还有很多安全设置,毕竟人家的名字就是:Very Secure FTP Daemon,反正它的溢出漏洞什么的是很少的,如果要更安全,建议按照自己的需要设置vsftpd,设置的好,它绝对是最安全的。

  5. SSH安全设置

  SSH是一个基于SSL的安全连接远程管理的服务程序,主要出现就是为了解决telnet、rlogin、rsh等程序在程序交互过程中存在明文传输易被监听的问题而产生的,目前基本上是推荐使用ssh来代替telnet、rlogin、rsh等远程管理服务。

  ssh能够直接在windows平台下通过Secure SSH Client等客户端工具进行连接管理,目前最流行的服务器端就是OpenSSH程序,目前最新版本是OpenSSH4.0版,详细可以参考www.openssh.com网站。

  OpenSSH在FreeBSD下已经集成安装了,FreeBSD5.3下的OpenSSH版本是3.8.1,建议ports升级到4.0。

  主要的安全配置文件是/etc/ssh/sshd_config文件,我们编辑该文件。

  (1) 使用protocol 2代替protocol 1,SSH2更加安全,可以防止攻击者通过修改携带的版本banner来劫持(hijacking)启动会话进程并降低到protocol 1。注释掉protocol 2,1 改用下面语句代替:

  protocol 2

  (2) 合理设置最大连接数量, 防止DOS攻击

  MaxStartups 5:50:10

  (3)关闭X11forwording ,防止会话劫持

linux

  X11Forwarding no 2. shell后门

  这个比较常用,也比较流行。一般就是把root执行的shell程序通过setuid的形式把shell程序拷贝到其他能够执行的地方,然后只要用小权限用户执行该shell就能够直接获取root权限。

  比如:

  # cp /bin/sh /tmp/.backdoor

  # chown root:root /tmp/.backdoor

  # chmod +s /tmp/.backdoor

  这样只是把sh复制了,如果你喜欢其他shell,比如ksh、csh也可以,具体你看各个不同的操作系统而定。你就可以把那个加了s标记的shell程序放到任何目录,最好是深一点,不容易被人发现的地方,比如/usr/local/share/man之类的目录,然后你使用小权限用户登陆后执行该shell就可以了,比如我们上面复制的shell,我们只要用小权限用户登陆后执行:

  $ /tmp/.backdoor

  #

  就可以了,当然,如何获得小权限用户,你可以使用暴力破解一些帐户,或者自己创建一个小权限的帐户。

  * 防范方法:

  首先给各个主要目录加上我们上面说的文件指纹校验,知道某个目录下有什么文件,如果多出了可疑文件可以仔细检查。还有使用find命令来查找有没有危险的root suid程序:

  find / -type f (-perm -4000 -o -perm -2000 ) -print

  3. Crontab服务后门

  crontab命令就相当于windows下的at命令,定期执行某些任务。对黑客来讲,比如定期建立一个帐户,然后过多久就删除,这样管理员永远看不到系统中有后门,这样是非常保险的。。

  * 防范方法:

  cron的服务默认是存储在 /var/spool/crontab/root目录下,定期检查cron服务,看是否有异常的任务在执行,或者如果你不使用cron的话,直接关闭掉它。

  4. rhosts后门

  Rhosts文件常常被黑客利用来制作后门,如果系统开了rlogin、rexec等r的服务,因为象rlogin这样的服务是基于rhosts文件里的主机名使用简单的认证方法,所以黑客只要将.rhosts文件设置成"++",那么就允许任何人从任何地方使用该用户名,无须口令登陆513端口的rlogin服务就行。而且r之类的服务没有日志能力,不容易被发现。

  实现方法:

  # echo "++" > /usr/heiyeluren/.rhosts

  # rlogin -l heiyeluren localhost

  这样就不需要任何密码,直接输入用户名heiyeluren就登陆到了系统。

  * 防范办法:

  不要使用rlogin等服务,同时也不推荐使用telnet等服务,因为telnetd等守护进程溢出漏洞一堆,而且在数据传输过程中是没有加密的,很容易被嗅探,建议使用ssh等经过安全加密的服务来替代。

  5. Login后门

  login程序通常用来对telnet来的用户进行口令验证. 入侵者获取login的原代码并修改使它在比较输入口令与存储口令时先检查后门口令. 如果用户敲入后门口令,它将忽视管理员设置的口令让你长驱直入。

  * 防范方法:

  一般针对这类后门,一般都是使用"string"命令搜索login程序中是否有中是否有密码等字符串来进行检查。如果密码经过加密,那么就对login文件进行指纹记录和MD5值的记录,觉得异常时进行检测。

  6. Bind后门

  就是通过常用的网络连接协议 TCP/UDP/ICMP 来建立连接的后门,这个在Windows下可是轰轰烈烈。

  比较普遍的有TCP协议的后门都是写一段程序开一个指定的端口进行监听,然后从客户端进行连接后登陆系统。也有黑客为了隐蔽使用UDP协议来连接。icmp后门也常见,一般是。有时候可能bind后门跟服务后门结合,黑客通过自己写的bind后门来替换inetd中的服务。

  * 防范方法:

linux

  经常使用netstat命令检查有没有非法的端口打开,最好直接用防火墙屏蔽除了正常访问的端口之外的端口。对于ping后门的话,直接在防火墙上禁止ping服务器

  以上就是关于FreeBSD系统Web服务器安全设置的方法,想必都了解了吧,更多相关内容请继续关注中国E盟技术频道。