Сообщество - GNU/Linux

GNU/Linux

1 151 пост 15 633 подписчика

Популярные теги в сообществе:

51

Помогите определиться

Добрый день, други! Стал вопрос, что ставить на сервер, чаша качается между дебианом и центосом. В обоих случаях буду пользоваться инструкцией "как настроить линукс сервер за 5 шагов"

Что от нем будет:

- пара виртуалок

- шара

- DHCP, DNS

Помогите определиться Linux, Админ, Опрос

Коммент для минусов внутри.
P.S. Прошу о невозможном, но постарайтесь без дистросрача...

73

Как я запилил виртуализацию

Всем привет! Вот обещанный пост по KVM+pci-e passthrough + steamlink.

Итак, начнем. Дома у меня уже лет так 10 живет сервер, живет себе, раздает интернет, качает торрнеты, файлопомойка на нем, еще по мелочи что-то. Сделано все было на Gentoo, ну и так до сих пор на ней. Менялось железо (основной упор на mini-itx + тихие кулеры).


Остальное железо дома - это айпад, рабочий ноутбук на дебиане, айфон, андроид телефон,  андроид(minix neo +KODI) для телевизора, пара одноплатных пк (pi3 + odroid c2) и достаточно приличный ПК с виндой(честно приобретенной, если что) для игор. В какой то момент я с семьей переехал и стало понятно, что придется пожертвовать размерами моего рабочего стола и места для нормального пк не будет, увы. и я стал посматривать на всякие вещи для ускоренной графики на тонких клиентах.

Сразуже мне попался вариант на VirtualGL+ tigerVNC, но не проканало, поскольку пришлось бы использовать решения на wine и прочий playonlinux, который работает не очень, во всяком случае у меня на не запустился Origin.

Следущее решение которое я нашел - Steamlink, если кратко -то это вроде бы решение с ARM камнем и ffmpeg с короткими буферами. для моих задач подошел отлично, но куда же девать сам ПК? так я и пришел к идее запихнуть винду в KVM виртуалку и дать ей видеокарту. Стимлинк я притащил с ибея, через посредников, обошелся он мне в 5500р, в том году еще не продавался официально, сейчас уже да, но цены в наших магазинах -неадекват.

Сразу скажу, что такое требует некоего специфичного железа, т.е. мать и проц должны быть интел и уметь vt-d/vt-x и желательно NVIDIA. Про АМД - вроде как тоже можно, но все неоднозначно, ну и был изначально набор именно Intel+Nvidia.

Как я запилил виртуализацию Proxmox, Pci-e passthrough, Steamlink, Длиннопост

Сейчас конфиг такой:

mobo: asus P8Q77–M2

i7 3770

16gb ram

2x2tb wd

intel 240ssd+bestbuy 240ssd

seagate 500gb

3tb wd green,

Корпус termaltake core v21(влезает 3 диска по 3.5 и 3 диска по 2.5 и он mATX, есть крепеж для СВО)

видюха gigabyte 650ti(тоже поменяю, когда-нибудь на 1060, эхх)

Охлаждение - смесь из noctua +scythe

сетевушка вторая на пси–е. апц упс, точка доступа для вайфая RT–N66U.

Железо - собирал несколько месяцев по авито, постепенно набрал нужный набор.

Как все устроено:

гипервизор proxmox 4.4+ пара патчей с их форума (девелоперская репа)

стартует с 500 гигового винта (потом будет поменян на что то, вернее весь этот зоопарк из ссд поменяю на большой ссд), грузится проксмокс, внутри 2 машины:

1. гента(та самая, которая была), 2физ ядра, 4 гигапамяти, 240 ссд, виртио, mdraid1–2x2tb+luks, 3tb wd backup, машина ничего не делает там особо такого, ну пара проектов по работе, коммунигейт, заббикс, овпн, самба, трансмишшн, seafile, plex, бекапится через bareos, еще пара вещей по мелочи типа раздавания инторнетов. работает в kvm (пока поленился все это перетаскивать в lxc)

2. вин10, 5 ядер, 10 гб оперативки, ссд на 240, kvm, vfio pcie–passhrough, tianocore ovmf uefi bios (без него не заводился проброс видюхи, ну и вин10 же).

