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

Швейцарский нож для сетей - netcat



10 коммент.
Простая и очень нужная утилита, способная передавать данные по сети. Особенно полезна для небольших локальный сетей, где незачем городить огород с SSH и где требуется просто передать данные на другую машину.

Утилита netcat (или nc) должна быть в любом дистрибутиве, и даже в Knoppix она тоже есть. Если вдруг её нет, установка netcat проблем не составляет:
apt-get install netcat
Работать с ней очень просто, и на примере далее я покажу, как легко и просто передавать файлы при помощи nc. Идея netcat очень проста: он просто перенаправляет поток данных в порт сетевого устройства, а на другом конце поток перенаправляется в файл. Отсюда и название: NETcat - тот же cat, но сетевой. При передаче файлов следует первым запускать nc на сервере (куда будут передаваться данные), а потом уже с клиента (откуда передаются данные) пересылать файлы.


На стороне сервера (куда передаём данные):
Нужно запустить netcat так, чтобы он слушал определённый порт, и перенаправлял получаемый поток в файл. Вот так:
nc -l -p 3333 > file.txt
Это откроет на прослушивание порт 3333, и сохранит полученные данные в файл file.txt в текущем каталоге. При этом программа не вернёт управление консоли, и будет ждать, пока вы вручную завершите её.


На стороне клиента (откуда передаются данные):
Для этого передаём по конвейеру файл nc так:
cat file.txt | nc 192.168.1.1 3333
Это передаст файл file.txt на машину с IP-адресом 192.168.1.1, где уже запущен nc, слушающий порт 3333.

А кроме того
Можно с помощью nc устроить чат с пользователем на другой машине. Со стороны клиента просто пишете
nc 192.168.1.1 3333
и на том конце будет видно всё, что вы печатаете, в том числе кириллицу.


Ссылки:
Первоначально идея была любезно утянута отсюда, разбавлена вот этим и приправлена вот этим материалом.
Читать далее

Простая настройка сетевого интерфейса в Линукс: как быстро настроить сетевую карту в Linux



51 коммент.
Несмотря на то, что во многих современных дистрибутивах есть красивые графические утилиты по настройке сетевой карты, в ряде случаев проще настроить всё руками в конфигах. Это очень просто - вписать несколько строчек в нужные конфиги.


Как посмотреть текущие настройки сетевой карты в Линукс
Просмотреть текущие настройки можно, набрав в консоли с привилегиями рута команду:
# ifconfig
или
$ sudo ifconfig
В результате в консоль будет выдано что-то вроде:

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:104 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9387 (9.1 KiB) TX bytes:9387 (9.1 KiB)

eth0 Link encap:Ethernet HWaddr 00:0A:E4:53:AA:2D
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:21 Base address:0x2c00

Отсюда видно, что настроены два сетевых интерфейса: петлевой (loopback) под названием lo, и обычная сетевая карта (которая Ethernet) под обозначением eth0 ибо eth это ethernet [?], а 0 - номер устройства.

Причём если в интерфейс eth0 вставлен сетевой провод, идущий в свитч, будет написано RUNNING, то есть:
inet addr:192.168.1.5 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20e:2eff:feec:ef9f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Простая настройка сетевого интерфейса возможна командой:
ifconfig eth0 192.168.1.5
Чтобы заглушить сетевой интерфейс, набираем:
ifdown eth0
После этого небольшого вводного описания переходим к настройке простых сетей в Linux.


Настройка сетевого соединения в Линукс
Для этого потребуются права администратора и текстовый редактор (nano, vim, emacs, ваш_любимый_редактор_здесь). Так же нужно представлять, какой IP-адрес [?] следует присвоить сетевой карте, адрес шлюза и прочие параметры.

Сначала нужно выяснить, как называется сетевой интерфейс, соответствующий вашей сетевой карте. Делается это так: в консоли пишем
dmesg | grep -i Eth
В результате должны получить что-то вроде (выделение моё):
8139too Fast Ethernet driver 0.9.28
eth0: RealTek RTL8139 at 0xdf822c00, 00:15:f2:51:ad:da, IRQ 21
eth0: Identified 8139 chip type 'RTL-8101'
Так, похоже, что называется он eth0 и именно такое названием (у вас оно может быть другим, но идея та же). В этом примере дальше будет предполагаться, что интерфейс - eth0.


