понедельник, 21 марта 2016 г.
суббота, 19 марта 2016 г.
ping или port knocking с использованием iptables
КОПИПАСТА с сайта https://spfng.com/post/hardened-ssh-with-ping-port-knocking-using-only-iptables/
Самая заветная цель любого хакера — получить root-доступ к компьютеру через SSH. До тех пор, пока открыт 22 порт, его будут атаковать, и не только его: не SSH единым. На компьютере работает множество сервисов, публичных и не очень, которые так же могут быть подвержены взлому. Все лишние сервисы должны быть выключены, а все лишние порты прикрыты.
Используя iptables возможно реализовать дополнительный уровень защиты, так называемый «Port Knocking», технология которого заключается в том, что прежде чем подключиться на какой-либо порт, необходимо сперва «постучаться»: подключиться на другой порт, известный только владельцу хоста, после чего основной порт становится доступен на короткий промежуток времени. Можно пойти дальше, ограничиться не одним портом, а несколькими, чтобы требовалось «стучаться» в каждый порт в отдельности и строго в опредлённом порядке. Получается что-то вроде пароля состоящего из отдельных PIN-кодов.
«Port Knocking» известная технология, но почему бы не использовать ICMP? Только вместо номера порта — указывать размер пакета, а в остальном всё тоже самое.
Скрипт реализует «Ping Knocking», чтобы «постучаться» на хост и iptables открыл 22 порт на одну минуту, используя утилиту ping требуется отправить шесть ICMP-пакетов определённого размера и в определённом порядке, а именно:
Скрипт:
Открыть спойлер
Можно вручную выполнить ping шесть раз, указав размер пакета, но удобнее воспользоваться однострочным скриптом, после выполнения которого 22 порт станет доступен на одну минуту, о чём iptables так же сообщит в логах dmesg — строка будет содержать «пароль».
# for n in 4 8 15 16 23 42; do ping -c 1 -s $n spfng.com; done
Никто не сможет подключиться к хосту по SSH не зная точную комбинацию цифр.
Самая заветная цель любого хакера — получить root-доступ к компьютеру через SSH. До тех пор, пока открыт 22 порт, его будут атаковать, и не только его: не SSH единым. На компьютере работает множество сервисов, публичных и не очень, которые так же могут быть подвержены взлому. Все лишние сервисы должны быть выключены, а все лишние порты прикрыты.
Используя iptables возможно реализовать дополнительный уровень защиты, так называемый «Port Knocking», технология которого заключается в том, что прежде чем подключиться на какой-либо порт, необходимо сперва «постучаться»: подключиться на другой порт, известный только владельцу хоста, после чего основной порт становится доступен на короткий промежуток времени. Можно пойти дальше, ограничиться не одним портом, а несколькими, чтобы требовалось «стучаться» в каждый порт в отдельности и строго в опредлённом порядке. Получается что-то вроде пароля состоящего из отдельных PIN-кодов.
«Port Knocking» известная технология, но почему бы не использовать ICMP? Только вместо номера порта — указывать размер пакета, а в остальном всё тоже самое.
Скрипт реализует «Ping Knocking», чтобы «постучаться» на хост и iptables открыл 22 порт на одну минуту, используя утилиту ping требуется отправить шесть ICMP-пакетов определённого размера и в определённом порядке, а именно:
4 8 15 16 23 42
...Скрипт:
Открыть спойлер
#!/bin/bash
set -x
(
iptables -N ICMP_HELLO
iptables -N ICMP_WELCOME
iptables -N ICMP_4
iptables -N ICMP_8
iptables -N ICMP_15
iptables -N ICMP_16
iptables -N ICMP_23
iptables -N ICMP_42
iptables -A INPUT -p icmp --icmp-type echo-request -m conntrack --ctstate NEW -j ICMP_HELLO
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --rcheck --seconds 60 --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP
iptables -A ICMP_HELLO -m recent --rcheck --seconds 60 --name ICMP_42 -j ICMP_WELCOME
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_23 -j ICMP_42
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_16 -j ICMP_23
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_15 -j ICMP_16
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_8 -j ICMP_15
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_4 -j ICMP_8
iptables -A ICMP_HELLO -j ICMP_4
iptables -A ICMP_4 -m length --length $((4 + 28)) -m recent --name ICMP_4 --set -j ACCEPT
iptables -A ICMP_8 -m recent --name ICMP_4 --remove
iptables -A ICMP_8 -m length --length $((8 + 28)) -m recent --name ICMP_8 --set -j ACCEPT
iptables -A ICMP_15 -m recent --name ICMP_8 --remove
iptables -A ICMP_15 -m length --length $((15 + 28)) -m recent --name ICMP_15 --set -j ACCEPT
iptables -A ICMP_16 -m recent --name ICMP_15 --remove
iptables -A ICMP_16 -m length --length $((16 + 28)) -m recent --name ICMP_16 --set -j ACCEPT
iptables -A ICMP_23 -m recent --name ICMP_16 --remove
iptables -A ICMP_23 -m length --length $((23 + 28)) -m recent --name ICMP_23 --set -j ACCEPT
iptables -A ICMP_42 -m recent --name ICMP_23 --remove
iptables -A ICMP_42 -m length --length $((42 + 28)) -m recent --name ICMP_42 --set -j ICMP_WELCOME
iptables -A ICMP_WELCOME -m recent --name ICMP_42 --remove
iptables -A ICMP_WELCOME -m recent --name SSH --set
iptables -A ICMP_WELCOME -j LOG --log-prefix "4 8 15 16 23 42 "
iptables -A ICMP_WELCOME -j ACCEPT
)
set -x
(
iptables -N ICMP_HELLO
iptables -N ICMP_WELCOME
iptables -N ICMP_4
iptables -N ICMP_8
iptables -N ICMP_15
iptables -N ICMP_16
iptables -N ICMP_23
iptables -N ICMP_42
iptables -A INPUT -p icmp --icmp-type echo-request -m conntrack --ctstate NEW -j ICMP_HELLO
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --rcheck --seconds 60 --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j DROP
iptables -A ICMP_HELLO -m recent --rcheck --seconds 60 --name ICMP_42 -j ICMP_WELCOME
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_23 -j ICMP_42
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_16 -j ICMP_23
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_15 -j ICMP_16
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_8 -j ICMP_15
iptables -A ICMP_HELLO -m recent --rcheck --name ICMP_4 -j ICMP_8
iptables -A ICMP_HELLO -j ICMP_4
iptables -A ICMP_4 -m length --length $((4 + 28)) -m recent --name ICMP_4 --set -j ACCEPT
iptables -A ICMP_8 -m recent --name ICMP_4 --remove
iptables -A ICMP_8 -m length --length $((8 + 28)) -m recent --name ICMP_8 --set -j ACCEPT
iptables -A ICMP_15 -m recent --name ICMP_8 --remove
iptables -A ICMP_15 -m length --length $((15 + 28)) -m recent --name ICMP_15 --set -j ACCEPT
iptables -A ICMP_16 -m recent --name ICMP_15 --remove
iptables -A ICMP_16 -m length --length $((16 + 28)) -m recent --name ICMP_16 --set -j ACCEPT
iptables -A ICMP_23 -m recent --name ICMP_16 --remove
iptables -A ICMP_23 -m length --length $((23 + 28)) -m recent --name ICMP_23 --set -j ACCEPT
iptables -A ICMP_42 -m recent --name ICMP_23 --remove
iptables -A ICMP_42 -m length --length $((42 + 28)) -m recent --name ICMP_42 --set -j ICMP_WELCOME
iptables -A ICMP_WELCOME -m recent --name ICMP_42 --remove
iptables -A ICMP_WELCOME -m recent --name SSH --set
iptables -A ICMP_WELCOME -j LOG --log-prefix "4 8 15 16 23 42 "
iptables -A ICMP_WELCOME -j ACCEPT
)
Можно вручную выполнить ping шесть раз, указав размер пакета, но удобнее воспользоваться однострочным скриптом, после выполнения которого 22 порт станет доступен на одну минуту, о чём iptables так же сообщит в логах dmesg — строка будет содержать «пароль».
# for n in 4 8 15 16 23 42; do ping -c 1 -s $n spfng.com; done
Никто не сможет подключиться к хосту по SSH не зная точную комбинацию цифр.
вторник, 15 марта 2016 г.
Стресс-тест и бенчмарк GPU для Linux
GpuTest
http://www.geeks3d.com/20140304/gputest-0-7-0-opengl-benchmark-win-linux-osx-new-fp64-opengl-4-test-and-online-gpu-database/#downloadвроде работает, потестил 2 видюшки :)
i3status + conky + цвета + скрываем заголовки и границы окон
Тут парень пишет, что коньки не умеют цветной вывод в i3status: http://galefrei.blogspot.ru/p/i3.html . Это не правда. Ниже о том как научить показывать коньки в i3status
Мультимедийные клавиши i3 + фон
команда покажет код нажимаемой клавиши:
xev | grep keycode
прописываем в конфиг i3:
bindcode 107 exec scrot
bindcode 121 exec amixer set Master toggle
bindcode 123 exec amixer set Master 10+
bindcode 122 exec amixer set Master 10-
bindcode 172 exec mocp -G
bindcode 179 exec mocp -f
фон с помощью программы feh (пишем в конфиг i3):
exec feh --bg-scale /home/vik24rus/Downloads/oboina.jpg
суббота, 12 марта 2016 г.
Копипаста про провайдера. Забавно.
Не знаю на сколько все это правда, но частично это точно отражает суть нынеших СКС, сетей, и не только у провайдеров.
Работал в интернет провайдере в 2015 году в одном из крупнейших городов Рф - интересовался его историей - команда инженеров полностью меняется примерно раз в год - я был из поколения то ли 10, то ли 15.
Карта сети, настройки оборудования, всё это было действительно работой археолога - каждый раз приходят молодые и неопытные - проводят раскопки, ведут философские дискурсы о своих находках, иногда совершенно неожиданно нам звонили клиенты у которых вдруг отключился наш интернет хотя ни на карте сети, ни в базе платежей - нигде их не было - некоторые клиенты требовали вернуть им часть суммы оплаченный ими за этот месяц - не имея никаких сведений об этих людях у нас была огромная часть клиентов только с адресом.
Работал в интернет провайдере в 2015 году в одном из крупнейших городов Рф - интересовался его историей - команда инженеров полностью меняется примерно раз в год - я был из поколения то ли 10, то ли 15.
Карта сети, настройки оборудования, всё это было действительно работой археолога - каждый раз приходят молодые и неопытные - проводят раскопки, ведут философские дискурсы о своих находках, иногда совершенно неожиданно нам звонили клиенты у которых вдруг отключился наш интернет хотя ни на карте сети, ни в базе платежей - нигде их не было - некоторые клиенты требовали вернуть им часть суммы оплаченный ими за этот месяц - не имея никаких сведений об этих людях у нас была огромная часть клиентов только с адресом.
Назначить vlan на интерфейс Linux
Что-то кругом пишут об утилите vconfig для того что бы повесить vlan на
физический интерфейс. Но она вроде как устаревшая. Так,что вот такая
команда спасет отца русской демократии:
ip link add link eth0 name vlan10 type vlan id 10
Ну и далее назнаем ip:
ifconfig vlan10 192.168.10.10 netmask 255.255.0.0
маршрут:
route add default gw 192.168.1.1
удалить vlan:
ip link delete vlan10
посмотреть информацию о vlan:
ip link add link eth0 name vlan10 type vlan id 10
Ну и далее назнаем ip:
ifconfig vlan10 192.168.10.10 netmask 255.255.0.0
маршрут:
route add default gw 192.168.1.1
удалить vlan:
ip link delete vlan10
посмотреть информацию о vlan:
ip -details link show dev mgmt
ИЗМЕНИТЬ ПАРАМЕТРЫ VLAN'A:
ip link set dev VLANNAME type vlan OPTION VALUE
вторник, 8 марта 2016 г.
понедельник, 7 марта 2016 г.
Русификация Slackware 14.1
при установке я выбрал UTF8.
# grep append /etc/lilo.conf
append=" vt.default_utf8=1"
если =0, то правим на =1
После этого нужно обновить загрузчик.
#lilo
правим файл:
/etc/profile.d/lang.sh
#!/bin/sh
export LANG=ru_RU.UTF-8
export LC_COLLATE=C
правим файл:
/etc/rc.d/rc.font
#!/bin/sh
setfont LatArCyrHeb-16
for i in 1 2 3 4 5 6; do
echo -ne "\033%G" > /dev/tty$i
done
правим файл(настраиваем переключение раскладки в консоли):
/etc/rc.d/rc.keymap
#!/bin/sh
# Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
echo "Loading keybord layout, CapsLock to toggle"
/usr/bin/loadkeys ruwin_cplk-UTF-8
fi
Выполняем:
# chmod a+x /etc/rc.d/rc.font /etc/rc.d/rc.keymap
правим файл:
/usr/share/locale/locale.alias
russian ru_RU.UTF.8
ru_RU ru_RU.UTF-8
ru ru_RU.UTF-8
в автозагрузку иксов киньте строчку для переключения в иксах с помощью Capslock:
exec setxkbmap "us,ru" ",winkeys" "grp:caps_toggle"
grp:alt_shift_toggle - переключение через alt+shift
взято от сюда: http://andy-pa.blogspot.ru/2015/05/slackware-141.html
Подписаться на:
Сообщения (Atom)