#!/bin/bash

# need to be run as root
 ]]; then
    echo "must to be run as root"
    exit
fi

# giving user passwordless sudo privileges
who=`whoami`
myhomepath=$(cat /etc/passwd|grep $who|awk -F: '{print $6}')

# receive specific port from cmd,
PORT=${:-}

#install package
sudo apt-get install -y squid stunnel

# generate key, including client & server
cd /etc/stunnel

openssl req -new -x509 -days  -batch -nodes -config /usr/share/doc/stunnel4/examples/stunnel.cnf -out server.pem -keyout server.pem
openssl req -new -x509 -days  -batch -nodes -config /usr/share/doc/stunnel4/examples/stunnel.cnf -out client.pem -keyout client.pem

# modify (if not exist, will create) stunnel config
sudo cat <<EOF >/etc/stunnel/stunnel.conf
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
pid = /stunnel4.pid
debug =
output = stunnel.log

cert = /etc/stunnel/server.pem
#sslVersion = SSLv3

verify =
CAfile = /etc/stunnel/client.pem

socket = r:TCP_NODELAY=
socket = l:TCP_NODELAY=

[squid]
accept = $PORT
connect =
EOF

# config squid
sudo sed -i -r "s/^#acl localnet src 10.0.0.0/acl localnet src 10.0.0.0/g" /etc/squid3/squid.conf
sudo sed -i -r "s/^#acl localnet src 172.16.0.0/acl localnet src 172.16.0.0/g" /etc/squid3/squid.conf
sudo sed -i -r "s/^#acl localnet src 192.168.0.0/acl localnet src 192.168.0.0/g" /etc/squid3/squid.conf
sudo sed -i -r "s/^#acl localnet src fc00::/acl localnet src fc00::/g" /etc/squid3/squid.conf
sudo sed -i -r "s/^#acl localnet src fe80::/acl localnet src fe80::/g" /etc/squid3/squid.conf
sudo sed -i -r "/acl Safe_ports port 777/a acl SSL_ports port 443 6667 7709 143 993 585 5223 29418 \\n" /etc/squid3/squid.conf
sudo sed -i -r "/acl CONNECT method CONNECT/a acl irc_port port 6667\\nacl irc dstdomain irc.freenode.net\\nhttp_access allow irc irc_port \\n" /etc/squid3/squid.conf

# important...
sed -i -r "s/ENABLED=0/ENABLED=1/g" /etc/default/stunnel4

# restart service
sudo service stunnel4 restart

最新文章

  1. ubuntu网络配置&amp;&amp;ubuntu apt-get错误解决办法
  2. 如何批量删除虚拟机及其关联的存储(Windows Azure)
  3. Javascript中的对象和原型(3)
  4. Generator 函数的含义与用法
  5. HDU 4358 Boring counting 树状数组+思路
  6. EasyUI 添加tab页(iframe方式)
  7. [转]ubuntu zip 文件乱码解决 压缩乱码
  8. Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
  9. [C#] 网页Html转PDF档(一行程式码解决)
  10. Oracle 11g XE 是 Oracle 数据库的免费版本
  11. Java高并发之无锁与Atomic源码分析
  12. Java虚拟机构建对象过程小记
  13. Light oj 1018 - Brush (IV) 状态压缩
  14. phpmyadmin详细的图文使用教程
  15. centos7 设置系统默认启动的界面
  16. iar stm32 启动代码片段分析
  17. postman的Testing examples(测试脚本示例)
  18. 在hadoop集群添加了slave节点的方法
  19. python解决处理中文的问题
  20. Android的第一个程序

热门文章

  1. C# 怎么才能取到网卡的型号信息呢? 如: 博通 NetLink BCM57781 Gigabit Ethernet
  2. eclipse 高亮代码
  3. Office 365 SharePoint Online 学习链接
  4. SQL SERVER 字符串常用函数
  5. 3D几何变换
  6. WebService 生成类的命令语句
  7. HTML 5 &lt;script&gt; 标签
  8. silverlight导出excel
  9. Python中为feedparser设置超时时间教程
  10. css 笔记