Настройка сетевого соединения со статическим IP
Для настройки статического сетевого соединения следует отредактировать файл:
# nano /etc/network/interfaces
или
sudo nano /etc/network/interfaces
Перед тем, как его править, следует решить, какой IP-адрес назначается машине. Если вы подключаетесь к уже настроенной сети - хорошо бы посмотреть, какие настройки есть там. Например, если подключение происходит к CorvettTelecom, настройки вам дадут. Если же сеть самопальная, например из двух компьютеров, нижеследующий пример подойдёт.

В общем, при назначении статических адресов нужно указать: IP-адрес (address), маску подсети (netmask) и адрес шлюза (gateway). Для локальной сети файл /etc/network/interfaces нужно изменить так:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1
В этом примере назначен IP-адрес 192.168.1.5 сетевой карте eth0.


Настройка сетевого соединения с динамическим IP
Редактируем тот же файл, отвечающий в Линукс за сетевые настройки:
# nano /etc/network/interfaces
или
sudo nano /etc/network/interfaces
Здесь всё проще: нужно лишь привести файл к виду:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
Так же можно настроить и из консоли:
#dhcpcd eth0
Для этого в системе должен быть установлен пакет dhcp3-client

Два слова о беспроводных сетях
Чтобы изменить тип интерфейса
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0
wlanmode adhoc
Для того, чтобы посмотреть список сетей, набираем:
iwlist ath0 scan
или
wlanconfig ath0 list ap
Если есть открытая сеть и нужно к ней подключиться, набираем от рута:
iwconfig ath0 essid SomeESSID
Для того, чтобы соединение шифровалось с использованием WEP, пишем:
iwconfig ath0 key ...
Больше о беспроводных сетях говорилось тут.

Настройка адресов серверов имён (DNS, nameserver)
Если вы не настроите это, то сможете подключаться к ресурсам сети только по IP-адресам, что несколько неудобно. Для того, чтобы в Линукс прописать адреса серверов имён (DNS address), нужно отредактировать файл /etc/resolv.conf или создать его, если его нет.
# nano /etc/resolv.conf
или
sudo nano
/etc/resolv.conf
И прописать адреса следующим образом:
nameserver 192.168.1.1
nameserver 192.168.2.1
столько, сколько их нужно. Слово nameserver добавлять обязательно.


Чтобы изменения настройки сетевых интерфейсов вступили в силу...
... можно перезагрузиться, но это не наш метод. Без перезагрузки следует дать команду:
# /etc/init.d/networking restart
или
sudo /etc/init.d/networking restart
Всё, после этого настойки вступают в силу для всех сетевых интерфейсов.


Заключение
Это позволит достаточно легко настроить простую локальную сеть.
Как сменить MAC-адрес на сетевой карте, говорится там. Если требуется настроить GRPS под Линуксом, читаем это. При настройке VPN-соединений в Linux, толковые руководства есть по Корбине и ещё одно про корбину, по PPPoE тут и ещё одно. Остальное можно найти тут.
Читать далее

Настройка VPN в Linux с ZNet/Net-by-Net в Дебиан Линукс



16 коммент.
Не так давно пришлось заниматься настройкой VPN Linux в Debian GNU/Linux (хотя VPN в Ubuntu настраивается так же). Так как форум ZNet/Net-by-Net извне недоступен, выкладываю это здесь. Хотя настройка vpn под linux дело не хитрое, но был один секретный бубен, в который надо было стукнуть. Он таился в дебрях обсуждений на ixbt и был найден мной в процессе обдумывания сакраментального вопроса "что делать!?".

Поднимаем Интернет
Настройка VPN в Linux отдалённо напоминает настройку GPRS - копание в сторону ppp и связанных с ним утилит. Нужно установить пакеты pptp linux:
aptitude install pptp-linux
После этого создаём файл /etc/ppp/peers/Znet и правим его содержимое до следующего вида:
name мой_логин
remotename PPTP
pty "pptp vpn.znet --nolaunchpppd"
lock
noauth
mtu 1372
mru 1372
lcp-echo-failure 10
Заменяем мой_логин на нормальный логин и обращаем внимание на выделенные полужирным строки. Мне пришлось ради них ковыряться Аллах знает где на форумах iXBT - только после этого всё заработало (по умолчанию стоит 1378)!

