Linux

Обслуговую багато віддалених Linux маршрутизаторів, а проблема одна й та сама — не дає працівникам спокою соціальна мережа! 🙂 Потрібно заблокувати з використанням iptables. Найшов просте рішення:

# deny rules
$IPTABLES -A FORWARD -m string --string "odnoklassniki.ru" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "facebook.com" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "vkontakte.ru" --algo kmp --to 65535 -j DROP
$IPTABLES -A FORWARD -m string --string "vk.com" --algo kmp --to 65535 -j DROP

Усе дуже просто: необхідно заблокувати певним адресатам писати нам листи 🙂
Встановлено postfix, створюємо файл /etc/postfix/sender_access, куди заносимо наших небежених друзів:

user@bad.com REJECT

Створюємо базу:

postmap hash:sender_access

Прописуємо у конфіг main.cf

smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access

Та перезапускаємо! Тепер наш «товариш» отримає:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

me@it-sfera.com.ua
SMTP error from remote mail server after RCPT TO::
host postfix [192.168.22.13]: 554 5.7.1 :
Sender address rejected: Access denied

—— This is a copy of the message, including all the headers. ——

На своєму домашньому нетбуці я встановив останню версію Ubuntu 10.10. Чудово працює, усі пристрої розпізнав «з коробки». Також завівся і мій iPhone 3Gs, але не в режимі модема… А тут знадобилося вийти в інтернет через Utel.

Як змусити запрацювати модем? Необхідно встановити iPhone USB Ethernet Driver. У глобальній мережі Ви знайдете ось ці 3 пакунки:
dkms_2.1.1.2-3ubuntu1_all.deb
ipheth-dkms_1.0-1ubuntu1.1_all.deb
ipheth-utils_1.0-1ubuntu1.1_i386.deb

Після чого на iPhone для Utel прописуємо точку входу 3g.utel.ua і вмикаємо режим модему:

Інтернет запрацював на нетбуці, швидкість відмінна:

UPD: для мого тарифу Укртелеком заявляє швидкість 1024/256 і тішить, що саме так і є:

Сьогодні потрібно було обмежети для одного працівника (192.168.0.2) швидкість до 512 Кб/с на вхід та вихід. Допоміг ось такий скрипт:

#!/bin/bash
#
#  tc uses the following units when passed as a parameter.
#  kbps: Kilobytes per second
#  mbps: Megabytes per second
#  kbit: Kilobits per second
#  mbit: Megabits per second
#  bps: Bytes per second
#       Amounts of data can be specified in:
#       kb or k: Kilobytes
#       mb or m: Megabytes
#       mbit: Megabits
#       kbit: Kilobits
#  To get the byte figure from bits, divide the number by 8 bit
#
TC=/sbin/tc
IF=eth1                 # Interface
DNLD=512kbps        # DOWNLOAD Limit
UPLD=512kbps        # UPLOAD Limit
IP=192.168.0.2      # Host IP
U32="$TC filter add dev $IF protocol ip parent 1:0 prio 1 u32"

start() {

    $TC qdisc add dev $IF root handle 1: htb default 30
    $TC class add dev $IF parent 1: classid 1:1 htb rate $DNLD
    $TC class add dev $IF parent 1: classid 1:2 htb rate $UPLD
    $U32 match ip dst $IP/32 flowid 1:1
    $U32 match ip src $IP/32 flowid 1:2

}

stop() {

    $TC qdisc del dev $IF root

}

restart() {

    stop
    sleep 1
    start

}

show() {

    $TC -s qdisc ls dev $IF

}

case "$1" in

  start)

    echo -n "Starting bandwidth shaping: "
    start
    echo "done"
    ;;

  stop)

    echo -n "Stopping bandwidth shaping: "
    stop
    echo "done"
    ;;

  restart)

    echo -n "Restarting bandwidth shaping: "
    restart
    echo "done"
    ;;

  show)

    echo "Bandwidth shaping status for $IF:\n"
    show
    echo ""
    ;;

  *)

    pwd=$(pwd)
    echo "Usage: $(/usr/bin/dirname $pwd)/tc.bash {start|stop|restart|show}"
    ;;

esac

exit 0

Настройка GRE туннелей в Debian и Ubuntu одинаковы, вот пример из моей практики.
В моем распоряжение 2 удаленных сервера Debian и Ubuntu с реальными статическими IP адресами. Нужно это дело объединить в одну локальную сеть:

GRE tunnel

Вся настройка GRE туннеля сводиться к прописыванию в /etc/network/interfaces следующих параметров:

На первом Debian сервере в /etc/network/interfaces

