Neostrada: ustawienie portu serwera SMTP

Od jakiegoś czasu Telekomunikacja Polska blokuje standardowy port 25 dla klientów posiadających usługę Neostrada. Blokada powoduje brak możliwości wysyłania poczty z programów pocztowych, np. Outlook, Outlook Express, Thunderbird i innych. Aby mieć możliwość wysyłania wiadomości posiadając Neostradę wystarczy w ustawieniach zaawansowanych konta pocztowego w posiadanym programie pocztowym zmienić port ze standardowego 25 na port sugerowany przez Telekomunikację: 587.

Jeśli poczty nadal nie da się wysyłać oznacza to, że serwer pocztowy, na którym mamy swoją skrzynkę pocztową nie obsługuje portu 587. Należy zwrócić się do firmy, w której mamy swoją skrzynkę pocztową, aby umożliwili wysyłanie poczty przez ten port.

W chwili obecnej większość dostawców oferuje możliwość wysyłania poczty przez port 587.

scp transfer plików przez ssh w linuxie

Za pomocą polecenia scp bezpośrednio z konsoli w linuxie możemy przesyłać bezpiecznie pliki .Aby wysłać plik o nazwie plik.tar z lokalnego katalogu home do katalogu home komputera o adresie IP: 82.1.1.1, do którego ma prawa do zapisu użytkownik root wystaczy wydać poniższe polecenie

root@server:# scp /home/plik.tar root@82.1.1.1:/home/

Powyższym poleceniem plik zostanie wystały na standardowy port 22. Jeśli chcemy użyć innego portu niż domyślny wystarczy dodać przełącznik -P, po którym podajemy nr portu jak poniżej.

root@server:# scp -P 5900 /home/plik.tar root@82.1.1.1:/home/

 

Serwer czasu NTP w Ubuntu 12.04

Instalacja serwera czas uw Ubuntu:

root@server:# apt-get install ntp

Program ntpd może w systemie pełnić zarówno funkcję serwera (być wzorcem czasu dla innych maszyn), jak również klienta (synchronizować lokalny zegar z serwerami czasu).

Warto po instalacji ntpd usunąć z systemu poprzedni – przestarzały program do synchronizacji czasy ntpdate.

root@server:# apt-get remove ntpdate

Następnym krokiem jest konfiguracja serwera czasu. Edytujemy plik konfiguracyjny:

root@server:# vim /etc/ntp.conf

Zamiast domyślnych wzorców czasu podajemy własne komentując jednocześnie pozostałe. Najlepiej jest podać kilka serwerów czasu zlokalizowanych blisko nas, do których pingi są najkrótsze.

server tempus1.gum.gov.pl iburst
server tempus2.gum.gov.pl
server ntp1.tp.pl
server ntp2.tp.pl

Powyżej najpopularniejsze serwery czasu w Polsce. Przy jednym z nich (który ma najmniejsze opóźnienie), na końcu warto dodać parametr iburst, który przyspieszy synchronizację czasu z tym serwerem.

Dodanie poniższych linijek na końcu listy serwerów czasu nie będzie powodowało błędów w działaniu naszego ntp w przypadku braku dostępu do Internetu.

server tempus1.gum.gov.pl iburst
server tempus2.gum.gov.pl
server ntp1.tp.pl
server ntp2.tp.pl
server 127.127.1.0
fudge 127.127.1.0 stratum 10

Ostatnia rzecz do ustawienia to pozwolenie naszym maszynom z sieci lokalnej na pobieranie czasu z serwera ntp. Dodajemy poniższą linijkę na końcu pliku konfiguracyjnego.

restrict 192.168.1.0 mask 255.255.255.0 notrap nomodify nopeer noquery

Po zmianie konfiguracji restartujemy serwer czasu:

root@server:#/ service ntp restart

W celu zmiany strefy czasowej w Ubuntu wydajemy z konsoli polecenie:

root@server:# dpkg-reconfigure tzdata

Jeśli chcemy, żeby system używał lokalnego czasu, wydajemy komendę:

root@server:# vim  /etc/default/rcS

i zmieniamy lub dodajemy poniższą sekcję do pliku konfiguracyjnego:

# Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no

Sprawdzamy czy serwer ntp jest uruchomiony:

root@server:# /etc/init.d/ntp status

Sprawdzamy czy system potrafi rozwiązać nazwę serwera czasu na jego adres IP (zamiast ntp1.tp.pl wstawiamy serwery czasy umieszczone w pliku konfiguracyjnym ntp.conf)

root@server:# host ntp1.tp.pl

