Форум Gatchina OnLine

Форум Gatchina OnLine (https://forumgol.ru/index.php)
-   Операционные системы (https://forumgol.ru/forumdisplay.php?f=5)
-   -   Linux (https://forumgol.ru/showthread.php?t=2169)

ΛLIEN 27.04.2016 19:34

Цитата:

Сообщение от TNT (Сообщение 475439)
То ли плазма 5.5, то ли драйвер от АМД так себе, хз, но очень нестабильная оболочка. Если пользоваться хромом, то течет память + после пробуждения из сна и ввода пароля не отрисовывается десктоп. Жму кнопки для перехода в tty, а оно вообще напрочь виснет. KDE шибко стабильной никогда и не была, но этим пользоваться плохо - подставляет периодически. Надо, наверное, или жить на KDE 4 (вроде нормально работает) и жрать, пока допилят 5ю, или переходить на что-то другое.

АМД никогда не славилась драйверами под linux. У меня под nvidia или intel все пашет с фефектами, никаких нареканий. С 5-й плазмой (у меня версия 5.5.5 на openSuSE) тоже никаких проблем, кроме приложений которые используют старый tray. Чтобы появились иконки dropbox, skype и громоптицы пришлось ставить костыль sni-qt. Правда, значок dropbox все равно постоянно куда-то отваливается. Да и хрен с ним, сам сервис работает. Хромом не пользуюсь, ничего сказать не могу. Opera + Firefox.

TNT 27.04.2016 21:46

А у меня все норм со скайпом :) Никуда не отваливается. KDE Connect тоже заценил. В 4.12 была норма и с драйвером под АМД.
Вообще, в этом ноуте встроена видяха в процессор, надо попробовать отключить АМД-шную.

Вождь 27.04.2016 22:30

Цитата:

Сообщение от TNT (Сообщение 475439)
или переходить на что-то другое.

У меня есть конструктивное предложение, но оно видимо приведет к холивару.

Doooh 27.04.2016 22:53

Краем уха слышал про переход на новые амд-драйвера, которые не держат старое железо. Дальше - сами :)
А вообще стыдно как-то даже про линукс такое читать.

TSV NV 27.04.2016 23:27

Кримсон не поддерживает ниже 7ххх серии, а когда была 6я серия, дофига лет уже назад, тем более каталист всё равно доступен.

TNT 29.04.2016 15:58

Вообще, видяха старая очень, AMD RS880. Полагаю, что драйвер просто косматый тоже. Ноутбуку 4й год пошел.

Цитата:

Сообщение от Вождь (Сообщение 475443)
У меня есть конструктивное предложение, но оно видимо приведет к холивару.

Ну это значит, что предложение неконструктивное :)
Вообще, я имел в виду Gnome, Unity или еще что-нибудь из этой оперы.

ΛLIEN 19.08.2018 02:18

в качестве маленькой заметки. может кому пригодится.
 
Накатил я 15 версию openSUSE из-за новой KDE-ешной морды и обнаружил там по умолчанию новомодный firewalld, который пришел на смену совершенно идиотской надстройке над iptables под названием SuSEfirewall2. Последнюю я никогда не использовал по упомянутой выше причине. Только пьёр iptables. Кстати, новостные сайты уже раструбили по всему линукс миру о скорой ненужности iptables и переходе на новые горизонты в виде Netfilte. В честь этого пакетам iptables присвоили суффикс "-legasy". Даже появилась утилита iptables-translate.
На первый взгляд у firewalld синтаксис понятный, разделение на зоны и все дела. Но... зачем было выпускать такое сырое гэ, которое якобы облегчит работу по сравнению с iptables, мне непонятно. Пригодно оно только для банального открытия порта, а в остальном чтобы сделать что-нибудь похитрожопее надо использовать "--add-rich-rule", или вообще "--direct --add-rule", которые банально повторяют те же iptables, только писать надо больше буков.

Проблемы начались сразу, когда понадобилось просто раскидать интерфейсы по зонам. Их в firewalld много (external, public, internal и т.д.) и у каждой разрешения по умолчанию. Казалось бы, что может быть проще и понятнее? Из документации:
PHP код:

firewall-cmd --permanent --zone=public --add-interface=ethX
firewall
-cmd --reload 

Но это не работает. Пишет ошибку из-за NetworkManager-а, который рулит сетью по умолчанию. Решается все прямой правкой конфига в файлах /etc/sysconfig/network/ifcfg-имя-интерфейса c указанием нужной зоны, а потом уже добавлением интерфейса в firewalld для этой зоны. Делать это два раза? Вы издеваетесь? Можно еще удалить сам NetworkManager, что на мой взгляд лишнее. Почему было сразу не научить firewalld взаимодействовать с NetworkManager, непонятно.