Если оставить значение по умолчанию, будете получать такие матюги:

Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pptp[3456]: anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
Jun 18 04:05:02 Resolventa pptp[3456]: anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.
Jun 18 04:05:02 Resolventa pptp[3456]: anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established ta pppd[3450]: rcvd [LCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfAck id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP ConfRej id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP ConfReq id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP ConfAck id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP EchoReq id=0x0 magic=0x93be06c8]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP EchoReq id=0x0 magic=0x2244c55a]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [LCP EchoRep id=0x0 magic=0x93be06c8]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [CHAP Challenge id=0xa4 , name = "vpn1"]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [CHAP Response id=0xa4 <0a52e6cd7d20afcd0c1861afbffae990>, name = "MZR9Kexm"]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [LCP EchoRep id=0x0 magic=0x2244c55a]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [CHAP Success id=0xa4 ""]
Jun 18 04:05:02 Resolventa pppd[3450]: CHAP authentication succeeded
Jun 18 04:05:02 Resolventa pppd[3450]: CHAP authentication succeeded
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfReq id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfAck id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfRej id=0x1 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfNak id=0x2 ]
Jun 18 04:05:02 Resolventa pppd[3450]: sent [IPCP ConfReq id=0x3 ]
Jun 18 04:05:02 Resolventa pppd[3450]: rcvd [IPCP ConfAck id=0x3 ]
Jun 18 04:05:02 Resolventa pppd[3450]: Cannot determine ethernet address for proxy ARP
Jun 18 04:05:02 Resolventa pppd[3450]: local IP address 10.10.252.102
Jun 18 04:05:02 Resolventa pppd[3450]: remote IP address 10.10.0.20
Jun 18 04:05:02 Resolventa pppd[3450]: Script /etc/ppp/ip-up started (pid 3457)
Jun 18 04:05:02 Resolventa pppd[3450]: Script /etc/ppp/ip-up finished (pid 3457), status = 0x0

Далее редактируете файл /etc/ppp/chap-secrets, вписав в него следущие строки:
# Secrets for authentication using CHAP
# client server secret IP addresses

мой_логин мой_пароль
Разделитель - пробел. Настройка сетевого интерфейса - присваиваем своей сетевой карте выданный провайдером IP-адрес в файле /etc/network/interfaces:
# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.ХХХ.ХХХ
netmask 255.255.255.0
gateway 192.168.ХХХ.1

Вместо ХХХ подставляем числа из договора. Теперь прописываем адреса DNS-серверов в /etc/resolv.conf (если его нет - создаём от рута touch /etc/resolv.conf):
nameserver 192.168.0.8
nameserver 192.168.0.9
Это ещё не всё: нужно прописать роутинги. Вот она, тайна Золотого Ключика:
ip r add 192.168.0.0/16 via 192.168.XX.1
ip r del default
ip r add default dev ppp0
Вместо ХХ подставить число, которое вы найдёте в договоре. После этого таблица роутинга должна выглядеть примерно так:

# route

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.0.20 * 255.255.255.255 UH 0 0 0 ppp0
192.168.157.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 gw-1-157.znet 255.255.0.0 UG 0 0 0 eth0
default * 0.0.0.0 U 0 0 0 ppp0
default gw-1-157.znet 0.0.0.0 UG 0 0 0 eth0

Готово - соединяемся с провайдером:
pppd call Znet
После этого всё должно работать.

Ссылки:

К сожалению, внутренний форум Znet
/Net-by-Net не доступен извне, но раздел Linux там есть и местные аксакалы отвечают быстро и очень грамотно. За что им огромное спасибо.
Читать далее

Простое шифрование WiFi соединения для Nokia N800



2 коммент.
Незащищённое беспроводное соедение по WiFi да ещё с выходом в Интернет допустимо только в глухой тайге. Хотя бы минимальное шифрование должно присутствовать - и N800 его поддерживает. Настраивается оно очень просто.

Да, WEP-алгоритм известен своей ненадёжностью и подверженностью взлому. И тем не менее, лучше что-то, чем совсем ничего.


На стороне десктопа с WiFi
Нужно создать ключ шифрования, лучше это сделать так, как советуют тут:
dd if=/dev/random bs=1 count=5 2>/dev/null | xxd -ps
Получаем что-то вроде
c276246d65
Теперь это наш WEP-ключ. Осталось сообщить его карте
iwconfig eth3 key c276246d65 mode Ad-Hoc channel 1 essid virens
Где essid нужно поправить под свой случай. Чтобы не набирать его каждый раз, полезно сделать скрипт типа:
#! /bin/sh
iwconfig eth3 key
c276246d65 mode Ad-Hoc channel 1 essid virens
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE

Остальное из поста про простую сеть в силе.

Так же можно добавить ключ в /etc/network/interfaces:

# File: /etc/network/interfaces
#

