当前位置: 技术问答>linux和unix
想用LINUX做一代理服务器,大家给点建议!
来源: 互联网 发布时间:2015-05-06
本文导语: 我的网络环境如下:三台机器,两台 RED HAT 8 系统,一台WINDOWS2000,长城宽带接入。因为最近网上病毒较多,想用LINUX做一个代理服务器。 要求能使用实现 http,pop3.smtp,socket5.telnet 代理, 需要哪些LINUX软件? | ...
我的网络环境如下:三台机器,两台 RED HAT 8 系统,一台WINDOWS2000,长城宽带接入。因为最近网上病毒较多,想用LINUX做一个代理服务器。
要求能使用实现 http,pop3.smtp,socket5.telnet 代理,
需要哪些LINUX软件?
要求能使用实现 http,pop3.smtp,socket5.telnet 代理,
需要哪些LINUX软件?
|
我的实现方法,可以参考:
配置Redhat 9.0+Squid2.5代理
=====================================================================
# 创建squid用户
=====================================================================
添加squid系统用户和组
# pw groupadd squid
# pw useradd squid -g squid -s /sbin/nologin
建立squid、squid/cache、squid/var、squid/var/logs目录
# mkdir /usr/local/squid
# mkdir /usr/local/squid/cache
# mkdir /usr/local/squid/var
# mkdir /usr/local/squid/var/logs
改变cache目录和logs目录的所有者为squid用户和组
# chown –R squid /usr/local/squid/cache
# chgrp –R squid /usr/local/squid/cache
# chown –R squid /usr/local/squid/var/logs
# chgrp –R squid /usr/local/squid/var/logs
=====================================================================
# 安装squid2.5
=====================================================================
#以下以root身份执行。
#获得最新stable源码
http://www.squid-cache.org
mkdir -p /usr/local/src/distfiles
cd /usr/local/src/distfiles
#FreeBSD
fetch http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1.tar.gz
#Linux
wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1.tar.gz
tar xfz squid-2.5.STABLE1.tar.gz -C ..
cd ../squid-2.5.STABLE1
./configure --prefix=/usr/local/squid
make
make install
eth0接的外网,eth1接的内网,网段为192.168.3
=====================================================================
#启动自运行文件:/etc/rc.d/rc.local
=====================================================================
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/etc/rc.d/init.d/squid start
=====================================================================
#Squid配置文件:/etc/squid/squid.conf
=====================================================================
#取消对代理阵列的支持
icp_port 0
#对日志文件和pid文件位置进行设置
cache_store_log none
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
emulate_httpd_log on
pid_filename /usr/local/squid/var/logs/squid.pid
#设置运行时的用户和组权限
cache_effective_user squid
cache_effective_group squid
#设置管理信息
visible_hostname www.XXX.com.
cache_mgr ???@XXX.com
#设置监听地址和端口
http_port 3128
udp_incoming_address 0.0.0.0
#设置squid用户hot object的物理内存的大小以及设置cache目录
cache_mem 32 MB
cache_dir ufs /usr/local/squid/cache 1024 16 256
#访问控制设置
acl mynet src 192.168.3.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow mynet
http_access deny all
#透明代理设置
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#swap 微调
half_closed_clients off
cache_swap_high 100%
cache_swap_low 80%
maximum_object_size 1024 KB
################
如果不使用日志,将设置部分改成
cache_store_log none
cache_access_log /dev/null
cache_log /dev/null
##################
=====================================================================
#
=====================================================================
#使用非固定IP:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4488 -j DNAT --to 192.168.3.198:80
#使用固定IP:202.142.30.18
iptables -t nat -A PREROUTING -p tcp -d 202.142.30.18 --dport 4488 -j DNAT --to 192.168.3.198:80
=====================================================================
# 启动squid2.5
=====================================================================
运行squid –z建立cache目录结构
/usr/local/squid/sbin/squid –z
启动
/usr/local/squid/sbin/squid start
测试squid运行情况
/etc/rc.d/init.d/squid –NCd1
检看进程:
ps -A|grep squid
配置Redhat 9.0+Squid2.5代理
=====================================================================
# 创建squid用户
=====================================================================
添加squid系统用户和组
# pw groupadd squid
# pw useradd squid -g squid -s /sbin/nologin
建立squid、squid/cache、squid/var、squid/var/logs目录
# mkdir /usr/local/squid
# mkdir /usr/local/squid/cache
# mkdir /usr/local/squid/var
# mkdir /usr/local/squid/var/logs
改变cache目录和logs目录的所有者为squid用户和组
# chown –R squid /usr/local/squid/cache
# chgrp –R squid /usr/local/squid/cache
# chown –R squid /usr/local/squid/var/logs
# chgrp –R squid /usr/local/squid/var/logs
=====================================================================
# 安装squid2.5
=====================================================================
#以下以root身份执行。
#获得最新stable源码
http://www.squid-cache.org
mkdir -p /usr/local/src/distfiles
cd /usr/local/src/distfiles
#FreeBSD
fetch http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1.tar.gz
#Linux
wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE1.tar.gz
tar xfz squid-2.5.STABLE1.tar.gz -C ..
cd ../squid-2.5.STABLE1
./configure --prefix=/usr/local/squid
make
make install
eth0接的外网,eth1接的内网,网段为192.168.3
=====================================================================
#启动自运行文件:/etc/rc.d/rc.local
=====================================================================
/sbin/modprobe ip_tables
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/etc/rc.d/init.d/squid start
=====================================================================
#Squid配置文件:/etc/squid/squid.conf
=====================================================================
#取消对代理阵列的支持
icp_port 0
#对日志文件和pid文件位置进行设置
cache_store_log none
cache_access_log /usr/local/squid/var/logs/access.log
cache_log /usr/local/squid/var/logs/cache.log
emulate_httpd_log on
pid_filename /usr/local/squid/var/logs/squid.pid
#设置运行时的用户和组权限
cache_effective_user squid
cache_effective_group squid
#设置管理信息
visible_hostname www.XXX.com.
cache_mgr ???@XXX.com
#设置监听地址和端口
http_port 3128
udp_incoming_address 0.0.0.0
#设置squid用户hot object的物理内存的大小以及设置cache目录
cache_mem 32 MB
cache_dir ufs /usr/local/squid/cache 1024 16 256
#访问控制设置
acl mynet src 192.168.3.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
http_access allow mynet
http_access deny all
#透明代理设置
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#swap 微调
half_closed_clients off
cache_swap_high 100%
cache_swap_low 80%
maximum_object_size 1024 KB
################
如果不使用日志,将设置部分改成
cache_store_log none
cache_access_log /dev/null
cache_log /dev/null
##################
=====================================================================
#
=====================================================================
#使用非固定IP:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 4488 -j DNAT --to 192.168.3.198:80
#使用固定IP:202.142.30.18
iptables -t nat -A PREROUTING -p tcp -d 202.142.30.18 --dport 4488 -j DNAT --to 192.168.3.198:80
=====================================================================
# 启动squid2.5
=====================================================================
运行squid –z建立cache目录结构
/usr/local/squid/sbin/squid –z
启动
/usr/local/squid/sbin/squid start
测试squid运行情况
/etc/rc.d/init.d/squid –NCd1
检看进程:
ps -A|grep squid
|
http://www.linuxbyte.net/index.php?showforum=11
这个地方有一个iptables的实例。
这个地方有一个iptables的实例。
|
如何使用iptables:
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=180798
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=180798
|
iptables 支持动态ip的