Настройка сетевого интерфейса в RHEL6 (RedHat, CentOS, Oracle Linux)

Решил вот сделать заметку о настройке сетевых интерфейсов RHEL (RedHat, CentOS, Oracle Linux, Fedora).

Вначале редактируем файлик настройки интерфейса, например eth1 (<> – означает специфические значения):

nano /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=”eth1″

TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.1.2
PREFIX=24
NETMASK=255.255.255.0
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME=”System eth1″
UUID=<>
ONBOOT=yes
HWADDR=<>
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
VLAN=yes
MASTERr=bond0
SLAVE=yes
Строки говорят сами за себя. HWADDR и UUID проще не указывать, чтобы система сама их розчехлила, а если и указывать, то точно для вашего адаптера.

  • BOOTPROTO=none – при задании статического адреса. Для получения динамического адреса, здесь необходимо указать =dhcp
  • VLAN=yes – если мы настраиваем интерфейс для работы с тегами VLAN.
  • MASTERr=bond0 – если мы настраиваем интерфейс как часть бонда
  • SLAVE=yes – если мы настраиваем интерфейс как часть бонда
  • NETMASK=255.255.255.0 – указываем только ОДИН из параеметров – или NETMASK или PREFIX
Далее редактируем:

nano /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=host.example.com

GATEWAY=192.168.1.1
GATEWAYDEV=eth1
NOZEROCONF=yes

  • GATEWAY и GATEWAYDEV – определяют адрес и сетевой интерфейс шлюза по-умолчанию (можно не указывать, если не нужно). 
  • NOZEROCONF=yes – убрать zeroconf маршрут (169.254.0.0)

Теперь стоит подредактировать файлик серверов доменных имен:

nano /etc/resolv.conf

nameserver 192.168.1.1
nameserver 8.8.8.8
search example.com

search – указываются домены, которые будут автоматически добавляться к коротким именам. Например, в этом случае по host будет искатся host.example.com.

Про добавление статического маршрута (роута) написано здесь

http://geckich.blogspot.com/

Сеть 1Gb (1000BaseT) на контроллерах RTL8111/8168B встроенных в материнскую плату

Недавно столкнулся с тем, что драйвер для  интегрированного в материнскую плату сетевого адаптера RealTek RTL8111/8168B/8169, идущий вместе с ОС Debian / Oracle Linux 6 ни в какую не хочет работать в режиме 1Gb.
Проблема эта решается установкой свежей версии драйвера.
В Debian 7 я эту проблему решил установкой драйвера из исходников:

1.  Переходим на сайт разработчика Realtek и качаем нужную нам версию (LINUX driver for kernel 3.x and 2.6.x and 2.4.x) с миррора поближе к нам. Ссылки там сделаны в виде жабаскриптов, потому из консоли мне скачать не удалось, да и не беда это. Скачиваем, затем по scp или ещё как копируем на сервер файлик r8168-8.034.00.tar.bz.

2. Распаковываем и переходим в директорию:

tar -xjvf r8168-8.034.00.tar.bz
cd r8168-8.034.00

3. Устанавливаем необходимые пакеты, если их еще нет:

aptitude install build-essential linux-headers-$(uname -r)

4. Запускаем скрипт инсталлятора – он всё сделает сам и в конце перезагружаем машину.
./autorun.sh
shutdown -r now

После ребута, если ваше сетевое оборудование поддерживает стандарт 1000baseT, то драйвер поднимет линк на этой скорости автоматически. Если нет, то выполняем команды:

ethtool -s eth0 speed 1000 duplex full
mii-tool -vv eth0

Для RedHEL-ов в этом случае попроще – ставим необходимую rpm-ку и ребутимся:

rpm -Uhv ftp://ftp.pbone.net/mirror/elrepo.org/elrepo/el6/x86_64/RPMS/kmod-r8169-6.017.00-1.el6.elrepo.x86_64.rpm
shutdown -r now

http://geckich.blogspot.com/

Как с помощью iptables разрешить доступ к локальному порту только для списка IP адресов