# The primary network interface
auto eth1
iface eth1 inet static
address 192.168.1.100
netmask 255.255.255.0
wireless-key c276246d65
wireless-essid virens
Перезапускаем сетевую подсистему:
# /etc/init.d/networking restart
И видим при запросе sudo iwconfig:

eth3      IEEE 802.11g  ESSID:"virens"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell: 02:15:00:52:15:B7
          Bit Rate:54 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:c276-246d-65   Security mode:open
          Power Management:off
          Link Quality=67/100  Signal level=-60 dBm  Noise level=-85 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0



На стороне N800
В настройка соединения указываем "Метод безопасности" WEP и вводим полученный на десктопе ключ. Всё, после этого подключение производится по защищённому и зашифрованному соединению.

Конечно, если в ваших краях разгуливают злобные граждане с ноутбуками и соответствующими утилитами, то WEP-ключ не долго продержится, но это лучше, чем просто открытая точка.
Читать далее

Выводим Nokia N800 в Интернет через ноутбук с WiFi



7 коммент.
Задача: требуется вывести Nokia N800 (или аналогичное устройство) в Интернет через компьютер с беспроводной сетью. Предполагается, что интернет проводной или ADSL\модем.
Решение: требуется выполнить простые настройки на стороне настольной машины и N800.

На стороне машины, подключённой к Интернет
Нужно создать простую одноранговую ad-hoc сеть и дать статический IP-адрес сетевому беспроводному интерфейсу. После этого делаем NAT и всё работает. Для беспроводного интерфейса eth3 и сети с идентификатором virens команда выглядит так (от рута):
# iwconfig eth3 mode Ad-Hoc channel 1 essid virens
В /etc/network/interfaces пишем что-то вроде:

auto eth3
iface eth3 inet static
address 10.106.146.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid virens

Теперь делаем NAT:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE
При этом eth1 это интерфейс, который подключён к Интернету. Соединение не шифруется - нужно сначала проверить, что всё работает, а потом городить огород с шифрованием.


На стороне Nokia N800
Заходим в меню "Инструменты" --- "Панель управления", ищем там "Соединения", запускаем. Жмём в открывшемся окне на кнопку "Соединения", "Создать".

Даём соединению любое имя, отмечаем галку WLAN, жмём Дальше.

Здесь задаём essid - такой же, какой дали в iwconfig, в моём примере это virens. Шифрование отсутствует, тип сети - одноранговая ad-hoc. Далее.

Здесь нас поздравят, но радоваться рано - тыкаем по кнопке "Дополнительно". Откроется диалоговое окно, выбираем вкладку IP-адреса.

Здесь снимаем галку "Получать IP-адрес автоматически" и вводим адреса:
IP-адрес: 10.106.146.2
Маска подсети: 255.255.255.0
Маршрутизатор: 10.106.146.1

Адрес DNS должен быть от того интерфейса, который обеспечивает выход в сеть - иначе говоря, содержимое /etc/resolv.conf

Основной адрес DNS: 10.106.255.199
Это всё настройки моей сети, подключённой к Корвету. У вас они будут \ могут быть другими.
Весь процесс настройки таблетки показан на комбинированном скриншоте:



По большому счёту всё. Некоторые применяют фильтрацию по мак-адресу, но у меня после этого возник забавный глюк: Kate, KDVI, KPDF и Kile стартуют через 1.5-2 минуты, а потом так и иксы начинают делать при их перезапуске - до перезагрузки системы. Поэтому на мак-фильтрацию я плюнул, благо у меня в районе нет никого с WiFi в радиусе 500 метров в любую сторону :-)

Ссылки
Собственно, статья является сокращённым переводом этого замечательного поста заокеанского коллеги-блоггера, за что ему большое человеческое спасибо.
Читать далее

Настройка WiFi в Linux на примере беспроводной карты WiFi Intel PRO/Wireless на ноутбуке Asus M5200AE



17 коммент.
Здесь я уже писал о том, что на моём ноутбуке Asus M5200AE всё играет и поёт. А не так давно, в связи с приобретением Nokia N800, потребовалось настроить WiFi в Linux. Тут я вспомнил, настройка WiFi прошла как-то слишком просто - сейчас, думаю, с полпинка всё и настрою. Полпинка вылились в небольшое пешее эротическое путешествие со счастливым концом :-)






На всякий случай, в BIOS на Asus M5200AE можно попасть с помощью кнопки  <F2> при загрузке. Если же мы хотим увидеть меню выбора загрузочных устройств (Boot Menu), нужно нажать кнопку <ESC> при появлении экрана BIOS. Доступны варианты загрузки с USB drive, CD-ROM и жёсткого диска.




