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

вторник, 13 июня 2017 г.

OpenVPN Server PSK autostart

При загрузке OpenVPN сервер спрашивает  PSK, в случае если частный ключ был создан с защитой ключем. Как избежать вопроса без использования скриптов?

In my openvpn.conf:
...
askpass /etc/openvpn/jdoe.pass   <<< new line here
ca /etc/openvpn/jdoe_ca.crt
cert /etc/openvpn/jdoe.crt
key /etc/openvpn/jdoe.key
...
The file /etc/openvpn/jdoe.pass just contains the password. You can chmod this file to 600. This method save my life... ;-)

четверг, 30 июля 2015 г.

Save WSA config via ftp using perl script

Простой способ автоматизировать резервирование файлов конфигурации - написать скрипт. В случае с Cisco IronPort S170 это хороший вариант т.к. встроенных возможностей по автоматической записи конфигов на сторонний хост я не нашел. Нужна линуксовая машина, где есть perl. На нее будем писать конфиги с WSA. На WSA поднят FTP сервер.

#! /usr/bin/perl -w

use Net::FTP;

chdir ("/home/cisco/wsa/configuration" or die "cannot change: $!\n");

$ftp = Net::FTP->new("10.5.32.2", Debug => 1, Passive => 1)
or die "Cannot connect to wsa: $@";

$ftp->login("admin", "password")
or die "Cannot login", $ftp->message;

$ftp->cwd("/configuration")
or die "Cannot change working directory ", $ftp->message;

$ftp->binary or die "Cannot set binary mode: $!";

@ls = $ftp->ls() or die "ls failed", $ftp->message;

foreach $i (@ls) {
        ($i1 = $i) =~ s/(\.\/)//;
        print "",$i1,"\n";
        $ftp->get($i1) or die "get failed ", $ftp->message;
}

$ftp->quit;

Не забываем добавить в cron

11 * * * * /home/cisco/wsa/ftp.pl


среда, 10 июня 2015 г.

How to save config using SNMPv3 via SCP

Создаём пользователя на linux хосте.
useradd -d /home/scp -m -s /bin/bash -c "only for scp" scp
pass 27iK4bUy32hLm87Eew4i

Ставим утилиту, чтобы пользователь мог использовать только scp.
apt-get install scponly
usermod -s /usr/bin/scponly scp

Настраиваем маршрутизатор.
access-list 77 permit 1.1.1.1
access-list 77 permit 2.2.2.2
access-list 77 permit 3.3.3.3

snmp-server group SNMP3GRP v3 priv write SNMP3_R access 77
snmp-server user snmpadm SNMP3GRP v3 auth md5 9LADO68h245s709qP18T priv aes 128 bOJwIi5UZi449fUyrJxZa access 77
snmp-server view SNMP3_R ccCopyTable.1 included
snmp-server view SNMP3_R 1.3.6.1.4.1.9.2.9.9.0 included

Добавим возможность удаленно бутить цыску.
snmp-server system-shutdown

Возвращаемся на линуксовую машину. Проверяем отвечает ли по SNMPv3 цыска.
snmpwalk -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122

К примеру, адрес линуксовой машины - 1.1.1.1

Так можно засейвить конфиг по scp:
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.2.15 i 4
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.3.15 i 4
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.4.15 i 1
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.5.15 a 1.1.1.1
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.6.15 s router_running-config
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.7.15 s "scpQr41ei4f09otuhh"
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.8.15 s "27iK4bUy32hLm87Eew4i"
snmpset -v 3 -a md5 -u snmpadm -A 9LADO68h245s709qP18T -l authPriv -x aes -X bOJwIi5UZi449fUyrJxZa 85.198.124.122 1.3.6.1.4.1.9.9.96.1.1.1.1.14.15 i 1

воскресенье, 11 мая 2014 г.

PPTP. network behind client.

Две площадки объединены туннелем. На одной стоит PPTP сервер на линуксе, на другой микротик, который цепляется к первому клиентским туннелем. За микротиком сетка 192.168.3.0/24. В линуксе нужно прописать маршрут. Делаем это динамически при подключении определенного пира. IP-адрес для пира постоянный. Итак, в файл /etc/ppp/ip-up дописываем:

