Linux UPnP

Запись создана 8 июня, 2011

Для того чтобы клиенты могли прозрачно открывать порты на шлюзе, был разработан набор протоколв Universal Plug and Play (UPnP), например для того чтобы можно было раздавать торренты.

На днях я снял дома старый добрый Linksys WRT54G, теперь раздачей интернета занимается linux-овая машинка. Для раздачи торррентов например, нужно разрешить соединения внутрь сети. Для этого можно пробросить разные порты на разные машины, и в случае добавления клиентов/машин это придется делать вручную. Это не самый удобный спопосб, но можно использовать UPnP который будет сам пробрасывать нужные порты через iptables.

Установка:

sudo apt-get install linux-igd -y

Настраиваем:

cat /etc/default/linux-igd
# External interface name.  If undefined then upnpd will not be started.
EXTIFACE=ppp0
 
# Internal interface name.  If undefined then upnpd will not be started.
INTIFACE=eth0

Добавляем правила в iptables:

iptables -N UPNP
iptables -N UPNP iptables -A FORWARD -j UPNP
 
iptables-save > /etc/iptables.up.rules

Запускаем upnpd

/etc/init.d/linux-igd start

Перезапускаем, например, торрент клиент с включенным UPnP и видим появившиеся правила в iptables:

-A FORWARD -d 192.168.1.106/32 -p tcp -m tcp --dport 51413 -j ACCEPT 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 51413 -j DNAT --to-destination 192.168.1.106:51413

На этом всё.

» Запись из раздела Debian | 2 комментария

Booting ms dos via PXE to update bios

Запись создана 31 мая, 2011

Для обновления BIOS на сервре как правило нужно загрузиться с дискеты с MS DOS и запустить утилиту обновления, в современном мире не так просто найти FDD, да и дискету сходу не удалось найти.

Но в it инфраструктуре как правило уже развернут PXE сервер для обслуживания серверов или устновки операционной системы, собственно им и воспользуемся.