ну вин10 стартует, по ац вайфаю стимлинк к ней целяется и можно погонять, например, в stellaris. но по вайфаю есть лаг, так что гораздо лучше проводом. Внутри Стимлинка есть VirtualHere и всякие юсб девайсы типа моего старинного razer imperator и прочих вебкамер успешно попадают в вин машину. Так же мать умеет в AMT+ tty на физ порту, если я совсем что то упорю(АМТ работает с процами БЕЗ литеры К, обратите внимание)

3. Еще есть LXC контейнер для всякого баловства.

Почему не сделал гипервизор из генты?

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

Как собирать и что почитать

1. Вики проксмокса

2. Архиполезный ресурс по vfio  -http://vfio.блогспот__ru

3. Ошибка 43 и как с этим жить

4. Как победить отвал звука по HDMI в госте (это если вы хотите например телевизор физически подрубить) - -http://vfio.блогспот__ru/2014/09/vfio-interrupts-and-how-to-coax-windows.html

(блогспот нелья, увы)

Собирать ставить просто:

берем проксмокс свежий (там скорее всего поправлен тот косяк что вызывал ошибку 43, если нет - курим форумы.

Читаем вики, там подробно все как настраивать.

Обязательно tianocore uefi,

конфиг для виртуалки вот тут мой

bios: ovmf

boot: c

bootdisk: virtio0

cores: 2

hostpci0: 01:00,pcie=1,x-vga=on

ide0: iso1:iso/virtio-win-0.1.112.iso,media=cdrom,size=55592K

machine: q35

memory: 4096

name: win1

net0: e1000=32:33:62:38:63:35,bridge=vmbr0

numa: 0

ostype: win8

scsihw: virtio-scsi-pci

smbios1: uuid=6b380506-55b3-4c7e-a4cb-caacded045fe

sockets: 1

usb0: host=3-1

usb1: host=1-4

virtio0: /dev/disk/by-id/my-ssd-serial


Внимание на то, что нельзя вставлять QXL видеокарту (это приведет к ошибке 43), и пробросу целиком диска через /dev/disk/by-id , без нее - плохо почему-то перезагружается гость, уж не знаю почему, Все остальное - бриджи, проброс юсб -стандартное.

Немного про ошибку 43 - если кратко фирма нвидия -жмоты, на консьюмер сериях видеокарт драйвер определяет что он запущен в вирт машине и принудительно выключается(не устраивает - покупайте GRID), суть манипуляций - прячем hv-vendor-id и шерсть становится густой и шелковистой (не навсех версиях либвирта оно норм работает, читайте маны и ченджлоги).

Еще косяк со стимлинком - отваливается трансляция если выскакивает виндовый UAC и пользователь должен быть залогинен, иначе естственно, не стартует серверная часть Steam (т.е. сам энкодер это не демон)

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

Была идея еще заюзать intel HD для Коди - но увы, нет. vGPU (т.е. разделение ресурсов гпу для гостей) только на свежих поколениях. вроде как QEMU 2.7 уже можно.


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

В планах таки перейти на moonlight+odroid c2, может к весне.

Надеюсь, это будет кому-то полезным. Спрашивайте вопросы.

Показать полностью 1
193

Администрация Владимирской области отчиталась о внедрении Linux

Администрация Владимирской области сообщила об успешном ходе пилотного проекта по импортозамещению программного обеспечения, в результате которого в органах местного самоуправления более 170 рабочих мест оборудовано отечественным дистрибутивом GosLinux (Гослинукс). Утверждается, что в настоящее время пилотный проект, который стартовал летом и продлится до апреля 2017 года, реализован более чем на 70 процентов. После завершения пилотного проекта будут выработаны рекомендации по переходу на Linux других регионов.


В докладе администрации отмечается высокая экономическая эффективность перехода на российское программное обеспечение - при использовании бесплатного GosLinux экономия на комплектации каждого рабочего места составляет не менее 20 тыс. рублей. Общая экономия от установки отечественного набора ПО оценивается приблизительно в 60 процентов. Дистрибутив GosLinux основан на пакетной базе CentOS 6 и уже успешно применяется в Федеральной службе судебных приставов РФ.


https://www.opennet.ru/opennews/art.shtml?num=45744

1056

Собственный vpn?

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Начну, пожалуй, с причин, по которым я захотел его. Живу я с недавних пор в районе, где проводного интернета нет, а мобильный по LTE представлен только одним оператором. После переезда я расчехлил свой старый TP-LINK MR 3020, припаял разъем под антенну wifi и накрутил саму антенну, в usb вставил купленный у друга huawei m150-2 (E3372s). Все было замечательно, пока единственный доступный оператор с единственным "безлимитным" тарифом не решил брать 200% сверху за факт "раздачи" интернета. Итого - 300%. Я такие вещи обычно называю - "о***ли".

На все это наложилось нежелание постоянно видеть сообщение, что такой-то сайт закрыт по решению каких-то там дядек, знающих лучше меня, как мне жить. А интернет нужен для работы. И привык я смотреть фильмы и сериалы онлайн, а то и в UO на FW погонять изредка.

То есть скорость скачивания и задержки должны быть приемлимыми.

К тому же, я заметил, что вечерами явно присутствует ограничение на число соединений. то есть - открываем 10 вкладок, 11-я уже говорит об ошибке - "соединение сброшено". Закрываем какую-либо, обновляем 11-ю - все открывается.


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


Популярных технологий, имеющих возможность стартануть на роутере, было две. Это L2TP и OpenVPN. Для первой даже была вебморда, но, как я ни старался - клиентская часть не поднималась. А, да. В "родной" прошивке отсутствовала возможность использовать L2TP через usb 3g/4g, только как авторизационная составляющая для WAN-порта (ethernet). С openwrt я был на "вы", и осторожно, поэтому предпочел поискать готовую прошивку, которой можно было бы прошиться через стандартную вебморду. И я ее нашел.


Построена она на openwrt, поэтому сия инструкция сгодится для любой openwrt - прошивки с установленным пакетом openvpn, да и для других кастомных прошивок тоже.


Итак - OpenVPN. Серверная часть. Опыт работы с ним уже был, пусть и без клиентской части в роутере. Я много работаю с дистрибутивами CentOS, преимущественно 6.X, поэтому её и выбрал. Нам понадобится vps/vds сервер, который можно относительно недорого арендовать. У меня была возможность протестировать три площадки, и по итогам я сделал свой выбор. Рассматривал площадки исключительно в РФ, хотелось комфортной скорости в рунете. Как ни крути, с зарубежными площадками есть такие проблемы.


Первая площадка - недорогой VDS на kvm (более подходящая технология виртуализации), 129р/мес, 400мб ОЗУ, ssd, MSK. Пинги радуют, но общая скорость маловата.

Вторая площадка - kvm, Новосибирск. 400р. Ресурсы сервера хорошие. Пинги не радуют, скорость по итогу тоже.

Третья площадка - OpenVZ, MSK, 1Gb ОЗУ, ssd, 299р. (UDP: полез проверять цены и выяснил, что тарифы подняли, но ресурсов значительно больше. Подробнее в самом конце поста). Пришлось попросить техподдержку подключить tun/tap девайсы, сделайте это сразу, если у Вас OpenVZ. Перед покупкой уточните, что это возможно. Ссылку на эту площадку я отправлю попросившему пикабушнику в электропочту, но запросы пишите мне на мойник_собака_майлру. Приложите ссылку на свой профиль, буду проверять каждого, пикабушникам 1 день не высылаю :)


