Sed

-i – Изменить и сохранить указанный документ

Заменить foo на too в первой найденной строке.
$ sed -i ‘s/foo/too/’

Заменить foo на too во всем файле.
$ sed -i ‘s/foo/too/g’

Удалить 14ю строку.
$ sed -i ’14d’ /file

Удалить строку содержащую Network или network.
$ sed -i ‘/[Nn]etwork/d’ /file

Добавить в конец файла “[mounts]” затем перенос на новую строка и “user root”.
$ sed -i ‘$ a \\n[mounts]\nuser root’ /etc/munin/config

После 14ой строки добавить “echo “graph_category logger””.
$ sed ’14a\ echo \”graph_category logger\”‘ /etc/munin/plugins/command

Вставить в начало файла ‘# vim: ft=ruby’ и перенос строки.
$ sed ‘1i # vim: ft=ruby\n’

Заменить повторяющиеся пустые строки на одну пустую строку
$ sed -e ‘:a;/^$/N;/\n$/{D;ba}’ file.txt

Конвертация переносов строк DOS (CR/LF) в Unix (LF)
$ sed ‘s/.$//’ dosfile.txt > unixfile.txt

Заменить строку string1 строкой string2
$ sed ‘s/string1/string2/g’

Изменить строку anystring1 на anystring2
$ sed ‘s/\(.*\)1/\12/g’

Убрать комментарии и пустые строки
$ sed ‘/ *#/d; /^ *$/d’
sed -i “/^$/d” file.txt #-i для изменения внутри документа

Соединить строки (линии) с предшествующим \
$ sed ‘:a; /\\$/N; s/\\\n//; ta’

Удалить предшествующие пробелы с строк
$ sed ‘s/[ \t]*$//’

Заескейпить активные метасимволы оболочки двумя ковычками
$ sed ‘s/\([\\`\\”$\\\\]\)/\\\1/g’

Выровнять числа по правой границе
$ seq 10 | sed “s/^/ /; s/ *\(.\{7,\}\)/\1/”

Напечатать 1000-ную строку
$ sed -n ‘1000p;1000q’

Напечатать строки с 10 по 20-ую
$ sed -n ‘10,20p;20q’

Получить title из HTML страницы
$ sed -n ‘s/.*

 

Частично взято отсюда, спасибо автору!

Nano

Make Nano show line numbers:
sed -i ‘/# set constantshow/c\set constantshow’ /etc/nanorc

Go to the end of file:
Ctrl + w + v

Start selecting text:
Ctrl + 6

Fix ubuntu apt-get and release upgrade errors

Fix fetching updates:

When you get “Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?” error do this:

cd /etc/apt
mv sources.list sources.list.old
lsb_release -a
sudo cat sources.list.old |grep RELEASECODENAME |grep -v "#" |sed 's|us.archive.|old-releases.|g' >> sources.list

(del and retype >> in console if error occures)

 

https://www.tech-notes.net/issues-wit-apt-ubuntu-12-04/

https://stackoverflow.com/questions/38743951/unable-to-fetch-some-archives-maybe-run-apt-get-update-or-try-with-fix-missin

https://askubuntu.com/questions/91815/how-to-install-software-or-upgrade-from-an-old-unsupported-release/91821#91821

 

Resume a release upgrade:
https://askubuntu.com/questions/346678/how-do-i-resume-a-release-upgrade

Fail2ban Info

Some useful info:

https://linux-notes.org/ustanovka-fail2ban/
https://github.com/Bebef/fail2ban-filter.d
https://stackoverflow.com/questions/19794107/fail2ban-error-can´t-ban-with-lighttpssd-auth
https://easyengine.io/tutorials/nginx/fail2ban/

Check who’s banned:

fail2ban-client status JAILNAME

fail2ban alerts sent to a Rocket.Chat channel:

https://forums.rocket.chat/t/fail2ban-and-rocket-chat-integration/2544

Incremental bantime:

https://habr.com/ru/post/238303/

Защита DNS

https://wiki.colobridge.net/безопасность/противодействие_атакам_dns_amplification_ddos

dig -t all ya.ru @<IP адрес вашего сервера>

Ответ защищенного сервера (не поддерживающего рекурсию):

host ya.ru 77.72.133.217
Using domain server:
Name: 77.72.133.217
Address: 77.72.133.217#53
Aliases: 

Host ya.ru.keyweb.ru not found: 5(REFUSED)

https://blog.amet13.name/2015/07/dnsmasq-dns-amplification.html
# vim /etc/dnsmasq.conf

no-resolv
dns-forward-max=0# service dnsmasq restartПроверка:
# dig @$IP +edns=0 +ignore +noadflag com ANY

https://habrahabr.ru/post/51574/
iptables -A INPUT –in-interface eth1 –protocol udp –dport 53 –match state –state NEW –match string –algo kmp –hex-string “|00 00 02 00 01|” –from 40 –to 45 –jump DROP

https://www.lowendtalk.com/discussion/30091/how-to-secure-an-open-dnsmasq-on-the-internet

https://webhamster.ru/mytetrashare/index/mtb0/1467183959tht1i59386

# не пересылать простые текстовые запросы (без точки или без части домена)

domain-needed

# никогда не пересылать не маршрутизированные адреса

bogus-priv

# запрет считывать адреса DNS-серверов с файла resolv.conf

no-resolv

# отключение отслеживание изменения файла /etc/resolv.conf или другого файла выполняющего его функцию

no-poll

# Адреса верхних DNS-серверов (прописаны google OpenDNS)

server=8.8.8.8

server=8.8.4.4

# Для защиты от DNS атак необходимо запретить ответы от вышестоящих DNS серверов с IP адресами компьютеров локальной сети:

stop-dns-rebind

# очистка DNS-кэша при перезапуске сервиса

clear-on-reload

Статус запросов к DNS серверу в реальном времени:

apt-get install ngrep tcpdump
check whats going on:
ngrep -l -q udp and port 53
or
tcpdump -vvv -s 0 -l -n port 53
https://github.com/eBayClassifiedsGroup/PanteraS/issues/166