Настройка WiFi в Linux на примере Intel PRO/Wireless 2200Адаптер от Интел, так что проблем быть по определению не должно. Их, собственно, и нет: качаем firmware отсюда, распаковываем и кидаем её в /usr/share/firmware







Как говорят здесь, WLAN works with the driver ipw2200 from IPW2200's homepage. To use it with 2.6.13, you need these patches:

    ieee80211-for-2.6.13
    ipw2200-for-2.6.13
    ipw2200-suspend2-fix

But still, there is a problem with the RF-Kill switch. According to /sys/bus/pci/drivers/ipw2200/0000:01:05.0/rf_kill, it is hardware-controlled, but Fn+F2 does not do anything. The driver from the project RFSwitch does not work either.



Кроме того, следует поставить пакеты для работы с беспроводными сетями:

aptitude install wireless-tools, kwifimanager, kwirelessmonitor-net kwirelessmonitor kwrapper
А так же ставим пакеты для работы с ACPI, если они ещё не установлены:
aptitude install acpi-support acpid laptop-mode-tools
После этого у вас будет запущен демон acpid и в /etc/acpi добавится много полезных и нужных скриптов.

И если всё правильно сделано, то при загрузке в логах будет видно вот что:
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, 1.1.14
ieee80211: Copyright (C) 2004-2005 Intel Corporation
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.3dmprq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:01:05.0[A] -> GSI 18 (level, low) -> IRQ 17
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.
ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)
Всё здорово, и вроде как работает, но смущают строчки, которые я выделил красным. Что за Kill Switch и почему нельзя подключиться к сети, если он включён?


Аппаратный убийца радиопередатчика

Есть такая комбинация клавиш на ноутбуке, которая включает и выключает радиопередатчик wifi-чипа. Эта комбинация называется "Kill Switch" - если вы не нажали эти клавиши и не включили передатчик, никакие ваши шаманства не помогут.

Проверяется это так: в /proc должен быть файлик с названием rf_kill. Лежать он может в директории, в которой находятся сведения о беспроводной карте. Для того, чтобы проверить положение Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
2
Согласно документации, имеем:
rf_kill
read -
0 = RF kill not enabled (radio on)
1 = SW based RF kill active (radio off)
2 = HW based RF kill active (radio off)
3 = Both HW and SW RF kill active (radio off)

Всё, аппаратный переключатель включён, радио выключено. Это видно и в выводе iwconfig:

eth3 radio off ESSID:"virens"
Mode:Ad-Hoc Frequency:2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=off Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Как правило, комбинация для включения\отключения Kill Switch - Fn+F2 но у вас она может быть другой.



Для того, чтобы она работала, нужно, чтобы в ядре была включена поддержка ACPI, причём само ACPI монолитно, а драйверы для событий - модульно. При этом должна быть выключена поддержка Asus Extras (если у вас ноутбук Asus, конечно).
Странно, но именно так - поддержка дополнительных возможностей должна быть отключена, чтобы заработала единственная кнопка Fn+F2. Необычно, но медицинский факт - с ней не работает...
Если у вас ядро дистрибутивное и там всё включено - я очень за вас рад, можете это пропустить. Тем, кто собирает ядра под свои машины - шпаргалка.

Итак, в ядре должно быть:

Power management options (ACPI, APM) --->
[*] Power Management support ---->
[*] ACPI Support:
<М> AC Adapter
<М> Battery
<М> Button
<М> Video
<М> Fan
<М>Processor
<М>Thermal Zone
< > ASUS/Medion Laptop Extras
<--- в положении ВЫКЛЮЧЕНО!
Теперь идём дальше и включаем поддержку Radio Frequency Kill Switch

Networking --->
[*] Networking support -->
Improved wireless configuration API
--- Wireless extensions
<М> Generic IEEE 802.11 Networking Stack (mac80211)
[ ] Enable debugging output
<М>Generic IEEE 802.11 Networking Stack
[ ] Enable full debugging output
--- IEEE 802.11 WEP encryption (802.1x)
<М> IEEE 802.11i CCMP support
<М> IEEE 802.11i TKIP encryption
<М> Software MAC add-on to the IEEE 802.11 networking stack
[ ] Enable full debugging output

Там же, в Networking, включаем:
<*> RF switch subsystem support --->
<*> Input layer to RF switch connector
Наверняка потребуется NAT для того, чтобы беспроводные устройства могли выходить в Интернет по проводному \ модемному соединению. Поэтому включаем всё, что относится к NAT и Masquerading:

