Skip to content

regisu blog

Blog z notatkami …

Archive

Category: Linux

How to change MAC address

Ku pamięci, bo może się przydać.

I jeszcze polecany przez rozie’go macchanger, który ma naprawdę duże możliwości w porównaniu z rozwiązaniem zaproponowanym przeze mnie.

Ot prosty skrypt, wykorzystywany przeze mnie do restartowania antenek Ubiquiti, bo się lubią czasem dziwnie powiesić i gubić pakiety:)


#!/usr/bin/env ruby

require 'rubygems'
require 'net/ssh'


Net::SSH.start( "X.X.X.X" , "USER", :password => "PASSWORD", :port => 22) do |ssh|
puts ssh.exec! "reboot"
end

Kurde ostatnio tak grzebałem w pliku konfiguracyjnym, że w końcu nie wiem co pozmieniałem, ale nie działa 🙂 Wpadłem na świetną myśl, by wziąć sobie pakiecik *.deb, rozpakować go i skopiować niezmodyfikowaną wersje skryptu z powrotem na jej miejsce w /etc.

Polecenie które to umożliwia jest bardzo proste:

dpkg-deb -x nazwa_pakietu.deb /sciezka/katalogu/docelowego

I po tym w katalogu docelowym będą wszystkie pliczki z pakietu .deb ładnie rozpakowane czekały na nas 🙂

Kolega rozie podał jeszcze prostszy sposób na grzebanie w plikach .deb – użycie mc(Midnight Commander), który dla wielbicieli linuksowego klona Norton Commandera będzie zapewne najwygodniejszy. Dzięki za trafny i pomocny komentarz 🙂

Jakoś nie mogę zapamiętać jakich pakietów potrzeba w debianie by kompilować i instalować programy ze źródeł. Na szczęście znalazłem wirtualny pakiet build-essential, który dzięki zależnościom doinstaluje takie pakiety jak:

  • make
  • g++
  • libc-dev
  • dpkg-dev
  • i inne

Potem już spokojnie można kompilować 🙂 Chyba, że instalowany przez nas program ma jakieś bardziej wydumane potrzeby.

Po przeczytaniu mojego posta jeszcze kilka razy doszedłem do wniosku, że przydało by się jeszcze napisać jak się kompiluje programy dla tych co nie wiedzą. Oczywiście wszystko należy wykonać jako root inaczej ma marne szanse zadziałać.

  • Na początek ściągamy paczkę do /usr/local/src
  • Rozpakowujemy używając polecenia(w zależności od rozszerzenia): tar -xvzf nazwa_pliku.tar.gz lub tar -xvjf nazwa_pliku.tar.bz2
  • Teraz wchodzimy do nowo utworzonego katalogu i czytamy plik README, a potem INSTALL i postępujemy zgodnie z zaleceniami 🙂
  • Dla niecierpliwych!!!
    Szybka instalacja z domyślnymi parametrami polega z reguły na wykonaniu trzech poleceń w katalogu ze źródłami(zakładając, że nie brakuje nam żadnych bibliotek itp.):

    • ./configure
    • ./make
    • ./make install
  • Jeśli nie było żadnych błędów to cieszymy się nowo zainstalowanym oprogramowaniem! 🙂
  • W przeciwnym przypadku, procedura jest następująca:
    • zaznaczamy linijkę z błędem i kopiujemy do schowka
    • wchodzimy na http://google.pl i wklejamy to co skopiowaliśmy 🙂
    • grzebiemy w wynikach wyszukiwania i czytamy tak długo aż znajdziemy potencjalne rozwiązanie
    • doinstalowujemy paczki, biblioteki czy cokolwiek wyczytaliśmy, że trzeba zrobić
    • wpisujemy w konsoli polecenie ./make clean (które czyści wcześniejszą konfigurację wygenerowaną przez skrypt configure) i potem procedurka z ./configure ./make itp. rozpoczyna się od nowa
    • i tak do momentu aż nie będzie już żadnego błędu 🙂

Kolega rozie w komentarzu poniżej posta poleca też korzystanie z managera pakietów o nazwie wajig, zachęcam do odwiedzenia jego bloga i przeczytania arta.

Mam nadzieje, że się komuś przyda 🙂 Zachęcam do komentarzy i uwag.

Konfiguracja Apache

Zakładam, że SSL jako taki jest już w Apache2 skonfigurowany.

Żeby działała weryfikacja po certyfikatach użytkownika trzeba tylko dorzucić w pliku /etc/apache2/sites-enabled/nazwa_strony następujące linijki:

SSLVerifyClient require
SSLVerifyDepth  1

Generowanie CA

Na początek tworzymy prywatny klucz RSA dla naszego CA:

openssl genrsa -des3 -out ca.key 2048

Potem generujemy request o klucz CSR (Certificate Signing Request):

openssl req -new -key ca.key -out ca.csr

Następnie podpisujemy request prywatnym kluczem CA dzięki czemu staje się on certyfikatem CA:

openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -out ca.crt

Generowanie certyfikatu serwera

Najpierw trzeba wygenerować prywatny klucz dla serwera:

openssl genrsa -out server.key 1024

Potem mając już klucz można przystąpić do generowania CSR, na podstawie klucza serwera:

openssl req -new -key server.key -out server.csr

Teraz trzeba jeszcze podpisać utworzony wcześniej klucz przy pomocy certyfikatu CA:

openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -in server.csr -req -out server.crt

Generowanie certyfikatu klienta

Najpierw trzeba wygenerować prywatny klucz dla klienta(musi być 1024 bo inaczej mi firefox nie chciał go zaimportować, jeśli ktoś wie czemu tak się dzieje to dajcie znać):