Sprawdzanie różnic pomiędzy naszym serwerem, a serwerami z konfigu:

root@server:# ntpq --numeric --peer

lub (pomijając parametr „n” adresy IP serwerów czasu  będą rozwiązane na ich nazwy):

root@server:# ntpq -n -p

Najlepiej jak w pierwszej kolumnie są * i dużo + przed adresami IP serwerów czasu natomiast parametr reach (cel) ma wartość 377. W polu when mamy podany czas w s jaki upłynął od ostatniego kontaktu z danym serwerem czasu.

Parametr delay (opóźnienie) jest podany w milisekundach. Dla lokalnej sieci powinien wynosić poniżej 1, serwerów ISP poniżej 10, idealny dla Wi-Fi poniżej 100. offset też jest wyrażony w milisekundach i oznacza bieżącą różnicę pomiędzy serwerami czasu, a naszym serwerem. Im mniejsza różnica tym lepiej. jitter oznacza oszacowany błąd wewnętrznego zegara – im mniej tym lepiej. Jeśli ten parametr jest stosunkowo wysoki może powodować to pływanie zegara systemowego, gdyż server ntp będzie dostosowywał zegar systemowy do czasu wzorcowego zbyt często.

Przydatnymi poleceniami mogą być:

root@server:# ntpdc -c loopinfo

różnica w sekundach pomiędzy zegarem systemowym, a zegarem serwera czasu obliczona podczas ostatniej synchronizacji,

root@server:# ntpdc -c kerninfo

wyświetlenia bieżącej, pozostałej do przeprowadzenia korekty czasu zegara systemowego.

Zabezpieczenie Binda w iptables

Jak odpowiadać na rekursywne ataki DNS, DoS lub DDoS?

Poniżej kilka przykładów konfiguracji iptables:

Objawem ataków jest wpis w logach Binda podobny do poniższego i powtarzający się nawet kilka razy na sekundę z różnych adresów IP lub cały czas z tego samego.

query (cache) 'isc.org/ANY/IN'

Na początku przed innymi regułami dotyczącymi DNS’a należy dodać poniższe wpisy i zrestartować firewalla:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --set
$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 --hitcount 10 -j DROP

lub inny przykład:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 -j DROP
$IPTABLES -A INPUT -i $PUBLIC_IF -p udp --dport 53 -m recent --update --seconds 30 --hitcount 10 --rttl --set -j DROP

poniższe też może być ciekawe:

PUBLIC_IF=eth0 //interfejs sieciowy publiczny
IPTABLES=/sbin/iptables //ścieżka do iptables

$IPTABLES -A INPUT -i $PUBLIC_IF -d $MAIN_IP -p udp --dport 53 -m state --state ESTABLISHED,RELATED -j DROP

Log systemowy wyświetlany w konsoli | Ubuntu

W celu debugowania błędów systemowych możemy wyświetlać w czasie rzeczywistym log systemowy bezpośrednio w konsoli. Wystarczy wydać polecenie:

tail -f /var/log/syslog

wyświetlanie logów możemy zakończyć poprzez naciśnięcie CTRL+C.

SMART status w konsoli Ubuntu

Z konsoli możemy odczytać parametry SMART dysku poniższym poleceniem:

root@server:/# smartctl -i /dev/sda

powyższe wyświetli status dla pierwszego dysku SATA, dla drugiego zamiast sda należy użyć sdb.

Jeśli chcemy poznać wszystkie dostępne informacje wpisujemy w konsoli:

root@server:/# smartctl --all /dev/sda
Najważniejsze parametry będą w podobnej tabeli do poniższej:
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   113   093   006    Pre-fail  Always       -       55265791
  3 Spin_Up_Time            0x0003   094   094   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       339
  5 Reallocated_Sector_Ct   0x0033   099   099   036    Pre-fail  Always       -       52
  7 Seek_Error_Rate         0x000f   084   060   030    Pre-fail  Always       -       9114224572
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       26496
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       381
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   063   046   045    Old_age   Always       -       37 (Min/Max 37/38)
194 Temperature_Celsius     0x0022   037   054   000    Old_age   Always       -       37 (0 15 0 0)
195 Hardware_ECC_Recovered  0x001a   076   048   000    Old_age   Always       -       180860773
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0

Jeśli nie mamy zainstalowanego powyższego programu wydajemy polecenie:

root@server:/# apt-get install smartmontools

Pomoc na temat opcji programu możemy uzyskać poprzez wpisanie:

root@server:/# smartctl --help

Interpretacja otrzymanych wyników w oddzielnym artykule.

Windows 7 połączenie o określonej nazwie już istnieje

