0 Голосов

Исходный код вики Proxy

Редактировал(а) Anton Krivchenkov 31.03.2026 00:03

Скрыть последних авторов
Anton Krivchenkov 8.1 1 {{velocity}}
2 {{html clean="false"}}
3 <style>
4 /* Стили для кнопки внутри стандартного блока .code */
5 .code {
6 position: relative !important; /* Позволяет кнопке «прилипнуть» к углу */
7 }
8
9 .copy-btn-standard {
10 position: absolute;
11 top: 5px;
12 right: 5px;
13 z-index: 100;
14 padding: 3px 8px;
15 font-size: 11px;
16 background: rgba(255, 255, 255, 0.1);
17 color: #fff;
18 border: 1px solid rgba(255, 255, 255, 0.2);
19 border-radius: 3px;
20 cursor: pointer;
21 transition: all 0.2s;
22 }
23
24 .copy-btn-standard:hover {
25 background: rgba(255, 255, 255, 0.2);
26 border-color: #fff;
27 }
28 </style>
29
30 <script>
31 (function() {
32 function addCopyButtons() {
33 // Находим все стандартные блоки макроса {{code}}
34 const blocks = document.querySelectorAll('.code');
35
36 blocks.forEach(block => {
37 // Проверяем, не добавили ли мы кнопку уже
38 if (block.querySelector('.copy-btn-standard')) return;
39
40 const btn = document.createElement('button');
41 btn.className = 'copy-btn-standard';
42 btn.innerText = 'Копировать';
43
44 btn.onclick = function(e) {
45 e.preventDefault();
46 // Берем текст блока, исключая текст самой кнопки
47 const textToCopy = block.innerText.replace('Копировать', '').trim();
48
49 navigator.clipboard.writeText(textToCopy).then(() => {
50 const originalText = btn.innerText;
51 btn.innerText = '✅';
52 setTimeout(() => { btn.innerText = originalText; }, 1500);
53 });
54 };
55
56 block.appendChild(btn);
57 });
58 }
59
60 // Запуск после загрузки страницы
61 document.addEventListener('DOMContentLoaded', addCopyButtons);
62 // На случай, если страница загружается асинхронно
63 setTimeout(addCopyButtons, 1000);
64 })();
65 </script>
66 {{/html}}
67 {{/velocity}}
68
Anton Krivchenkov 2.5 69 # Отключение ICMP
70
Anton Krivchenkov 1.2 71 nano disable_ping.sh
72
Anton Krivchenkov 2.7 73 -- НЕ ввезде прокатывает )) Зависит от Хостера
74
Anton Krivchenkov 1.2 75 #!/usr/bin/env bash
76 set -e
77
78 # Требуются root-права
79
80 # Запретить входящие ICMP echo-request (ping) IPv4
81 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP # [web:6][web:9]
82
83 # Если используешь IPv6, можно дополнительно глушануть и его:
84 ip6tables -A INPUT -p ipv6-icmp --icmpv6-type echo-request -j DROP # [web:9]
85
86 # Чтобы убедиться:
87 echo "Текущие правила ICMP:"
88 iptables -L INPUT -n | grep icmp || true
89 ip6tables -L INPUT -n | grep icmp || true
90
Anton Krivchenkov 2.2 91 применяем
Anton Krivchenkov 1.2 92
93 chmod +x disable_ping.sh && ./disable_ping.sh
94
Anton Krivchenkov 2.5 95 # Утилиты
Anton Krivchenkov 2.3 96
97 sudo apt update && sudo apt upgrade -y && \
98 sudo apt install -y \
99 gpg btop ncdu nload iperf3 mc htop net-tools curl wget tree \
100 git vim tmux mtr traceroute dnsutils iproute2 \
101 jq lsof rsync unzip zip \
102 netcat-openbsd socat \
103 bash-completion \
104 unattended-upgrades ufw fail2ban && \
105 sudo dpkg-reconfigure -plow unattended-upgrades && \
106 sudo apt clean && sudo apt autoremove -y
107
108 Кратко, зачем что:
109
110 * git – конфиги, dotfiles, скрипты.xda-developers+1
111 * vim – базовый редактор всегда под рукой.tecmint+1
112 * tmux – мультиплексор, чтобы сессии не умирали по SSH.admin-companion+1
113 * mtr, traceroute – диагностика сети, трассировка + статистика.linuxblog+1
114 * dnsutils – dig, nslookup для проверки DNS.[linuxblog](https://linuxblog.io/linux-sysadmin-tools/)​
115 * iproute2 – современный стек ip, ss и т.п. (обычно уже стоит, но можно дотащить).manpages.ubuntu+1
116 * jq – парсинг JSON в CLI (API, kubectl, docker и т.д.).tecmint+1
117 * lsof – кто держит порт/файл, очень выручает.dedirock+1
118 * rsync – бэкапы, заливка на другие сервера.[linuxblog](https://linuxblog.io/linux-sysadmin-tools/)​
119 * unzip/zip – работа с zip‑архивами.[linuxblog](https://linuxblog.io/linux-sysadmin-tools/)​
120 * netcat-openbsd, socat – проверки портов, простые TCP/UDP туннели.dedirock+1
121 * bash-completion – автодополнение в bash (если на нём что‑то будешь делать).[linuxblog](https://linuxblog.io/linux-sysadmin-tools/)​
122
123 --
124
Anton Krivchenkov 4.1 125 базовая настройка:
Anton Krivchenkov 2.3 126
127 # UFW
128 sudo ufw default deny incoming
129 sudo ufw default allow outgoing
130 sudo ufw allow OpenSSH
131 sudo ufw enable
132
Anton Krivchenkov 6.1 133 ### fail2ban
Anton Krivchenkov 5.1 134
Anton Krivchenkov 6.1 135 sudo apt install fail2ban -y
136 sudo bash -c 'cat > /etc/fail2ban/jail.local << "JAIL"
137 [DEFAULT]
138 bantime = 24h
139 findtime = 10m
140 maxretry = 3
141
142 bantime.increment = true
143 bantime.factor = 2
144 bantime.maxtime = 4w
145
146 banaction = iptables-multiport
147 banaction_allports = iptables-allports
148
149 ignoreip = 127.0.0.1/8 ::1
150
151 [sshd]
152 enabled = true
153 logpath = %(sshd_log)s
154 backend = %(sshd_backend)s
155 maxretry = 3
156 bantime = 48h
157 findtime = 15m
158 mode = aggressive
159
160 [sshd-ddos]
161 enabled = true
162 logpath = %(sshd_log)s
163 backend = %(sshd_backend)s
164 maxretry = 5
165 bantime = 24h
166 findtime = 30s
167
168 [recidive]
169 enabled = true
170 logpath = /var/log/fail2ban.log
171 maxretry = 3
172 bantime = 4w
173 findtime = 7d
174 banaction = iptables-allports
175 JAIL
176 apt-get update
177 apt-get install -y fail2ban
178 systemctl enable --now fail2ban
179 systemctl restart fail2ban
180 echo "fail2ban настроен и запущен"
181 '
182 systemctl enable fail2ban
183 systemctl restart fail2ban
Anton Krivchenkov 5.1 184
Anton Krivchenkov 2.5 185 # ZSH
Anton Krivchenkov 2.4 186
187 sudo apt update && sudo apt install -y zsh git fonts-powerline curl && \
188 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended && \
189 sed -i 's/^ZSH_THEME=.*/ZSH_THEME="agnoster"/' ~/.zshrc && \
190 grep -q "^ZSH_DISABLE_COMPFIX=" ~/.zshrc && sed -i 's/^ZSH_DISABLE_COMPFIX=.*/ZSH_DISABLE_COMPFIX="true"/' ~/.zshrc || echo 'ZSH_DISABLE_COMPFIX="true"' >> ~/.zshrc && \
191 sed -i 's/^plugins=(.*/plugins=(git sudo zsh-autosuggestions zsh-syntax-highlighting)/' ~/.zshrc && \
192 git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && \
193 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \
194 printf "\nalias ll='ls -la'\nalias gs='git status'\nalias d='docker ps --format \"table {{.Names}}\t{{.Status}}\t{{.Ports}}\"'\nalias dcu='docker compose up -d'\nalias dcd='docker compose down'\nalias dl='docker logs'\nalias n='nano'\nalias lzd='lazydocker'\nalias dr='dry'\nalias dcuf='docker compose up -d --force-recreate'\nalias dv='docker ps -a --format \"table {{.Names}}\t{{.Mounts}}\"'\nalias dvc='docker ps -a --format \"{{.Mounts}}\" | tr \",\" \"\n\" | grep -v \"^$\" | sort | uniq'\nalias dvo='comm -23 <(docker volume ls -q | sort) <(docker ps -a --format \"{{.Mounts}}\" | tr \",\" \"\n\" | grep -v \"^$\" | sort | uniq)'\nalias dsp='docker system prune -a --volumes'\nalias ds='docker stats --no-stream'\nalias dcdub='docker compose down && docker compose up --build'\nalias cr_gitlab_repo='/prod/create_repo_and_push.sh'\n" >> ~/.zshrc && \
195 chsh -s "$(which zsh)"
196
197 дальше
198
199 exec zsh
200
201 что делает:
202
203 * ставит zsh, git и powerline‑шрифты
204 * ставит Oh My Zsh
205 * включает нужную тему и плагины
206 * добавляет твои алиасы
207 * включает ZSH_DISABLE_COMPFIX="true"
208 * делает zsh оболочкой по умолчанию
209
210 --
211
Anton Krivchenkov 2.5 212 # Докер
Anton Krivchenkov 2.2 213
214 sudo curl -fsSL https://get.docker.com | sh &&
215 LATEST=$(curl -sL https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
216 DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
217 mkdir -p $DOCKER_CONFIG/cli-plugins
218 curl -sSL https://github.com/docker/compose/releases/download/$LATEST/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
219 chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
220 docker compose version
221
Anton Krivchenkov 4.1 222 ## Управление докером
Anton Krivchenkov 2.3 223
Anton Krivchenkov 4.1 224 ### ctop
Anton Krivchenkov 2.3 225
226 sudo wget https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -O /usr/local/bin/ctop
227 sudo chmod +x /usr/local/bin/ctop
228
Anton Krivchenkov 4.1 229 ### lzd
Anton Krivchenkov 2.3 230
231 DIR=/usr/local/bin \
Anton Krivchenkov 7.1 232 curl -fsSL https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | sudo DIR=/usr/local/bin bash && echo "alias lzd='lazydocker'" >> "$HOME/.zshrc"