Pull to refresh
0
0
Send message

Pivoting или проброс портов

Reading time3 min
Views30K
Наткнулся на статью "SSH-туннели — пробрасываем порт" и захотелось ее дополнить.

Итак, какие еще способы тунеллирования есть:

1. Динамический доступ через SSH


Допустим мы имеем SSH доступ в сеть, и хотим получить доступ к другим хостам/портам в этой сети. Способ уже описанный в вышеупомянутой статье предполагает знание хоста: порта куда мы хотим получить доступ. Но что если мы не знаем этого?

Тут может пригодиться динамический доступ через SSH. Для его конфигурации используется опция ssh -D.

ssh -D 127:0.0.1:2222 user@remotehost

После подключения вы получите динамический socks4 прокси-сервер, слушающий на своей машине на порту 2222 и предоставляющий доступ к удаленной сети.

Как воспользоваться этим доступом? Один из вариантов — использовать proxychains.

  • Устанавливаем Proxychains:

    apt-get proxychains
    

  • Конфигурируем proxychains для использования порта 2222 (на нем слушает наш прокси). Для этого редактируем файл /etc/proxychains.conf и меняем текущую конфигурацию в разделе [ProxyList] с socks4 127.0.0.1 9050 на socks4 127.0.0.1 2222
  • Теперь мы можем использовать proxychains с (почти) любой утилитой. Например, можно запустить сканирование всей удаленной сети при помощи nmap:

    proxychains nmap -sT -sV -v -P0 адрес_подсети маска_подсети
    

Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments7

Пишем форум с нуля на Ruby on Rails и AngularJS

Reading time27 min
Views39K
Не так давно я рассказывал о геме Oxymoron, позволяющем очень просто и быстро строить современные Single Page Application на AngularJS и Ruby on Rails. Статья была встречена весьма позитивно, поэтому пришло время написать более-менее сложное приложение, чтобы показать все возможности гема.
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments31

Более чем 80 средств мониторинга системы Linux

Reading time12 min
Views319K
Ниже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.



1. первый инструмент — top

Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
читать дальше
Total votes 94: ↑82 and ↓12+70
Comments68

Почти полное руководство по flexbox (без самих flexbox)

Reading time3 min
Views63K
image

К сожалению, не у всех есть браузер/устройство, поддерживающие flexbox. Это руководство в виде шпаргалки, в котором предлагаются альтернативы обратной совместимости для свойств flexbox.

Хотя некоторый CSS-код в этом руководстве, возможно, покажется очевидным, я собираюсь бросить вызов flexbox, а также предложить простые решения проблем, которые возникали, пока он не обрёл популярность.

Читать всю статью
Total votes 41: ↑32 and ↓9+23
Comments59

Подходы к проектированию RESTful API

Reading time17 min
Views144K

Автор: Вячеслав Михайлов, Solutions Architect.

В этой статье я поделюсь опытом проектирования RESTful API — на конкретных примерах покажу, как делать хотя бы простые сервисы красиво. Также мы поговорим, что такое API и зачем он нужен, поговорим об основах REST — обсудим, на чем его можно реализовывать; коснемся основных веб-практик, которые зависят и не зависят от этой технологии. Также узнаем, как составлять хорошую документацию, затрачивая на это минимум усилий, и посмотрим, какие существуют способы нумерации версий для RESTful API.

Часть 1. Теория


Итак, как мы все знаем, API — application programming interface (интерфейс программирования приложений), набор правил и механизмов, с помощью которых одно приложение или компонент взаимодействует с другими

Почему хороший API — это важно?

  • Простота использования и поддержки. Хороший API просто использовать и поддерживать.
  • Хорошая конверсия в среде разработчиков. Если всем нравится ваш API, к вам приходят новые клиенты и пользователи.
  • Выше популярность вашего сервиса. Чем больше пользователей API, тем выше популярность вашего сервиса.
  • Лучше изоляция компонентов. Чем лучше структура API, тем лучше изоляция компонентов.
  • Хорошее впечатление о продукте. API — это как бы UI разработчиков; это то, на что разработчики обращают внимание в первую очередь при встрече с продуктом. Если API кривой, вы как технический эксперт не будете рекомендовать компаниям использовать такой продукт, приобретая что-то стороннее.


Теперь посмотрим, какие бывают виды API.

Виды API по способу реализации:
  • Web service APIs
    • XML-RPC and JSON-RPC
    • SOAP
    • REST

  • WebSockets APIs
  • Library-based APIs
    • Java Script

  • Class-based APIs
    • C# API
    • Java



