Category Archives: Linux
useful console commands to check linux os hardware
- lshw -short
- free -m
- hdparm -i /dev/sda
ping with time markers
ping 192.168.129.148 | while read pong; do echo “$(date): $pong”; done
How to mount Linux LVM volume partitions on Linux
So, one of my friends had this weird system breakdown while upgrading Fedora from DVD. Grub couldn’t locate the grub.cfg file. In order to fix the system and take a backup of some important files, we booted in a live session, mounted a lvm partition to find out that most of the data was gone . The end was pretty bad but I think, just like in my case, there will be many more who wouldn’t know how to mount a lvm partition. This little adventure of mine might help you out.
In case you have to do something similar just follow the steps we took.
1) Once we were in live session, we opened a terminal and ran
[root]# fdisk -l
This lists out the partition table of the system and it looked something like this
Device Boot Start End Blocks Id System
/dev/sda1 * 1 4864 39070048+ 7 HPFS/NTFS
/dev/sda2 4865 6691 14675377+ 83 LVM2_member
…
2) The good news was that the system was at least able to distinguish the partitions. So, in order to backup the data, the next step was to access the /dev/sda2 partition. But since it is an lvm partition we will had to take some additional steps to mount it.
Now, run the pvs command. Please note that while in live session you may find that this is not installed by default. In order to install the required tools, run the following command.
[shredder12]$ sudo apt-get install lvm2
Of course, you should be connected to internet. Once you are done with this run pvs.
[root]# pvs
This will list the volume groups to which our physical volume /dev/sda2 belonged. It would be of the form
PV VG Fmt Attr PSize PFree
/dev/hda2 VolGroup01 lvm2 a- 148.94G 32.00M
The second field, VG, shows the Volume group. The above output is just an example, showing that we are concerned with the Volume group “VolGroup01”. The next step is to list the information about this volume group.
[root]# lvdisplay /dev/VolGroup01
It will throw a bunch of ouput, but the one we are concerned with is LV Name. It will look something like this
LV Name /dev/VolGroup01/LogVol00
In our case, there were two entries of type LV Name, the other being LogVol01, the swap. The whole output along with it will help you to identify the target logical volume you are looking for. Assuming that the above one is the partition that we need to mount, just use the usual method to mount it.
[root]# mount /dev/VolGroup01/LogVol00 /mnt
Now, you can to find the data you were looking for in the /mnt folder.
pppoe Linux
1. yum install rp-pppoe
2. pppoe-setup
Accept these settings and adjust configuration files (y/n)? y
Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
(But first backing it up to /etc/ppp/chap-secrets.bak)
(But first backing it up to /etc/ppp/pap-secrets.bak)
Congratulations, it should be all set up!
Type ‘/sbin/ifup ppp0’ to bring up your xDSL link and ‘/sbin/ifdown ppp0’
to bring it down.
Type ‘/sbin/pppoe-status /etc/sysconfig/network-scripts/ifcfg-ppp0’
to see the link status.
Изменение имени сетевых интерфейсов в RHEL/CentOS 7
Внести изменения в файл конфигурации загрузчика, добавить параметры загрузки ядра net.ifnames=0
и biosdevname=0
в строчкуGRUB_CMDLINE_LINUX
:
# vi /etc/default/grub ... GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet net.ifnames=0 biosdevname=0" ...
Сгенерировать конфигурациооный файл:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Далее изменить название файла конфигурации сетевого интерфейса, изменить параметр NAME
внутри, перезагрузить ОС.
# cd /etc/sysconfig/network-scripts/ # cp ifcfg-eno16780032 ifcfg-eth0 # vi ifcfg-eth0 ... NAME=eth0 ... # shutdown -r now
Установка OpenVPN на CentOS 6.4
еще одного клиента
Возникла необходимость быстро и качественно настроить доступ из домашней обстановки в трудовую среду рабочего помещения. Поскольку дома компьютер находится за линией фронта натизации от провайдера, да и на работе локальная подсеть спрятана за забор NAT, то в качестве решения для организации безопасного доступа для вечернего досуга на работе был выбран замечательный продуктOpenVPN, который хорошо справляется с такими препонами. Помимо этого довольно прост (относительно) в настройках и имеет клиентские решения под известные операционные системы и популярные мобильные платформы (отговорка что ты не за компом может быть не актуальной).
В качестве сервера openvpn был взят простенький компьютер с установленной ОС CentOS:
uname -a
Linux qwert0 2.6.32-358.18.1.el6.i686 #1 SMP Wed Aug 28 14:27:42 UTC 2013 i686 i686 i386 GNU/Linux
Установка и настройка сервера OpenVPN
Установка OpenVPN-сервера в дистрибутиве CentOS 6.4 довольно проста:
yum install openvpn
Будет установлена версия openvpn-2.3.2-1.el6.i686 сервера. Так же во время установки будет создана группа openvpn и заведён пользователь openvpn. Перед тем как приступать к настройкам следует проверить сущестуют ли в системе интерфейсы tun/tap. Вводим:
cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state
Обратите внимание на статус: «File descriptor in bad state» — значит здесь всё есть хорошо.
На следующем шаге следует создать дополнительные файлы и каталоги, поменять права и контекст на них:
touch /etc/openvpn/server.conf
touch /etc/openvpn/ip.sv
mkdir /var/log/openvpn
chown openvpn.openvpn /etc/openvpn/*
chcon -u system_u /etc/openvpn/*
restorecon -v -R /etc/openvpn/*
Далее файл /usr/share/openvpn/easy-rsa/2.0/vars привести к следущему виду:
Прознать какая версия openssl стоит в системе:
rpm -qa openssl
openssl-1.0.0-27.el6_4.2.i686
Переименовать файл /usr/share/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf в /usr/share/openvpn/easy-rsa/2.0/openssl.cnf, чтобы нормально отработали скрипты генерации ключей:
mv openssl-1.0.0.cnf openssl.cnf
Теперь выполняем всё по порядку:
. ./vars
Обратите внимание — две точки через пробел
Удаляем всё и подготовим к генерации каталог /usr/share/openvpn/easy-rsa/2.0/keys:
./clean-all
Создаём файл ca.key — он нужен и серверу и клиенту. Генератор будет задавать различные вопросы, можно жать Enter на всех вопросах:
Генерируем сертификат и ключ для сервера:
Теперь генерируем файл параметров по алгоритму Diffie-Hellman:
Генерируем сертификат и ключ для клиента velowup (такое вот имя у клиентского сертификата):
И последним создаем общий ключ для клиентов и сервера. Это TLS-ключ:
openvpn --genkey --secret ta.key
Теперь следует создать каталоги в конфигурационной директории для ключей:
mkdir /etc/openvpn/.key
mkdir /etc/openvpn/.tls
Переместить сгенерированные файлы в соответствующие каталоги:
cp /usr/share/openvpn/easy-rsa/2.0/key/* /etc/openvpn/.key/
cp /usr/share/openvpn/easy-rsa/2.0/ta.key /etc/openvpn/.tls/
Поправить контекст:
chcon -u system_u /etc/openvpn/.key/*
restorecon -v /etc/openvpn/.key/*
chcon -u system_u /etc/openvpn/.tls/*
restorecon -v /etc/openvpn/.tls/*
chcon -u system_u /etc/openvpn/.key/
restorecon -v /etc/openvpn/.key/
chcon -u system_u /etc/openvpn/.tls/
restorecon -v /etc/openvpn/.tls/
Разрешаем tcp на порту 1723 в SELinux:
semanage port -a -t openvpn_port_t -p tcp 1723
Конфигурационный файл сервера /etc/openvpn/server.conf привести к следующему виду:
Теперь можно переходить к настройкам файервола.
В iptables перед строчками, запрещающими все INPUT и FORWARD
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
пишем:
-A INPUT -i tun0 -j ACCEPT
-A FORWARD -i tun0 -j ACCEPT
Также добавляем строки «натизации»:
*nat
:PREROUTING ACCEPT [4:614]
:POSTROUTING ACCEPT [18:936]
:OUTPUT ACCEPT [18:936]
-A POSTROUTING -s 10.10.20.0/24 -o eth0 -j MASQUERADE
«Рестартим» iptables:
service iptables restart
Запускаем openvpn
service openvpn start
Проверяем что сервис открыл порт да и вообще работает:
netstat -nlp | grep 1723
tcp 0 0 192.168.0.2:1723 0.0.0.0:* LISTEN
Если всё нормально, ставим OpenVPN в автозапуск:
chkconfig openvpn on
Настройка клиента OpenVPN
Поскольку дома на рабочей машине стоит CentOS, то установку и настройку клиентской части буду вести относительно этой операционки, хотя отличие для других дистрибутивов и операционных систем минимальны.
Создать каталоги, в которых будут располагаться клиентские ключевые файлы:
mkdir /etc/openvpn/.key/
mkdir /etc/openvpn/.tls/
Наисекретнейшим образом стоит перенести на будущую клиентскую машину файлы, ранее сгенерированные на сервере:
ca.crt
dh2048.pem
velowup.crt
velowup.key
в каталог /etc/openvpn/.key/.
А файл ta.key пусть полежит в каталоге etc/openvpn/.tls.
Файл конфигурации клиента OpenVPN следующего вида:
client
tls-client
# В каком режиме работать? Мостом (tap) или маршрутизация (tun)
dev tun# На каком протоколе работать
proto tcp-client# Адрес и порт сервера (Хоть IP хоть доменное имя)
remote wostok.su 1723
# Бесконечно пробовать разрешить имя хоста OpenVPN-сервера.
resolv-retry infinite
# Не «биндиться» к интерфейсу
nobind
# Стараться сохранять некоторое объекты между перезапусками
persist-key
persist-tun
# Параметры SSL/TLS.
# Смотрите файл конфигурации сервера для более
# подробного описания. Лучше всего использовать
# отдельные пары .crt/.key-файлов
# для каждого клиента. Один ca-файл
# может быть использован для всех клиентов.
ca /etc/openvpn/.key/ca.crt
dh /etc/openvpn/.key/dh2048.pem
cert /etc/openvpn/.key/velowup.crt
key /etc/openvpn/.key/velowup.key
# Если на сервере используется ключ tls-auth,
# то каждый клиент также должен иметь этот ключ.
tls-auth /etc/openvpn/.tls/ta.key 1
# Выбор криптографического шифра (cipher).
# Если опция cipher используется на сервере,
# то вы также должны указать её здесь.
cipher AES-256-CBC
auth SHA512
# Включить сжатие
comp-lzo
# Уровень журналирования
verb 4
# Не записывать повторяющиеся сообщения более чем
mute 20
# От какого пользователя и группы работать клиенту?
user openvpn
group openvpn
# Куда писать журнальные данные о работе клиента?
log-append /var/log/openvpn/openvpn_client.log
status /var/log/openvpn/status_client.log
;route 172.16.1.0 255.255.255.0
Вот, собственно, и все настройки. Дальше запуск клиента и выполнение требуемых операций из далека:
/usr/sbin/openvpn /etc/openvpn/client.conf
gentoo instalation
1. создаем разделы на диске cfdisk
2. выбираем gpt
3. создаем 4е раздела : 1. для системных файлов 21-25Гб, 2. 512Мб для bootable, 3 swap если ОЗУ<4Гб то swap =ОЗУ*2, если больше 4Гб то swap = размеру ОЗУ
4. форматируем все разделы mkfs.ext4 /dev/sda1 , mkfs.ext4 /dev/sda2, mkfs.ext4 /dev/sda4 и swap – mkswap /dev/sda3
5. включаем swap swapon /dev/sda3
6. выставляем дату date 050321132015 месяц, день, часы, минуты, год
монтирование файловых систем которые создали и установка stage3 : stage3 – backup system files
1. mount /dev/sda1 /mnt/gentoo
2. mkdir /mnt/gentoo/{boot,home}
3. mkdir /mnt/gentoo/home
4. mount /dev/sda2 /mnt/gentoo/boot
5. mount /dev/sda4 /mnt/gentoo/home
6. cd /mnt/gentoo
7. скачиваем stage3 links http://www.gentoo.org/main/en/mirrors.xml
8. выбираем http сайт , затем enter, выбираем releases/x86/autobuilds/current-stage3-i686/stage3-i686-2015XXXX.tar.bz2
9. ctrl-C or Q
10. tar xvjpf current-stage3-i686/stage3-i686-2015XXXX.tar.bz2
выбор зеркал, подготовка и смена корневого каталога, обновление системного менеджера пакетов
1. mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
2. any available
3. clear
4. mount -t proc none /mnt/gentoo/proc
5. mount –rbind /sys /mnt/gentoo/sys
6. mount –rbind /dev /mnt/gentoo/dev
7. cp -L /etc/resolv.conf /mnt/gentoo/etc/
8. chroot /mnt/gentoo/ /bin/bash
9. source /etc/profile
10. export PS1=”(chroot) $PS1″
11. mkdir /usr/portage/
синхронизация и загрузка последней версии файлового менеджера и загрузка системы
1. emerge-webrsync
2. emerge –sync
Profiles, timezone, fstab
1. eselect profile list
2. eselect profile set 3
3. nano -w /etc/portage/make.conf
4. less /usr/portage/profiles/use.desc
5. Ctrl-Z
6. ls /usr/share/zoneinfo/
7. ls /usr/share/zoneinfo/Europe
8. cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
9. echo “Europe/Moscow” > /etc/timezone
10. nano -w /etc/fstab
11. inpuuuuuuuuuuuuuuuuuut
Сборка ядра
1. emerge gentoo-sources genkernel
2. exit
3. exit
4. lspci -v
5. Kernel modules: ata_piix, pata_acpi, ata_generic
6. chroot /mnt/gentoo /bin/bash
7. source /etc/profile
8. export PS1=”(chroot) $PS1″
9. clear
10. ls -l /usr/src/linux
11. cd /usr/src/linux
12. make menuconfig
13. genkernel –no-clean –no-mrproper all
nano -w /etc/hosts
in the line started with 127.0.0.1 before localhost put your machine name
nano -w /etc/conf.d/net
config_eth0=”dhcp”
А для статического ip, прописываем следующие (указав свои данные):
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" routes_eth0="default via 192.168.0.1" Чтобы сетевые интерфейсы запускались при загрузке, нужно сделать следующие:
cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default
emerge dhcpcd
Самое главное, установим пароль супер пользователя «root», набрав:
passwd
nano -w /etc/locale.gen
locale -a | less
ru_RU.UTF-8 UTF-8
locale-gen
Дальше, установим раскладку клавиатуры.
(chroot) livecd /# nano /etc/conf.d/keymaps
Найдем строчку:
keymap=”us”
и заменим на:
keymap=”-u ru”
Настроим параметр часов. Введем значение clock=”local”
(chroot) livecd /# nano /etc/conf.d/hwclock
Также можно настроить /etc/rc.conf, но я оставлю как есть.
Добавляем в автозагрузку журналирование и крон.
(chroot) livecd /# rc-update add syslog-ng default (chroot) livecd /# rc-update add vixie-cron default
Установка Gentoo Linux на этом не закончена, теперь самое главное.
Настройка загрузчика GRUB. (Установка Gentoo Linux)
В файле «grub.conf» основном нужно подправить версию ядра. Версию ядра, мы с вами, смотрели командой: «ls /boot/kernel* /boot/initramfs*».
(chroot) livecd /# nano /boot/grub/grub.conf # Загрузка пункта по умолчанию. default 0 # сколько ждать до начала загрузки, в секундах. timeout 10 # симпатичная заставка Grub. splashimage=(hd0,0)/boot/grub/splash.xpm.gz # title Gentoo Linux 3.8.13 # раздел с файлом ядра. root (hd0,0) kernel /boot/genkernel-x86-3.8.13-gentoo root=/dev/ran0 real_root=/dev/sda3 udev vga=0x318 #udev — менеджер устройств для новых версий ядра Linux # vga=0x318 - это разрешение экрана 1024х768 initrd /boot/initramfs-genkernel-x86-3.8.13-gentoo # #Если у вас установлен Windows #Например, Windows находится на /dev/sda8 title Windows XP rootnoverify (hd0,7) makeactive chainloader +1
Установим загрузчик GRUB.
(chroot) livecd /# grep -v rootfs /proc/mounts > /etc/mtab (chroot) livecd /# grub2-install /dev/sda
Генерируем файл grub.cfg
(chroot) livecd /# grub2-mkconfig -o /boot/grub/grub.cfg
Удалим архив, скаченный в начале установки.
(chroot) livecd /# rm /stage3-*.tar.bz2*
Установка Gentoo Linux закончена. Выходим из среды «chroot», перезагружаемся (не забывая вытащить диск).
(chroot) livecd /# exit (chroot) livecd /# reboot
После перезагрузки, войдем в систему под суперпользователем root. Пароль для пользователя root, мы ввели вовремя установки, командой «passwd»
Login: root Password: (ваш пароль root)
Теперь, нужно добавить нового пользователя (username — имя нового пользователя).
localhost ~# useradd -m -G users,wheel,audio -s /bin/bash username
Введем пароль для нового пользователя.
localhost ~# passwd username Password: (введите пароль для username) Re-enter password: (повторить пароль)
Изменение имени сервера hostname (CentOS, Red Hat)
Изменение имени хоста – сервера нужно по идеологческим причинам 🙂
Иногда то помогает избежать конфликтов с DNS и избавиться от тормозов системы без видимых нагрузок. Вот команды:
Открываем файл /etc/sysconfig/network и редактируем HOSTNAME=”www.example.com”.
Далее выполняем команду
# hostname www.example.com
Потом открываем фал /etc/hosts и редактируем или добовляем если нет такой строки
127.0.0.1 http://www.example.com localhost localhost.localdomain
Вот и все, после данных операций сервер нужно перегрузить.