您当前的位置:首页 > 学海无涯 > 信息安全网站首页信息安全
Memcached安装与安全配置
发布时间:2015-11-16作者:♂逸風★淩軒
一、安装
#!/bin/bash Install_Memcached() { MemcacheVer="2" echo "Which memcached php extension do you choose:" echo "Install php-memcache,(Discuz x) please enter: 1" echo "Install php-memcached, please enter: 2" read -p "Enter 1 or 2 (Default 2): " MemcacheVer if [ "${MemcacheVer}" = "1" ]; then echo "You choose php-memcache" PHP_ZTS="memcache.so" elif [ "${MemcacheVer}" = "2" ]; then echo "You choose php-memcached" PHP_ZTS="memcached.so" else MemcacheVer="1" echo "You choose php-memcache" PHP_ZTS="memcache.so" fi sed -i '/memcache.so/d' /usr/local/php/etc/php.ini sed -i '/memcached.so/d' /usr/local/php/etc/php.ini zend_ext=${zend_ext_dir}${PHP_ZTS} if [ -s "${zend_ext}" ]; then rm -f "${zend_ext}" fi sed -i "/the dl()/i\extension = \"${PHP_ZTS}\"" /usr/local/php/etc/php.ini wget http://www.memcached.org/files/memcached-1.4.24.tar.gz tar zxf memcached-1.4.24 cd memcached-1.4.24 ./configure --prefix=/usr/local/memcached make &&make install ln -sf /usr/local/memcached/bin/memcached /usr/bin/memcached cp init.d.memcached /etc/init.d/memcached chmod +x /etc/init.d/memcached useradd -s /sbin/nologin nobody if [ ! -d /var/lock/subsys ]; then mkdir -p /var/lock/subsys fi /etc/init.d/memcached start chkdonfig memcached on if [ "${MemcacheVer}" = "1" ]; then Install_PHPMemcache elif [ "${MemcacheVer}" = "2" ]; then Install_PHPMemcached fi /etc/init.d/php-fpm restart /etc/init.d/memcached restart } Install_PHPMemcache() { wget http://pecl.php.net/get/memcache-3.0.8.tgz tar zxf memcache-3.0.8.tgz cd memcache-3.0.8 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make && make install } Install_PHPMemcached() { yum install cyrus-sasl-devel -y wget https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz tar zxf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached make && make install cd ../ wget http://pecl.php.net/get/memcached-2.2.0.tgz tar zxf memcached-2.2.0.tgz cd memcached-2.2.0 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached make && make install } Install_Memcached
服务启动文件:
二、错误配置及利用
Memcached服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,且Mecached默认以root权限运行。因而如果Mecached服务器直接暴露在互联网上的话是比较危险,轻则造成敏感数据泄露,重则可导致服务器被入侵。
stats #显示memcached的运行状态
version #显示版本号
stats items #列出item
add key 0 60 5 #增加一个item名为key,存活时间60s,大小为5字节
12345 #key的值
stats cachedump <item: id> <返回结果数量,0代表返回全部> #查看item信息
get key #取得key的值
delete key #删除key
三、修复方案
限定访问的IP
使用iptables限制访问IP,只允许IP为X.X.X.X的主机访问memcached:
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -p tcp -s X.X.X.X --dport 11211 -j ACCEPT
iptables -A INPUT -p udp -s X.X.X.X --dport 11211 -j ACCEPT
四、漏洞扫描与发现
半手动扫描
memcache默认是11211端口,可使用nmap扫描服务器的11211端口:
nmap -n --open -p 11211 X.X.X.X/24
telnet X.X.X.X 11211
stats items
关键字词:配置,服务搭建,安全配置,memcached

上一篇:Redis安装与安全配置
下一篇:NMap使用详解