Виды API по категориям применения:

  • OS function and routines
    • Access to file system
    • Access to user interface

  • Object remoting APIs
    • CORBA
    • .Net remoting

  • Hardware APIs
    • Video acceleration (OpenCL…)
    • Hard disk drives
    • PCI bus



Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments37

Каналы в Telegram, которые будут интересны ИТ-специалистам

Reading time2 min
Views43K
image

Русскоязычные каналы в Telegram начали обретать свою популярность в самом начале 2016 года. Ряд изданий так или иначе уже освещали наиболее интересные каналы, но не придерживались выборки конкретно по ИТ-тематике. Под катом собраны все известные мне каналы, которые, скорее всего, будут интересны «айтишникам» и удовлетворяют следующим критериям:

— содержат оригинальный и актуальный контент
— не дублируют какое-либо сообщество или сайт
— регулярно обновляются
— содержат ссылки на первоисточник
— не содержат рекламы, банальностей и постов не по теме

Получилось 10 штук.
Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments27

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Подборка: Более 800 ресурсов для front-end-разработчиков

Reading time24 min
Views107K
Мы продолжаем публиковать подборки полезных инструментов. Ниже представлена подборка из более 800 сервисов, книг, статей, видеотуториалов и других материалов, которые будут полезны всем, кто занимается фронтенд-разработкой.

Читать дальше →
Total votes 59: ↑35 and ↓24+11
Comments10

350+ полезных ресурсов, книг и инструментов для работы с Docker

Reading time14 min
Views103K
Мы уже ни раз приводили полезные руководства и подборки источников для разработчиков. На этот раз мы решили продолжить тему контейнеров, которую мы затрагивали ранее, и рассказать о подборке тематических ресурсов на GitHub.

Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments8

Как масштабировать Ruby-приложения

Reading time3 min
Views13K
Основная цель нашей работы состоит в том, чтобы сделать IaaS простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Поэтому мы проводим постоянную оптимизацию всех систем и рассказываем о том, что нам удалось сделать, в нашем блоге на Хабре.

Пара примеров:


Сегодня мы решили взглянуть на западный опыт и кратко проанализировать тему масштабирования приложений. Нас привлекло руководство Нейта Беркопека (Nate Berkopec), эксперта по Ruby.

Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments14

Ресурсы для дизайнеров и front-end-разработчиков

Reading time5 min
Views64K
Ниже представлена подборка инструментов для дизайнеров и front-end-разработчиков. Мы настоятельно рекомендуем вам просмотреть их все. Надеемся, что вы найдете для себя что-то полезное.

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments7

400 потрясающих бесплатных сервисов

Reading time16 min
Views721K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments38

50 лучших инструментов для разработки CSS и JavaScript

Reading time3 min
Views74K
Веб-разработчику постоянно необходимо быть в курсе появления новых библиотек и инструментов. Я нашёл и выбрал несколько лучших инструментов для разработки как CSS, так и JavaScript. Это не просто копипаста – это выборка, основанная как на рекомендациях, так и на личном опыте использования.

Разработка фронтэнда – штука хитрая. И хотя она не слишком сложная для освоения, некоторые тонкости освоить также не помешает. В сети ежедневно появляются отличные ресурсы. Они могут дать толчок развитию ваших навыков и помочь вам лучше выполнить вашу задачу.

Лучшие инструменты для CSS и JavaScript


1) Fileicone

Сборник 100%-CSS файловых иконок. Может пригодиться для дизайна страниц.

image

2) Marx

Элегантное обнуление CSS безо всякого JavaScript.

image
Читать дальше →
Total votes 54: ↑36 and ↓18+18
Comments17

Подборка бесплатных инструментов для разработчиков

Reading time28 min
Views186K
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

Читать дальше →
Total votes 96: ↑89 and ↓7+82
Comments38

Ghost Methods в Ruby (перевод)

Reading time3 min
Views14K
Предлагаю вашему вниманию перевод фрагмента книги Metaprogramming Ruby 2 за авторством Паоло Перротта (Paolo Perrotta).

Что такое method_missing?


В Руби мы можем вызывать методы которые не существуют, но это будет возвращать нам ошибку. Для примера:

class Lawyer; end
nick = Lawyer.new
nick.talk_simple

NoMethodError: undefined method 'talk_simple' for #<Lawyer:0x007f801aa81938>

