其实这个很简单只需要简单设置一下就OK了,squid里面要设置透明代理,iptables中要设置允许转发包,将来自80端口的包重定向到3128端口(squid监听的端口)就行了。
squid安装这里就不再说了,squid配置简单说一下:
/etc/squid/squid.conf
http_port 3128 transparent #squid2.6以上版本都这样设置透明代理
cache_mem 1000 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /opt/cache/squid 8000 16 256
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log
dns_nameservers 210.77.192.88
maximum_object_size 409600 KB
maximum_object_size_in_memory 64000 KB
emulate_httpd_log on
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
forwarded_for on
coredump_dir /opt/cache/squid/coredump
cache_effective_user squid
cache_effective_group squid
cache_mgr bikong0411@gmail.com
visible_hostname localhost
访问控制在squid里面设置,squid作透明代理时不能使用用户身份认证机制,即使你设置了也无效。
下面说一下Iptables的设置
首先允许包进行转发
#sysctl -w net.ipv4.ip_forward=1
#sysctl -p #使设置立即生效
然后设置将来自80端口的包重定向到3128端口的规则链
#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
这样一个简单的透明代理就做好了,客户机只需要把网管设为代理服务器的ip就能实现通过透明代理上网了。
squid安装这里就不再说了,squid配置简单说一下:
/etc/squid/squid.conf
http_port 3128 transparent #squid2.6以上版本都这样设置透明代理
cache_mem 1000 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /opt/cache/squid 8000 16 256
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log
dns_nameservers 210.77.192.88
maximum_object_size 409600 KB
maximum_object_size_in_memory 64000 KB
emulate_httpd_log on
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
forwarded_for on
coredump_dir /opt/cache/squid/coredump
cache_effective_user squid
cache_effective_group squid
cache_mgr bikong0411@gmail.com
visible_hostname localhost
访问控制在squid里面设置,squid作透明代理时不能使用用户身份认证机制,即使你设置了也无效。
下面说一下Iptables的设置
首先允许包进行转发
#sysctl -w net.ipv4.ip_forward=1
#sysctl -p #使设置立即生效
然后设置将来自80端口的包重定向到3128端口的规则链
#iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
这样一个简单的透明代理就做好了,客户机只需要把网管设为代理服务器的ip就能实现通过透明代理上网了。
增强DNS服务器的防范DOS/DDOS功能
1、使用SYN cookie---SYN cookie是TCP服务器的三次握手协议的一些修改,是专门用来防范SYN Flood***的一种手段。只需root去执行
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2、增大backlog---增大backlog的值在一定程度上减缓因大量的SYN请求导致的TCP连接堵塞的状况。一般系统默认为1024,可以改变成2048 echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog 3、缩短retries次数 ---系统默认的retries值为5,减少这个数值可以提高系统的响应能力 #echo "2" > /poc/sys/net/ipv4/tcp_synack_retries 4、限制SYN频率 ---- 上述几个方法对DDos***效果不是太好,目前比较有效对SYN频率和次数进行限制,这样最大限度的限制了单个ip 发动***的能力。 #/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT |
转载于:https://blog.51cto.com/hx100/435252