openssl genrsa -out regisu.key 1024

Potem mając już klucz można przystąpić do generowania CSR, na podstawie klucza klienta:

openssl req -new -key regisu.key -out regisu.csr

Teraz trzeba jeszcze podpisać utworzony wcześniej klucz na serwerze:

openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -in regisu.csr -req -out regisu.crt

I na koniec z niego wygenerować klucz w postaci pk12(bo taki klucz się importuje do firefoxa):

openssl pkcs12 -export -in regisu.crt -inkey regisu.key -name "regisu" -out regisu.p12

Import do firefox’a

Teraz jeszcze potrzebujemy zaimportować odpowiednie rzeczy do firefoxa. Interesują nas pliki ca.crt oraz regisu.p12(czy jak tam go nazwaliście).

I to by było na tyle. Jeśli ktoś zna lepszy lub tez prostszy sposób to chętnie go poznam.

Od jakiegoś czasu zamiast GNOME Panel używam na moim ubuntu  AWM. Miałem tylko mały problem z usunięciem wszystkich paneli GNOME. Został jeden, którego nijak nie umiałem wyłączyć. Grzebałem sporo na ten temat w necie, ale nic nie chciało działać. W końcu na forum ubuntuforums.com trafiłem na wątek, w którym było proste i za razem skuteczne rozwiązanie polegające na odebraniu praw wykonywania dla programu gnome-panel.

sudo chmod -x /usr/bin/gnome-panel

Napisany na szybko skrypt do pobierania w kółko pliku z serwera FTP przy pomocy programu lftpget. FTP musi umożliwiać dostęp anonymous. Serwer ftp.task.gda.pl idealnie nadaje się do testowania przepustowości za pomocą tego skryptu. Mi udało się pobrać z niego plik ls-lR, który ma około 263MB, z prędkością 150Mbit/s.

#!/bin/bash

for i in {1..100}
do
lftpget ftp://adres_serwera/nazwa_pliku
rm nazwa_pliku
done

Generalnie zasada działania jest prosta. Pobiera plik, potem go usuwa i znowu pobiera … i tak x razy(w tym wypadku 100).
Należy nadmienić, że lftpget pokazuje przepustowość w MB/s, a nie Mbit/s co może być mylące. Na szczęście 1MB/s = 8Mbit/s. Czyli aby otrzymać prędkość w Mbit/s należy pomnożyć wartość w MB/s x 8, dzięki czemu otrzymujemy wartość w Mbit/s.

Może się komuś przyda w potrzebie:)

Oprócz sprzętu Cisco miałem okazję zarządzać też paroma switchami Della z serii 6000. Niestety producent nie pomyślał w nich totalnie o tym, że nawet<a może zwłaszcza!> sprzęt sieciowy wymaga backupu. Niby jest opcja w CLI przełącznika by zapisać obecny konfig jako backup, ale … na przełączniku. A to nijak nie pomoże w przypadku padu urządzenia, czy innej katastrofy, która spowoduje, że nie będzie można odczytać z niego tej konfiguracji.

Dlatego tez postanowiłem sam napisać sobie skrypt, który mi ten backup zrobi. Wykorzystałem do tego: pythona z biblioteką telnetlib i serwer tftp. Pewną rolę odegrał tu także plik /etc/hosts. 🙂

kontynuuj czytanie …

Kilka komend przydatnych do komunikacji między użytkownikami w konsoli Linux.

W przypadku zalogowania się kilku użytkowników na tym samym systemie, można użyć komendy:

write user [tty]

aby napisać do użytkownika wiadomość, która wyświetli się w jego terminalu. W razie gdyby wiele osób zalogowało się na to samo konto, trzeba jeszcze podać parametr nazwę wirtualnej konsoli, na której jest użytkownik. Aby to sprawdzić wystarczy wykonać polecenie:

who

Bardzo przydatna jest także komenda:

wall

służące do wysyłania wiadomości do wszystkich użytkowników. Przydatne gdy np. robimy coś jako root i chcemy powiadomić użytkowników o restarcie jakiejś usługi bądź serwera.

Kurcze ostatnio miałem problem ponieważ zacząłem sobie oglądać film po linuksowym MPlayerem i pojawiały mi się krzaki. Niby nic ale po 10 minutach zaczęło mnie to ostro wkurzać!

Po chwili zaczęło mi świtać w głowie, że znałem kiedyś prosty programik pod linuksa służący do konwersji znaków. Poszperałem i znalazłem iconv, proste narzędzie idealnie nadające się do moich potrzeb. Najprostszy sposób użycia wypisujące przekonwertowaną zawartość pliku na standardowe wyjście wygląda tak:

iconv -f wejściowe_kodowanie -t wyjściowe_kodowanie plik_wejściowy.txt

Dodatkowo za pomocą parametru  -l można sprawdzić dostępne rodzaje kodowań w ramach których możemy dokonywać konwersji, o tak:

iconv -l

Minus iconv jest taki, że musimy wiedzieć jakie kodowanie ma obecnie plik, który chcemy skonwertować. Ja oczywiście nie miałem zielonego pojęcia i nie bardzo wiedziałem jak to sprawdzić, a szperać po necie mi się nie chciało. Więc postanowiłem zgadywać. Pierwszy i za razem trafny strzał padł na typowo windowsowy format plików tekstowych czyli windows-1250. Dokonałem konwersji do utf8:

iconv -f windows-1250 -t utf8 plik_wejściowy.txt -o plik_wyjściowy.txt

i krzaki w MPlayerze zniknęły.