пятница, 8 февраля 2013 г.

Генератор паролей из /dev/urandom

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

 Пароли получаются вида:
Ty0E2CegqEdZYwAQmqclw4rVnpEKl6

head - длина пароля 


У кое-кого не заработало на FreeBSD, однако нашли универсальный вариант:

  cat /dev/urandom | grep -oa '[0-9A-Za-z]' | head -n 30 | tr -d '\n'; echo 

воскресенье, 3 февраля 2013 г.

iptables и модуль string

Хитрое правило. Эдакий L7 firewall для linux + iptables, можно дропать пакеты на определенные адреса или определенные фразы.
Значек ! - отрицание.

Суть правила ниже: пользователю с uid=33 можно отправить запрос со словом "byfly.by" лишь на разрешенные IP. Все остальное - дропается.


#!/bin/bash
WHITELIST=guest.txt

for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do
       #echo $x
       iptables -A OUTPUT ! --dst $x -m owner --uid-owner 33 -m string --string "byfly.by" --algo
bm -j DROP
    iptables -A INPUT ! -- dst $x -m string --string --algo bm -j DROP
done
exit 0


Запретим входящий трафик всему, кто не с 192.168.1.24 запрашивает "index.php"

iptables -A INPUT ! -s 192.168.1.24 -m string --string 'index.php' --algo bm -j REJECT

Запретим устанавливать новые исходящие соединения юзеру с uid=33, если там проскакивает "example.com". Такое можно использовать, чтобы, например, забанить php-прокси на шаред-хостинге, если apache без патча itk - работает от одного юзера у всех. В данном случае фаерволл дропнет проксю по двум признакам:

1. Апач инициализирует исходящее соединение.

2. Для блокирования конкретного юзера, надо лишь знаеть, на каком сайте стоит прокси.

iptables -A OUTPUT  -m state --state NEW -m owner --uid-owner 33 -m string --string 'example.com' --algo bm -j DROP