Networking --->
[*] Networking support -->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->

<*> Netfilter netlink interface
...
<*> Netfilter connection tracking support

IP: Netfilter Configuration --->
<*> IPv4 connection tracking support (required for NAT)
[*] proc/sysctl compatibility with old connection tracking
<*> IP tables support (required for filtering/masq/NAT)
<*> IP range match support
<*> TOS match support
<*> recent match support
<*> ECN match support
<*> AH match support
<*> TTL match support
<*> Owner match support
<*> address type match support
<*> Packet filtering
<*> REJECT target support
<*> LOG target support
<*> ULOG target support
<*> Full NAT
<*> MASQUERADE target support
<*> REDIRECT target support
<*> NETMAP target support
<*> SAME target support
...
<*> Packet mangling
<*> TOS target support
<*> ECN target support
<*> TTL target support
Приведённые настройки - не догма, а руководство к действию. Но всё, что касается NAT и Masquerade включать обязательно.

Идём дальше, нам нужно включить поддержку нашей интеловской карты. Нужен раздел в корне под названием Device Drivers, оттуда мы продолжим успешное наступление на беспроводные сети.

Device Drivers ---->
Network device support --->
[*] Network device support
.................
Wireless LAN --->

[*] Wireless LAN (IEEE 802.11)
<М> Intel PRO/Wireless 2200BG and 2915ABG Network Connection
<------- это наш драйвер, его делаем модулем.
[*] Enable promiscuous mode
--- Enable radiotap format 802.11 raw packet support
[*] Enable creation of a RF radiotap promiscuous interface
[*] Enable QoS support
[*] Enable full debugging output in IPW2200 module.

Включаем поддержку загрузки firmware:
Device Drivers ---->
Generic Driver Options ---->
Hotplug firmware loading support

Должно уже быть либо отмечено, либо поставлен прочерк - значит, всё в порядке, загрузка firmware обеспечивается.

Для шифрования соединения нужна поддержка алгоритмов шифрования:
Cryptographic options ->
<*>ARC4 cipher algorithm
<*>Michael MIC keyed digest algorithm
<*>AES cipher algorithms (i586)

И ещё вот это:
Library routines ->
<*>CRC32 functions


Ну и наконец включаем поддержку LED-ов, чтобы лампочками можно было мигать при включении WiFi. Там же, в Device Drivers, ищем внизу:

Device Drivers ---->
LED devices --->
[*] LED Support
<*> LED Class Support
--- LED drivers
--- LED Triggers
Поздравляем себя, ещё раз проверяем, не пропустили ли от счастья какие-нибудь подлые грабли, собираем ядро, ставим его в загрузку, перезагружаемся.


Ключ на старт!Всё готово для нашего беспроводного счастья. Собственно, оно должно наступить ещё при загрузке: ядро обнаружит ACPI-возможности ноутбука и включит лампочку беспроводного соединения. Подгрузится модуль ipw2200, ieee80211 и ieee80211_crypt.

Теперь нажимаем Fn+F2 и смотрим, загорается \ потухает ли лампочка. Если да - мои поздравления, аппаратный переключатель в наших руках. Снова проверяем состояние Kill Switch, выводим его содержимое:
# cat /sys/bus/pci/drivers/ipw2200/0000\:01\:05.0/rf_kill
0
Всё, радио включено. Теперь смотрим вывод:
# iwconfig
lo no wireless extensions.

eth1 no wireless extensions.

Warning: Driver for device eth3 has been compiled with version 22
of Wireless Extension, while this program supports up to version 20.
Some things may be broken...

eth3 unassociated ESSID:"virens"
Mode:Ad-Hoc Frequency=2.412 GHz Cell: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Заработало! Остался сущий пустяк - настроить сеть. Для начала лучше настроить простую Ad-Hoc сеть (то есть точка-точка). Лучше назначить сетевые адреса, и, если сеть маленькая - статические.

В /etc/network/interfaces пишем что-то вроде:

auto eth3
iface eth3 inet static
address 10.106.146.1
netmask 255.255.255.0
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-essid virens

Теперь настраиваем саму карту:
iwconfig eth3 mode Ad-Hoc channel 1 essid virens
Всё, теперь у вас есть простая одноранговая беспроводная сеть с идентификатором virens (настройка сети приведена, естественно, на моём рабочем примере). Прочитать о том, что такое essid и прочие заумные тонкости беспроводной связи можно в этой изумительной статье.
Читать далее

Как узнать MAC адрес сетевой карты: смена МАК адреса в Linux



