Показаны сообщения с ярлыком microserver. Показать все сообщения
Показаны сообщения с ярлыком microserver. Показать все сообщения

пятница, 24 июля 2015 г.

Разное для Asterisk


Убить зависший peer


Сначала выведем информацию о текущих звонках

core show channels 

Убьем зависший peer --

CLI> channel request hangup SIP/xxx-xxxxxxxxxxx



Вывести версии моделей аппаратов, и номера пиров (с пробелами и переносом строк):
 for a in `asterisk -rx "sip show peers"|cut -f1 -d/` ;do asterisk -rx "sip show peer $a";done | awk '/Useragent/ {print $3"  "} /name/ {print $3,$4"  "}'  | sed ':a; /$/N; s/\n//;'



Вывести имена пользователей и их номера (с пробелами и переносом строк) :
cat /etc/asterisk/users.conf | awk '/^label/ {print $3"  "} /^fullname/ {print $3,$4"  "}'| sed ':a; /$/N; s/\n//;'

Нужно понимать, что значения print в вашем случае могут отличаться.

воскресенье, 15 февраля 2015 г.

OpenVPN - объединение Центрального офиса с подразделением (сервер-клиент). Ubuntu 14.04

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




0. Что имеем:
a. Interfaces на сервере
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet static
        address 1.2.3.174
        netmask 255.255.255.0
        network 1.2.3.0
        broadcast 1.2.3.255
        gateway 1.2.3.1
        dns-nameservers 8.8.8.8

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        bridge_ports eth0
        bridge_fd 0


b. Interfaces на клиенте

# The loopback network interface
auto lo
iface lo inet loopback

auto em0
iface em0 inet static
address 1.2.33.123
network 1.2.33.0
gateway 1.2.33.1
netmask 255.255.255.0
broadcast 1.2.33.255
dns-nameservers 8.8.8.8

auto eth0
iface eth0 inet manual

auto wlan0
iface wlan0 inet manual

auto br0
iface br0 inet static
address 192.168.11.1
network 192.168.11.0
netmask 255.255.255.192
broadcast 192.168.11.63
bridge-ports eth0 wlan0
bridge_fd 0

1. На сервере ставим:
apt-get install openvpn easy-rsa libssl-dev openssl

и на клиенте:
apt-get install openvpn

2. Переходим на сервер, и копируем:
cp -Rp /usr/share/easy-rsa/ /etc/openvpn/vpn-tun/

3. Подправим основные параметры в файле vars, чтобы значения в дальнейшем подставлялись сами:
nano /etc/openvpn/vpn-tun/vars

export KEY_COUNTRY="RU"
export KEY_PROVINCE="SZFO"
export KEY_CITY="SPb"
export KEY_ORG="Firma"
export KEY_EMAIL="it@firma.com"
export KEY_OU="FirmaHead"

4. Перейдем в папку:

cd /etc/openvpn/vpn-tun/

Инициализируем PKI:

. ./vars
 и 
./clean-all

5. Генерируем сертификат авторизации (СА) и ключ, для этого выполняем команду:

./build-ca

Большинство параметров должно подхватиться из файла vars, если что-то не так - указываем явно.

6. Генерируем секретный ключ Диффи-Хелмана (займет продолжительное время):

./build-dh

7. Генерируем сертификат, и секретный ключ сервера:

./build-key-server servername

Вместо servername укажите например hostname сервера, это избавит от возможной путаницы в дальнейшем. Параметры подхватятся из vars, однако параметр Name укажите явно - ваш servername. Какой указали при запуске этого скрипта.

8.Также сгенерим ключ для TLS шифрования:
openvpn --genkey --secret keys/ta.key

9. Сгенерируем ключи для клиента:

./build-key clientname

Вместо "clientname" придумайте свое имя, и укажите его в параметре Name при генерации ключа.

Если через некоторое время Вам понадобится включить еще один офис в Вашу сеть надо будет запустить команду:

. ./vars

После чего сгенерируйте ключи для клиента:

./build-key clientname

Не забудьте только создать ccd файл для нового клиента. Об ccd ниже.

