Generowanie certyfikatu Jabber / XMPP

# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out /etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt

Własny serwer jabbera - jak to poważnie brzmi. 
Postaram się w maksymalnym skrócie opisać (krok po kroku), jak zainstalować i skonfigurować 
eJabbera na PLD i dodać do niego parę transportów.

Zaczynamy.

1. Najważniejsza rzecz to oczywiście zainstalować serwer jabbera.


# poldek -ivh ejabberd

2. Konfiguracja (od razu weźmiemy pod uwagę, że chcemy mieć trzy transporty – GG, IRC i MSN).

Edytujemy naszym ulubionym edytorem: plik /etc/jabber/ejabberd.cfg
{acl, admin, {user, "admin"}}.
% user z prawami administratora, dowolny login
{acl, local, {user_regexp, ""}}.
{access, pubsub_createnode, [{allow, all}]}.
{access, configure, [{allow, admin}]}.
{access, register, [{deny, all}]}.
{welcome_message,
 {"Welcome!",
  "Welcome to Jabber.",
  "For information about Jabber visit http://jabber.org"}}.
{registration_watchers, ["user@localhost"]}.
% user, który będzie powiadamiany o rejestracjach do serwera jabbera
{access, announce, [{allow, admin}]}.
{access, c2s, [{deny, blocked},
               {allow, all}]}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{access, c2s_shaper, [{none, admin},
                      {normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc, [{allow, all}]}.
{access, local, [{allow, local}]}.
{auth_method, internal}.
{hosts, ["localhost", "jabber.nasza_domena.pl"]}.
% nasze hosty, które będziemy używać (zewnętrzne domeny muszą istnieć)
{max_user_sessions, 10}.
{language, "en"}.
{listen,
 [{5222, ejabberd_c2s,     [{access, c2s}, {shaper, c2s_shaper},
                            {max_stanza_size, 65536},
                            starttls, {certfile, "/etc/jabber/jabber.pem"}
                            ]},
  {5223, ejabberd_c2s,     [{access, c2s},
                            {max_stanza_size, 65536},
                            tls, {certfile, "/etc/jabber/jabber.pem"}]},
  {5269, ejabberd_s2s_in,  [{shaper, s2s_shaper},
                            {max_stanza_size, 131072}
                           ]},
  {5348, ejabberd_service, [{access, all},
                            {host, "msn.jabber.nasza_domena.pl",
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5349, ejabberd_service, [{access, all},
                            {host, "gg.jabber.nasza_domena.pl",
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5347, ejabberd_service, [{access, all},
                            {hosts, ["ircnet.jabber.nasza_domena.pl", "freenode.jabber.nasza_domena.pl"],
                             [{password, "hasło z /etc/jabber/secret"}]}]},
  {5280, ejabberd_http,    [http_poll, web_admin]}
 ]}.
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/jabber/jabber.pem"}.
{domain_certfile, "jabber.nasza_domena.pl", "/etc/jabber/jabber.pem"}.
{outgoing_s2s_port, 5269}.
{modules,
 [
  {mod_register,   [{access, register}]},
  {mod_roster,     []},
  {mod_privacy,    []},
  {mod_adhoc,      []},
  {mod_configure2, []},
  {mod_disco,      []},
  {mod_stats,      []},
  {mod_vcard,      []},
  {mod_offline,    []},
  {mod_echo,       [{host, "echo.nasza_domena.pl"}]},
  {mod_private,    []},
  {mod_irc,        []},
  {mod_muc,        [{access, muc},
                    {access_create, muc},
                    {access_admin, muc_admin}]},
  {mod_pubsub,     [{access_createnode, pubsub_createnode}]},
  {mod_time,       []},
  {mod_last,       []},
  {mod_version,    []}
 ]}.

3. Wygenerowanie certyfikatów dla połączeń SSL/TLS.

# openssl genrsa -out /etc/jabber/jabber.key 1024
# openssl req -new -x509 -days 365 -key /etc/jabber/jabber.key -out /etc/jabber/jabber.crt
# cat /etc/jabber/jabber.crt >> /etc/jabber/jabber.key
# mv /etc/jabber/jabber.key /etc/jabber/jabber.pem
# rm -f /etc/jabber/jabber.crt

4. Transport Gadu-Gadu


# poldek -ivh jggtrans
Ustawiamy najważniejsze opcje w: /etc/jabber/jggtrans.xml
<service jid="gg.jabber.nasza_domena.pl"/>
<connect id="gglinker">
    <ip>127.0.0.1</ip>
    <port>5349</port>
    <secret>hasło z /etc/jabber/secret</secret>
</connect>
<spool>/var/spool/jabber/gg.jabber.atwa.us/</spool>
<admin>admin@jabber.nasz_domena.pl</admin>
<acl>
        <allow who="admin@jabber.nasza_domena.pl" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <deny who="*" what="iq/query?xmlns=http://jabber.org/protocol/stats"/>
        <allow who="*"/>
        <deny what="iq/query?xmlns=jabber:x:register"/>
        <allow what="presence"/>
        <deny/>
 </acl>
Następnie tworzymy katalog, w którym będą trzymane dane użytkowników korzystających z transportu:
# mkdir -p /var/spool/jabber/gg.jabber.nasza_domena.pl
# chown -R root:jabber /var/spool/jabber/
# chmod -R g+w /var/spool/jabber/

5. Transport MSN.

Instalujemy najważniejsze elementy:

# poldek -ivh python-Twisted python-Twisted-ssl python-TwistedWords python-TwistedWeb python-TwistedXish python-Imaging python-pyOpenSSL
Teraz trzeba należy ręcznie ściągnąć transport stąd. Wypakowujemy go i ustawiamy config: W src/config.py:
jid = "msn.jabber.nasza_domena.pl"
host = "127.0.0.1"
compjid = ""
spooldir = "/var/lib/ejabberd/"
discoName = "MSN Transport"

mainServer = "127.0.0.1"
website = ""
port = "5348"
secret = "hasło z /etc/jabber/secret"
Natomiast w config.xml (jeśli go nie ma, tworzymy z template'u) ustawiamy te same opcje w formacie XML.
Musimy utworzyć jeszcze 2 symlinki, bo PyMSNt nie wyszuka zainstalowanych rozszerzeń pythona:
# ln -s /usr/share/python2.4/site-packages/twisted/words /usr/lib[64]/python2.4/site-packages/twisted/words
#  ln -s /usr/share/python2.4/site-packages/twisted/xish /usr/lib[64]/python2.4/site-packages/twisted/xish
Uruchamiamy PyMSNt:

# ./PyMSNt &amp;

6. Uruchamiamy eJabberda i tworzymy konto administratora.

# service ejabberd start
# ejabberdctl ejabberd@localhost register admin jabber.nasza_domena.pl hasło_do_konta_admina
# service jggtrans start
I to praktycznie cała filozofia. 
Pod adresem http://server:5280/admin/ znajdziemy ładnego web admina, dzięki któremu możemy monitorować nasz serwer,
dodawać i usuwać użytkowników, zmieniać im hasła itd. Sam użytkownik ma oczywiście możliwość zmiany hasła przez klienta jabbera.

Czy ja czasem nie zapomniałem o transporcie IRC? Nie, eJabberd ma wbudowany transport IRCa i dlatego wystarczyło tylko odblokować
odpowiedni port i usługę w ejabberd.cfg, a transport od razu działa. Gdybym o czymś zapomniał albo coś jednak nie działało, to "bijcie!"
i piszcie do mnie lub tutaj w komentarzach.

Jak zamknąć proces na porcie na serwerze Linux

Aby zamknąć (zabić) proces na porcie na serwerze Linux należy wydać polecenie:

fuser -n tcp -k 21

*(gdzie 21 to numer portu)
Innym sposobem jest uruchomienie aplikacji htop i po wybraniu procesu strzałkami naciśnięcie
'k' w celu zabicia procesu/aplikacji. W tym przypadku powinniśmy znać nazwę aplikacji.

Po wybraniu procesu i przyciśnięciu 'k' (kill) możemy usunąć/zamknąć proces na różne sposoby,
wymienione po lewej stronie.

Ustawienia firewall przy serwerze XMPP / EJABBERD

W poniższym wpisie kilka słów na temat konfiguracji firewalla dla protokołu XMPP. Aby umożliwić serwerowi komunikację wówczas, gdy nasza polityka w IPTABLES ustawiona jest na DROP, należy odblokować następujące porty:

 iptables -A INPUT -p tcp --dport 5222 -j ACCEPT
 iptables -A INPUT -p tcp --dport 5269 -j ACCEPT
 iptables -A INPUT -p tcp -s 10.1.1.1/24 --dport 5280 -j ACCEPT #Jabber strona do definiowania użytków
 iptables -A INPUT -p tcp -s 127.0.0.1 --dport 4369 -j ACCEPT

Dodatkowo należy odblokować porty, które zostały skonfigurowane w pliku:

nano /etc/ejabberd/ejabberd.cfg

 

Port OPIS
5222 Standardowy port Jabber/XMPP dla klientów podłączonych, używający logowania czystym tekstem lub STARTTLS.
5223 Standardowy port Jabbera dla klientów używających starej metody SSL.
5269 Standardowy port Jabbera/XMPP dla serwera. Ze względów bezpieczeństwa może być zablokowana komunikacja na zewnątrz.
5280 Strona ejabberd do zarządzania hostami i użytkownikami.
4369 PMD port języka Erlang.
port range Indywidualna konfiguracja portów dla węzłów języka Erlang (sprawdź epmd).

Pamiętajmy, że port 5280 jest wykorzystywany w sieci lokalnej do definowania użytkowników – w moim przypadku jest to podsieć 10.1.1.1 z maską 24-bitową.

Na stronę możemy się zalogować, wpisując:

http://localhost:5280/admin/

Przydatnymi poleceniami mogą być podczas konfiguracji:

/etc/init.d/ejabberd live

fuser -n tcp -k 5222  # zwalniamy port 5222

killall epmd # zabijamy wszystkie instancje epmd

 

Źródło:

http://docs.ejabberd.im/admin/guide/security/

Sprawdzanie prędkości łącza internetowego w terminalu (speedtest, nload, iftop)

Dzisiaj kilka słów o tym, jak sprawdzić przepustowość łącza na hoście, na który jesteśmy właśnie zalogowani. Zazwyczaj możemy to zrobić za pośrednictwem przeglądarki, jednak zdarza się, że firewall na serwerze uniemożliwia pingowanie hostów, w związku z tym nie możemy przeprowadzić testu przepustowości.
Rozwiązaniem takiej sytuacji jest zastosowanie aplikacji Speedtest. Aby pobrać narzędzie do testowania prędkości internetu, wpisujemy w terminalu Ubuntu następujące polecenia:

sudo apt-get install python-pip

Następnie poprzez narzędzie do zarządzania pakietami popieramy pytona speedtest:

sudo pip install speedtest-cli

Jeżeli chcemy teraz sprawdzić prędkość łącza, wpisujemy:

speedtest

A oto wynik działania speedtestu:

Jeśli chcemy na bieżąco monitorować przesył danych przez poszczególne interfejsy, możemy skorzystać z narzędzia nload. Poszczególne interfejsy można zmieniać za pomocą strzałek góra/dół.

sudo apt-get install nload
nload


Możemy też użyć narzędzia iftop, które pokazuje połączenia naszego hosta z wszystkimi domenami.
Powyższe narzędzia charakteryzują się niewielką złożonością, ale mogą okazać się przydatne.
Jeżeli spodobał Ci się temat, zostaw komentarz poniżej.

Jak zablokować wyskakujące reklamy na stronach?

Poniżej przedstawiam poradnik, jak zablokować reklamy w przeglądarkach Google Chrome/Chromium i Mozilla Firefox.

W przypadku Mozilli przechodzimy do zakładki about:addons. Natomiast w przypadku Google Chrome lub Chromium do kliknij tutaj.

Następnie wpisujemy w wyszukiwarce interesujący nas dodatek – w tym przypadku polecam AdBlock – i instalujemy go.


W przypadku, gdy dana strona www po włączeniu dodatku blokującego reklamy nie chce udostępnić nam treści (np. filmu), możemy zawsze dodać tę witrynę do wyjątków, klikając w przycisk AdBlocka zaznaczony na poniższym zrzucie ekranu:

 

Add icon and script to Ubuntu dashboard

Create activator in:

cd /usr/share/applications

we creat activator:

nano myActivator.desktop

and define icon, execute and terminal or not one in file:

[Desktop Entry]
Type=Application
Terminal=false
Name=chromium-browser
Icon=/opt/chromium.png
Exec=/usr/bin/chromium-browser --user-data-dir=/opt/
szymon@geek:/usr/share/applications$ pwd
/usr/share/applications

Brak log-ów /var/log/syslog

Jeżeli masz problem z logami

apt-get install --reinstall rsyslogd
apt-get install inetutils-syslogd

Pamiętaj o uprawnieniach pliku:

sudo chown syslog:adm /var/log
sudo chmod 0775 /var/log

Prawdopodobnych błędów można szukać w pliku:

/etc/rsyslog.conf

i plikach

/etc/rsyslog.d/50-default.conf

można uruchomić również usługę w trybie debugowania:

/etc/init.d/rsyslog stop
rsyslogd -n -i /var/run/syslogs.pid