Как Вы уже поняли, ограничения на доступы к сайтам не распространяются на хостинги и ДЦ, не предназначенные для розничной доставки интернета населению. Это хорошо.


Итак, у Вас есть VDS, это либо KVM, либо OpenVZ с подключенными tun/tap девайсами. Заказываем операционку - CentOS 6.x [minimal i686]. Скачиваем клиент ssh - например, putty. Логинимся по ip сервера на порт 22 по протоколу ssh, вводим имя root и пароль. Мы в консоли!

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

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


Обновляем все пакеты

yum update -y

Устанавливаем репозиторий

cd /usr/src/ && wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8... && wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm


Устанавливаем нужные пакеты

yum install mc wget unzip ntp
yum -y install openvpn

Настраиваем автообновление даты и времени, правильные значения нам нужны для работы openvpn-сервера

ntpdate pool.ntp.org && service ntpd start && chkconfig ntpd on && rm -f /etc/localtime && cp -uf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Разрешаем форвард пакетов

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sudo sysctl -p

Возможно, на kvm также понадобится отключить selinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
reboot


Сервер перезагрузится, логинимся заново. Далее нам нужно скачать easyrsa3, распаковать его и сгенерировать несколько сертификатов, нужных для работы как сервера, так и клиента:

cd /usr/src && wget http://hldns.ru/dnld/ovpn/master.zip
unzip master.zip && rm -f master.zip && ln -s /usr/src/easy-rsa-master/easyrsa3 /etc/openvpn/
cd /etc/openvpn/easyrsa3 && ./easyrsa init-pki && ./easyrsa build-ca nopass && ./easyrsa build-server-full server nopass
cd /etc/openvpn/easyrsa3 && ./easyrsa gen-dh
cp /etc/openvpn/easyrsa3/openssl-1.0.cnf /etc/openvpn/
cd /etc/openvpn/easyrsa3/ && ./easyrsa build-client-full client nopass