Возможно, есть способы и попроще, но я сделал так.
Защищать будем, например, Asterisk (по-умолчанию порт для протокола SIP 5060)

Создаем новую цепочку:

iptables -N asterisk-manual
iptables -I INPUT -i eth0 -p udp –dport 5060 -j asterisk-manual

Прописываем, из каких адресов можно подключаться и в конце запрещаем остальным:

iptables -A asterisk-manual -s 192.168.1.0/24 -j ACCEPT
iptables -A asterisk-manual -s 192.168.2.0/24 -j ACCEPT
iptables -A asterisk-manual -s 192.168.3.0/24 -j ACCEPT
iptables -A asterisk-manual -s 192.168.4.2 -j ACCEPT
iptables -A asterisk-manual -j DROP

И сохраняем правила:

iptables-save

Чтобы добавить новый адрес вначале удалим последнюю строчку (по ее номеру), а затем добавим новую и восстановим запрещающую:

iptables -L asterisk-manual -n –line-numbers
iptables -D asterisk-manual 5
iptables -A asterisk-manual -s 192.168.4.3 -j ACCEPT
iptables -A asterisk-manual -j DROP

Не забываем сохраняться:

iptables-save

http://geckich.blogspot.com/

Как разрешить обычному пользователю Linux выполнять команду shutdown

В некоторых дистрибутивах обычный пользователь не может из консоли выключить/перезагрузить компьютер под управлением ОС Linux. Разрешаем так:

which shutdown
chmod u+s /sbin/shutdown

http://geckich.blogspot.com/

Быстрое сохраниение и восстановление конфигурации alsa в Linux

Чтобы сохранить текущую конфигурацию выполняем:

alsactl store -f ./alsamixer.conf

Для восстановления конфигурации:

alsactl restore -f ./alsamixer.conf

http://geckich.blogspot.com/

Открытие портов в iptables в RHEL дистрибутивах (RedHat, Oracle Linux, CentOS, etc.)

nano /etc/sysconfig/iptables

Добавляем запись, например:

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

Сохраняем и рестартуем iptables:

/etc/init.d/iptables restart

Возможно Selinux будет ругаться при рестарте. Придется его отключить:

nano /etc/selinux/config 

И изменяем строчку SELINUX:
SELINUX=disabled
http://geckich.blogspot.com/

Добавление статического роута в RHEL дистрибутивах (RedHat, Oracle, CentOS, etc.)

Роуты нужно класть в папку /etc/sysconfig/network-scripts/ в виде текстового файлика route-X где Х – имя интерфейса. Например:

nano /etc/sysconfig/network-scripts/route-eth0

в формате

192.168.1.0/24 via 192.168.1.1

или

ADDRESS0=192.168.1.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1

Если роутов нужно больше одного, то для первого формата просто записываем с новой строки, а для второго – меняем цифру:

ADDRESS1=192.168.2.0
NETMASK1=255.255.255.0
GATEWAY1=192.168.2.1

Проверяем:

netstat -rn
route -n

Добавить не статический роут можно командой:

route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.3.1

http://geckich.blogspot.com/

SSH tunneling

Пробросить порт с помощью ssh довольно просто:
ssh -R localip:localport:remoteip:remoteport localuser@localip
пример: 192.168.1.1:8080:192.168.2.1:80 root@192.168.1.1
Т. е. порт на той машине, где запущена эта команда будет форвардиться на порт на удаленной машине. Например, локальная машина имеет vpn-подключение, недоступное другим машинам и они могут через нее коннектиться к какомуто серверу на другом конце vpn.
В примере все запросы на порт 8080 машины 192.168.1.1 будут идти на порт 80 машины 192.168.2.1 и, соответственно, ответы будут приходить обратно. В общем, примерно то же, что и port forwarding в роутере.
http://geckich.blogspot.com/

Установка Skype 4 в Oracle Linux 6 (Redhat 6 / CentOS 6)

Скайпу нужны х86 библиотеки. Установим его зависимости вначале:

