2015-06-28 18:58:36 +02:00
|
|
|
#
|
|
|
|
# Dockerfile for privoxy
|
|
|
|
#
|
|
|
|
|
|
|
|
FROM alpine
|
|
|
|
MAINTAINER kev <noreply@datageek.info>
|
|
|
|
|
2015-06-28 19:18:53 +02:00
|
|
|
ADD https://github.com/tianon/gosu/releases/download/1.4/gosu-amd64 /usr/sbin/gosu
|
|
|
|
|
|
|
|
RUN apk add -U iptables privoxy \
|
|
|
|
&& chmod +x /usr/sbin/gosu \
|
2015-06-28 18:58:36 +02:00
|
|
|
&& rm -rf /var/cache/apk/*
|
|
|
|
|
2015-06-28 19:18:53 +02:00
|
|
|
RUN sed -i -e '/^listen-address/s/127.0.0.1/0.0.0.0/' \
|
|
|
|
-e '/^accept-intercepted-requests/s/0/1/' \
|
2015-06-30 13:00:43 +02:00
|
|
|
-e '/^enforce-blocks/s/0/1/' \
|
2015-06-28 19:52:38 +02:00
|
|
|
-e '/^#debug/s/#//' /etc/privoxy/config
|
2015-06-28 19:18:53 +02:00
|
|
|
|
2015-06-28 18:58:36 +02:00
|
|
|
VOLUME /etc/privoxy
|
|
|
|
EXPOSE 8118
|
|
|
|
|
2015-07-03 07:00:22 +02:00
|
|
|
CMD echo "{+block{self}}" >> /etc/privoxy/user.action \
|
2015-06-29 04:43:41 +02:00
|
|
|
&& ip a s eth0 | grep -w inet | awk '{print $2}' | cut -d/ -f1 >> /etc/privoxy/user.action \
|
|
|
|
&& ip r s | grep default | awk '{print $3}' >> /etc/privoxy/user.action \
|
2015-06-29 03:18:40 +02:00
|
|
|
&& iptables -t filter -P OUTPUT DROP \
|
2015-06-28 21:57:52 +02:00
|
|
|
&& iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT \
|
|
|
|
&& iptables -t filter -A OUTPUT -p tcp \
|
|
|
|
-m multiport --dports 53,80,443,8118 \
|
|
|
|
-j ACCEPT \
|
|
|
|
&& iptables -t filter -A OUTPUT -p tcp \
|
|
|
|
-m state --state ESTABLISHED,RELATED \
|
|
|
|
-j ACCEPT \
|
|
|
|
&& iptables -t filter -A OUTPUT -p udp \
|
|
|
|
-m state --state ESTABLISHED,RELATED \
|
|
|
|
-j ACCEPT \
|
|
|
|
&& iptables -t filter -A OUTPUT -p tcp \
|
|
|
|
-m owner --uid-owner privoxy \
|
|
|
|
-j ACCEPT \
|
2015-06-29 05:38:35 +02:00
|
|
|
&& iptables -t nat -A OUTPUT -p tcp --dport 80 \
|
2015-06-28 21:57:52 +02:00
|
|
|
-m owner ! --uid-owner privoxy \
|
|
|
|
-j REDIRECT --to-ports 8118 \
|
2015-06-28 19:18:53 +02:00
|
|
|
&& gosu privoxy privoxy --no-daemon /etc/privoxy/config
|