apt-get install dosfstools gettext build-essential
wget "http://downloads.sourceforge.net/project/ms-sys/ms-sys%20stable/2.2.0/ms-sys-2.2.0.tar.gz?use_mirror=citylan" -O ms-sys-2.2.0.tar.gz
tar zxf ms-sys-2.2.0.tar.gz && cd ms-sys-2.2.0/
make
cp bin/ms-sys /usr/bin/
cd .. && rm -rf ms-sys-2.2.0*
dd if=/dev/zero of=floppy.img bs=1024 count=20000
mkdosfs floppy.img
ms-sys -1 -f floppy.img
mount -o loop floppy.img /mnt/
wget http://itblog.su/downloads/W98SE_R.img
mount -o loop W98SE_R.img /tmp/dos
cp /tmp/dos/* /mnt/ 
umount /tmp/dos && rm -rf /tmp/dos
mv X8DTU_204.ima /mnt/
wget ftp://ftp.supermicro.com/utility/IPMI%20FW%20flash%20tools/AMI/DOS%202.4.zip
unzip  DOS\ 2.4.zip 
mv DOS/yafukcs.exe /mnt/
rm -rf DOS*
umount /mnt
mv floppy.img /tftpboot/
 
cat >> /tftpboot/pxelinux.cfg/default <<EOF
label dos
    menu label dos
   kernel memdisk
   append initrd=floppy.img
EOF

» Запись из раздела Несортированное | 2 комментария

Proftpd listen ip

Запись создана 30 мая, 2011

По умолчанию Proftpd слушает порт 21 на всех интерфейсах, если же нужно указать ему отвечать строго на определенном интерфейсе используйте конфигурацию:

SocketBindTight                 on
Port                            21
DefaultAddress                 192.168.3.1

192.168.3.1 замените на нужный Вам ip адрес.

» Запись из раздела Unix | 1 комметарий

Portchannel betwen Allied Telesis AT-8000GS and Cisco c2950

Запись создана 17 мая, 2011

Что имеем:
1. гигабитный стэк из двух Allied Telesis AT-8000GS
2. к стэку двумя линками подключен AT-8000S/24, линки собраны в портчаннел.
3. Cisco Catalist 2950 который надо подключить к сети.

Оптического трансивера для ATI нет, подключать придется 100 мегабитными линками, линки обьеденить в etherchannel.

на циске настраиваем:

WS-C2950SX-48-SI#conf t
WS-C2950SX-48-SI(config)#interface range FastEthernet 0/45 - 48 
WS-C2950SX-4(config-if-range)#switchport mode trunk
WS-C2950SX-4(config-if-range)#channel-group 1 mode passive
WS-C2950SX-4(config-if-range)#channel-protocol lacp
WS-C2950SX-4(config-if-range)#end

На AT-8000S/24

interface range ethernet e(19-22)
channel-group 7 mode auto
description c2950
exit

всё, портчаннел готов, идем на циску и видим:

WS-C2950SX-48-SI#show interfaces port-channel 1 | i BW
  MTU 1500 bytes, BW 400000 Kbit, DLY 1000 usec,

400 мегабит пропускная способность портчаннэла.

» Запись из раздела Allied Telesis, Cisco | Комментировать

H-Sphere account move error «Suspended due to resources integrity»

Запись создана 4 мая, 2011

При переносе аккаунта с сервера на сервер из H-shphere возможна ошибка «Suspended due to resources integrity»

Заходим на сервер cp рутом и выполняем:

grep "duplicate key violates unique" /var/log/hsphere/hsphere.log.1  -B3

получим что-то вроде:

2011-05-04 11:15:34,614 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): got and checking 1608767_7 is a HostDependentResource -  true
2011-05-04 11:15:34,614 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): host_id=75
2011-05-04 11:15:34,623 [transfer] ERROR cron.TransferCron - Getting resources info for process 1510
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint "resources_in_move_pkey"
--
2011-05-04 11:15:35,195 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): got and checking 1505546_7 is a HostDependentResource -  true
2011-05-04 11:15:35,195 [transfer] DEBUG cron.TransferCron - getResourcesInMoveInfo(): host_id=75
2011-05-04 11:15:35,197 [transfer] ERROR cron.TransferCron - Getting resources info for process 1519
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint "resources_in_move_pkey"

Теперь переходим к системено PostgreSQL базе:

sudo su -l cpanel -c 'psql hsphere'

и находим ресурсы взятые из лога выше:

hsphere=# SELECT * FROM resources_in_move WHERE rid = 1608767;
 tp_id |   rid   | rtype |          created           | deleted | job_id | tt_id | ord 
-------+---------+-------+----------------------------+---------+--------+-------+-----
  1188 | 1608767 |     7 | 2010-02-08 06:08:08.191+03 |         |   1149 |       |   0
(1 ROW)
 
hsphere=# SELECT * FROM resources_in_move WHERE rid = 1505546;
 tp_id |   rid   | rtype |          created           |          deleted           | job_id | tt_id | ord 
-------+---------+-------+----------------------------+----------------------------+--------+-------+-----
  1271 | 1505546 |     7 | 2010-02-08 07:38:30.028+03 | 2010-02-09 08:18:42.944+03 |   1225 |       |   0
(1 ROW)

удаляем найденные из таблицы resources_in_move:

hsphere=# BEGIN;
BEGIN
hsphere=# DELETE FROM resources_in_move WHERE tp_id = 1188;
DELETE 168
hsphere=# DELETE FROM resources_in_move WHERE tp_id = 1271;
DELETE 41
hsphere=# COMMIT;
COMMIT
hsphere=# \q

И снова начинаем перенос аккаунтов, теперь всё пройдет нормально.

» Запись из раздела Несортированное | Комментировать

Cisco WS-C2950SX-48-SI

Запись создана 5 апреля, 2011

Начал собирать себе минилабу для подготовки к CCNA/CCNP, купил на днях Cisco WS-C2950SX-48-SI

cisco WS-C2950SX-48-SI (RC32300) processor (revision L0) with 20015K bytes of memory.
Processor board ID FOC1009Z8JD
Last reset from system-reset
Running Standard Image
48 FastEthernet/IEEE 802.3 interface(s)
2 Gigabit Ethernet/IEEE 802.3 interface(s)
 
32K bytes of flash-simulated non-volatile configuration memory.
Base ethernet MAC Address: 00:17:59:E0:67:C0
Motherboard assembly number: 73-9103-04
Power supply part number: 34-0965-01
Motherboard serial number: FOC100926VG
Power supply serial number: DAB0936FTKJ
Model revision number: L0
Motherboard revision number: A0
Model number: WS-C2950SX-48-SI
System serial number: FOC1009Z8JD
CLEI Code Number: CNMRV002RC
Top Assembly Part Number: 800-24115-03
Top Assembly Revision Number: A0
Version ID: N/A
Configuration register is 0xF

» Запись из раздела Cisco | 4 комментария

installing SHOUTcast streaming server on debian x86_64

Запись создана 4 апреля, 2011

Компания Nullsoft, та что радует виндовых пользователей проигрывателем winamp выпускает еще и стриминг сервер, проще говоря сервер онлайн радио. Ставить будем на debian x86_64

mkdir /opt/sc && cd /opt/sc
wget http://yp.shoutcast.com/downloads/sc1-9-8/sc_serv_1.9.8_Linux.tar.gz
tar zxf sc_serv_1.9.8_Linux.tar.gz
rm -rf sc_serv_1.9.8_Linux.tar.gz README.TXT

Открываем конфиг /opt/sc/sc_serv.conf в любом текстовом редакторе (например vim)
найдите строку Password=changeme и поменяйте changeme на свой пароль
Затем строку ; AdminPassword=adminpass
уберите первый символ точки с запятой и замените adminpass на другой пароль (не должен совпадать с предыдущим), теперь строку ScreenLog=1 и замените на ScreenLog=0 и RealTime=1 на RealTime=0.

установим либы для 64-х разрядной платформы:

apt-get install ia32-libs -y

без них при запуске шоткаста будут ошибки вида

-bash: ./opt/sc/sc_serv: No such file or directory

Читать дальше

» Запись из раздела Debian | 2 комментария

iptables and ftp in passive mode

Запись создана 18 марта, 2011

Если на сервере открыть только 21 порт то ftp будет доступен только в active mode, но браузеры по умолчанию ломятся всегда в passive. Для того чтобы отрыть passive mode нужно подгрузить модуль ip_conntrack_ftp.

modprobe ip_conntrack_ftp
iptables -I RH-Firewall-1-INPUT 1 -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT 
iptables -I RH-Firewall-1-INPUT 1 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

» Запись из раздела Несортированное | 1 комметарий

Mysql cache on ramdisk

Запись создана 18 марта, 2011

Выносим кеш и временные таблицы mysql в память. для этого подключим ram-диск:

mount -t tmpfs -o size=1024M tmpfs /tmp/mysql/
echo 'tmpfs                   /tmp/mysql              tmpfs   size=1024M,mode=01770,uid=100,gid=101,noatime 0 0' >> /etc/fstab

В конфиге Mysql /etc/my.cnf добавляем директиву в блоке [mysqld]:

tmpdir=/tmp/mysql/

И перезапускаем mysql сервер.

увидеть создаваемые временные файлы можно с помощью lsof

lsof /tmp | grep mysql

Кстати, в тот же рамдиск можно запихать кеш eAccelerator/xCache/squid.

» Запись из раздела Несортированное | 5 комментариев

Cisco 7900 series power supply

Запись создана 16 марта, 2011

Айпифоны Cisco серии 7900 поставляются без БП, блоки питания к ним нужно заказывать отдельно. Или питать по PoE или Cisco Inline power (в зависимости от модели). На данный момент я видел блоки питания от трех поставщиков, официально они все называются:

CP-PWR-CUBE-3
P/N 341-0206-02
48V — 0.38A

По факту сейчас у меня в руках три разных БП, от разных ОЕМ производителей.
PSA18U-480C — олдстайл блоки питания, они раньше поставлялись, а сейчас ушлый китайцы делают полную копию.
EADP-18CB A — их делают в Delta Electronics, известный тайландский OEM-щик. Поставляются официально.
PSC18U-480 — делает неизвестный производитель в китае, поставляются официально.

Официальная цена в среднем 30-40$. На ebay можно купить за 14 баксов подделку под PSA18U-480C, но из 4-х блоков два перегревались и сдохли через пару часов.

» Запись из раздела Несортированное | 13 комментариев

« предыдущая страницаследующая страница »