34 коммент.
Иногда может потребоваться узнать или изменить MAC адрес сетевой карты в Linux, например, если он используется для авторизации доступа в интернет. Изменить MAC-адрес очень просто, для этого существуют специальные системные файлы, которые нужно немного подправить. Это довольно простая, хотя по первому разу не очевидная, процедура.


Временная смена MAC-адреса в Linux
Для этого набираем
sudo ifconfig eth0 hw ether xx:xx:xx:xx
при этом MAC-адрес изменится и будет оставаться таковым до перезагрузки. Если нужно сделать так, чтобы MAC-адрес был таким всегда, нужно приударить в соответствующий бубен системный конфиг.


Постоянный изменённый MAC-адрес
в Linux
Для этого идём в /etc/network/if-pre-up.d/ и создаём там от рута файл, например имени pre-up.

В этот файл пишем следующее:
#! /bin/sh
ifconfig eth0 hw ether 00:00:00:00
Нули замените своим мак-адресом. Чтобы изменения вступили сразу же, без перезагрузки, даём команду:
/etc/init.d/networking restart
При этом в первый раз (особенно при работающем интерфейсе) может вылезти такое:

# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...SIOCDELRT: No such process
ifup: interface lo already configured
SIOCSIFHWADDR: Device or resource busy
run-parts: /etc/network/if-pre-up.d/pre-up exited with return code 1
done.
Повторяем команду, на этот раз всё должно быть без шума и пыли:
notebeast:/home/beast# /etc/init.d/networking restart
Setting up IP spoofing protection: rp_filter.
Reconfiguring network interfaces...ifup: interface lo already configured
done.
Всё, MAC изменён и останется таковым и после перезагрузки.

Сменить MAC-адрес в Линукс можно разными способами - на то он и Линукс. Например, можно заменить содержимое /etc/network/interfaces на следующее:
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
hwaddress ether 00:00:00:00:00:00
Нули, как и ранее, заменяем на требуемый MAC-address.
В Debian всё проще: в описание интерфейса в /etc/network/interfaces добавляем:
hwaddress ether XX:XX:XX:XX:XX:XX
Другие способы описаны в комментариях к этому посту ниже.


Узнать MAC-адрес сетевой карты
в LinuxЧтобы узнать текущий MAC-адрес просто: набираем
sudo ifconfig
И видим нечто вроде:
eth0 Link encap:Ethernet HWaddr 00:0A:E4:53:AA:2D
inet addr:10.26.49.77 Bcast:10.26.63.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:208554 errors:0 dropped:0 overruns:0 frame:0
TX packets:125071 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:40664531 (38.7 MiB) TX bytes:45919980 (43.7 MiB)
Interrupt:21 Base address:0x4c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18511 errors:0 dropped:0 overruns:0 frame:0
TX packets:18511 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:537155 (524.5 KiB) TX bytes:537155 (524.5 KiB)

Красное полужирное выделение и есть MAC-адрес (в данном случае, сетевой карты моего ноутбука).


Замечания
Этот пост может быть полезен абонентам московской сети Кверти (qwerty) и Корветт (провайдер OnLime), чтобы лишний раз не пытаться пробиться в службу тех.поддержки, а решить проблему самостоятельно.
Читать далее

SSH для простых смертных: настройка и использование SSH в Linux



57 коммент.
В сети много документов по настройке SSH для удалённого управления Linux и BSD-системах, но часто в них умалчиваются простые вещи. В этом посте я расскажу о простом использовании клиента SSH и настройке удалённого доступа.






Установка SSH в Linux на примере Debian
Итак, всё, что нам нужно для установки полного комплекта удалённого управления компьютером (SSH-клиент и SSH-сервер) давным-давно лежит в репозитории. Лёгким движением ставим пакет:
# apt-get install ssh
и ждём несколько мгновений, когда оно настроится. После этого мы получим возможность SSH доступа в систему и управления ей. Так как технология эта кросс-платформенная, то можно управлять по SSH Linux или FreeBSD можно и из Windows. Для этого есть
putty, SSH Windows клиент.

На стороне клиента
Теперь надо поправить настройки, которые лежат в каталоге /etc/ssh - конфиг для клиента называется ssh-config, конфиг для сервера, соответственно, sshd-config. На своей, клиентской, стороне, настраиваем возможность приёма X11Forward, ищем и меняем ключи на:
ForwardX11 yes
ForwardX11Trusted yes
Клиентская машина теперь может запускать удалённо графические приложения на сервере. Настройка SSH на стороне клиента закончена, теперь идём к админу далёкого сервера...
В принципе, можно на клиентской стороне ничего не менять, а логиниться на удалённую машину так:
$ ssh -X user@server1.mydomain.com
или
$ ssh -X user@192.168.x.x
если лезть в конфиги на своей стороне не хочется, но у меня это почему-то не работало...

