sudo nano /etc/systemd/logind.conf
HandleLidSwitch=ignore
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1 # IPv6 disabled net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
sudo sysctl -p
$ sudo apt install isc-dhcp-server $ sudo nano /etc/dhcp/dhcpd.conf
default-lease-time 600; max-lease-time 7200; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.2; option domain-name-servers 192.168.1.2, 8.8.8.8; option broadcast-address 192.168.1.255; }
sudo /etc/init.d/isc-dhcp-server restart
$ sudo apt install tor $ sudo nano /etc/tor/torrc
# onion # . . VirtualAddrNetworkIPv4 10.0.0.0/8 # DNS AutomapHostsOnResolve 1 # DNS TransPort 0.0.0.0:9040 DNSPort 0.0.0.0:5353 # ExcludeExitNodes {RU}, {UA}, {BY}
$ sudo apt install bind9 $ sudo nano /etc/bind/named.conf.options
options { directory "/var/cache/bind"; forwarders { 127.0.0.1 port 5353; }; listen-on { 192.168.1.2; 127.0.0.1; }; dnssec-validation auto; auth-nxdomain no; listen-on-v6 { none; }; };
forwarders { 8.8.8.8; 8.8.4.4; };
sudo /etc/init.d/bind9 restart
forwarders { 127.0.0.1 port 5353; };
sudo apt install ipset
# ipset ipset -exist create blacklist hash:ip # DNS TOR onion. bind9 iptables -t nat -A PREROUTING -p udp --dport 53 -m string --hex-string "|056f6e696f6e00|" --algo bm -j REDIRECT --to-port 5353 iptables -t nat -A OUTPUT -p udp --dport 53 -m string --hex-string "|056f6e696f6e00|" --algo bm -j REDIRECT --to-port 5353 # IP iptables -t nat -A PREROUTING -p tcp -m set --match-set blacklist dst -j REDIRECT --to-port 9040 iptables -t nat -A OUTPUT -p tcp -m set --match-set blacklist dst -j REDIRECT --to-port 9040 # 10.0.0.0/8 # .onion iptables -t nat -A PREROUTING -p tcp -d 10.0.0.0/8 -j REDIRECT --to-port 9040 iptables -t nat -A OUTPUT -p tcp -d 10.0.0.0/8 -j REDIRECT --to-port 9040 ########################################### # , # ########################################### # NAT iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE # iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # iptables -A INPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP # iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # syn-flood iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # , iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i enp7s0 -j ACCEPT iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # iptables -P INPUT DROP # . iptables -A FORWARD -i enp7s0 -j ACCEPT iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # iptables -P FORWARD DROP
# mkdir -p /var/local/blacklist
# nano /var/local/blacklist/blacklist-update.sh
#! /bin/bash # cd $(dirname $0) # github git pull -q || git clone https://github.com/zapret-info/zi.git . # dump.csv blacklist.txt IP cat dump.csv | cut -f1 -d\; | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort | uniq > blacklist.txt # my-blacklist c , # . blacklist.txt dig +short -f my-blacklist >> blacklist.txt # ipset ipset flush blacklist #c cat blacklist.txt | xargs -n1 ipset add blacklist
# chmod +x /var/local/blacklist/blacklist-update.sh
# echo lostfilm.tv > /var/local/blacklist/my-blacklist
# /var/local/blacklist/blacklist-update.sh
# , , # DNS sleep 60 # . . /var/local/blacklist/blacklist-update.sh
# nano /usr/local/bin/pixelserv
#! /usr/bin/perl -Tw use IO::Socket::INET; $crlf="\015\012"; $pixel=pack("C*",qw(71 73 70 56 57 97 1 0 1 0 128 0 0 255 255 255 0 0 0 33 249 4 1 0 0 0 0 44 0 0 0 0 1 0 1 0 0 2 2 68 1 0 59)); $sock = new IO::Socket::INET ( LocalHost => '0.0.0.0', LocalPort => '80', Proto => 'tcp', Listen => 30, Reuse => 1); if (!defined($sock)) { print "error : cannot bind : $! exit\n"; exit(1); } while ($new_sock = $sock->accept()) { while (<$new_sock>) { chop;chop; # print "$_\n"; if ($_ eq '') { last; } } print $new_sock "HTTP/1.1 200 OK$crlf"; print $new_sock "Content-type: image/gif$crlf"; print $new_sock "Accept-ranges: bytes$crlf"; print $new_sock "Content-length: 43$crlf$crlf"; print $new_sock $pixel; shutdown($new_sock,2); undef($new_sock); } close($sock); exit(0);
# chmod +x /usr/local/bin/pixelserv
# nano /etc/init.d/pixelserv
#! /bin/sh # /etc/init.d/pixelserv # # Carry out specific functions when asked to by the system case "$1" in start) echo "Starting pixelserv " /usr/local/bin/pixelserv & ;; stop) echo "Stopping script pixelserv" killall pixelserv ;; *) echo "Usage: /etc/init.d/pixelserv {start|stop}" exit 1 ;; esac exit 0
# chmod +x /etc/init.d/pixelserv # update-rc.d pixelserv defaults # /etc/init.d/pixelserv start
# nano var/local/blacklist/ad-update.sh
#! /bin/bash cd /etc/bind/ curl "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=bindconfig&showintro=0&mimetype=plaintext" | sed 's/null.zone.file/\/etc\/bind\/db.adzone/g' > named.ad.conf rndc reload
# chmod +x /var/local/blacklist/ad-update.sh
# /var/local/blacklist/ad-update.sh
# nano /etc/bind/db.adzone
$TTL 86400 ; one day @ IN SOA ads.example.com. hostmaster.example.com. ( 2014090102 28800 7200 864000 86400 ) NS my.dns.server.org A 192.168.1.2 @ IN A 192.168.1.2 * IN A 192.168.1.2
# nano /etc/bind/named.conf
include "/etc/bind/named.ad.conf";
rndc reload
/var/local/blacklist/ad-update.sh
# nano /etc/cron.daily/blacklist-update
#!/bin/bash # /var/local/blacklist/ad-update.sh # . . /var/local/blacklist/blacklist-update.sh
# chmod +x /etc/cron.daily/blacklist-update
. dns=dnsmasq
#dns=dnsmasq
Source: https://habr.com/ru/post/336966/
All Articles