10. Создаем папку для ccd файлов:

mkdir /etc/openvpn/vpn-tun/ccd/

затем:

nano /etc/openvpn/vpn-tun/ccd/clientname
(имя файла должно совпадать с названием ключа для клиента см. п.8)
внесем след. параметры:

#disable
ifconfig-push 192.168.255.5 192.168.255.6
iroute 192.168.11.0 255.255.255.192
push "route 192.168.1.0 255.255.255.0"

Если в дальнейшем какой-либо клиент придется отключить, просто раскомментируйте #disable.

11. Теперь создадим conf-файл OpenVpn-сервера:

nano /etc/openvpn/server-tun.conf

dev tun
port 1194
proto udp

tls-server
tls-server
tls-auth /etc/openvpn/vpn-tun/keys/ta.key 0
tls-timeout 120
auth SHA1

cipher BF-CBC



server 192.168.255.0 255.255.255.0
ifconfig 192.168.255.1 192.168.255.2

push "route 192.168.1.0 255.255.255.0"

route 192.168.11.0 255.255.255.192 # подсеть clientname (см. п.8)

#если будут другие клиенты пишем здесь же роуты:
#route 192.168.2.0 255.255.255.0 #например

ca /etc/openvpn/vpn-tun/keys/ca.crt
cert /etc/openvpn/vpn-tun/keys/server.crt
key /etc/openvpn/vpn-tun/keys/server.key
dh /etc/openvpn/vpn-tun/keys/dh2048.pem

client-to-client
client-config-dir /etc/openvpn/vpn-tun/ccd
comp-lzo
persist-tun
persist-key
verb 3
keepalive 10 60
ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов

log-append /var/log/openvpn_tun.log
status /var/log/openvpn_status_tun.log

12. Теперь настроим iptables на сервере, добавим правила:

-A INPUT -p udp -m udp --dport 1194 -j ACCEPT
-A FORWARD -i br0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o br0 -j ACCEPT

Если на самом сервере кроме OpenVpn находятся другие сервисы, к которым необходимо дать доступ во внутренней сети добавим правило:
-A INPUT -i tun0 -j ACCEPT
Если мучает паранойя уточним условия:
-A INPUT -i tun0 -p tcp -m multiport --dports ХХ,ХХХХ -j ACCEPT
если нужен UDP:
-A INPUT -i tun0 -p udp -m multiport --dports ХХ,ХХХХ -j ACCEPT
где XXX нужные порты.

13. Переходим клиент, создадим conf файл клиента :

nano /etc/openvpn/clientname_to_server.conf

remote ip_servera 1194
client
verb 5
dev tun0
proto udp
resolv-retry infinite
nobind

tls-client
tls-auth /etc/openvpn/ta.key 1
auth SHA1
cipher BF-CBC

remote-cert-tls server


persist-key
persist-tun
ca "/etc/openvpn/ca.crt"
cert "/etc/openvpn/clientname.crt"#см.п.8
key "/etc/openvpn/clientname.key"#см.п.8
comp-lzo
verb 4
mute 20
verb 3
#redirect-gateway
log-append /var/log/clientname_to_server.log#см.п.8


13. Любым удобным для Вас способом перемещаем сертификаты и ключ (ca.crt, clientname.crt, clientname.key, ta.key) с сервера на клиент, и помещаем их в /etc/openvpn. 

14. Настроим iptables на клиенте, добавим правила:

-A FORWARD -i br0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o br0 -j ACCEPT

Если нужен доступ к локальным ресурсам, расположенным на клиенте см.п. 11.


15. Рестартуем OpenVpn:
/etc/init.d/openvpn restart
и на клиенте и на сервере, и пробуем начинать пинговать хосты в подсетях. Если что-то не так - смотрим логи. Удачи.



вторник, 3 февраля 2015 г.

Collectd+Collectd Graph Panel+Lighttpd

До недавнего времени для мониторинга системы пользовался графиками MRTG, но установив Сollectd с Collectd Graph Panel-ю понял насколько последний инструмент гибче, удобнее и красивее.