Также нам понадобится ключ TA:

cd /etc/openvpn && openvpn --genkey --secret ta.key


Скачивание идет с моего сайта, ибо я не помню, где брать оригинал и не знаю, будет ли подходящая версия. Последней строкой генерируется сертификат клиента. Следующие файлы нужно пока сохранить себе на комп через WinSCP: /etc/openvpn/easyrsa3/pki/private/client.key, /etc/openvpn/easyrsa3/pki/ca.crt, client.crt, /etc/openvpn/ta.key


Далее создаем файл /etc/openvpn/server.conf следующего содержимого:

mode server
tls-server
dev tap
port 664
script-security 2
tls-auth /etc/openvpn/ta.key 0
ca easyrsa3/pki/ca.crt
cert easyrsa3/pki/issued/server.crt
key easyrsa3/pki/private/server.key
dh easyrsa3/pki/dh.pem
crl-verify easyrsa3/pki/crl.pem
ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool 10.8.0.2 10.8.0.254
ifconfig-pool-persist ipp.txt 0
push "route-gateway 10.8.0.1"
push "redirect-gateway def1"
push "dhcp-option DNS 77.88.8.88"
push "dhcp-option DNS 8.8.8.8"
push "sndbuf 393216"
push "rcvbuf 393216"
sndbuf 393216
rcvbuf 393216
cipher BF-CBC
tls-timeout 120
keepalive 10 120
persist-key
persist-tun
tun-mtu 1500
fragment 1300
mssfix
fast-io
verb 3
status openvpn-status.log
log openvpn.log
log-append openvpn.log

Краткое резюме конфига сервера. TAP вместо TUN я выбрал, потому что хотел соединять через этот же сервер несколько мест в одну локальную сеть - это по работе. Для этого достаточно сгенерировать дополнительные клиентские сертификаты и их настроить в клиенте вместо client.key/client.crt. Строчка выше, где присутствует build-client-full.

Режим udp (протокол udp) позволяет работать тоннелю с минимальными задержками, минуя ненужные на данном этапе процедуры гарантированной доставки, которые имеются в TCP. Пусть этим занимаются протоколы и приложения уже внутри тоннеля.

Порт 664/udp позволяет слегка "прикинуться" протоколом ASF-SECURE-RMCP. Я не знаю, зачем он нужен, но в нем есть слово SECURE, и наш тоннель зашифрован. Лучшего я не придумал. 443 (https) работает по TCP, нам неподходит. Шифрование BF-CBC является простым и легким, минимально нагружающим процессор как сервера, так и клиента. Напомню, клиент у нас - роутер, и сложное шифрование очень значительно снижает скорость работы.


Далее создадим в каталоге /etc/openvpn файл ipp.txt, и будем в него прописывать внутренние адреса наших клиентов. Пока клиент у нас один. Не то, чтобы это было необходимо, но так будет проще в будущем, если клиентов несколько.

client,10.8.0.250

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

chown -R openvpn. /etc/openvpn


Включаем автозагрузку openvpn и стартуем серверную часть:

chkconfig openvpn on
service openvpn start

Если старт не удался - лезем в лог и читаем, думаем. Можно выложить ошибку в комменты, подумаем вместе. Лог у нас задан в конфиге сервера: log openvpn.log, располагается в /etc/openvpn.


Для работы в SSH-консоли пригодится уже установленный нами файл-менеджер, запускаемый одноименной командой: mc. Если кто знаком с norton commander, far или хотя бы total commander - то он проблем с использованием испытывать не будет.