Podczas zmiany nazwy połączenia sieciowego może pojawić się poniższy komunikat:

Nie można zmienić nazwy połączenia.
Połączenie o określonej nazwie już istnieje.

Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz polecenie cmd.exe, a następnie naciśnij klawisz ENTER.

Wpisz poniższy ciąg i naciśnij klawisz ENTER.

C:\ set devmgr_show_nonpresent_devices=1

Wpisz kolejny ciąg, a następnie naciśnij klawisz ENTER.

C:\ Start DEVMGMT.MSC

Kliknij menu Widok, a następnie kliknij polecenie Pokaż ukryte urządzenia.
Rozwiń drzewo Karty sieciowe.
Kliknij prawym przyciskiem myszy zacienioną kartę sieciową, a następnie kliknij polecenie Odinstaluj.

Po tych zabiegach można zmienić nazwę połączenia sieciowego, na tą której wcześniej system nie przyjmował.

Brakujące klucze GPG w repozytoriach Ubuntu

Zdarza się, że podczas aktualizowania repozytoriów ukaże nam się komunikat typu:

Błąd GPG: http://mirrors.dotsrc.org natty-getdeb Release: \
Następujące podpisy nie mogły zostać zweryfikowane z powodu \
braku klucza publicznego: NO_PUBKEY A8A515F046D7E7CF

aby to naprawić wydajemy z konsoli jako root poniższą komendę:

apt-get update 2 > /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

potem usuwamy plik keymissing:

rm /tmp/keymissing

Po tych operacjach nie powinno być problemu z kluczami

Zamiana lub usunięcie znaku końca linii ^M w vim’ie

Aby usunąć DOS’owy znak końca lini ^M widoczny w vim’ie wystarczy wydać w nim poniższe polecenie, które usunie wszystkie znaki ^M (aby wpisać znak końca linii wybieramy kombinacje Ctrl + v później Ctrl + m):

:%s/\r//g

Jeśli chcemy zamienić znak końca linii ^M na np. * wydajemy w vim’ie polecenie

:%s/\r/*/g

możemy też chcieć zatwierdzać każdą zmianę, wtedy wydajemy polecenie:

:%s/\r/*/gc

Usunięcie znaków końca linii ^M można również dokonać poniższą komendą wydaną z wiersza poleceń:

tr -d "\015" < plik_do_zmiany > plik_zmieniony

Konwersji plików z formatu DOS na format Linux możemy dokonać poniższym polecenie:

:e ++ff=dos
:setlocal ff=unix

w drugą stronę z Linux na DOS:

:e ++ff=dos

lub (znak ^V wybieramy wciskając dwukrotnie Ctrl + v)

:%s/\r/^V^M/gc

Oczywiście we wszystkich przypadkach po konwersji należy zapisać plik poleceniem:

:w

Hasło administratora w Windows 7

W Windows 7 można zmienić sposób logowania ze standardowego na bardziej bezpieczny, który jest zalecany w komputerach podpiętych do domeny. Po zmianie poniższych ustawień, na ekranie logowania będzie konieczne naciśnięcie kombinacji klawiszy Ctrl + Alt + Delete i wpisanie nazwy użytkownika i hasła, zamiast standardowego klikania na obrazek konta. Uruchamiamy wiersz poleceń jako administrator i wpisujemy

netplwiz

lub

control userpasswords2

w oknie, które się otworzy przechodzimy na zakładkę zaawansowane i zaznaczamy opcje Żądaj od użytkownika naciśnięcia klawiszy Ctrl + Alt + Delete na dole okna w części Bezpieczne logowanie.

 

Mamy również możliwości ukrywania konta danego użytkownika, aby nie pojawiało się na standardowym ekranie logowania. Aby to wykonać, uruchamiamy wiersz poleceń jako administrator i wpisujemy

net user nazwa_usera /active:no

gdzie nazwa_użytkownika to nazwa konta, które chcemy ukryć, np. administrator. Jeśli mamy jakieś konto ukryte i chcemy, żeby było widoczne na ekranie logowania to wykonujemy poniższe polecenie z wiersza poleceń uruchomionego jako administrator

net user nazwa_usera /active:yes

Pokazywanie i ukrywanie konta administratora możemy również wykonać za pomocą przystawki Zasady zabezpieczeń lokalnych, którą wywołujemy z linii komend za pomocą polecenia:

secpol.msc

Kolejno wybieramy Zasady lokalne -> Opcje zabezpieczeń i odszukujemy na liście wpis: Konta: Stan konta administratora, klikamy na wpisie dwa razy myszką i ustawiamy opcje w zależności od potrzeb.

 

Utworzenie hasła dla konta administratora możemy wykonać poleceniem

net user administrator nowe_hasło

gdzie zamiast nowe_hasło wpisujemy hasło, które ma być przypisane do konta administratora.

Zmiana hasła dla konta administratora możemy wykonać poleceniem

net user administrator *

Pojawi się monit:

Wpisz hasło dla użytkowika –> wpisujemy nowe hasło
Wpisz hasło ponownie w celu potwierdzenia –> wpisujemy to samo

Wyświetlenie wszystkich użytkowników z konsoli:

net user

Wywołanie okna Uruchamianie możemy również wykonać poprzez naciśniecie kombinacji klawiszy znak windows + R

cdn.

Zwiększenie rozdzielczości ekranu w Ubuntu na VirtualBox’ie

VirtualBox Oracla wspiera różne rodzaje systemów operacyjnych Linux w tym Ubuntu. Po zainstalowaniu Ubuntu (testowane na 11.10) domyślna rozdzielczość jest ustawiona na 1024 x 768 i nie ma możliwości jej zmiany, ani z poziomu VirtualBox’a ani w ustawieniach Ubuntu. Za pomocą narzędzia VirtualBox Guest Additionsz najdującego się w repozytoriach Ubuntu można zmieniać dynamicznie rozdzielczość podczas skalowania okna maszyny wirtualnej, udostępniać schowek hostowi oraz przesyłać pomiędzy hostem i maszyną wirtualną pliki oraz katalogi. W celu zainstalowania narzędzia VirtualBox Guest Additionsz wystarczy wydać z konsoli polecenie:

sudo apt-get install virtualbox-guest-dkms

Powyższe polecenie wydajemy oczywiście z konsoli gościa VirtualBox’a jakim w naszym przypadku jest Ubuntu. Po ponownym uruchomieniu systemu gościa będziemy mieli możliwość zmiany rozdzielczości ekranu, współdzielenia schowka oraz udostępniania plików i katalogów.

Porty VPN i RDP – konfiguracja firewall iptables

Windows 2008 server ma możliwość skonfigurowania dostępu RDP poprzez bezpieczny tunel VPN (opis w oddzielnym artykule). Jednak żeby to działało, należy otworzyć na Firewall’u i przekierować na routerze poniższe porty dla poszczególnych rodzajów połączeń:

  1. PPTP: 1723 TCP 47 GRE
  2. L2TP over IPSEC: 1701 TCP 500 UDP
  3. SSTP: 443 TCP

dla iptables:

adres_vpn_zewn=123.123.123.123 #podajemy swoje zewnętrzne IP
adres_vpn_wew=192.168.1.1 #podajemy adres IP serwera Windows 2008
IPTABLES=/sbin/iptables #podajemy ścieżkę do iptables

$IPTABLES -t nat -A PREROUTING -d $adres_vpn_zewn -p tcp --dport 1723 -j DNAT --to $adres_vpn_wew:1723
$IPTABLES -t nat -A PREROUTING -d $adres_vpn_zewn -p gre -j DNAT --to $adres_vpn_wew

może być potrzeba dodania regułek forward z zewnątrz w iptables:

$IPTABLES - A FORWARD -i eth0 -d $adres_vpn_wew -p tcp --dport 1723 -j ACCEPT
$IPTABLES - A FORWARD -i eth0 -d $adres_vpn_wew -p gre -j ACCEPT

i ewentualnie z wewnątrz (w zależności od konfiguracji firewalla):

$IPTABLES - A FORWARD -i eth1 -s $adres_vpn_wew -p gre -j ACCEPT

Powyższe powinno działać dla wszystkich wersji serwerowych Microsoftu, które posiadają możliwość skonfigurowania tunelu VPN.

Jeśli chcemy mieć dostęp z zewnątrz do pulpitu zdalnego lokalnego komputera, wystarczy przekierować port 3389 jak poniżej:

ETH2=eth0 #podajemy nazwę interfejsu zewnętrzengo
adres_vpn_zewn=123.123.123.123 #podajemy swoje zewnętrzne IP
adres_vpn_wew=192.168.1.100 #podajemy adres IP komputera z systemem Windows
IPTABLES=/sbin/iptables #podajemy ścieżkę do iptables

$IPTABLES -t nat -A PREROUTING -d $adres_vpn_zewn -p tcp --dport 3389 -j DNAT --to $adres_vpn_wew:3389
$IPTABLES -A FORWARD -i $ETH0 -d 192.168.1.100 -p tcp --dport 3389 -j ACCEPT