1. Готовим почву - cтавим lighttpd и необходимые пакеты:
apt-get install lighttpd php5-cgi php5
2. Включаем поддержку выполнения cgi скриптов:
lighty-enable-mod fastcgi fastcgi-php
3.Рестарт lighttpd:
service lighttpd restart
4. Ставим collectd:
apt-get install collectd
5. Добавим поддержку git:
apt-get install git
6. Создаем копию git репозитория для установки Collectd Graph Panel:
cd /var/www/
git clone https://github.com/pommi/CGP.git
Теперь по адресу
http://192.168.Х.Х/CGP
должна появиться web-панель с графиками.
Графики можно маштабировать с помощью мыши.
7. Для уменьшения нагрузки на процессор включим рендеринг на стороне клиента:
nano /var/www/CGP/conf/config.php
Найдем строку
$CONFIG['graph_type'] = 'png';
и зменим ее на:
$CONFIG['graph_type'] = 'canvas';
8.Включим кэширование в плагине RDD-tools:
nano /etc/collectd/collectd.conf
и там расскомментируем и изменим строки:

DataDir "/var/lib/collectd/rrd"
CacheTimeout 300
CacheFlush 900


9. Все, можно перегрузить collectd:
service collectd restart
10.Включать и отключать, а также настраивать плагины можно в файле collectd.conf. Результат:

четверг, 18 декабря 2014 г.

конфиги asterisk


В LXC контейнере Ubuntu 14.04.01
ставил из исходников последнюю версию 1.8
см. тут: http://downloads.asterisk.org/pub/telephony/asterisk/releases/


westcall-reg и  sipnet - транки.
87 - номер для голосовой почты.
Также установил кодек 729g.

sip.conf

[general]
context=default
allowguest=no
language=ru
bindaddr=192.168.11.7
localnet=192.168.11.0/26
transport=udp
defaultexpiry=360
register => 7812XXXXXXX$home:password:7812XXXXXXX$home @home.uc.westcall.net:4670/7812XXXXXXX

[westcall-reg]
type=friend
context=incoming
username=7812XXXXXXX$home
fromuser=7812XXXXXXX$home
authname=7812XXXXXXX$home
secret=password
fromdomain=home.uc.westcall.net
host=home.uc.westcall.net
insecure=port,invite
disallow=all
allow=ulaw
qualify=yes

[sipnet]
secret = password
defaultuser = 004XXXXXXX
trunkname = sipnet
host = sipnet.ru
type = peer
context = sipnet
insecure = invite
callbackextension = 1
fromuser = 004XXXXXXX
fromdomain = sipnet.ru
disallow=all
allow=g729
nat = no
dtmfmode = rfc2833

[home](!)
context=home
allowtransfer = yes
;srvlookup=yes
type=friend
host=dynamic
dtmfmode=rfc2833
nat=no
canreinvite=no
disallow=all
allow=g729
allow=ulaw
allow=alaw
call-limit=1
secret=password

[1](home)
username=1
callerid="Black" <1>

[5](home)
username=5
callerid="Redish" <5>

[7](home)
username=7
callerid="3cx" <7>

[81](home)
username=81
callerid="81" <81>

[87](home)
username=87
callerid="87" <87>
mailbox=87@default

extensions.conf

[home] #внутренние звонки (однозначные номера).
exten => _X, 1, Dial(SIP/${EXTEN},30)
exten => _X, n, Playback(vm-nobodyavail)
exten => _X, n, Hangup()

;exten => 81,1,Set(TIME="${STRFTIME(${EPOCH},,%C%y-%m-%d_%H-%M-%S)}") # если задействовать (убрать коммент) можно позвонить, и записать свой голос.
;exten => 81,n,Playback(beep)
;exten => 81,n,Record(/usr/local/share/asterisk/sounds/record%d_${TIME}.wav)
;exten => 81,n,Playback(${RECORDED_FILE})
;exten => 81,n,Hangup()

;exten => 87,1,Dial(SIP/87,20) #голосовая почта
;exten => 87,n,Playback(vm-nobodyavail)
;exten => 87,n,Voicemail(87@default)
;exten => 87,n,Hangup()

