LINUX.ORG.RU

Сообщения Aleki

 

OpenWrt + WireGuard + Обход блокировок

Форум — Admin

Доброго времени суток, форумчане.

Настраивал по гайду обход блокировок на роутере и даже написал баш скрипт для личных нужд, который всё это дело автоматически настраивает, но что-то идёт не так.

После настройки на ПК, который подключен по Ethernet к роутеру, всё работает нормально, в том числе открывает заблокированные ресурсы.

При этом девайс, который подключается по Wi-Fi долго пытается открыть любой сайт и выдает ошибку по таймауту. Однако, через какое-то время и на этом девайсе может заработать интернет. Причину и следствие не понял.

Через какое-то время роутер и вовсе может перестать отвечать (ping, ssh), но потом сам заводится =/

В простое у роутера такая картина:

  1  [                                  0.0%]   Tasks: 19, 0 thr; 1 running
  2  [                                  0.0%]   Load average: 0.27 0.14 0.13 
  3  [                                  0.0%]   Uptime: 09:03:14
  4  [||                                1.3%]
  Mem[|||||||||||||||||||||        111M/248M]
  Swp[                                 0K/0K]

Во время обновления списка IP адресов ядра нагружаются на секунд 5 и снова всё нормализуется.

Вот скрипт, которым я настраиваю роутер, когда у него дефолтные настройки:

#!/bin/sh

GREEN_COLOR="\033[1;32m"
NO_COLOR="\033[0m"

echo -e "${GREEN_COLOR}Updating list of available packages...${NO_COLOR}"
opkg update


echo
echo
echo -e "${GREEN_COLOR}Installing wireguard package...${NO_COLOR}"
opkg install wireguard


echo
echo
echo -e "${GREEN_COLOR}Configuring wireguard...${NO_COLOR}"
PRIVATE_KEY_OF_CLIENT="HIDDEN"
PUBLIC_KEY_OF_SERVER="HIDDEN"
IP_ADDRESS_OF_SERVER="HIDDEN"

uci set network.wg0=interface
uci set network.wg0.private_key="${PRIVATE_KEY_OF_CLIENT}"
uci add_list network.wg0.addresses="10.0.0.2/32"
uci set network.wg0.listen_port="51820"
uci set network.wg0.proto="wireguard"

uci add network wireguard_wg0
uci set network.@wireguard_wg0[-1].public_key="${PUBLIC_KEY_OF_SERVER}"
uci set network.@wireguard_wg0[-1].allowed_ips="0.0.0.0/0"
uci set network.@wireguard_wg0[-1].route_allowed_ips="0"
uci set network.@wireguard_wg0[-1].endpoint_host="${IP_ADDRESS_OF_SERVER}"
uci set network.@wireguard_wg0[-1].endpoint_port="51820"
uci set network.@wireguard_wg0[-1].persistent_keepalive="25"

uci commit


echo
echo
echo -e "${GREEN_COLOR}Installing ipset and curl packages...${NO_COLOR}"
opkg install ipset curl


echo
echo
echo -e "${GREEN_COLOR}Configuring bypass lock...${NO_COLOR}"
SET_OF_BLOCKED_SUBNETWORKS="blocked-subnetworks"
SET_OF_BLOCKED_IP_ADDRESSES="blocked-ip-addresses"

cat > /etc/init.d/bypass-lock << EOM
#!/bin/sh /etc/rc.common

START=99

start() {
	if ! ipset list -n | grep -q "${SET_OF_BLOCKED_SUBNETWORKS}"; then
		ipset create "${SET_OF_BLOCKED_SUBNETWORKS}" hash:net \\
			family inet \\
			hashsize 4194304 \\
			maxelem 4194304
	fi

	if ! ipset list -n | grep -q "${SET_OF_BLOCKED_IP_ADDRESSES}"; then
		ipset create "${SET_OF_BLOCKED_IP_ADDRESSES}" hash:net \\
			family inet \\
			hashsize 4194304 \\
			maxelem 4194304
	fi


	echo "create temporary-${SET_OF_BLOCKED_SUBNETWORKS} hash:net" \\
		"family inet" \\
		"hashsize 4194304" \\
		"maxelem 4194304" \\
		> /tmp/blocked-lists

	curl https://antifilter.download/list/subnet.lst --silent | while read ip
	do
		echo "add temporary-${SET_OF_BLOCKED_SUBNETWORKS} \${ip}" >> /tmp/blocked-lists
	done


	echo "create temporary-${SET_OF_BLOCKED_IP_ADDRESSES} hash:net" \\
		"family inet" \\
		"hashsize 4194304" \\
		"maxelem 4194304" \\
		>> /tmp/blocked-lists

	curl https://antifilter.download/list/ipsum.lst --silent | while read ip
	do
		echo "add temporary-${SET_OF_BLOCKED_IP_ADDRESSES} \${ip}" >> /tmp/blocked-lists
	done


	ipset destroy temporary-${SET_OF_BLOCKED_SUBNETWORKS} -q
	ipset destroy temporary-${SET_OF_BLOCKED_IP_ADDRESSES} -q


	ipset restore < /tmp/blocked-lists


	ipset swap temporary-${SET_OF_BLOCKED_SUBNETWORKS} ${SET_OF_BLOCKED_SUBNETWORKS}
	ipset swap temporary-${SET_OF_BLOCKED_IP_ADDRESSES} ${SET_OF_BLOCKED_IP_ADDRESSES}
}
EOM
chmod +x /etc/init.d/bypass-lock
/etc/init.d/bypass-lock enable
/etc/init.d/bypass-lock start

