Red Hat 6.x / CentOS 6.x
Konsola graficzna w systemach serwerowych nie jest typowym przypadkiem, jednak konfiguracja jej opcji, może nie w sposób oczywisty, ale wchodzi w zakres wiedzy Expertise in Server Hardening, czyli egzaminu EX413.Temat, poza tym, że rzadko wykorzystywany w codziennej pracy administratora, wydaje się być również dość skomplikowany ze względu na złożoność komend w celu konfiguracji wykorzystywanych. Jednak możliwość bezpośredniej edycji plików konfiguracyjnych może w niektórych przypadkach uprościć nam życie.
Dla przykładu możemy np. wyłączyć wyświetlanie listy userów w graficznym oknie logowania. Lista ta oryginalnie wygląda mniej więcej tak:
Możemy wybrać użytkownika na jakiego chcemy się zalogować do systemu. Wyświetlając nazwy wszystkich użytkowników systemu ułatwiamy jednak potencjalne ataki, np. typu brute-force na nasz system, dlatego warto takiej listy się pozbyć. Komenda służąca takiej zmianie nie wygląda zbyt user-friendly:
[root@ipaclient1 ipa]# gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --type bool --set /apps/gdm/simple-greeter/disable_user_list true
Wprowadzone w ten sposób zmiany nie wymagają restartu maszyny, ale widoczne będą dopiero po wylogowaniu z aktywnych podczas wprowadzania zmian sesji.
Wynikiem działania komendy będzie zmiana ekranu logowania do systemu na wyglądający podobnie do tego:
Efekt jest zadowalający, ale już wpisanie komendy powoduje spore problemy, nie wspominając o jej zapamiętaniu.
Jako, że z natury nie lubię zawracać sobie głowy rzeczami, które przydadzą mi się zaledwie kilka razy, postanowiłem poszperać po plikach, aby ułatwić sobie wprowadzanie zmian w środowisku graficznym. Okazało się, że sporo zmian można wprowadzić edytując jeden z plików konfiguracyjnych, a same zmiany nie wymagają pamiętania nader długich komend.
Dla osób nie znających choć w podstawowym zakresie charakterystyki języka xml edytowanie tego typu plików może mieć destrukcyjny skutek, dlatego warto zrobić kopię zapasową pliku
Plikiem domyślnym konfiguracji dla środowiska - niezależnie od języka - jest /etc/gconf/gconf.xml.defaults/%gconf-tree.xml. Edycja części opcji (odpowiadających za włączenie lub wyłączenie jakiegoś elementu) polega na nadaniu wartości true odpowiedzialnemu za dany element wpisowi konfiguracji.
Przykładem niech będzie pokazane wcześniej blokowanie listy userów. Wpis odpowiedzialny za element nazywa się disable_user_list i tak jak wszystkie pozostałe, samą nazwą sugeruje za co może być odpowiedzialny.
Oryginalnie wpis w konfiguracji dla tego elementu wygląda następująco:
<entry name="disable_user_list" mtime="1443663788" schema="/schemas/apps/gdm/simple-greeter/disable_user_list"/>
Aby ukryć listę użytkowników musimy mu nadać wartość true, a zrealizujemy to rozszerzając tag entry o dodatkowe elementy:
<entry name="disable_user_list" mtime="1443663788" schema="/schemas/apps/gdm/simple-greeter/disable_user_list" type="bool" value="true"/>
Wartość zawsze występuje w parze z deklaracją typu, i całą deklarację znajdziemy prosto wyszukując w pliku frazę "true".
Plik gconf-tree.xml zawiera również nieco szersze wytłumaczenie spodziewanego działania danej opcji - w innej sekcji tego xml-a znajdują się opisy poszczególnych tagów - np, przeszukując dalej plik po disable_user_list natrafimy na taki tag:
<entry name="disable_user_list"
mtime="1438965753" type="schema" stype="bool" owner="gdm-simple-greeter"
gettext_domain="gdm">
<local_schema locale="C" short_desc="Do not show known users in the login window">
<default type="bool" value="false"/>
<longdesc>Set to true to disable showing known users in the login window.</longdesc>
</local_schema>
</entry>
<local_schema locale="C" short_desc="Do not show known users in the login window">
<default type="bool" value="false"/>
<longdesc>Set to true to disable showing known users in the login window.</longdesc>
</local_schema>
</entry>
Sam opis tagu w tej sekcji pokazuje nam również, z jakiego typu zmienną mamy do czynienia (stype).
Dla przetestowania słuszności założenia dodajmy wartość do kolejnego elementu konfiguracji, a mianowicie disable_restart_buttons. Jak sugeruje nazwa oraz opis w pliku, opcja wyłączy wyświetlanie klawiszy umożliwiających restart maszyny z ekranu logowania. Rozszerzony wpis będzie wyglądał następująco:
<entry name="disable_restart_buttons" mtime="1438965753" schema="/schemas/apps/gdm/simple-greeter/disable_restart_buttons" type="bool" value="true"/>
Efektem powinno być zniknięcie ikony restartu pierwotnie znajdującej się w prawym dolnym rogu:
W analogiczny sposób, choć nieco rozszerzony rozwiązać możemy edycję opcji typu string. Dla przykładu ustawmy w oknie logowania własną wiadomość.
Takie działanie będzie od nas wymagać zmiany dwóch parametrów - po pierwsze musimy włączyć wyświetlanie tekstu bannera (tag banner_message_enable), a po wtóre musimy tekst taki zdefiniować (tag banner_message_text).
Tag banner_message_enable jest typu bool i jego zmiana przebiega identycznie jak poprzednich:
<entry name="banner_message_enable" mtime="1438965753" schema="/schemas/apps/gdm/simple-greeter/banner_message_enable" type="bool" value="true"/>
Odmienny typ (string) ma natomiast tag banner_message_text, który zmienić musimy w sekcji, w której znajdziemy również jego opis:
<entry name="banner_message_text" mtime="1438965753" type="schema" stype="string" owner="gdm-simple-greeter" gettext_domain="gdm">
<local_schema locale="C" short_desc="Banner message text">
<default type="string">
<stringvalue>Ustawiłem sobie tekst powitania</stringvalue>
</default>
<longdesc>Text banner message to show on the login window.</longdesc>
</local_schema>
</entry>
<local_schema locale="C" short_desc="Banner message text">
<default type="string">
<stringvalue>Ustawiłem sobie tekst powitania</stringvalue>
</default>
<longdesc>Text banner message to show on the login window.</longdesc>
</local_schema>
</entry>
Nasze zmiany odniosą następujący skutek:
W konfiguracji gdm występują jeszcze tagi o innych typach danych, ale nigdy nie miałem potrzeby ingerowania w nie, dlatego darowałem sobie sprawdzanie i opisywanie ich.
Brak komentarzy:
Prześlij komentarz