;exten => 87,1,Background(/var/lib/asterisk/sounds/voice_menu) # голосовое меню, типа "наберите внутренний номер, или дождитесь ответа секретаря"
;exten => 87,n,Wait(5) # пауза 5 сек. для набора номера
;exten => 87,n,Dial(SIP/7) # если ничего не набрал переводим на 7 (секретарь).
;exten => 87,n,Playback(vm-nobodyavail)
;exten => 87,n,Hangup()

include => sipnet


[sipnet]
exten=> _7XXXXXXXXXX, 1, Set(LIMIT_WARNING_FILE=)# используем лимит
exten=> _7XXXXXXXXXX, n, Dial(SIP/${EXTEN}@sipnet,,L(3540000:50000))# длительности разговора и время предупреждения, что разговор закончится принудительно, в милисекундах
exten=> _7XXXXXXXXXX, n, Playback(vm-nobodyavail)
exten=> _7XXXXXXXXXX, n, Hangup()

include => westcall-reg


[westcall-reg]
exten => _XXXXXXX, 1, Dial(SIP/${EXTEN}@westcall-reg) #питерские 7-знаки
exten => _XXXXXXX, n, Playback(vm-nobodyavail)
exten => _XXXXXXX, n, Hangup()

exten => _0X, 1, Dial(SIP/${EXTEN}@westcall-reg) #пожарные, менты и т.п
exten => _0X, n, Playback(vm-nobodyavail)
exten => _0X, n, Hangup()

exten => _8800XXXXXXX, 1, Dial(SIP/${EXTEN}@westcall-reg) # думаю, что все понятно
exten => _8800XXXXXXX, n, Playback(vm-nobodyavail)
exten => _8800XXXXXXX, n, Hangup()

include => home


[incoming]
;exten => _X., 1, Set(fname=${STRFTIME(${EPOCH},,%d-%m-%C%y_%H-%M-%S)}_${CALLERID(number)}->${EXTEN}) # запись разговора
;exten => _X., n, MixMonitor(/home/ubuntu/aster_rec/incoming/${fname}.gsm) # сведение входящего и исходящего голоса в единый файл
exten => _X., 1, Dial(SIP/1,25)
exten => _X., n, Dial(SIP/5,20)
exten => _X., n, Playback(vm-nobodyavail)
exten => _X., n, Voicemail(87@default)

exten => _X., n, Hangup()


voicemail.conf
#добавляем в секцию default
87 => 777,87,vashemail@gmail.com,,maxmessage=no|vmcontext=no|attach=yes|saycid=no|envelope=no|delete=no

emailsubject=Новое голосовое сообщение ${VM_MSGNUM} в ящике ${VM_MAILBOX}

emailbody=Уважаемый ${VM_NAME}:\n\n\tХотим сообщить, что Вам пришло новое голосовое сообщение длительностью ${VM_DUR} под номером (${VM_MSGNUM})\nв ящик ${VM_MAILBOX} от ${VM_CALLERID}, ${VM_DATE}, когда будет время проверьте его. Спасибо.


charset=UTF-8

воскресенье, 28 сентября 2014 г.

Web-сервер на основе lighttpd с возможностью виртуального хостинга.

0. Все нижеперечисленные манипуляции проводились в LXC контейнере, но полагаю, что это будет справедливо и для физического хоста.
1. apt-get install lighttpd
Сразу проверим работоспособность - наберем ip-адрес сервера, или localhost. Если сервер работает, мы увидим стандартную заглушку.


2. nano /etc/lighttpd/lighttpd.conf
внесем в файл секцию:
$HTTP["host"] == "site.ru" {
server.document-root = "/var/www/site.ru.local"
server.errorlog = "/var/log/lighttpd/site.ru_errors.log"
accesslog.filename = "/var/log/lighttpd/site.ru_access.log"
}
В первой строке указываем домен, во второй путь к директории в которой находятся файлы сайта.
Чтобы писался лог посещений сайта добавим
"mod_accesslog",
в секцию server.modules.