#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
#    Arg  Name                          Example
#    $1   Interface name                ppp0
#    $2   The tty                       ttyS1
#    $3   The link speed                38400
#    $4   Local IP number               12.34.56.78
#    $5   Peer  IP number               12.34.56.99
#    $6   Optional ``ipparam'' value    foo

# The  environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# These variables are for the use of the scripts run by run-parts
PPP_IFACE="$1"
PPP_TTY="$2"
PPP_SPEED="$3"
PPP_LOCAL="$4"
PPP_REMOTE="$5"
PPP_IPPARAM="$6"
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename "$2"`
export PPP_TTYNAME

case "$5" in
        172.26.100.42)
                /sbin/route add 192.168.3.161/32 gw 172.26.100.42
                ;;
        *)
esac

# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
  exec > /var/log/ppp-ipupdown.log 2>&1
  echo $0 $*
  echo
fi

# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; then
  exec /etc/ppp/ip-up.local "$*"
fi

run-parts /etc/ppp/ip-up.d \
  --arg="$1" --arg="$2" --arg="$3" --arg="$4" --arg="$5" --arg="$6"

# if pon was called with the "quick" argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
  rm /var/run/ppp-quick
  wait
  kill $PPPD_PID
fi

Тут есть описание переменных, можно сделать это в отдельном файле ip-up.local. Да, чтобы одинаковые маршруты не плодились не забудьте прописать аналогичное в ip-down (route del).

среда, 9 октября 2013 г.

Полезные команды Linux на одном листе

Оригинал тут - http://www.f-notes.info/linux:linux_command

КомандаОписание
Системная информация
archотобразить архитектуру компьютера
uname -m
uname -rотобразить используемую версию ядра
dmidecode -qпоказать аппаратные системные компоненты - (SMBIOS / DMI)
hdparm -i /dev/hdaвывести характеристики жесткого диска
hdparm -tT /dev/sdaпротестировать производительность чтения данных с жесткого диска
cat /proc/cpuinfoотобразить информацию о процессоре
cat /proc/interruptsпоказать прерывания
cat /proc/meminfoпроверить использование памяти
cat /proc/swapsпоказать файл(ы) подкачки
cat /proc/versionвывести версию ядра
cat /proc/net/devпоказать сетевые интерфейсы и статистику по ним
cat /proc/mountsотобразить смонтированные файловые системы
lspci -tvпоказать в виде дерева PCI устройства
lsusb -tvпоказать в виде дерева USB устройства
dateвывести системную дату
cal 2007вывести таблицу-календарь 2007-го года
date 041217002007.00установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w

четверг, 11 апреля 2013 г.

Linux user with only ftp access

Пользователь, у которого есть доступ только к ftp. Зайти в систему под этим аккаунтом не получится.

Добавляем "/usr/sbin/nologin" или "/bin/false" в /etc/shells, в /etc/passwd пользователю выставляем

cisco:x:1001:1001:cisco:/home/cisco:/bin/nologin.

пятница, 25 января 2013 г.

Site-to-site туннель GRE через IPSEC на маршрутизаторе Cisco 2911R с использованием модуля шифрования NME-RVPN


Первая схема

Казалось бы, обыденная задача - объединить два офиса шифрованным каналом. Всего-то нужно построить site-to-site VPN и зашифровать с помощью crypto map. Все так и есть, если речь идет не о государственной структуре. Нельзя использовать вражеские шифровальные алгоритмы и железо. Именно под эту задачу были выбраны маршрутизаторы ISR второго поколения 2911R. Буква R в конце названия говорит о том, что данные рутеры были произведены на территории РФ. Для шифрования трафика будем использовать модули для этих рутеров - NME RVPN, выполненные в качестве карты расширения для ISR. Они несут на борту русский софт от компании S-Terra и, конечно же, «Крипто про». По сути, платы представляют собой отдельную машинку под управлением redhat linux с несколькими кастомными софтинами. Имеет один внешний порт помимо общей коммутационной шины, которой подключаются все подобные модули в ISR.

вторник, 24 апреля 2012 г.

GPRS через Bloetooth в Debian

Оригинал: http://tuxedo-live.blogspot.com/2007/05/gprs-linux.html Размещаю у себя, чтобы не потерялось.

Устанавливаем следующие пакеты:
[+]ppp
[+]wvdial
[-]libuniconf4.2
[-]libwvstreams4.2-base
[-]libwvstreams4.2-extras
[-]libxplc0.3.13
[+]bluetooth
[-]bluez-utils
[+]bluez-hcidump
[-]libbluetooth2
~$ su или ~$ sudo -s // получаем права суперпользователя

~# apt-get install ppp wvdial bluetooth bluez-hcidump
или выбираем предложенные пакеты в synaptic

После установки пакетов производим следующие настройки:
~# nano /etc/wvdial.conf
[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
Phone = *99***1#
Username = beeline
Password = beeline

для пользователей МТС изменяем beeline на mts

~# nano /etc/resolv.conf
nameserver 217.118.66.243 # один из DNS Би Лайн
nameserver 213.87.0.1 # один из DNS МТС


~$ hciconfig // подцепляем bluetooth адаптер на ноуте~$ hcitool scan // сканируем девайсы с синим зубом~# rfcomm bind 0 [полученный мак-адрес] 1


update (triklozoid)

rfcomm bind 0 [полученный мак-адрес] 1
не всегда имеет такой вид.
Нужно сначала выполнить "sdptool browse MAC-адрес" и посмотресть параметр channel у службы Dialup-Networking.
В моем случае канал оказался второй, а не первый. Таким образом команда имеет вид
rfcomm bind 0 MAC-адрес CHANNEL


соединяемся...
~$ wvdial
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: AT+CGDCONT=1,"IP","internet.beeline.ru"
AT+CGDCONT=1,"IP","internet.beeline.ru"
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
~[7f]}#@!}!}!} }8}#}$@#}(}"}'}"}"}&} } } } }%}&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;[1f]R.hx5~
--> Carrier detected. Waiting for prompt.
~[7f]}#@!}!}"} }8}#}$@#}(}"}'}"}"}&} } } } }%}&[1f]R.h2'~
--> PPP negotiation detected.
--> Starting pppd at Sat May 12 00:45:04 2007
--> Pid of pppd: 12892
--> Using interface ppp0
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> pppd: H[08][07][06][08]@
--> [06][08]
--> local IP address 10.1.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> remote IP address 217.118.***.***
--> pppd: H[08][07][06][08]@
--> [06][08]
--> primary DNS address 217.118.66.243
--> pppd: H[08][07][06][08]@
--> [06][08]
--> secondary DNS address 217.118.66.244
--> pppd: H[08][07][06][08]@
--> [06][08]

вторник, 28 июня 2011 г.

Банк клиент через Linux Nat Ubuntu

Столкнулся с проблемой. Имеется сеть с гейтом на Linux Ubuntu Server. На нем pppoe сессия с белым адресом /32, соответственно вся локалка натится. Банк клиент выполнен в виде java апплета. Всё работает, но очень медленно. Без nat всё работает отлично. Вот строчка доя iptables, которая решит ваши проблемы:

$IPT -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1300

Отсюда

пятница, 6 мая 2011 г.

Утилита screen

Очень удобная штука. Создается виртуальный терминал. Если отваливается коннект от реального терминала (например, проблемы с сетью), заходим снова на хост (по ssh или telnet) заходим с скрин, а тут все работает, что работало не в bg а в fr режиме. Классная штука.

k4@k4-desktop:~$ screen



Screen version 4.00.03jw4 (FAU) 2-May-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder
Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program (see the file COPYING); if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to
screen@uni-erlangen.de


[Press Space for next page; Return to end.]
Жмем enter.

k4@k4-desktop:~$ tail -f /var/log/syslog
May 6 11:55:16 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 11:56:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:57:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:58:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:59:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:59:46 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 12:00:01 k4-desktop CRON[21925]: (www-data) CMD (php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log)
May 6 12:00:16 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 12:01:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 12:02:25 k4-desktop snmpd[1597]: last message repeated 2 times

Закрываю putty. Захожу заново.

k4@k4-desktop:~$ screen -ls
There is a screen on:
22124.pts-3.k4-desktop (06.05.2011 12:02:51) (Detached)
1 Socket in /var/run/screen/S-k4.

k4@k4-desktop:~$
k4@k4-desktop:~$ screen -r 22124.pts-3.k4-desktop

k4@k4-desktop:~$ tail -f /var/log/syslog
May 6 11:55:16 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 11:56:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:57:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:58:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:59:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 11:59:46 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 12:00:01 k4-desktop CRON[21925]: (www-data) CMD (php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log)
May 6 12:00:16 k4-desktop snmpd[1597]: error on subcontainer 'ia_addr' insert (-1)
May 6 12:01:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 12:02:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 12:03:25 k4-desktop snmpd[1597]: last message repeated 2 times
May 6 12:04:25 k4-desktop snmpd[1597]: last message repeated 2 times


Вот так.

среда, 2 марта 2011 г.

Общение. Unix way. Write.

Два юзера на одной линукс машине. В cli. Как послать друг другу сообщение. Вот так :)

nat9@nat9:~$ write mitya pts/0
write: write: you have write permission turned off.

usage: write user [tty]
nat9@nat9:~$ mesg
is n
nat9@nat9:~$ man mesg
nat9@nat9:~$ mesg y
nat9@nat9:~$ who
mitya pts/0 2011-03-02 04:27 (10.19.90.131)
nat9 pts/2 2011-03-02 04:37 (10.19.79.40)
nat9@nat9:~$ write nat9 pts/2

Message from nat9@nat9 on pts/2 at 04:42 ...
hi
hi
^CEOF
nat9@nat9:~$ write mitya pts/0
write: mitya has messages disabled on pts/0

четверг, 20 августа 2009 г.

Pop-Top или VPN сервер на Linux с использованием PPTPD.




В своё время задача доставила мне хлопот. Имеется 2 линуксовых машины. Сервер - Mandriva 2007, client - Ubuntu Server 8.04 LTS - отличная система. Собственно vpn гейт сделан в первую очередь для того, чтобы виндовые пользовтели имели доступ к корпоративной локалке, файловому самбовому серваку и т.д. Но от того чтоб сделать туннель между линуксами я тож не удержался... изначально сервак был без шифрования, потом всётки решил, что оно пригодится :)

Итак параметры немного отличаются в разных версиях pptpd. В манах все подробно описано. Нам нужно, чтоб на машине были pppd, pptpd, pptpd-client.
Настраиваем vpn сервер. Конфиги:

[root@gate ~]# cat /etc/pptpd.conf
option /etc/ppp/options.pptpd
logwtmp
speed 115200

# IP-адрес сервера в локальной сети
localip 172.26.0.1

# Диапазон адресов для клиентов PPTP-сервера
remoteip 172.26.0.2-254

debug

[root@gate ~]# cat /etc/ppp/options.pptpd
lock
debug
auth
refuse-pap
refuse-chap
proxyarp
mppe stateless
ms-dns 172.26.0.1
ms-dns 192.168.0.2
#require-chapms
require-mschap-v2
#+chapms-v2
novj
novjccomp
nologfd



[root@gate ppp]# cat /etc/ppp/options

lock
noauth
noipdefault
usepeerdns
mppe required

[root@gate ppp]# cat chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses


# Если мы хотим привязать определённый IP к логину:
vpupkin * 12311jj12 172.26.0.37
vbukin * asda 172.26.0.5
и т.д.
чтобы дать динамич ip ставим вместо адреса звёздочку.

Не забываем про IPTABLES:
#VPN SERVER разрешаем GRE. Нужно помнить, что это portless протокол ;)
$IPTABLES -A INPUT -i $INTERNET -p gre -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNET -p gre -j ACCEPT

#Ну и дырочка, через которую мы будем заходить на сервер :)
$IPTABLES -A INPUT -i $INTERNET -p tcp -m tcp --dport 1723 -j ACCEPT
$IPTABLES -A OUTPUT -o $INTERNET -p tcp -m tcp --dport 1723 -j ACCEPT

Настройки Linux клиента:

root@file:/etc/ppp# cat options
name vpupkin
remotename vpn
defaultroute
asyncmap 0
crtscts
hide-password
local
lcp-echo-interval 30
lcp-echo-failure 4
noipx
lock
debug
auth
refuse-pap
refuse-chap
proxyarp
#mppe stateless
require-mschap-v2
novj
novjccomp

Собственно подключение для конкретного аккаунта.
root@file:/etc/ppp/peers# cat vpn
pty "pptp 192.168.0.3 --loglevel 2 --nolaunchpppd"
user vpupkin
password "12311jj12"
nodeflate
nobsdcomp
noauth
lock
noproxyarp
nomppe-stateful
require-mppe-128 #Включаем шифрование
file /etc/ppp/options.pptp

root@file:~# cat /etc/ppp/options.pptp
lock
noauth
nobsdcomp
nodeflate
persist
mppe-stateful
#mppe-stateless
#require-mschap-v2

Набираем в строке клиента:

Client:
pppd call vpn

/var/log/messages
Aug 20 22:24:36 file pppd[995]: pppd 2.4.4 started by root, uid 0
Aug 20 22:24:36 file pppd[995]: Using interface ppp0
Aug 20 22:24:36 file pppd[995]: Connect: ppp0 <--> /dev/pts/1
Aug 20 22:24:40 file pppd[995]: CHAP authentication succeeded
Aug 20 22:24:40 file pppd[995]: MPPE 128-bit stateless compression enabled
Aug 20 22:24:43 file pppd[995]: local IP address 172.26.0.11
Aug 20 22:24:43 file pppd[995]: remote IP address 172.26.0.1


root@file:~# ifconfig ppp0

ppp0 Link encap:Point-to-Point Protocol
inet addr:172.26.0.11 P-t-P:172.26.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:125 (125.0 B) TX bytes:669 (669.0 B)


Server:

/var/log/messages
Aug 20 22:24:38 gate pptpd[31628]: CTRL: Client 192.168.0.2 control connection started
Aug 20 22:24:39 gate pptpd[31628]: CTRL: Starting call (launching pppd, opening GRE)
Aug 20 22:24:39 gate pppd[31629]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.
Aug 20 22:24:39 gate pppd[31629]: pptpd-logwtmp: $Version$
Aug 20 22:24:39 gate pppd[31629]: pppd 2.4.3 started by root, uid 0
Aug 20 22:24:39 gate pppd[31629]: Using interface ppp1
Aug 20 22:24:39 gate pppd[31629]: Connect: ppp1 <--> /dev/pts/3
Aug 20 22:24:42 gate pppd[31629]: MPPE 128-bit stateless compression enabled
Aug 20 22:24:45 gate pppd[31629]: Cannot determine ethernet address for proxy ARP
Aug 20 22:24:45 gate pppd[31629]: local IP address 172.26.0.1
Aug 20 22:24:45 gate pppd[31629]: remote IP address 172.26.0.11
Aug 20 22:24:45 gate pppd[31629]: pptpd-logwtmp.so ip-up ppp1 vpupkin 192.168.0.2

Тунель создан. Как видно у клиента более свежая версия pptpd :)

Из винды всё проще. Создать подключение - подключение к сети на рабочем месте - подключенме к vpn - имя - ip. Потом в свойствах включаем шифрование (вроде уже включено по умолчанию). И всё. Вуаля:



Будут вопросы, милости прошу - icq #53819426.

среда, 19 августа 2009 г.

Компиляция ядра Linux




Приходилось проделывать данную операцию. Неплохая статья. Источник, кажется, Opennet.

1. Качаем

Для начала нужно выкачать само ядро [точнее исходники] с сайта http://www.kernel.org

Качайте архив tar.bz2 - он меньше по размеру. Имя файла должно быть примерно таким - linux-2.6.0.tar.bz2 , размер файла около 33 Мбайт. Качайте всегда последнее стабильное ядро.

Если у вас уже есть ядро 2.6.0. , а вам нужно поставить например 2.6.2, то необязательно качать снова 33 Мбайта, можно выкачать заплатки [их также называют еще "патчи", но давайте говорить на русском] и обновить исходники вашего ядра до последней версии. В таком случае вам нужно выкачать все заплатки по возрастанию номеров версии от вашей версии до последней. В данном примере это заплатки 2.6.1 и 2.6.2. Файлы заплаток называются так - patch-2.6.1.bz2 . Их может не быть на главной странице , поищите их на ftp сервере.

Кроме самого ядра нам возможно понадобится выкачать дополнительные заплатки, расширяющие возможности ядра. К примеру, в ядре 2.6 нет поддержки lirc (пульты дистанционного управления). Чтобы эта поддержка была, на ядро нужно наложить соответствующую заплатку.

Для примера возьмем такие заплатки:

1. bootsplash (графическая загрузка Линукса) с http://www.bootsplash.org
2. win4lin (для одноименной программы эмуляции windows) http://www.netraverse.com
3. lirc (поддержка устройств с ПДУ) - на официальном сайте http://www.lirc.org заплаток нет но вы можете их найти с помощью> http://www.google.ru по имени файла

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

1. linux-2.6.0.tar.bz2
2. patch-2.6.1.bz2
3. bootsplash-3.1.3-2.6.0-test9.diff
4. Kernel-Win4Lin3-2.6.0.patch и mki-adapter26_1_3_3.patch
5. patch-lirc-20031219.diff

Хорошо. Теперь подготовим папку, где будем собирать ядро. В Линуксе для сборки из исходников есть специальный каталог /usr/src. Однако по умолчанию писать туда рядовому пользователю запрещено, поэтому сначала дадим себе права. Самый простой способ - запустить консоль, получить права root и командой chmod разрешить всем запись.

[mike@localhost mike]$ su -
Password:
[root@localhost root]# chmod a+w /usr/src
[root@localhost root]#

Копируем исходники ядра ( linux-2.6.0.tar.bz2) в папку /usr/src

Теперь их надо распаковать. Если вы пользуетесь файловым менеджером mc, на файле нажмите F2, а потом "x". Если вы пользуетесь файловым менеджером gentoo (http://linux.alhimia.ru/projects/gentoo/), то щелкните правой кнопкой и выберите Действия - РаспаковатьСюда.

Получился каталог linux-2.6.0. Переименуйте его, например, в linux-2.6.1-my

Копируем все заплатки туда и переходим к следующему пункту.
3 Компилируем
3.1 Подготовка

Для начала давайте посмотрим файл Makefile. Нас интересуют первые 4 строчки

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 1
EXTRAVERSION =
...

Измените четвертую строку на

EXTRAVERSION = my

Это приведет к тому, что сделанное нами ядро будет называться linux-2.6.1-my. Если нам нужно будет несколько вариантов ядра 2.6.1, то можно снова изменить строчку EXTRAVERSION=my2, скомпилировать ядро еще раз и получить ядро linux-2.6.1-my2. ,что позволит при загрузке выбирать вариант ядра.
3.2 Чистка

Запустите команду make mrproper

[mike@localhost linux-2.6.1-my]$ make mrproper
RM $(CLEAN_FILES)
Making mrproper in the srctree
RM $(MRPROPER_DIRS) + $(MRPROPER_FILES)
[mike@localhost linux-2.6.1-my]$

Эта команда нужна для удаления временных файлов, созданных при предыдущей сборке. Она удаляет также все настройки, которые вы сделали во время прошлой сборки. (Настройки лежат в файле .config, если есть желание перенесите куда-нибудь этот файл, выполните чистку, а потом верните обратно)
3.3 Настройка ядра.

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

Ядро может быть монолитным, а может быть модульным. Что это означает? Монолитное ядро - это просто один файл, который грузится при старте системы, и сидит в оперативке до выключения компьютера. Те возможности, которые заложены в этом файле, не подлежат изменению. Если включить все возможности в ядро, получаем очень большое и очень медленное ядро. Если сделать маленькое и быстрое ядро, то придется пожертвовать возможностями. Кроме того с таким ядром не смогут работать такие коммерческие программы как Win4Lin . На таком ядре не поставить драйвер видеокарты от фирмы Nvidia, что ставит крест на использовании этих ядер на домашних игровых компьютерах с этими видеокартами. В чем же преимущество монолитного ядра? Оно хорошо своей более высокой защищенностью и более простым использованием. При старте ядро обладает всеми возможностями, которые в него заложены. Ядро в этом случае располагается в каталоге /boot и имеет имя vmlinuz-xxxx.

Модульное ядро - это тоже же файл, который грузиться при загрузке с диске как и в случае с монолитным ядром, но плюс к есть нему набор файлов, которые называются модулями. Эти файлы по сути - возможности ядра, которые вы можете подключить к ядру и отключить от него без перезагрузки компьютера. Ядро которое у вас поставилось вместе с дистрибутивом - модульное. В модульном ядре все возможности, которые могут быть выведены в отдельный файл, т.е. модуль, - делаются модульными. Самый большой плюс модульного ядра - то что в него можно включить абсолютно все возможности, на что может ядро, все устройства, все файловые системы и т.п. Ядро в результате получается небольшим (в оперативной памяти) , быстрым и гибким. Минусы такого подхода - собственно в необходимости работы с модулями, вы не получите возможности модуля, пока его не загрузите. К счастью, большинство модулей грузиться автоматически, а остальные грузятся при старте системы загрузочными скриптами, избавляя вас от необходимости грузить вручную десятки модулей. В этом случае ядро представлено тем же файлом /boot/vmlinuz-xxxx и содержимым каталога /lib/modules/<версия ядра>. Кроме того модульному ядру нужен специальный образ загрузки т.н. initrd. Этот образ содержит все необходимые модули которые позволяют ядру загрузить ситему. Без этих модулей оно неспособно подключить системный раздел жесткого диска и прочитать файлы. Initrd файл располагается в каталоге /boot и имеет имя initrd-xxxx.

Где же истина? Как всегда, посередине. Какие-то возможности вы включаете в ядро, какие-то делаете модулями. Какие именно? Те возможности которые вам нужны постоянно - включаете, например драйвер жесткого диска, на котором лежит система. Если к вам приходит друг раз в месяц со своей usb фотокамерой - делайте драйвер usb и камеры модулями. Если сомневаетесь, нужна ли вам та или иная особенность - ставьте модулем. Посмотреть какие модули сейчас загружены в систему вы можете командой lsmod

Если ваш дистрибутив собран для 2.4 ядра (например АСПЛинукс 9.0), то у вас могут быть проблемы с загрузкой модулей, связанные с тем что в 2.6 изменились названия модулей. Поэтому я рекомендую включать все, что вам точно необходимо, в ядро.

Итак, настройка производится на выбор одной из четырех команд

1. make xconfig
2. make menuconfig
3. make config
4. make oldconfig

Первый вариант для пользователей, у которых есть графика - у вас запустится графическая программка для настройки, остальные - для консоли. Второй вариант предлагает текстовые меню для настройки. Третий задает 1000 и 1 вопрос. Четвертый нужен если у нас уже есть сформированный файл настроек .config (можно использовать файл настроек от старого ядра), при этом варианте задаются только те вопросы которые появились в этой версии ядра. Первый вариант нам наиболее симпатичен. Итак вперед!

Если вы хотите возможность оформить модулем ставьте точку (m для консоли), Если включить в ядро галочку (* или y)

Для тех кто не знает английский привожу примерную настройку рабочей станции. Естественно, оговорюсь, что я не считаю свой подход единственно правильным, не претендую на 100% понимание всего что есть в ядре, - как я это понимаю, так и привожу в этом документе

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

Теперь осталось собрать ядро. Процесс сборки и установки ядра можно выполнить одной командой (от пользователя root)

make bzImage modules modules_install install

а можно разбить на несколько этапов

от простого пользователя:
make bzImage
(собрать ядро)
make modules
(собрать модули

от пользователя root:
make modules_install
(установить модули)
make install
(установить ядро)

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

от простого пользователя:
make bzImage modules

от root:
make modules_install install

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

Если вы слишком увлекаетесь заплатками, то ядро может и не собраться (на определенном этапе сборка прервется и вы увидите код ошибки). В этом случае вам придется либо отключать модули на которых происходит ошибка, либо повторять все сначала уже с меньшим кол-вом заплаток. Если у вас ядро без заплаток не желает компилироваться, то это говорит о неправильной установке дистрибутива, либо нехватки компилятора или библиотек. Попробуйте установить дистрибутив в режиме "Разработка" (не забудьте добавить КДЕ и другие пользовательские программы). Дистрибутивы ALT Linux Junior и ASPLinux ChipEdition - на самом деле не дистрибутивы, а, говоря интеллигентно, демо-версии, поэтому не удивляйтесь, если у вас ничего не выйдет.

Когда ядро будет собрано, у вас должны появиться следующие файлы

/boot/vmlinuz-2.6.1-my
/boot/System.map-2.6.1-my
/boot/initrd-2.6.1.img
и каталог модулей
/lib/modules/2.6.1-my

Ядро установлено, теперь надо настроить загрузчик.
4. Настройка загрузчика

После установки ядра, как правило, автоматически настраивается и загрузчик, если этого не произошло или вы хотите подправить что-либо, то читайте дальше

Три самых распространенных загрузчика

1. LILO
2. GRUB
3. ASPLoader

Первый из них - это самый старый (но это не значит самый обделенный возможностями). Отличается хорошей надежностью и большими возможностями.

GRUB - самый мощный по возможностям загрузчик. Очень хорош.

У ASPLoader есть две оригинальные особенности - поддержка мыши и простота. Однако дизайн у него уж больно смахивает на маздаевский. Да и по возможностям слабоват.

Если у вас установлен АСПЛинукс, то после установки ядра grub будет затерт ASPLoader'ом. Вам надо будет заново установить grub.

!!! Никогда не удаляйте настройки старого ядра, это может привести к невозможности загрузки системы обычным образом, если сделанное вами ядро не работоспособно !!!
4.1 Настройка ASPLoader

1. Для начала подправьте файл настроек

Он расположен в файле /etc/aspldr.conf

[linux1062672691@Linux(2.6.1-my)]
icon linux
kernel /boot/vmlinuz-2.6.1-my root=/dev/hda5 hdc=ide-scsi vga=791 splash=silent
initrd /boot/initrd-2.6.1-my.img

[SEPARATOR]

[asplinux1@ASPLinux(2.4.20-9asp)]
icon linux
kernel /boot/vmlinuz-2.4.20-9asp root=/dev/hda5 ro
initrd /boot/initrd.2.4.20-9asp.img

Если вы не используете initrd (все драйверы необходимые для загрузки системы включены в ядро и bootsplash не используется), тогда соответствующую строчку можно удалить

2. Дайте команду aspldr для записи изменений в загрузчик

Для дополнительной информации смотрите man aspldr.conf
4.2 Настройка GRUB

1. Подправьте файл настроек

/boot/grub/grub.conf

title linux-2.6.1-my
kernel /vmlinuz-2.6.1-my root=/dev/hda5 hdc=ide-scsi vga=791 splash=silent
initrd /initrd-empty.splash
boot

title linux-2.4.20
kernel /vmlinuz-2.4.20-9asp root=/dev/hda5
initrd /initrd.2.4.20-9asp.img
boot

2. Если у вас установлен АСПЛинукс, то после установки ядра grub в MBR будет затерт ASPLoader'ом. Вам надо будет заново установить grub. Под пользователем root введите в консоли

grub
grub> root (hd0,0) (/boot раздел расположен на первом разделе первого жесткого диска)
Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0) (записать загрузчик в MBR первого жесткого диска)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"... 16 sectors are embedded... succeeded
Running "install /grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.

grub> quit

Подробнее о настройках grub смотрите info grub
5. Доводка вашего дистрибутива.

Перед тем как загрузиться с ядра 2.6 необходимо подправить некоторые вещи в нашем дистрибутиве. (Имеется в виду дистрибутив АСПЛинукс 9.0)

Первое, нужны новые утилиты для работы с модулями - modutils. Вы их можете найти с помощью ресурса http://www.rpmfind.net. Качайте последнюю версию для RedHat (Fedora).

Для установки пакетов нужно под пользователем root ввести команду

rpm -Uhv <имя файла rpm>

Второе, загрузочные скрипты ошибочно отключают автозагрузку модулей.

Для этого в файле /etc/rc.d/rc.sysinit найдите следующие строки

if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null && [ -f /proc/ksyms ]; then
USEMODULES=y
fi

и переделайте их к виду

if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null ; then
USEMODULES=y
fi

Кроме этого, возможны проблемы с подключением модулей, которые имеют разные названия в версиях ядра 2.4 и 2.6. В этой ситуации помогает включение этих модулей в ядро.

На этом все. Добро пожаловать в Линукс 2.6!