Открывать порты действительно просто
PHP код:

firewall-cmd --permanent --zone=public --add-service={http,https}
firewall-cmd --reload 

Да, работает. Кстати, что действительно понравилось, так это разделение добавления правил и их применение в постоянном режиме при помощи ключа --permanent. Модифицировать правила напрямую через xml файлы в папке /etc/firewalld/, так же просто и понятно.

Но тут новая [fixed]беда[/fixed] задача - понадобилось настроить маскарадинг.
Да не простой, а с указанием конкретных адресов.
В iptables это решается командой
PHP код:

iptables -t nat -A POSTROUTING -o ethX -s 10.x.x.0/24 -j MASQUERADE 

Естественно, перед этим надо не забыть разрешить в принципе трансляцию адресов net.ipv4.ip_forward = 1 в файле /etc/sysctl.conf или до первой перезагрузки, командой echo 1 > /proc/sys/net/ipv4/ip_forward. Плюс к этому добавить разрешение на путешествие трафика между внешним и локальным интерфейсами, например, командами
PHP код:

iptables -A FORWARD -s 10.x.x.0/24 -j ACCEPT
iptables 
-A FORWARD -d 10.x.x.0/24 -j ACCEPT 

или
PHP код:

iptables -A FORWARD -i ethY -o ethX -j ACCEPT
iptables 
-A FORWARD -i ethX -o ethY -m state --state RELATED,ESTABLISHED -j ACCEPT 

в зависимости от поставленных задач и/или уже имеющихся настроек firewall-а. Здесь ethX - это внешний интерфейс.

В firewalld без указания адресов источников для зоны решается все просто одной (вторая нужна для перегрузки правил) командой и работает.
PHP код:

firewall-cmd --permanent --zone=public --add-masquerade
firewall
-cmd --reload 

Но как только нужна избирательность (тоже из документации), то уже нужны "rich rules". На попытку добавить к предыдущей команде что-то типа source address получим сообщение об ошибке.
PHP код:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=10.x.x.0/24 masquerade' 

или же вообще при помощи глобальных правил
PHP код:

firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 10.x.x.0/24 -j MASQUERADE -o ethX 

Не забываем про
PHP код:

firewall-cmd --reload 

Что-то как-то не проще, чем в iptables.

Пытаемся что-то загрузить и уже маскарадинг не работает. Кстати, по команде ping ответ со стороннего адреса есть, что может ввести в заблуждение, что все работает. В чем же проблема? А проблема в том, что команда включения маскарадинга через "rich rules", когда уточняются конкретные адреса источников, не включает FORWARD, в отличии от команды разрешения маскарадинга всем в зоне.

Если смотреть правила, например, через iptables-save, то там видно, что есть куча таблиц/фильтров, созданных firewalld.
Нас интересуют фильтр FORWARD для нашей настраиваемой зоны public. Находим единственную запись
PHP код:

-A FWDO_public_allow -d 10.x.x.0/24 -m conntrack --ctstate NEW -j ACCEPT 

Но это явно недостаточно. Исходящее соединение кто-то же должен тоже форвардить? Не мудрствуя лукаво делаем глобальное правило
PHP код:

firewall-cmd --permanent --direct --add-rule ipv4 filter FWDO_public_allow 0 -s 10.x.x.0/24 -j ACCEPT 

где FWDO_public_allow - это FORWAR для нашей внешней зоны public. Более простыми командами, например --add-rich-rule
для данной зоны это не решается, т.к. эти rich-rule вообще не имеют доступа куда либо, кроме как к цепочкам по умолчанию INPUT/OUTPUT. То есть, команда
PHP код:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=10.x.x.0/24 accept' 

или
PHP код:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 destination address=10.x.x.0/24 accept' 

добавят разрешение в цепочки INPUT/OUTPUT и никак проблему не решат. Указывать явно FORWARD в "rich-rule" нельзя.

Почему написал это здесь? Потому что "перекликав под интернета" не нашел объяснения этого "феномену". Советы есть, но они повторяют официальную документацию, никак не упоминая о подводных камнях. Вернее, я нашел на англоязычных сайтах одну страницу, где у чувака возникла такая же проблема, уже после того как разобрался сам. Надеюсь исправят в будущем. А пока Яндекс с Гуглом умные, все это проиндексируют и, возможно, кому-то еще эта информация пригодится.

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

Doooh 19.08.2018 22:50

Лайк за проделанную умственную работу :)

TNT 20.08.2018 17:49

А я чот слез с KDE...удобно, но кривизна убивает :(

Вождь 21.08.2018 08:29

X не устанавливаю, только хардкор, только консоль


Текущее время: 19:36. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot