как в Linux вывести настройки IP адресов сетевых карт?

чтобы вывести настройки сетевой карты есть команда: ifconfig

чтобы вывести только ip адрес, маску и подсеть можно выбрать эти даные конвеером из несколькоих команд:

вставить вот это в консоль Linux:
ifconfig eth0 | grep "inet addr:" | cut -f2,3

ifconfig eth1 | grep "inet addr:" | cut -f2,3

как получить все IP адреса из лога Asterisk?

чтобы получить все IP адреса из логов Asterisk нужно использовать несколько этапов обработки. Я объединил их в однин конвеер. В нем же считается сколько раз встречается IP адрес в логе. Затем все пересортировывается по возрастанию количества повторений адреса в логе.

вставить вот это в консоль Linux:
grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" "/var/log/asterisk/full" |sort |uniq -c |sort -b -n -r

ограничение и запрет соединений с сервером Asterisk снаружи

как только поставишь asterisk сервер к тебе начнут долбиться с попытками звонить за твой счет. Чтобы это предотвратить в параметрах sip.conf нужно указать:

deny=0.0.0.0/0.0.0.0                             ;запретить все
permit=8.8.8.8/255.255.255.255           ;разрешить соединения только с этого IP

таких строк может быть не ограниченное количество (для подключения всех филиалов к центральному серверу asterisk или нескольких провайдеров)

и помните, что asterisk это последняя линия обороны. Ломануть могут и ваш сервер и чтобы это предотвратить нужно настроить firewall — сетевой экран, чтобы не пускать определенные типы запросов или же банить по странам.

Это делается через iptables.

Вот пример правил iptables для отклонения всех запросов на регистрацию на ваш Asterisk сервер.:

iptables -A INPUT -p udp —dport 5060 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:46.160.231.50» —algo bm -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -m string —string «OPTIONS sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -j ACCEPT

или вот это с сайта http://invoip.net:

*****начало цитаты*****

-A INPUT -p udp —dport 5060 -j SCAMBLOCK
-A INPUT -p udp —dport 5060 -m recent —set —name SIP
-A INPUT -p udp —dport 5060 -m recent —update —seconds 2 —hitcount 60 —name SIP \
-j LOG —log-prefix «SIP flood detected:»

Приведенное требование определет пакет с помощью цепочки SCАMBLOK. Именно внутри этой цепочки имеют место быть все заблокированные по разным причинам адреса IP. В случае выявления найденного хоть одного совпадения с одним из пакетов списка, пакет незамедлительно отбрасывается.

В случае не отбрасывания пакета используется второе правило, то есть пометка для учета, именуемого SIP. Что касается правила под номером три, то оно производит подсчеты, не состоялось ли превышение данного пакета.

В случае не превышения количества, правило тут же игнорируется, а если превышено, то незамедлительно выполняется конкретное действие. Системный лог в нашем с вами случае безнадежен. Прописывается пакетная детальная информация. Пакетная информация начинается с такой строки, как «SIP flood detected:». Время и количество пакетов для каждого источника отдельно рассчитываются. Из этого следует, что мы совершили ограничение по скорости приема пакетов SIP от каждого IР, которое не заблокировано, уровень составляет тридцать пакетов в секуду.

*****конец цитаты*****

кроме этого нужно обязательно использовать FailToBan.

переменные диалплана Asterisk

${CONTEXT} Текущий контекст.
${EXTEN} Текущий екстеншен.
${EXTEN:x} Текущий екстеншен с удалением первых цифр(где х кол-во удаляемых цифр)
${PRIORITY} Текущий приоритет
${CALLERID} Текущий CallerID (имя и номер)
${CALLERIDNUM} Текущий номер Caller ID
${CALLERIDNAME} Текущее имя Caller ID
${RDNIS} перенаправление DNIS

шаблоны для экстеншенов:

X – любая цифра от 0-9
N – любая цифра от 2-9
[14-6] – цифры 1,4, 5 и 6
. – любые возможные символы.

получить из экстеншена символы:

{EXTEN}:1 - получить символы, начиная со второго (9101) 9 - управляющая цифра - 101 набираемый номер