Собственно для того, чтобы хостинг стал виртуальным, необходимо добавить в конфигурацию еще одну, (или несколько) секций. Например:
$HTTP["host"] == "test.ru" {
server.document-root = "/var/www/ test.ru .local"
server.errorlog = "/var/log/lighttpd/ test.ru _errors.log"
accesslog.filename = "/var/log/lighttpd/ test.ru _access.log"
}

3. Перезапускаем сервер:
service lighttpd restart
4. Проверим работоспособность заданого в конфиге.
nano /var/www/site.ru.local/index.html
и вставим следующий код:
<p><b>It Works!</b></p>
При переходе по адресу сайта должна быть видна эта заглушка.

5. Т.к. мы собираемся использовать движки, которые используют PHP и MySQL, установим их.
apt-get install php5-cgi
затем в /etc/php5/cgi/php.ini раскоментируем строку:
cgi.fix_pathinfo = 1
Включим поддержку PHP в lighttpd
lighttpd-enable-mod fastcgi
рестартуем сервер
service lighttpd restart
теперь создадим файл
nano /var/www/site.ru.local/test.php
и добавим в него сл. код:
<?php
phpinfo();
?>
и перейдем по ссылке site.ru/test.php
должна отобразиться информация о PHP.

6. Установим сервер БД и модуль PHP для работы с ним:
apt-get install mysql-server php5-mysql
Т.к. MySQL использует кодировку latin1, а большинство современных движков работают в UTF-8 отредактируем файл /etc/mysql/my.cnf добавив в него следующие строки:
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
collation_server=utf8_unicode_ci
рестартуем MySQL:
service mysql  restart
7. Для упрвления СУБД из web-интерфейса установим пакет phpMyAdmin:
apt-get install phpmyadmin
в процессе установки отметим используемый нами web-server - lighttpd
введя в адресной строке браузера адрес нашего сайта site.ru.local/phpmyadmin
увидим страницу авторизации.

8. На этом все, наш веб-сервер готов к работе, если Вам нужно то Вы можете усовершенствовоть Ваш web-server добавив поддержку FTP, настроить резервное копирование и т.д.

Отдельно хочу отметить, что lighttpd безумно порадовал меня простотой включения рерайтов URL, что так необходимо для поисковой оптимизации сайтов.
Это делается так, блок сайта в /etc/lighttpd/lighttpd.conf приводится к следующему виду

$HTTP["host"] == "site.ru" {
server.document-root = "/var/www/site.ru.local"
server.errorlog = "/var/log/lighttpd/site.ru.local_errors.log"
accesslog.filename = "/var/log/lighttpd/site.ru.local.log"
server.error-handler-404 = "/index.php"

}
в server.modeles добавляем, или раскомментируем строки:
"mod_rewrite",
"mod_accesslog",
затем перезапускаем lighttpd.
файл .htaccess lighttpd не используется.
Все описанное в этом пункте работает с Joomla 1.5.
Знаю, что движок уже старый, но нужно было перенсти сделанный несколько лет назад сайт на домашний хостинг.
9. Итак теперь мы можем установить на наш хостинг CMS Joomla
cd /var/www/site.ru.local
wget http://joomlacode.org/gf/download/frsrelease/19752/1609     63/Joomla_3.3.4-Stable-Full_Package.zip # например эта версия
unzip Joomla_3.3.4-Stable-Full_Package.zip
Перейдя по ссылке http://192.168.7.17/site.ru.local/ мы сможем инсталлировать Joomla

суббота, 21 июня 2014 г.

смс-ка при потере пинга

1. Зарегистрироваться на сайте sms.ru , "программистам", отправка 60-ти бесплатных смс в день. Вот.
С помощью этого сервиса я мониторю свои VPN-каналы.

2. Сам скрипт:

#!/bin/bash

HOSTS="1.1.1.1 2.22.22.2"

COUNT=4

for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
curl -d "text= $myHost is down (ping failed) at $(date)" http://sms.ru/sms/send\?api_id=dff7015c-xxxxxxxxxxxx-xxxxxxxxxxxx\&to=7ХХХХХХХХХХ
fi
done


3. Запихнуть в cron, настроить расписание по желанию. 

