分类目录归档:系统安全

CentOS6.4下部署OpenVpn服务及使用方法

环境说明:
vpn服务器:eth0:120.3.243.54(外网IP)  eth1:192.168.5.253(私网IP)
客户端地址:201.1.36.111 
软件版本:服务端OpenVPN 2.3.2  
实现:访问公司内网及授权vpn地址访问的网段,其他地址均走客户端本地上网
安装步骤:
设置EPEL源
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
 
 
翻墙下载源码:
./configure && make && make install
 
证书生成工具

yum -y install easy-rsa
配置OpenVpn:
mkdir /etc/openvpn/etc -p
cp -R /usr/share/easy-rsa/ /etc/openvpn/
源码目录:
cp sample/sample-config-files/server.conf /etc/openvpn/server.conf

生成证书
cd /etc/openvpn/easy-rsa/2.0
. vars
./clean-all
./build-ca
 
创建vpn server的key
./build-key-server server
创建用户秘钥
./build-key geekwolf
创建Diffie Hellman,用于增强安全性
./build-dh
默认情况所创建的文件会生成在/etc/openvpn/easy-rsa/2.0/keys目录下
 
配置server.conf文件
方法1:采用秘钥认证
local 120.3.243.54 
port 9001
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key # This file should be kept secret
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push “route 192.168.0.0 255.255.0.0”
push “route 104.172.0.0 255.255.0.0″
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
 
方法2:采用用户密码认证
A.额外在上面配置文件后面添加[基于PAM身份认证]
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
client-cert-not-required
username-as-common-name
服务端本地创建用户
useradd -s /sbin/nologin geekwolf
passwd geekwolf 
 
B.额外在上面配置文件后面添加[基于脚本的身份认证]
 
auth-user-pass-verify /usr/local/openvpn/etc/checkpsw.sh via-env
client-cert-not-required
username-as-common-name
 
wget http://openvpn.se/files/other/checkpsw.sh -O /usr/local/openvpn/etc/checkpsw.sh
chmod +x checkpsw.sh
修改脚本PASSFILE和LOG_FILE参数文件位置
PASSFILE=/etc/openvpn/etc/psw-file
LOG_FILE=/etc/openvpn/etc/openvpn-password.log
 
用户名和密码文件格式:
/etc/openvpn/etc/psw-file(用户和密码之间用空格或者tab隔开)
geekwolf geekwolf
 
Windows 7 客户端配置
安装后桌面会生成,属性设置
 
A.若采用秘钥方式认证
客户端做一下事情:
 拷贝服务端ca.crt  用户秘钥geekwolf.crt geekwolf.key 到OpenVpn客户端安装根目录下下的config目录内
 增加客户端配置文件client.ovpn:
client
dev tun
proto tcp
remote 120.3.243.54 9001
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert geekwolf.crt
key geekwolf.key
comp-lzo
verb 3
最后以管理员身份运行OpenVPN GUI程序,即可连接使用vpn
 
A.若采用用户密码认证(pam认证)
注释掉用户cert和keys,配置文件增加密码询问auth-user-pass
既:
client
dev tun
proto tcp
remote 120.3.243.54 9001
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
;cert geekwolf.crt
;key geekwolf.key
comp-lzo
verb 3 
auth-user-pass
(免输入账号密码方法:auth-user-pass passwd.txt)
passwd.txt 格式
账号
密码
 
防火墙配置
可参考源码下的配置:
sample/sample-config-files/firewall.sh
本测试的规则为:
-A INPUT -i tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o tun+ -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT 
-A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
-A POSTROUTING -d 104.172.0.0/255.255.255.0     -o eth0 -j MASQUERADE
 
 
通过以上配置实现了:
访问公司内网192.168.0.0 走vpn的eth1出口,访问104.172.0.0等走vpn的eth0出口,访问其他地址均走客户端本地
 
 
参考资料:
深入OpenVPN的配置 
http://www.linuxfly.org/post/86/
 

python正则检查php webshell方法

python正则检查php webshell方法

注释:扩展rulelist

参考:LINUX下的PHP木马查询
转自angryfox