Помните ли вы как работает поиск методов? Когда вы вызываете метод talk_simple, Ruby идет в класс объекта nick, и перебирает там методы. Если он не может найти метод там, он ищет его в родителей данного класса, потом в Object и наконец в BasicObject. Ну и поскольку Ruby не может нигде найти метод talk_simple, он запускает метод method_missing для nick’a. Ruby знает что этот метод есть, потому, что это приватный метод BasicObject от которого наследуются все объекты.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments28

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views235K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Total votes 191: ↑186 and ↓5+181
Comments120

Сервис для системного администратора. Часть 1

Reading time23 min
Views40K
image

1. Предисловие


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

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

Таким образом — задачи по автоматизации часто нуждаются в простом GUI для удобного управления, упрощения. Например — сбор трафика. Или возможность откатывать бекапы/релизы по кнопке (даже если кто-то катится пакетами через SCM систему). Или менять Mysql master без подглядывания консоль ( какое-то количество ошибок возникает из-за неверно забитой в команды, не на том сервере).
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments24

DevTips: Советы веб-разработчику (1-16)

Reading time5 min
Views70K
Команда браузера Google Chrome проделывает огромную работу для того, чтобы разработчикам жилось лучше. Chrome DevTools — пример замечательного инструмента, сильно упрощающего отладку вашего веб-приложения. Но подчас не весь функционал этой системы виден с первого взгляда, поэтому Umar Hansa — программист из Лондона — описывает его на своем сайте, причем в весьма удобном формате: немного текста и короткий скринкаст. А мы, в свою очередь, решили сделать эти советы более доступными русскоязычной аудитории.

Содержание:
  1. Перенаправление порта позволит вам открывать локальные ссылки на мобильном устройстве
  2. Активация псевдо-классов DOM-элемента
  3. Повтор сетевого запроса при помощи cURL
  4. Запуск сохранённых блоков кода (сниппетов) на любой веб-странице
  5. Отслеживание изменений файлов через DevTools
  6. Простая запись действий страницы
  7. Поиск элементов DOM-дерева при помощи CSS-селекторов
  8. Копирование изображения в формате Data URI
  9. Переход к нужной строке при открытии файла
  10. Упрощенная навигация между правками
  11. Копирование ответа на сетевой запрос
  12. Работа с несколькими курсорами при редактировании скриптов
  13. Блочное выделение
  14. Быстрый мониторинг событий в консоли
  15. Доступ к выбранному DOM-узлу в консоли
  16. Отслеживание незавершенных сетевых запросов при помощи фильтра is:running

Продолжение: 17-32, 33-48.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments18

DNS сервер BIND (теория)

Reading time21 min
Views495K
Основная цель DNS — это отображение доменных имен в IP адреса и наоборот — IP в DNS. В статье я рассмотрю работу DNS сервера BIND (Berkeley Internet Name Domain, ранее: Berkeley Internet Name Daemon), как сАмого (не побоюсь этого слова) распространенного. BIND входит в состав любого дистрибутива UNIX. Основу BIND составляет демон named, который для своей работы использует порт UDP/53 и для некоторых запросов TCP/53.

Основные понятия Domain Name System


Исторически, до появления доменной системы имен роль инструмента разрешения символьных имен в IP выполнял файл /etc/hosts, который и в настоящее время играет далеко не последнюю роль в данном деле. Но с ростом количества хостов в глобальной сети, отслеживать и обслуживать базу имен на всех хостах стало нереально затруднительно. В результате придумали DNS, представляющую собой иерархическую, распределенную систему доменных зон. Давайте рассмотрим структуру Системы Доменных Имён на иллюстрации:
Читать дальше →
Total votes 110: ↑102 and ↓8+94
Comments24

Лайфхаки для веб-разработчика

Reading time3 min
Views44K
Обожаю трюки и лайфхаки. Каждый раз радуюсь, когда удается упростить очередную рутинную операцию. А так как работаю я, вот уже 8 лет, веб-программистом, то рутинные операции и лайфхаки у меня программерские. Вот этим и хочу с вами поделиться.
Часть трюков до меня уже описали на хабре, часть я взял из других источников, часть придумал сам. Буду благодарен если в комментариях к посту вы напишете, какие трюки используете вы.

Использование ** в zsh


Таким образом я ищу файлы в папке по расширению рекурсивно:
ls **/*.json

файлы с размером выше чем 1 мегабайт:
ls -lh **/*(Lm+1)

Быстро и уверенно удаляем мусор из репозитория в python проекте и судорожно правим. gitignore:
git rm --cached **/*.pyc


Читать дальше →
Total votes 55: ↑35 and ↓20+15
Comments51

Information

Rating
Does not participate
Registered
Activity