auto tun0
iface tun0 inet static
        address 192.168.10.1
        netmask 255.255.255.0
        broadcast 192.168.10.255
        up ifconfig tun0 multicast
        pre-up iptunnel add tun0 mode gre local 217.65.2.57 remote 217.65.2.60 ttl 225
        pointopoint 192.168.10.2
        post-down iptunnel del tun0

На втором Ubuntu сервере в /etc/network/interfaces

auto tun0
iface tun0 inet static
        address 192.168.10.2
        netmask 255.255.255.0
        broadcast 192.168.10.255
        up ifconfig tun0 multicast
        pre-up iptunnel add tun0 mode gre local 217.65.2.60 remote 217.65.2.57 ttl 225
        pointopoint 192.168.10.1
        post-down iptunnel del tun0

Все должно заработать 🙂

Продолжая тему первого взгляда на новый Ubuntu хочу поделиться новыми впечатлениями!
На Пасху, как обычно, приехал к родителям… На компьютере брата была установлена предыдущая версия — обновили 🙂 Результат: сканер, принтер, FireWare-камера и все остальное оборудование завелось с первого раза! Особенно порадовало звучание колонок 5.1 — долго сравнивали со звучанием под Windows, однозначно, жирный + для Ubuntu 🙂 2 мониторы определились сразу после установки (в предыдущей версии нужно было явно прописывать, шаманить), куб заработал идеально с максимальными эффектами.
Мне очень понравилось:

В осінньому релізі Linux-дистрибутиву Ubuntu 10.10 відбудеться невелика зміна в тому як відображаються розміри файлів. Зараз, як і багато інші операційні системи, що використовують бінарні префікси, Ubuntu відображає розмір в кілобайтах (kB), де 1 кілобайт дорівнює 1024 байтам (основа 2 або 2 в десятій ступеня). Починаючи з версії 10.10 відбудеться перехід до системи числення СІ (основа 10) і один кілобайт означатиме 1000 байт, 1MB = 1000KB і т.п.

Деякі параметри комп’ютера будуть як і раніше відображатися з префіксом KiB / MiB / GiB, що позначає основу 2, наприклад об’єм оперативної пам’яті. У десятковій системі будуть відображатися розміри файлів і параметри пропускної здатності мережі, при цьому ще остаточно не вирішено показувати дані тільки в десятковому вигляді або у комбінованому поданні (наприклад, 1.50 TB/1.36 TiB). Винятки будуть зроблені для утиліт, що працюють в режимі командного рядка (наприклад, df, du, ls).

Для переведення на нову систему відображення розміру файлів планується модифіковані код додатків (замінити поділ на 1024 на поділ на 1000, якщо використовується СІ-нотація або продовжувати ділити на 1024, але використовувати нотацію IEC) і системної бібліотеки Glibc (або розробити бібліотеку оболонок для екранування функцій подібних g_format_size_for_display) зокрема, тобто повернутися до традиційної системи буде не так просто.

Только вчера был объявлен выход beta Ubuntu 10.04 и уже этой ночью я обновил свой домашний старенький Dell Inspiron 1300 до данной версии!

Первое, что понравилось — быстрота загрузки и новая тема оформления, а что не понравилось — зачем кнопки перенесли с права налево? Полная интеграция рабочей среды со всеми возможными социальными сетями 🙂 Очень порадовал функционал Nautilus — дополнительная панель, удобно! Переработана множество программ — основное ударение на простоту и удобство.

Довго шукав, як швидко оновити сертифікат Apache-SSL в Debian, ось простий спосіб:

cd /etc/apache2/ssl
openssl genrsa -out support.it-sfera.com.key 1024
chmod 600 support.it-sfera.com.key
openssl req -new -key support.it-sfera.com.key -out support.it-sfera.com.csr
openssl x509 -req -days 730 -in support.it-sfera.com.csr -signkey support.it-sfera.com.key -out support.it-sfera.com.crt
mv apache.pem apache.pem.old
cp support.it-sfera.com.key apache.pem
cat support.it-sfera.com.crt >> apache.pem
chmod 600 apache.pem
invoke-rc.d apache2 restart

Зіткнувся з ситуацією, коли на Debian Linux сервері MySQL разом із Apache2 завантажує процесор на 95-100%! Щось варто змінювати, адже доходить до повного зависання сервера. Перше, що спало на думку, доставити оперативної пам’яті та замінити процесор. Це лише частково вирішило проблему, у пікові моменти нічого не змінилося! Необхідно оптимізувати MySQL, адже на оптимізована під запити баз даних налаштування MySQL спричиняє активні звернення до жорсткого диску на читання, що збільшує середнє навантаження на процесор (оскільки останній буде постійно очікувати даних від жорсткого диску).