echo "*/5 * * * * /etc/init.d/bypass-lock start" >> /etc/crontabs/root
echo >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start

echo "99  vpn" >> /etc/iproute2/rt_tables
cat > /etc/hotplug.d/iface/30-add-route << EOM
#!/bin/sh

ip route add table vpn default dev wg0
EOM

uci add network rule
uci set network.@rule[-1].priority="100"
uci set network.@rule[-1].lookup="vpn"
uci set network.@rule[-1].mark="0x1"

uci add firewall zone
uci set firewall.@zone[-1].name="wg"
uci set firewall.@zone[-1].family="ipv4"
uci set firewall.@zone[-1].masq="1"
uci set firewall.@zone[-1].output="ACCEPT"
uci set firewall.@zone[-1].forward="REJECT"
uci set firewall.@zone[-1].input="REJECT"
uci set firewall.@zone[-1].mtu_fix="1"
uci set firewall.@zone[-1].network="wg0"

uci add firewall forwarding
uci set firewall.@forwarding[-1].src="lan"
uci set firewall.@forwarding[-1].dest="wg"

uci add firewall ipset
uci set firewall.@ipset[-1].name="${SET_OF_BLOCKED_SUBNETWORKS}"
uci set firewall.@ipset[-1].storage="hash"
uci set firewall.@ipset[-1].match="dst_net"

uci add firewall ipset
uci set firewall.@ipset[-1].name="${SET_OF_BLOCKED_IP_ADDRESSES}"
uci set firewall.@ipset[-1].storage="hash"
uci set firewall.@ipset[-1].match="dst_net"

uci add firewall rule
uci set firewall.@rule[-1].src="lan"
uci set firewall.@rule[-1].proto="all"
uci set firewall.@rule[-1].ipset="${SET_OF_BLOCKED_SUBNETWORKS}"
uci set firewall.@rule[-1].set_mark="0x1"
uci set firewall.@rule[-1].target="MARK"

uci add firewall rule
uci set firewall.@rule[-1].src="lan"
uci set firewall.@rule[-1].proto="all"
uci set firewall.@rule[-1].ipset="${SET_OF_BLOCKED_IP_ADDRESSES}"
uci set firewall.@rule[-1].set_mark="0x1"
uci set firewall.@rule[-1].target="MARK"

uci commit


echo
echo
echo -e "${GREEN_COLOR}Installing unbound, unbound-control and odhcpd packages...${NO_COLOR}"
opkg install unbound odhcpd unbound-control


echo
echo
echo -e "${GREEN_COLOR}Removing dnsmasq package...${NO_COLOR}"
opkg remove dnsmasq


echo
echo
echo -e "${GREEN_COLOR}Removing default DNS configurations...${NO_COLOR}"
uci delete unbound.@unbound[-1]
uci delete dhcp.@dnsmasq[-1]
uci delete dhcp.wan
uci delete dhcp.lan
uci delete dhcp.odhcpd

uci commit


echo
echo
echo -e "${GREEN_COLOR}Configuring DNS-Over-TLS by Cloudflare...${NO_COLOR}"
cat >> /etc/unbound/unbound_ext.conf << EOM
forward-zone:
	name: "."
	forward-ssl-upstream: yes
	forward-addr: 1.1.1.1@853
	forward-addr: 1.0.0.1@853
	forward-addr: 2606:4700:4700::1111@853
	forward-addr: 2606:4700:4700::1001@853
EOM

uci add unbound unbound
uci set unbound.@unbound[-1].add_local_fqdn="1"
uci set unbound.@unbound[-1].add_wan_fqdn="1"
uci set unbound.@unbound[-1].dhcp_link="odhcpd"
uci set unbound.@unbound[-1].dhcp4_slaac6="1"
uci set unbound.@unbound[-1].domain="lan"
uci set unbound.@unbound[-1].domain_type="static"
uci set unbound.@unbound[-1].listen_port="53"
uci set unbound.@unbound[-1].rebind_protection="1"
uci set unbound.@unbound[-1].unbound_control="1"

uci set dhcp.lan=dhcp
uci set dhcp.lan.dhcpv4="server"
uci set dhcp.lan.dhcpv6="server"
uci set dhcp.lan.interface="lan"
uci set dhcp.lan.leasetime="12h"
uci set dhcp.lan.ra="server"
uci set dhcp.lan.ra_management="1"

