Skip to content

Instantly share code, notes, and snippets.

View furdarius's full-sized avatar

Artemiy Ryabinkov furdarius

View GitHub Profile
@furdarius
furdarius / wsvhost.conf
Created October 3, 2017 19:48
Пример конфигурации для websocket vhost, при использовании nginx как proxy.
server {
listen 80;
server_name ws.mysite.com;
access_log off;
return 301 https://$server_name$request_uri;
}
upstream wsserver {
ip_hash;
@furdarius
furdarius / docker-experimental-enable.md
Last active April 9, 2020 09:44
Как активировать experimental mode в Docker на Ubuntu 17.04

В последних версиях Ubuntu запуском процессов в системе занимается Systemd, и именно этот init manager определяет, что происходит при sudo service docker start.

  1. Узнаем, где найти кофигурационный файл для запуска Docker Daemon:
$ sudo service docker status | grep Loaded
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
  1. Открываем указанный файл (в моем случае /lib/systemd/system/docker.service) и добавляем в строку запуска процесса флаг --experimental=true
@furdarius
furdarius / upgrade-gogland.sh
Created April 11, 2017 12:21
Upgrade Gogland
#!/bin/bash -e
# IMPORTANT. Run with sudo!
# Early Access program: https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program
echo -n "Please enter the Gogland download url (eg https://download.jetbrains.com/go/gogland-171.3780.106.tar.gz): "
read url
# Download file from url
echo "Downloading Gogland to ~/Downloads"
cd ~/Downloads
@furdarius
furdarius / firewall.sh
Created March 21, 2017 08:32
Iptables desktop firewall
#!/bin/bash
#Simple Firewall Script.
#Add "pre-up iptables-restore < /etc/iptables.rules" to /etc/network/interfaces
#Setting up default kernel tunings here (don't worry too much about these right now, they are acceptable defaults) #DROP ICMP echo-requests sent to broadcast/multi-cast addresses.
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#DROP source routed packets
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#Enable TCP SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
@furdarius
furdarius / upgrade-datagrip.sh
Last active April 8, 2017 08:27
Upgrade DataGrip
#!/bin/bash -e
# IMPORTANT. Run with sudo!
# Early Access program: https://www.jetbrains.com/datagrip/nextversion/
echo -n "Please enter the DataGrip download url (eg https://download.jetbrains.com/datagrip/datagrip-171.3780.53.tar.gz): "
read url
# Download file from url
echo "Downloading DataGrip to ~/Downloads"
cd ~/Downloads
@furdarius
furdarius / update-phpstorm.sh
Last active August 3, 2018 04:50
Update EAP PhpStorm
#!/bin/bash -e
# IMPORTANT. Phpstom installation exists on /opt/phpstorm.
# IMPORTANT. Run with sudo!
# Early Access program: https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program
echo -n "Please enter the PhpStorm download url (eg http://download.jetbrains.com/webide/PhpStorm-EAP-141.690.tar.gz): "
read url
# Download file from url
echo "Downloading PhpStorm to ~/Downloads"
@furdarius
furdarius / nix-perfomance.md
Last active August 29, 2022 05:51
Linux system performance optimization

Ulimit

The ulimit is a mechanism for restrict the amount of various resources a process an consume. There's a shell command to set the ulimit for processes which are started in that shell.

If you are using bash as your shell, you can list the current ulimit settings by issuing this command in a terminal: ulimit -a

How to increase open file limits in linux

Increase system-wide limits:

@furdarius
furdarius / ssl-certs-generation.md
Last active March 13, 2022 19:26
О том как генерировать SSL сертификаты

Криптографические алгоритмы

На сегодняшний день (27 января 2017) в криптографии наиболее широко распространены алгоритмы построенные на базе RSA и Elliptic Curves.

RSA имеет большую популярность, в следствии того, что был изобретен раньше и прост в исполнении. RSA основан на вычислительной сложности задачи факторизации больших целых чисел.

Задачей факторизации люди занимаются уже множество десятилетий, а вот субэкспоненциальных алгоритмов решения задачи дискретного логарифмирования на сегодняшний день не известно.

@furdarius
furdarius / csrf-tutorial.md
Last active February 7, 2024 18:38
Защита от CSRF

Что такое CSRF атака?

Ознакомиться с самой идеей атаки CSRF можно на классических ресурсах:

Выдержка из ответа на SO:

Причина CSRF кроется в том, что браузеры не понимают, как различить, было ли действие явно совершено пользователем (как, скажем, нажатие кнопки на форме или переход по ссылке) или пользователь неумышленно выполнил это действие (например, при посещении bad.com, ресурсом был отправлен запрос на good.com/some_action, в то время как пользователь уже был залогинен на good.com).

@furdarius
furdarius / ssh-keys-tutorial.md
Last active August 24, 2016 08:55
Как пользоваться SSH ключами
  1. Пользователь генерирует пару ключей
    • Публичный (id_rsa.pub) - Этот ключ записывается на сервера или отдаётся во вне, что-бы по нему авторизовывать пользователя.
    • Приватный (id_rsa) - Не покидает машины, на которой он был сгенерирован. Используется для подписи данных и авторизации на внешнем сервере. (Приватный ключ защищается паролем, поэтому, будучи сворованным, не дает злоумышленнику воспользоваться им)
  2. Пользователь даёт владельцу машины публичный ключ (id_rsa.pub)
  3. Владелец машины записывает этот ключ в authorized_keys
  4. Теперь авторизация по ключу конкретным пользователем на конкретной машине возможна.
  5. Желательно отключать авторизацию по паролю на сервере. Для этого в файле sshd_config внести опцию PasswordAuthentification no

Доп. материалы: