Posts Tagged ‘ linux

Кодування імен файлів в Linux

Дали мені декілька каталогів з музикою, щоб записати на CD-R, але під час передачі через FTP побилось кодування самих файлів, щоб виправити данну неприємність в Linux є маленька утиліта convmv
Ставимо її:

$apt-get install convmv

а потім правимо кодування :

$convmv -f cp1251 -t utf-8 -r --nosmart --replace --notest /якась/папка/

–nosmart – не чіпає файли які вже в кодуванні UTF8
–replace – заміняє файли
-r – рекурсивно

Отримати список всіх підтримуваних кодувань :

$convmv --list

Привязать MAC к IP на шлюзе

Чтобы отсеять незнакомцев которым не дозволен выход в инет либо гуляние по корпоративным подсетям, можно применить фильтр мак-адресов + ip-адресов
В случае если шлюзом выступает сервер на Linux, с iptables на борту, выглядит это так:

Read more

15 команд для управления PostgreSQL

1. Как изменить root пароль в PostgreSQL?

$ /usr/local/pgsql/bin/psql postgres postgres
Password: (oldpassword)
ALTER USER postgres WITH PASSWORD ‘tmppassword’;
$ /usr/local/pgsql/bin/psql postgres postgres
Password: (tmppassword)

Read more

проброс udp трафика в http

появилось желание давать знакомым смотреть свое домашнее ip-tv

Пара десятков минут в гугле и решение банально простое:
лезем на SourceForge
качаем архив, распаковываем и в папке делаем:

make && make install

Read more

Проброс трафика на другую машину

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

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 21 -j DNAT --to-destination 10.0.3.99
iptables -t nat -A POSTROUTING -p tcp -d 10.0.3.99 --dport 21 -j MASQUERADE

10.0.3.99 – куда заворачивать

Горячие клавиши в screen

Key Action Notes
Ctrl+a c new window
Ctrl+a n next window I bind F12 to this
Ctrl+a p previous window I bind F11 to this
Ctrl+a “ select window from list I have window list in the status line
Ctrl+a Ctrl+a previous window viewed
Ctrl+a S split terminal horizontally into regions Ctrl+a c to create new window there
Ctrl+a | split terminal vertically into regions Requires debian/ubuntu patched screen 4.0
Ctrl+a :resize resize region
Ctrl+a :fit fit screen size to new terminal size Ctrl+a F is the same. Do after resizing xterm
Ctrl+a :remove remove region Ctrl+a X is the same
Ctrl+a tab Move to next region
Ctrl+a d detach screen from terminal Start screen with -r option to reattach
Ctrl+a A set window title
Ctrl+a x lock session Enter user password to unlock
Ctrl+a [ enter scrollback/copy mode Enter to start and end copy region. Ctrl+a ] to leave this mode
Ctrl+a ] paste buffer Supports pasting between windows
Ctrl+a > write paste buffer to file useful for copying between screens
Ctrl+a < read paste buffer from file useful for pasting between screens
Ctrl+a ? show key bindings/command names Note unbound commands only in man page
Ctrl+a : goto screen command prompt up shows last command entered

Отбрасывание пакетов ping

/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Это просто заставит ядро игнорировать все сообщения ping (ICMP-пакеты типа 0). IP-пакет, несущий ICMP-сообщение, может содержать также в нагрузку и другую информацию, о которой вы можете не подозревать, поэтому следует отключить прием. Администраторы используют ping как утилиту диагностики и часто выражают недовольство, если она отключена, но нет причины позволять чужакам пинговать узел. Тем не менее, если необходимо разрешить внутренним пользователям использовать ping, то можно отключить сообщения ICMP типа 0 в межсетевом экране (тем самым позволив локальным администраторам использовать эту утилиту).
Read more

стук на открытие порта ssh

Самое простое — открывать порт ssh (22) после стука в заданный высокий порт:

iptables -N ssh_knock # Создаем цепочку для проверки попыток соединений на защищаемый порт
# Если за последние 60 секунд было 2 и более стука — блокируем, на всякий случай
iptables -A ssh_knock -m recent --rcheck --seconds 60 --hitcount 2 -j RETURN
# Если за последние 10 секунд стук в нужный порт был — разрешить соединение
iptables -A ssh_knock -m recent --rcheck --seconds 10 -j ACCEPT
iptables -F INPUT # Очищаем цепочку INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешаем пакеты по установленным соединениям
# Все попытки открыть новое соединение по SSH направляем на проверку
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ssh_knock
# Здесь мы добавляем правило для регистрации стука
iptables -A INPUT -m state --state NEW -p tcp --dport 27520 -m recent --set
# Опять же на всякий случай — при стуке в соседние порты закрываем SSH
iptables -A INPUT -m state --state NEW -p tcp -m multiport --dport 27519,27521 -m recent --remove
iptables -P INPUT DROP # Что не разрешено — то запрещено

Даже в таком простом примере присутствуют жесткие меры защиты: защищаемый порт ssh (22) открывается на 10 секунд после стука в заданный порт (27520), при этом более одного стука в этот порт в течение минуты считается ошибкой. Также стук в соседние с заданным порты сразу закрывает защищаемый порт. Это делается в целях защиты от подбора стука.

Запись потокового радио в mp3 файл

На случай если нужно записать какую-то радио программу и под рукой есть консоль Линукс, то нет ничего проще 🙂

mplayer http://showtcast.test.ru:8128 -dumpstream -dumpfile recorded_music.mp3 -vc dummy -vo null

Пакетное переименование файлов

Иногда бывает нужно переименовать большое количество файлов в соответствии с каким-либо правилом. Например, мне было нужно немного систематизировать файлы в папке с обоями для рабочего стола, для чего я их решил переименовать таким образом, чтобы название каждого файла в этой папке начиналось с разрешения wallpaper’а. Естественно, что вручную переименование файлов заняло бы очень много времени. Но была найдена простенькая программа, с помощью которой можно пакетно переименовывать файлы в папке, называется она GPRename.

Read more

Команды консоли

find

Ищет файлы-каталоги по именам. Классная команда. Обычно ею не умеют пользоваться.
Синтаксис использования: find откуда_искать что_искать
Примеры использования:
find . -name ‘*bmp’ Найти относительно текущего каталога все файлы, оканчивающиеся на bmp (рисунки то бишь)
find / -name ‘*bak’ Найти по всей системе файлы резервных копий
find / -сtime -1 Найти в системе файлы, изменённые в последние сутки
find / -size +1024k Найти файлы, размером больше 1 мегабайта
find . -type d Найти все поддиректории, которые вложены в текущую директорию.
Частые приёмы использования с другими командами:
find . -size -2048k -exec rm -f {} \; Уничтожить все файлы относительно текущей директории, которые имеют размер менее 2-х мегабайт (например, почистить директорию с музыкой от мусора и недокачанных файлов)

Read more