uci set dhcp.odhcpd=odhcpd
uci set dhcp.odhcpd.maindhcp="1"
uci set dhcp.odhcpd.leasefile="/var/lib/odhcpd/dhcp.leases"
uci set dhcp.odhcpd.leasetrigger="/usr/lib/unbound/odhcpd.sh"
uci commit

/etc/init.d/unbound enable
/etc/init.d/unbound start

echo
echo
echo -e "${GREEN_COLOR}Restarting network...${NO_COLOR}"
/etc/init.d/network restart

Буду очень благодарен, если кто-то поможет. Сам в сетях не разбираюсь, к сожалению. Если нужны какие-то доп. конфиги, то скину.

 , ,

Aleki
()

Qt Quick 2.0 Сделать окно панелью

Форум — Development

доброго времени суток! Второй вечер пытаюсь сделать дефолтное окно на Qt Quick панелью. На самом Qt не получилось, но написал такой скрипт на баше:

#!/bin/bash
window_name="panel"
window_width="1366"
window_height="32"
window_id=`xdotool search --name "$window_name" | head -n 1`
xdotool windowunmap ${window_id}
xprop -id ${window_id} -f _NET_WM_DESKTOP 32c -set _NET_WM_DESKTOP ALLDESKTOP
xprop -id ${window_id} -f _NET_WM_STATE 32a -set _NET_WM_STATE "_NET_WM_STATE_STICKY, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_SKIP_PAGER"
xprop -id ${window_id} -f _WIN_STATE 32c -set _WIN_STATE 1
xprop -id ${window_id} -f _NET_WM_WINDOW_TYPE 32a -set _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_DOCK
xprop -id ${window_id} -f _NET_WM_STRUT_PARTIAL 32cccccccccccc -set _NET_WM_STRUT_PARTIAL "0,0,${window_height},0,0,0,0,0,0,${window_width},0,0"
xdotool windowmap ${window_id}
Который почему-то не срабатывает.

Буду рад, если кто-то подскажет, как это можно сделать средствами Qt, либо подсказать почему не работает скрипт.

 , ,

Aleki
()

Серо-синий i3

Галерея — Скриншоты

Не так давно уже показывал свой awesome, который я уже сменил на i3, но решил вновь показать свой десктоп, в связи с затишьем в галерее.

Пустой рабочий стол
Nautilus (gtk)

Если конфиги кого-то заинтересуют, то залью на GitHub.

PS i3wm понравился гораздо больше awesome'а своими простыми конфигами и крутым тайлингом «искаропки».

>>> Просмотр (1366x768, 66 Kb)

 ,

Aleki
()

Rarity

Галерея — Скриншоты
  • ubuntu 14.10
  • awesome 3.5.6
  • terminus


Недавно умер HDD, купил SSD, поставил на него ubuntu с netboot и решил попробовать awesome. В итоге awesome прекрасен, но с ubuntu решил уйти снова на debian.
Скриншот с urxvt: http://alekidev.deviantart.com/art/2015-03-19-21-33-28-521202969
Виджетов по минимому: date, net, gmail, vk.com
Конфиги тут: https://github.com/aleki/rarity

>>> Просмотр (1366x768, 104 Kb)

 

Aleki
()

The Scent of Spring | Весна

Галерея — Скриншоты

Wallpaper: http://solutionall.deviantart.com/art/Spring-HD-Wallpaper-346042171
GTK and Shell Theme: Numix (modifed)
Icons: Numix Circle
ШГ: Droid Sans + Open Sans ( + http://www.infinality.net/)
More screenshots: http://alekidev.deviantart.com/gallery/48750536

После недавнего скриншота решил исправиться и залить скриншот с окошком :D
Заодно поставил патч от Infinality, а так же немного изменил темы Numix.

>>> Просмотр (1366x768, 253 Kb)

 , , ,

Aleki
()

Fedora 20, GNOME Shell 3.10.4

Галерея — Скриншоты

Wallpaper: http://simpledesktops.com/browse/desktops/2012/aug/16/extinct/
GTK and Shell Theme: Numix (Blue)
Icons: Numix Circle
Numix: http://numixproject.org/
ШГ: Droid Sans (на моём экране норм)
More screenshots: http://alekidev.deviantart.com/gallery/48696371

>>> Просмотр (1366x768, 15 Kb)

 , ,

Aleki
()

Мой уютный Debian Testing

Галерея — Скриншоты
aleki@enterprise:~$ uname -a
Linux enterprise 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux

Скриншот с окнами

>>> Просмотр (1366x768, 758 Kb)

 , ,

Aleki
()

Создание GTK тем

Форум — Development

Посоветуйте качественные материалы по созданию GTK тем с нуля.

Сам я верстальщик (html, css), может быть что нибудь и получится.

 ,

Aleki
()

RSS подписка на новые темы