На стороне сервера
Теперь нужно настроить SSH сервер: в конфигах машины-сервера, к которой будем подсоединяться (у вас ведь есть её рутовый пароль, так ведь?) в /etc/ssh/sshd-config ищем и меняем ключи на:
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Этим мы разрешаем серверу запускать удалённо графические приложения и отправлять их на клиентскую машину. Перестартуем сервис:
sudo /etc/init.d/ssh restart

Теперь мы сможем заходить на машину не только в консольном режиме, но и с запуском иксовых приложений.

Если хочется разрешить вход только с определённых машин, нужно подправить строки в конфиге /etc/ssh/sshd_config
AllowUsers hacker@*

AllowUsers *@192.168.1.*
Впрочем, это уже для более продвинутых товарищей.

SSH в действии
Всё готово, и теперь я приведу несколько команд SSH для примера. Открываем консольку и пишем в ней:
$ ssh имя_пользователя_удалённой_машины@ip_адрес_или_сетевое_имя_удалённой_машины
Например, в моём случае, когда я захожу удалённо на ноутбук, пишу ssh beast@192.168.1.5 - так как у меня не настроен сервер имён, пишу адреса. Опять-таки, доступ по SSH может быть не только из Linux или FreeBSD, но и из Windows - при помощи putty.

После этого нас могут спросить: данный айпишник ещё не опознан, как доверительный, стоит ему доверять? Пишем yes, стоит, конечно! :-) Далее вводим пароль пользователя удалённой машины, под которым мы заходим и, если он правильный, попадаем в консоль удалённой машины. В процессе набора пароля вы его не увидите - набирайте всё равно; даётся три попытки - потом соединение обрывается.

Итак, нас поприветствуют как-то вроде этого:

penta4@penta4rce:~$ ssh beast@192.168.1.5
Password:
Linux notebeast 2.6.15.7 #3 PREEMPT Sun Jul 2 12:51:07 MSD 2006 i686 GNU/Linux
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Last login: Tue Oct 10 19:23:57 2006 from 192.168.1.1
beast@notebeast:~$

Теперь, в окошке терминала, который на нашей машине, мы рулим компьютером, к которому мы подключились. Не перепутайте терминалы, а то вырубите не тот компьютер :-) Здесь всё просто и логично, но нам бы хотелось ещё и запускать графические приложения на удалённой системе. Легко!

Запуск графических приложений удалённо
Вводим, как обычно, логин и пароль удалённой машины. И вот перед нами та же самая консоль. Как вызвать графическое приложение? Просто наберите имя вызываемой программы и поставьте после имени знак амперсанд:
$ gimp &;
Это запустит на удалённой машине GiMP в фоне и вернёт вам консоль для дальнейших действий. Если вы не поставите амперсанд после имени приложения, то управление в консоль будет возвращено только после завершения приложения.

На приведённом скриншоте: слева gimp, запущенный на "родной" машине, справа - на удалённой. Кнопочки чуть разные из-за того, что на удалённой машине другие настройки gimp. В остальном - как родной.

Итак, у вас запустится графическое приложение точно так же, как если бы оно работало у вас. Есть одно но: это приложение будет работать на вашем экране, но с документами и настройками удалённой машины. Если файл для обработки находится в вашем домашнем каталоге, то его нужно будет передать на удалённую машину. Оно (и другие приложения, которые вы запустите) будет работать ровно до того момента, пока открыто ssh-соедиение. Туда же, в консольку ssh-соединения, будут выдаваться служебные сообщения запускаемых вами приложений.


Заключение
Ну вот, как выясняется, удалённое соединение и работа по SSH может быть полезна и простым смертным, а не только бородатым админам. Очень удобно, например, быстренько влезть на компьютер коллеги и помочь ему в чём-то (прочитать логи, например), тихо и незаметно поставить софт, или просто загрузить чем-то полезным простаивающую машину. В общем, много применений.

Так как пост делался с упором на простого пользователя, тут не рассматривается шифрованное копирование файлов и прочие тонкости. Они есть на русском в виде краткого описания настройки SSH, а ещё очень подробная статья с nixp. Хорошая справка (правда, на английском) здесь и тут. Думаю, что этого хватит.
Читать далее