воскресенье, 15 декабря 2013 г.

wondershaper

Т.К. на моем микросервере перманентно раздаются/скачиваются торренты, я решил облечить себе существование в плане безтормозного промотра страничек и использования RDP, шэйпером в виде Wondershaper.
Итак:
1. Ставим wondershaper:
apt-get install wondershaper
2. Отключаем все сетевые сервисы и замеряем скорость канала с помощью любого сервиса в сети (например: http://2ip.ru/speed/). У меня download 4800 upload 550
3. Описываем для wondershaper свой канал (для нужного интерфейса, в моем случае ppp0), задаем значения чуть меньше:
wondershaper ppp0 4400 500
Все шейпер работает.
4. В конфиге описывает сервисы для наибольшего приоритета
nano /sbin/wondershaper
(у меня так):
NOPRIOPORTSRC="22 8112" #сервисы на  моем сервере
NOPRIOPORTDST="80 443 3389" #удаленные сервисы
5. Чтобы отменить шейпинг вводим команду:
wondershaper clear ppp0
6. Чтобы постоянно не запускать шейпер после рестарта делаем скрипт вида:
#!/bin/sh
wondershaper ppp0 4400 500

7. делаем его исполняемым:
chmod +x /your_folder/your_name_of_skript.sh
8. Чтобы скрипт стартовал при старте сети добавляем строчку в /etc/network/interfaces:
post-up /your_folder/your_name_of_skript.sh

Все, скрипт будет запускаться при загрузке системы.



пятница, 27 сентября 2013 г.

FTP сервер proftpd (установка и настройка).

Возникла надобность обменяться файлами с друзьями. Решил, что лучше всего для выполнения этой задачи подойдет FTP сервер. Сказано - сделано. Поехали.
Оговорка: сервер не находится за NAT, порт смотрит прямо в инет.

1. Устанавливаем proftpd:
apt-get install proftpd
В процессе установки выбираем standalone.
2. Добавим нашего ftp юзера, одновременно запрещая ему доступ к shell:
adduser guest --shell /bin/false
3. Дадим полные права на домашний каталог (с правами будем разбираться в конфиге):
chmod 777 -R /home/guest
4. Откроем proftpd.conf и начнем настройку  proftpd:
nano /etc/proftpd/proftpd.conf

тут я опишу что у меня отличается от дефолтного  proftpd.conf

DefaultRoot /home/guest   # "запираем" пользователя guest в своем каталоге
Port          21   #стандартный FTP порт, его надо открыть или изменить на тот который нравится, в этом случае на стороне клиента придется его указать.
RequireValidShell off   # запрещаем shell
PassivePorts 49555 49556  #открываем произвольные порты, нужно для пассивного режима, если FTP клиент в активном режиме, то можно этого не делать

запрещаем юзеру удалять и записывать в домашний католог и вложенные в него (тут можно варьировать, изменяя пути к каталогам и лимиты):


<Directory /home/guest/*>
<Limit DELE WRITE>
DenyAll
</Limit>
</Directory>

Для того, чтобы в логах proftpd отображалось правильное время добавим строки:

TimesGMT off
SetEnv TZ :/etc/localtime

Сохраняем, выходим.

5. Корректно выставляем время:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

6. Проверяем:
 ls -l /etc/localtime

7. Перезапускаем proftpd
/etc/init.d/proftpd restart

Если нужные порты открыты, то все должно заработать.

понедельник, 2 сентября 2013 г.

Фортунки :)

Узнал на каком-то из форумов, что можно установить пакет fortunes-ubuntu-server , который будет показывать разные полезные советы - "фортунки" по Убунту/Линукс. Собственно с помощью этого пакета можно выводить сообщения RSS лент, новости, погоду и т.д.
Меня все же больше интересуют советы по Линукс.

1. Ставим:
apt-get install fortunes-ubuntu-server fortunes fortunes-min fortune-mod fortunes-ru

Проверим:
/usr/bin/ubuntu-server-tip
фортунка должна быть на английском, но нам бы хотелось на русском...

2. Подправим файл  /usr/bin/ubuntu-server-tip
на всякий случай я закоментил строку
#FORTUNEDB="ubuntu-server-tips"
и внес другую
FORTUNEDB="ubuntu-server-tips-ru"

3. Проверим:
/usr/bin/ubuntu-server-tip
должно быть на русском.

4. Изначально я хотел не просто читать фортунки, а чтобы они выводились при залогинивании в системе. Для этого:
nano /home/your_name/.profile
в конец внесем строчку:
/usr/bin/ubuntu-server-tip

5. выйдем и залогинимся вновь, теперь нас должна встретить фортунка:


P.S. Так например, с помощью одной из фортунок я узнал о существавании консольного браузера w3m. Наличие которого, полагаю может помочь в трудную минуту.

Вводим в консоли:
w3m http://google.ru
Видим вывод гугла после ввода поискового запроса, кстати в яндексе поиск не заработал.




четверг, 29 августа 2013 г.

web-интерфейс Deluge через https

1. Остановим Deluge:
/etc/init.d/deluge-daemon stop

2. Перейдем в конфиг-папку Deluge.
cd /home/user/.config/deluge

3.Создадим папку для SSL сертификатов и ключей:
mkdir ssl

4. Перейдем в нее:
cd ssl

5. Сгенерим сертификаты и ключи:
openssl req -new -x509 -nodes -out deluge.cert.pem -keyout deluge.key.pem
отвечаем на предлагаемые вопросы по усмотрению.

6. В настройках web-интерфейса укажем пути к ключу и сертификату:

7. Запустим Deluge:
/etc/init.d/deluge-daemon start

8. Перейдем в web-интерфейс Deluge используя https
https://your_address:8112



четверг, 4 июля 2013 г.

mplayer. интернет-радиоприемник.

Решил сделать свой микросервер интернет-радиоприемником.

Ставим mplayer:

apt-get install mplayer

вводим адрес потокового радио:

mplayer http://stream02.media.rambler.ru/echo32.mp3

но звука нет.

доставляем необходимые пакеты:

apt-get install alsa-utils

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

alsamixer

Громкость в запущеной программе регулируем клавишами 9 и 0.


среда, 19 июня 2013 г.

samba

Используется Samba version 3.6.3
пока настроена только одна шаренная папка - torrents

вот конфиг:

[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
netbios name = UBUNTU
interfaces = 127.0.0.0/8 eth1, br0
security = SHARE
max protocol = SMB2
guest account = nobody
usershare allow guests = ok
auth methods = guest
smb ports = 139
local master = yes
os level = 20
wins support = no
dns proxy = no
dos charset = cp1251
unix charset = UTF-8
display charset = UTF-8
store dos attributes = no
nt acl support = no
#inherit acls = no
map acl inherit = no
socket options = SO_KEEPALIVE, SO_RCVBUF=6500, and SO_SNDBUF=6500
min receivefile size = 0
aio read size = 0
aio write size = 0
client signing = auto
write cache size = 0
getwd cache = yes
large readwrite = yes

[torrents]
path = /home/share/torrents
guest ok = Yes
guest only = Yes
writeable = Yes

вторник, 18 июня 2013 г.

Microserver

         Использую в домашних условиях микросервер на Ubuntu-Server 12.04 LTS.
Собственно роли у сервера пока следующие:

1. Интернет-шлюз
2. DHCP - сервер
3. wi-fi точка доступа стандарта IEEE 802.11n
4. торрент-качалка - Deluge 1.3.6
5. samba для просмотра фильмов и хранения файлов
6. motion - видеонаблюдение (с резервным копированием отстнятого материала на сторонний сервер)
7. mplayer - интернет-радио
8. FTP - сервер.
9. MRTG+lighthttpd - различные графики
10. TOR - сервер

Сервер построен на следующем железе:
1. Intel D2500CC - материнская плата с интегрированным процессором Atom, и двумя сетевыми интерфейсами.
2. SO-DIMM DDR3, 4ГБ, PC3-12800, 1600МГц, Kingston, KVR16S11/4
3. Жесткий диск 2.5: Hitachi Travelstar 7K1000.
4. mini pci-e wifi адаптер intel Centrino Wireless-N 1030
5. корпус mini-box M350 Mini-ITX

       

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

понедельник, 17 июня 2013 г.

iptables

мои правила iptables:

*mangle
:PREROUTING ACCEPT [68274:21267945]
:INPUT ACCEPT [2652:246271]
:FORWARD ACCEPT [65541:20981760]
:OUTPUT ACCEPT [2210:295928]
:POSTROUTING ACCEPT [67791:21286214]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
COMMIT

*nat
:PREROUTING ACCEPT [2475:145306]
:INPUT ACCEPT [438:36303]
:OUTPUT ACCEPT [125:11164]
:POSTROUTING ACCEPT [72:7854]
-A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.11.5:3389
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT

*filter
:INPUT DROP [2610:241618]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2254:299949]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT
-A INPUT -p udp -m udp --dport 6990 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ppp0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i br0 -o ppp0 -j ACCEPT
-A FORWARD -j LOG --log-prefix "IPT-FORWARD "
COMMIT

например, хотим разрешить просмотр web-камеры установленной на сервере, из Интеренет,
для этого добавляем строку nano /etc/iptables.rules
-A INPUT -p tcp -m multiport --dports 8112,6990 -j ACCEPT

еще один порт - 8081.
-A INPUT -p tcp -m multiport --dports 8081,8112,6990 -j ACCEPT

добавляем измененные правила в /etc/iptables.rules
iptables-restore /etc/iptables.rules

проверяем, что все правильно:
iptables-save

затем устанавливаем правила в автозагрузку (под рутом):
echo "#! /sbin/iptables-restore" > /etc/network/if-up.d/iptables-rules
iptables-save >> /etc/network/if-up.d/iptables-rules
chmod +x /etc/network/if-up.d/iptables-rules

ddclient + no-ip.org

Так как мое подключение к интернет не имеет постоянного IP-адреса, пользуюсь сервисом
no-ip.com. Для того чтобы начать пользоваться данным сервисом, надо зарегистрировать доменное имя здесь: noip.com
Для работы сопоставления имени адресу использую ddclient, вот конфиг:

/etc/ddclient.conf

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

max-interval=25d
protocol=noip
use=web
web=http://ip1.dynupdate.no-ip.com/
#server=members.no-ip.org
login=your_login
password='your_password'
yourname.no-ip.org

hostapd

Собственно конфиг hostapd:

/etc/hostapd.conf

interface=wlan0
bridge=br0
driver=nl80211
ssid=red
auth_algs=1
country_code=RU
hw_mode=g
ieee80211n=1
channel=8
ignore_broadcast_ssid=1
macaddr_acl=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=Password
rsn_pairwise=CCMP

делаю ТД "невидимой" - запрещаю броадкаст
ignore_broadcast_ssid=1

в скрипте /etc/init.d/hostapd
где DAEMON_CONF=
указываем местоположение, в моем случае так:  DAEMON_CONF= /etc/hostapd.conf

скрипт /etc/init.d/hostapd делаем исполняемым и добавляем в автозагрузку:

chmod +x /etc/init.d/hostapd
update-rc.d hostapd defaults

также надо не забыть в конфигурации dhcp сервера указать правильный интерфейс, на котором работает сам dhcp сервер. в моем случае роль dhcp выполняет dnsmasq поэтому значение  interface=  в конфе dnsmasq
приводим к виду
interface=br0

в описанном случае wi-fi зона и локальная сеть работают в одной подсети.


interfases

так как используется мост между  eth1 wlan0 то сначало надо сделать:

apt-get install bridge-utils

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

auto eth0
iface eth0 inet manual

auto wlan0
iface wlan0 inet manual

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
address 192.168.11.1
network 192.168.11.0
netmask 255.255.255.192
broadcast 192.168.11.63
bridge-ports eth1 wlan0

P.S. Не забудем разрешить хождение пакетов между интерфейсами, для этого в файл
/etc/sysctl.conf внесем следующую строчку:
echo 'net.ipv4.ip_forward = 1