Изменения документа Proxy
Редактировал(а) Anton Krivchenkov 31.03.2026 00:03
От версии 2.1
отредактировано Anton Krivchenkov
на 28.02.2026 21:02
на 28.02.2026 21:02
Изменить комментарий:
К данной версии нет комментариев
К версии 8.1
отредактировано Anton Krivchenkov
на 31.03.2026 00:03
на 31.03.2026 00:03
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,5 +1,77 @@ 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 + 69 +# Отключение ICMP 70 + 1 1 nano disable_ping.sh 2 2 73 +-- НЕ ввезде прокатывает )) Зависит от Хостера 74 + 3 3 #!/usr/bin/env bash 4 4 set -e 5 5 ... ... @@ -16,8 +16,145 @@ 16 16 iptables -L INPUT -n | grep icmp || true 17 17 ip6tables -L INPUT -n | grep icmp || true 18 18 19 -применяем 91 +применяем 20 20 21 21 chmod +x disable_ping.sh && ./disable_ping.sh 22 22 23 - 95 +# Утилиты 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 + 125 +базовая настройка: 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 + 133 +### fail2ban 134 + 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 184 + 185 +# ZSH 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 + 212 +# Докер 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 + 222 +## Управление докером 223 + 224 +### ctop 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 + 229 +### lzd 230 + 231 + DIR=/usr/local/bin \ 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"