Итак, серверная часть запущена. Но у нас есть только подключение к серверу, а нам надо, чтобы сервер прикинулся роутером и NAT-ил трафик. Тут нам поможет iptables, и у нас два варианта. Более классический, но не всегда работающий на OpenVZ:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

где нужно eth0 заменить на имеющийся интерфейс, который видно командой ifconfig. Если не прокатило, то удаляем правило (-A меняем на -D) и пробуем такой вариант:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 0/0 -j SNAT --to-source ВАШ_ВНЕШНИЙ_IP


Возможно, включить "таблицу nat" также нужно посредством обращения в техподдержку, если у вас OpenVZ!


Внешний ip видно все той же командой ifconfig, да и в ПУ хостера тоже. Все эти манипуляции с iptables имеет смысл делать после подключения клиента, чтобы было чем проверять результат. Когда все получилось - сохраняем конфиг iptables: service iptables save


Теперь клиент. Лезем на роутер все теми же putty и winscp. Создадим в каталоге /root каталог openvpn, скопируем в него ранее сохраненные с сервера файлы:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Файл client.ovpn нужно создать, его содержимое:

client
proto udp
remote СЕРВЕРА_IP 664
resolv-retry infinite
dev tap
remote-cert-tls server
script-security 2
tls-auth /root/openvpn/ta.key 1
ca /root/openvpn/ca.crt
cert /root/openvpn/client.crt
key /root/openvpn/client.key
cipher BF-CBC
persist-key
persist-tun
tun-mtu 1500
fragment 1300
mssfix
fast-io
verb 0
tls-timeout 120
keepalive 20 360


Если вдруг на вашем openwrt не установлен openvpn - то установите его

opkg update
opkg install openvpn-openssl

Далее приводим файл /etc/config/openvpn к виду:

package openvpn
config openvpn custom_config
option enabled 1
option config /root/openvpn/client.ovpn


И в вебморде luci включаем его:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Проверяем, изменился ли наш ip-адрес например на myip.ru. Должен быть адрес сервера vds.
Если что не так - по прежнему читаем и анализируем лог на сервере.


Теперь дополнение. Если вдруг Вам нужно пробросить какой-либо порт внутрь локалки - то пробрасывать дважды - на сервере и в роутере. С роутером сами разберетесь, а вот как на сервере, для примера:

iptables -t nat -A PREROUTING -p ПРОТОКОЛ(tcp/udp) -d ВНЕШНИЙ_IP --dport ВНЕШНИЙ_ПОРТ -j DNAT --to-destination 10.8.0.250:ПОРТ_КУДА


Не забываем service iptables save после проверки.


Писалось по памяти, что то мог забыть или где то незначительно ошибиться. Готов в комментах оказать поддержку. Также, при возникновении проблемы  прошерстите комменты, вдруг ее уже решили?


Спасибо!

UPD: Выяснил, что с момента аренды сервера на самой "быстрой" по итогам тестов площадке изменились цены, но и выросли ресурсы. Теперь она за 420 р/мес предлагает 4гб озу и два быстрых ядра. В связи с чем могу абсолютно бесплатно помочь настроить серверную часть для ряда пикабушников, изъявивших данное желание.


То есть - платить Вы будете за сервер вскладчину. Но вам нужно организоваться, т.е. нужен человек, который будет собирать ежемесячно оплату и собсно оплачивать сервер, отвечать за него и т.д. Мне нехочется этим заниматься. Но настроить сервер и наделать сертификатов с конфигами я могу, повторюсь, бесплатно.


Итоги через OpenVPN:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост
Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост

Без OpenVPN:

Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост
Собственный vpn? VPN, Openvpn, Обход, Ограничения, Длиннопост
Показать полностью 7
44

Overwatch теперь запускается под Wine.

Для тех, кто следит за проектом, не будет секретом, что поддержка DX11 для Wine разрабатывается уже около полутора года, и наконец это начало давать первые плоды.
Благодаря последним патчам в git-версии Wine теперь запускается Overwatch. Разработчик Andrew Wesie опубликовал скриншот.

Overwatch теперь запускается под Wine. Linux, Wine, Игры, Overwatch

К сожалению, так как Wine перешел на стадию заморозки, в версию 2.0 эти патчи не войдут.

Тем не менее, желающие немедленно попробовать нововведения могут собрать версию из git самостоятельно. Следует отметить, что требуется видеокарта с поддержкой OpenGL 4.x.

Отличная работа, все прочитано!