yum install alsa-lib.i686 fontconfig.i686 freetype.i686 glib2.i686 libSM.i686 libXScrnSaver.i686 libXi.i686 libXrandr.i686 libXrender.i686 libXv.i686 libstdc++.i686 pulseaudio-libs.i686 qt.i686 qt-x11.i686 zlib.i686

Теперь качаем скайп static билд и распаковываем:

wget –trust-server-names http://www.skype.com/go/getskype-linux-beta-static
mkdir /opt/skype 

tar xvf skype_static* -C /opt/skype –strip-components=1

Сделаем ссылку на библиотеку, которую скайп “не понимает”, но она есть – под другим именем.

cd /usr/lib 

ln -s libtiff.so.3 /usr/lib/libtiff.so.4

Сделаем ссылки в менюшки, чтобы всё было “по фен-шую”

ln -s /opt/skype/skype.desktop /usr/share/applications/skype.desktop 

ln -s /opt/skype/icons/SkypeBlue_48x48.png /usr/share/icons/skype.png 
ln -s /opt/skype/icons/SkypeBlue_48x48.png /usr/share/pixmaps/skype.png 
Сдедаем фейковый бинарник для запуска статика:
touch /usr/bin/skype 
chmod 755 /usr/bin/skype

В нем пропишем:

#!/bin/sh 

export SKYPE_HOME=”/opt/skype” 
 $SKYPE_HOME/skype –resources=$SKYPE_HOME $*

Всё. Запускаем скайп просто из командной строки: skype или из менюшек.
Если будут проблемы со звуком – читаем ниже про настройку alsamixer.
В консоли набираем alsamixer, затем нажимаем F6 и выбираем нашу звуклвую карту.

Теперь нажимаем F4 и в окошке выбираем Input source – Rear Mic и увеличиваем шкалу его громкости и усиления правее. Rear – значит, что он у вас подключен сзади в материнку. Можете попробовать подключить к передней панели корпуса и выбрать Front Mic, но практика показывает, что это не всегда работает.

Затем идем в настройки скайпа – и пробуем сделать тестовый звонок. Если ругается, то выставляем там нужные источники звука вместо дефолтовых (конкретные значения зависят от конкретных материнок и звуковых карт в них, но эбычно то что-то типа … Analog … ) и пробуем – до победного конца 🙂

Устаревшая версия статьи  – для 2й версии Скайпа. Может кому-нибудь пригодится:

Как бы вы не ставили скайп, вначале нужно установить необходимые библиотеки. Эти либы 32-битные ибо скайп только такой… В общем, погнали:

yum install libXi.so.6 libXss.so.1 libasound.so.2 libXv.so.1 libSM.so.6 libXrender.so.1 libXrandr.so.2 libfreetype.so.6 libfontconfig.so.1 libz.so.1 libgthread-2.0.so.0 libstdc++.so.6

Далее есть 2 метода.

1) качаем и ставим рпм-ник скайпа 2.2 (4я версия на RHEL6 не работает! во всяком случае, мне ее запустить так не удалось, хотя на Debian – без проблем).

rpm -Uhv http://download.skype.com/linux/skype-2.2.0.35-fedora.i586.rpm

А теперь самое интересное. Нужно скачать static-билд скайпа и заменить бинарником из него тот, что поставился с rpm.

wget http://download.skype.com/linux/skype_static-2.2.0.35.tar.bz2
tar xvf skype_static-x.x.x.x.tar.bz2
cp skype_static-2.2.0.35/skype /usr/bin/skype
cp: overwrite ‘/usr/bin/skype’ ? Y

2) скипнуть установку из пакета, а юзать целиком static.

http://geckich.blogspot.com/

Изменить временную зону (timezone) в Linux без перезагрузки

Файлы временных зон находятся в папке и подпапках /usr/share/zoneinfo/
Делаем ссылку /etc/localtime на нужную нам зону, перезаписывая существеющую:

ln -sf /usr/share/zoneinfo/Asia/Calcutta /etc/localtime

Проверяем:
date

Поменять дату и время легко командой:

date -s “18 OCT 20113 18:00:00”
Только дату:


date +%Y%m%d -s “20131018”

Только время:


date +%T -s “10:13:13”
http://geckich.blogspot.com/