{EXTEN}:1:5 - получить символы, начиная со второго по 5

формат exten в диалплане Asterisk

Экстеншен — это некоторая последовательность команд связанная с номером, который может быть набран с IP телефона или софтфона.

exten => номер, приоритет, команда(параметры)

команда exten состоит из следующих частей:

номер — номер этой последовательности команд.

приоритет — число или буква n для обозначения следующей по порядку команды (это порядок выполнения строк части диалплана)

команда — команда астериск которую нужно выполнить обрабатывая эту строку команд.

пример одного экстеншена:

exten => 100,1,Wait(5)
exten => 100,2,Answer
exten => 100,3,Playback(demo-congrats)
exten => 100,n,Hangup

Шаблоны в sip.conf Asterisk

Чтобы использовать шаблон кода в sip.conf нужно создать секцию кода шаблона [с именем кода шаблона в квадратных скобках] после скобок поставить восклицательный знак в круглых скобках (!) — это будет обозначение секции шаблона.

Если имя этой секции указать в круглых скобках после номера абонента (экстеншена) то код этой секции шаблона будет добавлен к этой секции или другими словами экстеншену.

Пример работы с шаблоном ниже:

Пример:
[phone_number_template](!)
type=friend
host=dynamic                                           ;возможность цепляться откуда угодно
dtmfmode=rfc2833                                  ;способ передачи сигналов DTMF
nat=no                                                      ;клиент не может быть за NAT
canreinvite=no                                         ;трафик проходит только через сервер
context=MyVOIP-provider                     ;контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
disallow=all                                             ;сначала запрещаем все кодеки
allow=alaw                                              ;разрешаем те что будем использовать
qualify=yes                                              ;Asterisk будет проверять связь с этим номером раз в 2сек
;(если поставить число то интервал будет задаваться в милисекундах

[внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента                                               ;имя пользователя
secret=внутренний_номер_абонента                                                     ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента>         ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН) [внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента                                                ;имя пользователя
secret=внутренний_номер_абонента                                                      ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента>         ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН)

настройка (написание) строки регистрации в Asterisk

register => user [:secret[:authuser]] @host [:port] [/extension]

Пример:

Зарегистрировать 3216111 у sip провайдера, как номер 1234567 на Asterisk.

register => 3216111:userID:PASSWORD@sipppnet.ru/1234567
user — идентификатор пользователя, используемый для SIP сервера (например, 3216111)

authuser — не обязательное имя пользователя для авторизации на SIP сервере
secret — пароль пользователя
host — имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (sipnet.ru).
port — на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию — 5060
/1234567 — номер екстеншена для приема вызовов в Вашем Asterisk. 1234567 — вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный «s».
Вам необходимо регистрироваться, только если:

Если должна быть возможность позвонить к Вам.
Если одна из сторон имеет динамический IP адрес.
Наиболее используемые CLI команды для проверки:

 

Как OpenOffice Calс удалить лишние символы из телефонного номера?

формула в OpenOffice Calc удалить символы из строки в ячейке
=STRING_FUNCTION(B4;»-«;»»)
из 8-999-999-99-99 сделать 89999999999

=REPLACE(REPLACE(REPLACE(REPLACE(B3;2;1;»»);5;1;»»);8;1;»»);10;1;»»)

 

You don’t have permission to access / on this server Virtual host Linux как устранить

установил я сервер Apache. Сделал все по инструкциям для простейшего виртуального хоста (для отладки веб-страниц) и тут сервер мне выдает:

Пример выдачи:

я и так и сяк, а он зараза никак не налаживается.

Оказалось, что минимальное содержимое файла настроек узла Apache сервера вот такое, несмотря на то, что в интернете предлагаются более «простые» настройки, которые не работают:

вставить это в файл настроек:

<virtualhost *:80>
ServerName eclipse
DocumentRoot ‘/home/tvs/Eclipse/workspace’

<Directory ‘/home/tvs/Eclipse/workspace’>
Require all granted
</Directory>

</virtualhost>

хост (сайт) не работал вот без этой Require all granted директивы (команды). Эта директива должна располагаться в блоке Directory. Иначе сервер будет выдавать ошибку в конфигурационном файле сайта (хоста).

DocumentRoot ‘/home/tvs/Eclipse/workspace’ — эта строка нужна, чтобы сообщить серверу начальную папку на сервере для сайта. Эта же папка используется и для других хостов, если у них ничего другого не указано.

<Directory ‘/home/tvs/Eclipse/workspace’>
Require all granted
</Directory>

этот блок описывает сам сайт (где расположен локально, какие на него права). Для этого блока бывают и другие директивы (например название индексной страницы index.php или index.html изменить на другое) их можно легко разыскать в интернете.

как запускать Windows программы в Linux на примере дистрибутивов Debian, Ubuntu, Pepermint, Mint, Kubuntu, Lubuntu?

для того, чтобы windows программы работали в Linux нужно установить программу Wine. В Debian-дистрибутивах Linux это делается так:

вставить вот это в консоль Linux:
sudo apt-get install wine

затем просто запускаете установщик Windows программы как обычный файл и он работает.

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

Для устранения замешательства отмечу, что существуют платные и бесплатные продукты Wine. Указанный способ полностью легален и если у вас нет времени разбираться с лицензионной политикой linux и подобных ему свободно распространяемых программ то просто используйте указанный мной метод установки.

Детали в ниже в скрытом блоке.

Детали о том, почему эта программа обязана быть бесплатно доступной

более подробно о Wine на русском (там предлагается платный продукт, но есть и много полезной информации.

как переустановить пакет в Debian, Ubuntu, Linux Mint?

Возникла проблема:

Нужно переустановить Firefox, но он сообщает что уже установлен. Удалять не хочу — настроек жалко. Решение:

вставить вот это в консоль Linux:

sudo apt-get install —reinstall имя_уже_установленного_пакета

 

The package lists or status file could not be parsed or opened

выдал мне Linux Mint ошибку:

Часть текста в моей консоли Linux:
...

Reading package lists... Done
Error opening the cache:
E:Type '‘Google' is not known on line 1 in source list /etc/apt/sources.list.d/google-chrome.list, E:The list of sources could not be read., E:The package lists or status file could not be parsed or opened.

Дело в том, что я допустил ошибку при в строке добавления репозитария google Chrome через консоль командой echo.

Но в стандартном месте: /etc/apt/sources.list не оказалось строчки с таким содержимым.

Оказалось надо быть внимательнее и /etc/apt/sources.list.d/google-chrome.list это указание на отдельный файл репозитариев Google Chrome.

Удаление этого файла решило проблему.

Как установить Eclipse на Linux?

Чтобы установить Eclipse на Linux нужно сделать следующее:

Зайти на официальный сайт Eclipse. Меня, например, интересовал Eclipse PHP Development Tool

 

 

Eclipse официальная страница загрузки
Eclipse официальная страница загрузки

 

Eclipse PDT официальная страница загрузки
Eclipse PDT официальная страница загрузки

На официальном сайте нужно нажать кнопку Download.

Загрузится архив eclipse-xxxxx.tar.gz

 

 

 

 

Теперь необходимо распаковать архив в папку /opt и создать ярлык для исполняемого файла Eclipse

Как распаковать файлы дистрибутива (установочного комплекта от производителя) через консоль:

вставить вот это в консоль Linux:
su

mkdir ~/opt

cd ~/opt
mv ~/Загрузки/eclipse-php-luna-SR1a-linux-gtk-x86_64.tar.gz .
tar xzvf eclipse-php-luna-SR1a-linux-gtk-x86_64.tar.gz
cd eclipse
./eclipse

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

Второй вариант через графический интерфейс («установка мышкой»):

Нажмите ctrl+alt+T (или откройте терминал через меню)

в появившемся окне терминала наберите:

вставить вот это в консоль Linux:
gksudo nemo

если у вас установлен файловый менеджер nemo он откроется от имени Суперпользователя (аналог Администратора в Windows).

Найдите папку загрузок в каталоге /home/имя_вашего_пользователя/Загрузки/

скопируйте загруженный файл Eclipse (его название должно быть похоже на это: eclipse-php-luna-SR1a-linux-gtk-x86_64.tar.gz) правой кнопкой мыши выбрав пункт Скопировать.

Вставьте этот файл (правой кнопкой мыши выбрав пункт Вставить) в папку /opt находящуюся прямо в начале файловой системы. Доступ Суперпользователя Вам нужен был именно для этой папки.

Нажмите правой кнопкой мыши на этом файле, выберите распаковать здесь.

Появится папка Eclipse. 

Создайте ярлык для файла /opt/eclipse/eclipse в меню или на рабочем столе.  Как создать ярлык в меню Gnome.

Все, программа Eclipse установлена.

 

запуск Nemo (файлового менеджера) с правами root (sudo)

чтобы запустить файловый менеджер Nemo в Linux Mint, Ubuntu, Debian или другом дистрибутиве Linux cо средой Gnome

нужно выполнить команду:

вставить вот это в консоль Linux:
<pre><code>gksudo nemo</code></pre>

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

 

как создать новый ярлык в меню Gnome?

настройка меню Gnome
настройка меню Gnome

чтобы создать новый ярлык в меню Gnome нажмите правой кнопкой мыши на надписи (если нет — логотипе меню Gnome) и выберите пункт Настройка

 

 

 

 

 

Появится меню настройки Меню Gnome

настройки меню Gnome
настройки меню Gnome

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В этом меню нажмите кнопку Open The menu editor. Появится окно Main menu:

редактор меню Gnome
редактор меню Gnome

 

В этом меню выберите с левой стороны группу приложений, например Стандартные и нажмите справа кнопку New Item.

 

 

 

 

 

 

 

 

 

 

 

 

 

Появится окно создания нового значка запуска с названием launcher properties:

создать новый ярлык в меню Gnome
создать новый ярлык в меню Gnome

 

В этом окне вам нужно:

в поле Name ввести имя ярлыка.

В поле Command ввести команду запуска, для которой Вы хотите создать постоянный ярлык, чтобы не вводить в консоли эту команду или не находить этот файл (приложение) каждый раз в файловом менеджере.

если вы хотите запускать введенную Вами команду в консоли (командной строке Linux) то нужно поставить галочку Launch in terminal

И нажать ОК.

После сохранения ярлыка запуска Вы можете установить его порядок в данной группе меню (выше или ниже текущего положения кнопками Move up, Move down.

 

теперь можно закрыть все окна кнопками Закрыть. На этом создание ярлыка в меню Gnome завершено.

описание групп в Linux

Группы в LINUX

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

  • audio
  • floppy
  • lp
  • network
  • optical
  • power
  • storage
  • video
  • wheel
Список групп и их функции (отсортированно по алфавиту)
Группа Affected files Назначение
adm
/var/log/*
доступ на чтение к log файлам.
audio
/dev/audio

,

/dev/snd/*

,

/dev/rtc0
Доступ к звуковому оборудованию.
avahi
bin
/usr/bin/*
Right to modify binaries only by root, but right to read or executed by anyone. (Please modify this for better understanding…)
camera доступ к цифровым камерам Digital Cameras.
clamav
/var/lib/clamav/*

,

/var/log/clamav/*
И Clam AntiVirus.
daemon
dbus
/var/run/dbus/*
disk
/dev/sda[1-9]

,

/dev/sdb[1-9]
Access to block devices not affected by other groups such as optical, floppy, and storage.
floppy
/dev/fd[0-9]
Access to floppy drives.
ftp
/srv/ftp
games
/var/games
Access to some game software.
gdm
hal
/var/run/hald

,

/var/cache/hald
http
kmem
/dev/port

,

/dev/mem

,

/dev/kmem
locate
/usr/bin/locate

,

/var/lib/locate

,

/var/lib/mlocate

,

/var/lib/slocate
Right to use
updatedb

command.

log
/var/log/*
Access to log files in
/var/log

,

lp
/etc/cups

,

/var/log/cups

,

/var/cache/cups

,

/var/spool/cups
Access to printer hardware; enables the user to manage print jobs.
mem
mail
/usr/bin/mail
network Right to change network settings such as when using NetworkManager.
networkmanager Requirement for your user to connect wirelessly with NetworkManager. This group is not included with Arch by default so it must be added manually.
nobody Unprivileged group.
ntp
optical
/dev/sr[0-9]

,

/dev/sg[0-9]
Access to optical devices such as CD and DVD drives.
policykit
power Right to use suspend utilities and power management controls.
rfkill
root
/*
Complete system administration and control (root, admin).
scanner
/var/lock/sane
Access to scanner hardware.
smmsp
sendmail

group

storage Access to removable drives such as USB hard drives, flash/jump drives, MP3 players; enables the user to mount storage devices through HAL and D-Bus.
stb-admin
sys Right to admin printers in CUPS.
thinkpad
/dev/misc/nvram
Used by ThinkPad users for access to tools such as tpb.
tty
/dev/tty

,

/dev/vcc

,

/dev/vc

,

/dev/ptmx
Eg. to acces /dev/ACMx
users Standard users group.
uucp
/dev/ttyS[0-9]

,

/dev/tts/[0-9]
Serial and USB devices such as modems, handhelds, RS-232/serial ports.
vboxusers
/dev/vboxdrv
Right to use VirtualBox software.
video
/dev/fb/0

,

/dev/misc/agpgart
Access to video capture devices, DRI/3D hardware acceleration (X can be used without belonging to this group).
vmware Right to use VMware software.
wheel Right to use sudo (setup with
visudo

), also affected by PAM.

При подготовке использован материал с сайта Archlinux.org

как в Linux добавить строку в конец файла без его открытия в редакторе?

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

НО ведь новичок, да и не новичок в Linux не знает комбинации клавиш в этих консольных редакторах. Кроме того и действий требуется лишнего.

Вместо этого можно:

вставить вот это в консоль Linux:
echo "Строка для вставки в конец файла" >> полный_путь_к_файлу_для_вставки_текста_в_его_конец

почему внешние узлы на Asterisk сервере не пингуются?

почему в Linux с 2мя сетевыми картами не работает интернет?

lnux-asteriskв данной статье рассматривается финальная настройка (после ввода параметров сетевых карт) интернета на Asterisk сервере.

проблема с шлюзами на базе Linux заключается в том, что после того, как обе сетевых карты настроены Linux не знает куда направлять все пересылаемые пакеты данных (например, когда вы пингуете интернет-узел).

 

 

 

вставить вот это в консоль Linux:
route add default ip_адрес_внешней_интернетовской_сетевой_карты

чтобы это работало после каждой перезагрузки сервера, вставьте эту строку:

route add default ip_адрес_внешней_интернетовской_сетевой_карты

в файл /etc/rc.local

это можно сделать командой:

вставить вот это в консоль Linux:
echo oute add default ip_адрес_внешней_интернетовской_сетевой_карты >> /etc/rc.local
Что нужно, чтобы это работало (если не работает)

как установить MC (Mindnight Commander) в CentOS, OpenSuse?

Mindnight Commander — это двухпанельный консольный менеджер файлов для Linux, xxxBSD систем. Очень удобен в работе. Стоит поставить на сервере, если пока работа с командной строкой для вас проблема (получается не очень быстро).

вставить вот это в консоль Linux:
yum install mc

смена паролей на Asterisk сервере

# passwd-maint – эта команда меняет пароль на веб-интерфейсе Trixbox. На Trixbox. по умолчанию, пользователь maint, пароль password

# passwd-amp – для смены пароля используемого для обслуживания сервера через web интерфейс (пароль для пользователя wwwadmin).

Разница между этими двумя пользователями (maint и wwwadmin) в том, что пользователь maint получает абсолютно полный доступ, а пользователь wwwadmin – ограниченный.

# passwd admin – для смены пароля пользователя который может читать системную почту.
# passwd –  для смены пароля пользователя root. (Надеюсь на этапе установки вы выбрали хороший пароль).

это все команды для смены всех паролей на Asterisk сервере.

 

Огромная благодарность пользователю РУУТ форума http://asteriskforum.ru/viewtopic.php?t=2918 за толковое объяснение, которое легло в основу данной статьи.