Nowe posty

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - 1709

Strony: [1] 2 3 ... 6
1
Tips & Tricks / Konfiguracja dodatkowych przyciskow myszy.
« dnia: 2020-01-04, 17:56:09 »
Przypisanie klawiszy myszki, konfiguracja dodatkowych przycisków myszy, mapowanie przycisków.

Znajdziesz tego typu poadniki np. po wpisaniu w wyszukiwarke
" linux how-to-bind-mouse-buttons-to-keyboard "
Ten poradnik ma na celu pokazanie własnego doświadczenia.
Może komuś się przyda.


Narzędzia:
xbindkeys - jako taki powiedzmy "serwer" który przechwytuje wciśnięte klawisze i przyciski
xev (x11-utils) - narzędzie do identyfikowania klawiszy i przycisków myszki
xdotool lub xte (xautomation) - narzędzia symulujące wciśnięcie klawiszy i przycisków
xbindkeys-config - to wersja graficzna programu w którym możesz skonfigurować klawisze myszki.

* Oprócz tego w swojej dystrybucji czasem możesz także czasami znaleźć inne oprogramowanie dedykowane danemu producentowi sprzętu.


Info:
- Pewnych rzeczy nie znajdziesz w man i musisz przetestować sam, bo mogą działać u Ciebie inaczej.
- Instalacje narzędzi w tym obsługę programu graficznego pominę, wydaje mi się ze sobie poradzisz.

1. Spróbuj najpierw zidentyfikować przyciski myszy.
Samo uruchomienie komendy xev daje dość duży wynik danych z których ciężko znaleźć numer przycisku, dlatego użyj
xev | grep button

Klikając w białe nowo otwarte okienko otrzymasz numer przycisków,
poniżej otrzymałem numery 1 i 3 które u mnie odpowiadają
przyciskom lewym i prawym myszy.
$ xev | grep button
    state 0x0, button 1, same_screen YES
    state 0x100, button 1, same_screen YES
    state 0x0, button 3, same_screen YES
    state 0x400, button 3, same_screen YES

Info: W podobny sposób możesz uzyskać informacje o wciśniętym klawiszu klawiatury
$ xev | grep key
    keys:  1   0   0   0   16  0   0   0   0   0   0   0   0   0   0   0   
    state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,
    state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,

Info: W niektórych myszkach przy pomocy dodatkowych przycisków, możesz zmienić jej tryb działania.
W tym innym trybie, przy kliknięciu myszka może nadal wysyłać jakiś "sygnał", ale nie znajdziesz numeru przycisku przy pomocy
 " xed | grep button "  i musisz to wziąć pod uwagę przy mapowaniu przycisków.


2. Spróbujmy zasymulować wciśnięty klawisz.
Ja użyję prawy przycisk, ponieważ odrazu otwiera u mnie menu kontekstowe.
Użyj do tego komend xdotool lub xte. W tym celu zapoznaj się odpowiednio z
man xdotool
man xte

Dla przykładu w man xdotool w sekcji " MOUSE COMMANDS " znajdziesz wszystkie opcje myszki jakie możesz użyć.
xdotool click  3
Uruchomiło mi menu kontekstowe myszki.

Info:
- Jeśli sprawdziłeś przy pomocy xev lub przeczytałeś w man xdotool
to rolka przyjmuje odpowiednio numery przycisków: góra = 4 , dol = 5 , wciśnięcie / klikniecie = 2
-  I tu nie popełniaj mojego błędu. Wciśniecie i przytrzymanie przycisku 4 lub 5 nie spowoduje przewiniecie strony.
Podejrzewam ze jest to podyktowane budowa myszki,
 w której kawałek obrotu rolki powoduje wysłanie tylko jednego krótkiego sygnału.
W nowszych myszkach zazwyczaj można to wyczuć, czując opór kręcąc rolką i myszy.
Nawet w myszkach dotykowych, ponieważ pasek dotykowy naśladuje rolkę myszki i dlatego przewijanie nie jest płynne.
Przytrzymanie tego przycisku czasami może zdestabilizować środowisko graficzne.

Info: Jesli potrzebujesz opóźnić wykonanie komendy możesz użyć komendę sleep, np.
 sleep 2 ; xdotool click  3
odczeka 2 sekundy po czym zasymuluje klikniecie 3 przycisku myszy


3. Konfiguracja pliku ".xbindkeysrc".

Info:
- Mapowanie nie programuje myszki. Mapowanie potrafi zmienić działanie klawisza / przycisku tylko w danym systemie operacyjnym.
- Do mapowania potrzeba co najmniej dwóch narzędzi.
xbindkeys do przechwytywania i jakiegoś narzędzia do symulowania przycisków

Tworzenie nowego pliku konfiguracyjnego:

xbindkeys -d > ~/.xbindkeysrc

Edytuj plik ~/.xbindkeysrc i wklej lub wpisz " # " na początku komend, w których nie użyto " # ",
aby te komendy wyłączyć / zakomentować.
Ja znalazłem te linie w ten sposób:

$ xbindkeys -d | grep -v ^"#"

"xbindkeys_show"
  control+shift + q

"xterm"
  c:41 + m:0x4

"xterm"
  control + b:2

Przyjrzyj się tym przykładom, które były domyślnie aktywne w tym pliku konfiguracyjnym.
- Każde ustawienie jest oddzielone pusta linia
- W cudzysłowie znajduje się komenda która zostanie wykonana
- Niżej natomiast przyciski i klawisze które spowodują uruchomienie wyżej komendy.
-  " b:2 " oznacza przycisk myszy nr.2

Info:
"$" --> w terminalu znak zachęty użytkownika
"#" --> w terminalu znak zachęty administratora root
" # " --> w pliku (gdy jest na początku linii) oznacza komentarz, czyli wpis za tym znakiem wpis nie będzie wykonany i ma zadanie tylko informacyjne gdy będziemy czytać plik.
" ~/ " --> oznacza katalog domowy użytkownika
" ~/.xbindkeysrc " --> kropka przed nazwą pliku oznacza że plik jest ukryty
- Działanie komend symulujących wciśnięcie danego przycisku możesz najpierw sprawdzić w terminalu, zanim użyjesz ich w ~/.xbindkeysrc


# Symulowanie rolki myszki przy pomocy przycisków 8 i 9
# == Do Góry ==
"xdotool click --delay 24 --repeat 22 4"
   b:9

# == Na Dół ==
"xdotool click --delay 24 --repeat 21 5"
   b:8

Czyli coś w stylu:  Przyciskiem nr.8 kliknij przycisk nr.5 w czasie 24ms i powtórz klikniecie 21 razy w dol.
Dlaczego 21 razy? Ponieważ jedno klikniecie to tylko fragment obrotu rolki. Przetestuj, a sam zobaczysz.
I tu male ostrzeżenie.
 
Info:
- Komendy xdotool i xte o ile działają dobrze "mi" w terminalu, to nie zawsze z ~/.xbindkeysrc
np. Komenda " "xte 'mouseclick 4'" " na jednym z systemów moich nie działa, wiec użyłem xdotool.
np. Zmniejszenie liczby (czasu) w opcji delay w xdotool oprócz przyspieszenia przewijania, w pewnym momencie ma skutek uboczny.
Próba przyspieszenia przewijania , może powodować skrócenie odległości przewijania.
Może nawet się wydawać że komenda nie działa.


Kilka innych sposobów.
# Sterowanie suwakiem za pomocą klawiszy Page_Up i Page_Down
# == Do Góry ==
"xdotool key Page_Up"
   b:9

# == Na Dół ==
"xdotool key Page_Down"
   b:8

# Powrót na sama gore strony dzięki klawiszowi Home 
# == Do Gory ==
"xdotool key Home"
   b:9

# == Na dol ==
"xdotool key Page_Down"
   b:8

Info:  Wspomniane wyżej klawisze klawiatury można wykorzystać jako zastępstwo
do przewijania strony w przeglądarce,ale nie zadziałają one np. w terminalu
 i w niektórych innych programach, ponieważ spełniają tam inne zadanie.
 Należy wziąć to pod uwagę przy mapowaniu klawiszy.


4. Uruchamianie xbindkeys

xbindkeys

Info:
- Usługę uruchamiasz z konta użytkownika, ponieważ nie wymaga dodatkowych uprawnień
- Jeśli edytujesz plik, powinieneś zresetować proces xbindkeys

$ killall xbindkeys
$ xbindkeys
I to wszystko. Po uruchomieniu xbindkeys twoje zmapowane przyciski powinny już działać.



5. Bezpieczeństwo.
Plik ~/.xbindkeysrc możesz spróbować uczynić niezmiennym (immutable),
czyli zabezpieczyć z konta root żeby plik był nie nadpisywany z konta użytkownika,
np. w ten sposób, ale zmieniając odpowiednio ścieżkę na swoja...
chattr +i -V /home/sciezka_do_pliku/.xbindkeysrc

* Tak, będąc na koncie root powinieneś podać pełną ścieżkę,
 wpisując znak tyldy pomylimy katalog domowy z katalogiem root.


2
Sieć / Otwaty port 123 udp
« dnia: 2019-12-15, 12:08:46 »
Korzystam raz na jakiś czas z "Linux Mint 19 Tara" ( bez dodatkowych cyfr i kropki )

Wyczytałem ze otwarty port 123 jest powszechny w Ubuntu
https://unix.stackexchange.com/questions/404701/ubuntu-udp-traffic-on-port-123
https://serverfault.com/questions/493121/ubuntu-open-udp-port-123

Problem w tym ze nie potrafię znaleźć czemu ten port jest otwarty
mimo domyślnej polityki
# ufw status verbose
Stan: aktywny
Logowanie: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
Nowe profile: skip

Doczytalem na https://help.ubuntu.com/community/UFW
o pliku /etc/ufw/before.rules ale tu tez nie widze
# grep -v "#"  /etc/ufw/before.rules

*filter
:ufw-before-input - [0:0]
:ufw-before-output - [0:0]
:ufw-before-forward - [0:0]
:ufw-not-local - [0:0]


-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT

-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT

-A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT

-A ufw-before-input -j ufw-not-local

-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN

-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN

-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN

-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP

-A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT


COMMIT

# iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N ufw-after-forward
-N ufw-after-input
-N ufw-after-logging-forward
-N ufw-after-logging-input
-N ufw-after-logging-output
-N ufw-after-output
-N ufw-before-forward
-N ufw-before-input
-N ufw-before-logging-forward
-N ufw-before-logging-input
-N ufw-before-logging-output
-N ufw-before-output
-N ufw-logging-allow
-N ufw-logging-deny
-N ufw-not-local
-N ufw-reject-forward
-N ufw-reject-input
-N ufw-reject-output
-N ufw-skip-to-policy-forward
-N ufw-skip-to-policy-input
-N ufw-skip-to-policy-output
-N ufw-track-forward
-N ufw-track-input
-N ufw-track-output
-N ufw-user-forward
-N ufw-user-input
-N ufw-user-limit
-N ufw-user-limit-accept
-N ufw-user-logging-forward
-N ufw-user-logging-input
-N ufw-user-logging-output
-N ufw-user-output
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j DROP
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT

Edit.
Zeby nie bylo i nmap tez mi potwierdza ze jest otwarty.
# nc -v -z -n -w 1 -u  192.168.1.X  123
Connection to 192.168.1.X 123 port [udp/*] succeeded!

3
Tips & Tricks / Sprawdzanie otwartych portów.
« dnia: 2019-11-30, 02:44:09 »
Jak sprawdzić otwarte porty?

Często w poradnikach widzę porady typu
- użyj netstat
- użyj nmap

Ale w większości przypadków te porady są nie pełne lub nie aktualne.
A z takimi poradami niestety na pewno spotka się początkujący użytkownik który prawdopodobnie nie będzie drążył tematu.
Dlatego postanowiłem chociaż tutaj wspomnieć parę słów.


1. USŁUGI.
Komenda netstat służy miedzy innymi do zobaczenia które aplikacje "nasłuchują"
Przykłady:
Cytuj
# netstat -tulgpn | grep "LISTEN"
tcp         0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      786/systemd-resolve
tcp         0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      809/cupsd          
tcp6       0      0 ::1:631                      :::*                        LISTEN      809/cupsd

Cytuj
# lsof -nP -i tcp -i udp | grep "LISTEN"
systemd-r  786 systemd-resolve   13u  IPv4   21574      0t0  TCP 127.0.0.53:53 (LISTEN)
cupsd      809            root    7u  IPv6   24353      0t0  TCP [::1]:631 (LISTEN)
cupsd      809            root    8u  IPv4   24354      0t0  TCP 127.0.0.1:631 (LISTEN)

Cytuj
# ss -autpn -o state listening
Netid      Recv-Q       Send-Q               Local Address:Port               Peer Address:Port                                                       
tcp          0                 128                     127.0.0.53%lo:53                      0.0.0.0:*           users:(("systemd-resolve",pid=786,fd=13))       
tcp          0                 5                         127.0.0.1:631                            0.0.0.0:*           users:(("cupsd",pid=809,fd=8))                 
tcp          0                 5                         [::1]:631                                     [::]:*                 users:(("cupsd",pid=809,fd=7))

Taką aplikację nasłuchującą / czekającą na komendy / polecenia zazwyczaj nazywamy serwerem.
Taką aplikację można sprawdzić do jakiego pakietu należy
Cytuj
# ps aux | egrep '[c]upsd'
root       809  0.0  0.1 106096 12604 ?          Ss   08:45   0:00 /usr/sbin/cupsd -l
root     18265  0.0  0.1 118364 12240 ?        Ss   22:58   0:00 cupsd -C etc/cups/cupsd.conf -s /etc/cups/cups-files.conf

# dpkg -S /usr/sbin/cupsd
cups-daemon: /usr/sbin/cupsd
Zamiast komendy dpkg może występować inna, w zależności od używanej dystrybucji Linux-a.
W dystrybucjach opartych o pakiety .deb używa się komendy dpkg.

Wspomniałem wyżej o usługach nasłuchujących, ponieważ sam w sobie otwarty port nie świadczy o niebezpieczeństwie.
Musi wystąpić np.
Nasłuchująca usługa --> podatność w usłudze --> otwarty port .
A jako że niektórzy "eksperci" uważają że napisanie bezpiecznej aplikacji jest bardzo trudne i jej testowanie wymaga dodatkowego czasu,
już nie mówiąc o podatnościach sprzętowych,
więc trzeba się liczyć z tym że korzystanie z internetu nigdy nie było i być może nigdy nie będzie w 100% bezpieczne.
Dlatego jeśli to możliwe, starajmy się wyłączać zbędne usługi i zamykać zbędne otwarte porty.

2. OTWARTE PORTY.
A) Musimy sprawdzić jakie mamy IP zewnętrzne.
W tym pomogą nam zewnętrzne serwisy. Wystarczy w wyszukiwarkę wpisać " moje ip " i któreś z serwisów powinno je pokazać.
Jeśli ktoś musi przez terminal, to wpisz w wyszukiwarkę  " linux how get external IP from command "
a znajdziesz to co szukasz. A jak dobrze poszukasz to znajdziesz całą masę serwisów pokazującą IP zewnętrzne.

B) Musimy sprawdzić IP naszego komputera
Przykład:
# hostname -I
192.168.1.2
Często jest także używana komenda np. " ifconfig "
( przy czym należy wiedzieć że lo: to połączenie lokalne w systemie które nas teraz nie interesuje i IP jest zaraz po słowie "inet" lub "inet6" dla IPv6 ),
lub inne komendy rzadziej używane które znalazłem w sieci
" ip route list ",
" ip -s -c -h a ",
" ip route show | grep src | awk '{print $9}' ",
" ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' "
" ip route get 1 | awk '{print $7;exit}' "

Numer IP to jest taki adres dzięki któremu komputer lub inne urządzenie wie gdzie wysyłać dane.

Jeśli IP komputera i zewnętrzne jest identyczne to skanujemy porty tylko raz.
Ja mam jeszcze router w trybie router który pełni rolę dodatkowej zapory internetowej,
więc będę musiał przeskanować IP routera od strony zewnętrznej (od strony internetu) zwanym IP publicznym lub zewnętrznym i IP komputera.

Do sprawdzania otwartych portów najczęściej używa się komendy nmap.
Poradnik zazwyczaj napisze że należy wpisać " nmap numer_IP " , przykładowo
Cytuj
# nmap  192.168.1.2

Starting Nmap 7.60 ( https://nmap.org ) at 2019-11-30 01:47 CET
Nmap scan report for localhost (192.168.1.2)
Host is up (0.000018s latency).
Not shown: 999 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 1.70 seconds
Ale spostrzegawczy użytkownik zauważy coś dziwnego. Tylko 999 portów?
Jeśli wpiszesz w wyszukiwarkę " Port protokołu " i zobaczysz na wiki, to przeczytasz że teoretycznie portów powinno być  0 do 65535.
No właśnie nmap często domyślnie skanuje tylko 1000 pierwszych portów.
Skoro jest jak jest, to wątpię by dyskusja nad tym czy powinno tak być miała sens, zwłaszcza że to wygląda na celowy zabieg, więc skupmy się na tym jak sprawdzić wszystkie porty.
Za komendą można podać zakres portów
Cytuj
# nmap -p0-65535 192.168.1.2

Starting Nmap 7.60 ( https://nmap.org ) at 2019-11-30 02:05 CET
Nmap scan report for localhost (192.168.1.2)
Host is up (0.000018s latency).
Not shown: 65535 closed ports
PORT    STATE SERVICE
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 7.62 seconds
W przypadku skanowania routera, skanowanie zajęło mi kilka godzin.
Klikając na klawiaturze przycisk "Enter", można zobaczyć procent % ukończonego procesu skanowania.

Możesz nawet spróbować
nmap -sU -sT -p0-65535 Twoje_IP

I tu taka mała prośba.
Gdyby w przypadku twojego routera okazało by się że, pomimo wyłączonych kompletnie wszystkich usług ( np. serwer czasu, serwer email, itd. )
posiada on otwarte porty, lub gdy znajdziesz inną niezbyt bezpieczną funkcję lub podatność i gdy nie możesz nic z tym zrobić,
 to proszę
- gdy router jest na gwarancji, spytaj / poproś producenta żeby coś z tym zrobił jeśli jest to możliwe
- a gdy nie można nic z tym zrobić, to następnym razem gdy będziesz kupował router, kup bezpieczniejszy lub kup / sprawdź innej firmy.

Jeżeli nie wiesz co danej komendy, dana opcja robi to możesz zobaczyć / przeczytać
man nazwa_komendy 
nazwa_komendy --help

4
Uwagi i propozycje / PORADNIK ! [Poszukiwanie bledow]
« dnia: 2019-11-07, 12:09:56 »
Proponuję do niektórych działów dodać przyklejony poradnik  z tytułem
" PRZECZYTAJ TO !  "
lub
" PORADNIK ! "
Tematy mają być otwarte, aby każdy mógł zgłosić uwagi, poprawki, aktualizacje,  i inne zastrzeżenia.



1. System się nie uruchamia.

- Wyswietla sie logo i potem czarny ekran.
https://www.dell.com/support/article/pl/pl/plbsd1/sln306327/manual-nomodeset-kernel-boot-line-option-for-linux-booting?lang=en
Poradnik pokazuje dwa rozwiazania ustawienia opcji nomodeset
Pierwszy jest ustawieniem tymczasowym <-- polecanym w celu sprawdzenia czy zadziała
Drugie rozwiazanie jest ustawieniem stalym. <-- polecane gdy juz wiemy ze bez tej opcji nie uruchomimy systemu.

- Jeśli pasek ładowania zasłania komunikaty z uruchomienia systemu to
Cytuj
Uruchamiamy komputer i po pojawieniu się listy wciskamy e przechodząc do edycji “procedury startowej”,
Odszukujemy fragment quiet splash
Usuwamy slowo quiet splash
Bootujemy system

- Tryb awaryjny / Recovery mode
Opcja w menu Grub, ktora pozwala
 na uruchomienie systemu w trybie tekstowym. ( w niektórych systemach jest on ukryty )
Opcja ta przydaje sie gdy musimy zobaczyc logi w trybie tekstowym i naprawic nasz system.
https://www.youtube.com/watch?v=8xFAVvrfEdg


2. Logi.

- Init ... /var/log/
https://www.thegeekstuff.com/2011/08/linux-var-log-files/

Przyklady
dmesg | grep -i 'error\|warning\|fail|\segfault'
grep "(WW)\|(EE)" /var/log/Xorg.0.log
grep -ri 'error\|warning\|fail|\segfault' /var/log/*
Przykład z dokumentacji postfix:
egrep '(reject|warning|error|fatal|panic):' /var/log/nazwa_pliku
Nalezy brac pod uwage ze grep wyswietli tylko jedna linie,
dlatego czasami warto odnalesc blad w logu lub wyswietlic sobie wiekszy fragment bledu
aby sprawdzic czy ponizej nie ma dalszej czesci komunikatu.

- Systemd ... journalctl
https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

Wiecej w
journalctl --help
man journalctl

Moim zdaniem najprzydatniejsze
- Lista logow ze wszystkich uruchomien systemu
journalctl --list-boots
- Log z poprzedniego uruchomienia systemu zapisany do pliku "dziennik.log dzieki czemu mozemy przegladac wygodniej w edytorze lub komus wyslac.
journalctl -b -1 > dziennik.log
- W podobny sposob  jak wyzej przejzec plik tekstowy pod katem bledow lub odrazu w terminalu
journalctl -b 0 | grep -i 'error\|warning\|fail|\segfault'
( Co do opcji zero "-b 0", nie jestem pewien czy zadziala, czy wystarczy samo  "-b", nie mam systemd pod reka by sprawdzic :D )

- Jesli problem dotyczy srodowiska graficznego mozesz zapoznac sie takze z
https://forum.linux.pl/index.php/topic,25285.0.html

- Jesli problem dotyczy sterownikow graficznych mozesz zapoznac sie takze z
https://forum.linux.pl/index.php/topic,25062.0.html


3. Szukanie rozwiązania w internecie.
Dlaczego warto szukać i sprawdzać ?
- Czasami jest to szybsze niż otrzymanie pomocy.
- Czasami istnieje tylko obejscie problemu i nikt nam nie naprawi oprogramowania.

Np. gdy nasz sprzęt jest juz nie wspierany lub słabo wspierany przez danych developerów.
Takimi obejściami problemu są np.
* opcja nomodeset dla starszych i niektórych nowszych kart graficznych których dystrybucja Linuxa nie wspiera.
* opcja libata.noacpi=1 gdy Linuxowe ACPI nie chce wspierac juz naszego starego Biosu, a my nie możemy Biosu zaktualizować.
https://blog.le-vert.net/?p=24

Przy szukaniu
- Używaj slow kluczy, czyli takich najistotniejszych
- Możesz użyć slow na początku takich jak
* klucza linux które będzie sugerowało ze szukasz tylko treści dotyczących Linuxa.
* klucza SOLVED ktore bedzie sugerowalo ze szukasz tematow rozwiazanych

Taka ciekawostka:
Kiedys na forach byl taki zwyczaj ze uzytkownik gdy na forum poprosil o pomoc i rozwiazal problem,
to mial obowiazek na koncu napisac " SOLVED ". Dzieki temu latwiej jest znalesc rozwiazania w internecie.


- Unikaj podawania liczb, np. liczb sugerujących numer linii w logu.
- Staraj się aby twój system wyświetlał błędy po angielsku i również staraj się szukać po angielsku
  Ponieważ wpisując zapytanie po angielsku będziesz miał więcej wyników wyszukiwania.


4. Zgłaszanie błędów

Nie ma jednego miejsca na zglaszanie problemow.
- Jesli nie wiemy gdzie, to najlepiej spytac na forum wlasnej dystrybucji linuxa.

Ostrzezenie:
  Nie zawsze forum na ktorym zglaszamy problem jest tym wlasciwym.
  Glownym zalozeniem for jest otrzymanie pomocy, ale nie zawsze uzytkownicy na nich pisza gdzie potem nalezy zglosic problem / błąd.
  Np. Siedze na polsko jezycznym forum i tu moge teoretycznie dostac pomoc w rozwiazaniu problemu.
  Ale jesli problem dotyczy pakietu i developerzy dystrybucji siedza na anglojezycznym forum,
  to tam na anglojezycznym forum powinienem ponownie zglosic problem ( czesto w odpowiednim dziale )
  aby developerzy naprawili pakiet.

- Jesli okazalo sie ze po zgloszeniu problemu na forum problem wystepuje tylko u nas
  i dotyczy on
np. sterownikow kernela to na stronie https://bugzilla.kernel.org/
1) Znajdz po fragmencie bledu czy byl blad juz zgloszony i czy zostal juz naprawiony
2) Jesli blad nie byl zgloszony to wtedy z czystym sumieniem mozesz im zglosic.

np. jesli problem dotyczy programu
- zglosilismy na forum, wszyscy maja ten sam problem.
- sprawdzamy czy jest nowsza wersja programu,  jesli jest to zglaszamy w swojej dystrybucji prosbe o aktualizacje
  w przeciwnym wypadku musimy czekac
- jesli mamy najnowsza wersje i problem wystepuje to szukamy developerow tej aplikacji

Szczegoly skad byl pobrany kod zrodlowy pakietu
* szukamy w informacji o naszym pakiecie
* mozna tez poszukac informacji w samym programie ... "Pomoc" / "O programie"

i taki tylko przyklad z oem
Znalezlismy ze developerzy swoj projekt oem udostepniaja na Github
Github ma taka zakladke " Issues " w ktorej mozna wyszukac
czy blad byl juz zglaszany i jesli nie byl to zglosic developerom w tej zakladce
https://github.com/mate-desktop/eom/issues

Porady:
1. Jesli masz problem z jezykiem angielskim wspomagaj sie translatorem online.
2. Na forach nie zawsze zmiescisz caly log
- mozesz probowac dac go w zalaczniku ( jesli jest za duzy to mozesz go spakowac )
- mozesz probowac wyslac np. na https://pastebin.com/
  i podac uzytkownikom linka aby mogli przejzec lub pobrac log.
3. Staraj sie omawiac problem szczegolowo jesli to mozliwe,
unikniesz dzieki temu zbednych pytan i masz wieksza szanse na szybsza odpowiedz.


Ostatnie aktualizacje tematu:
- 15.11.2019 / Dodalem 1 przyklad szukania bledu z dokumentacji postfix :)

5
Humor, ciekawostki etc. / Sprzet z Linuxem
« dnia: 2019-10-11, 09:01:01 »
Ponieważ  sprzętu z Linuxem przybywa postanowiłem dodać 1 temat.

Przeglądając sprzęt należy wziąć pod uwagę ze pochodzi on z różnych krajów i
może być nie przygotowany dla Europy i  nie dostępny na rynku europejskim.
O szczegóły trzeba zawsze pytać producenta / sprzedawce

(inna klawiatura, inna ilość kanałów wi-fi, brak europejskiej wtyczki do gniazda, czasami trzeba doliczyć VAT lub cło)


MintBox 3 ... a może Compulab Airtop 3
Sprostowanie: na stronie https://fit-iot.com/web/mintbox3-coming-soon/
pisze ze wersja "MintBox3" ma dopiero powstać, ale jest dostępna wersja zwykła także z Linuxem.

https://fit-iot.com/web/product/airtop3-build-to-order/
https://www.youtube.com/watch?v=35OyZzCvG0g
Tylko sprzęt trzeba sobie wybrać i system (np. Linux Mint [XLM])
Cena sugerowana: $1,687.00 ~6 617,43PLN (excl. VAT)
 - czyli bez podatku VAT (~11%?) i trzeba sobie dodać samemu
Mi po wybraniu sprzetu wyszlo $1,814.10 juz nie wspominajac ze jest to mini komputerek.


HUAWEI MateBook
https://www.vmall.com/search?keyword=Linux
( Jeśli potrzebujesz translatora to przetłumaczysz z "chiński tradycyjny")
Zazwyczaj pisze "Linux innej firmy" Ale przeglądając pliki .pdf i informacje w internecie zazwyczaj można przeczytać ze jest to Linux Deepin.
Od 5 699CNY do 8 699CNY czyli od 3 136,73zl do 4 787,93zl


system76
https://system76.com/
Jest tu cala gama sprzętu z możliwością konfiguracji.
Dostępne systemy to Pop OS Linux i Ubuntu Linux
Ciekawostka jest to ze posiada Coreboot czyli Linux Bios. :D https://en.wikipedia.org/wiki/Coreboot


Pominąłem tutaj znanych już producentów od dłuższego czasu np.
GorillaBox z systemem PCLinuxOS  http://www.chimpbox.us/
Dell z Ubuntu Linux https://dell.com/linux
oraz producentów które posiadają certyfikaty kompatybilności z danym systemem,
 ale nie posiadają go zainstalowanego.


Jeśli znasz jeszcze jakiś producentów oferujących sprzęt z Linuxem daj Linka,
 może się kiedyś przyda :D


6
Bash, skrypty powłoki / Pisanie bezpiecznych skryptow.
« dnia: 2019-10-01, 19:42:01 »
Czy ktoś ma pomysły / porady / poradniki / linki jak pisać skrypty bash ?

Gdzieś wyczytałem w poradnikach ze
gdy z poziomu uzytkownika wykonuje skrypt lub jakas komende w systemie jako root
( loguje sie na konto root aby wykonac komende) , to
zmieniając np. $PATH mogę podmienić dowolna komendę i za pomocą jej dostać się na konto root.
Polecili pisać komendy z ich ścieżkami.

Chcialem tego uniknac, czyli zmienna $PATH musialby zawierac tylko " /bin:/usr/bin:/sbin:/usr/sbin "
Poradniki polecaja takie opcje jak
bash --login --noprofile --norc
http://www.linux.pl/man/index.php?command=bash
env --ignore-environment
http://www.linux.pl/man/index.php?command=env

Tylko jak to wdrozyc w zycie?
Zwykle na poczatku pliku jest
#!/bin/bash
Czy da sie zrobic będzie działać ?
#!/bin/bash --login --noprofile --norc
albo
#!/usr/bin/env --ignore-environment bash


Edytowanne 2.10.2019
W kazdym razie mi to nie dziala.
Probowalem jeszcze gdzies indziej pytac i mam nadal metlik w glowie.

Raz mi ktos na pisal ze moge dodac jeden argument do "shebang", a inna osoba ze nie moge.
Tutaj https://pl.wikipedia.org/wiki/Shebang
mozna przeczytac ze
Cytuj
Cytuj
W niektórych wariantach Uniksa możliwe jest też podawanie parametrów, np.:

#!/usr/bin/python -i
No to teraz jak ja mam naprawic swojego Linuxa zeby to bylo mozliwe dla bash?  :(

Ja sobie jakos poradze
- Usuwajac niebezpieczne ustawienia, zmienne i zabezpieczajac plik
chattr +i /home/uzytkownik/.bash_profile  
oraz inne pliki ( .bash_logout .bash_profile  .bashrc ) . Ale nie jest to wygodne. Zwlaszcza gdybym chcial sie podzielic skryptem.
- Uzywanie tylko " #!/bin/bash " i podmienianie zmiennej $PATH w skrypcie, ale to nie gwarantuje bezpieczenstwa. :/
I gdy bede chcial sie podzielic skryptem to nie moge zagwarantowac ze bedzie on odporny na zlosliwe zmienne srodowiskowe.

Taki przyklad "zlosliwych zmiennych" / zlosliwego basha mozna zobaczyc tutaj https://stackoverflow.com/questions/16365130/what-is-the-difference-between-usr-bin-env-bash-and-usr-bin-bash/55927235#55927235

7
Konfiguracja / iptables
« dnia: 2019-09-02, 23:54:29 »
Nie bardzo potrafię znaleść "złotego środka" jak należałoby skonfigurować zaporę iptables dla serwera.

Problemem jest choćby  "XMAS TREE SCAN" np.
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH PSH -j LOG --log-prefix "Xmas scan: "
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP
# https://pl.wikibooks.org/wiki/Debian_-_uniwersalna_instalacja/Konfigurowanie_iptables

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# https://www.cyberciti.biz/tips/linux-iptables-10-how-to-block-common-attack.html

Gdy skanuje przy pomocy nmap okazało się ze ochrona nie działa.
Jak doczytałem
Cytuj
A Christmas tree packet is a packet in which all the flags in any protocol are set.
# https://linoxide.com/firewall/block-common-attacks-iptables/

Natomiast nmap używa
Cytuj
metoda Xmas Tree (nmap -sX) – wykorzystuje pakiety z bitami FIN, URG i PUSH
# https://pl.wikipedia.org/wiki/Nmap

Czyli żeby to naprawdę działało to chyba bym musiał wymienić wszystkie możliwe kombinacje wszystkich flag.
1. Czy napisanie skryptu w nmap to dobry pomysł, czy można przetestować zaporę w prostszy sposób ?

2. Wydaje sie tam https://nmap.org/book/scan-methods-null-fin-xmas-scan.html
nie pisze zbyt wiele o atakach, oprócz paru szczegółów np.
Cytuj
will result in a returned RST
Czy są jakieś strony bardziej techniczne ?
3. A może wystarczy zablokować flagę  RST na wyjściu ?
4. A może powinienem zrezygnować z blokowania lub zainstalowac jakis "network intrusion detection system (NIDS) ?


8
Bash, skrypty powłoki / Operacje na bitach.
« dnia: 2019-08-07, 12:39:59 »
W chwili obecnej mam tylko 1GB wolnej pamięci RAM.
Ma to znaczenie gdy chce np. otworzyć plik danych 2 GB.

Zgaduje ze otwarcie w ten sposób pliku jest nie możliwe.
Pomyślałem ze sobie sam zapisze dane i będę się w nim poruszał jak w nieskończonym świecie minecrafta.
Czyli otwierając plik,  tylko w określonej lokalizacji pliku, z określoną ilością danych.

Ale czy da się taki plik z poziomu basha stworzyć?
Musiałbym chyba mieć możliwość zapisania danych w określonym miejscu na dysku.

9
Inne / Pokaz jak powinna wygladac twoja zapora internetowa.
« dnia: 2019-07-05, 11:43:54 »
Mam pytanie,
czy jest ktos wstanie narysowac ( byle jak )
jak powinna wygladac twoja zapora internetowa ?
Moze byc w formie kilkunastu okienek. Nie musi byc w kolorze.
Ewentualnie dopisac co jeszcze powinien zawierac.

Mnie  osobiscie wydawalo mi sie ze
- powinno pokazywac ktore IP jest aktywne ( IPv4, IPv6 )
- powinien zawierac podstawowe reguly dla "Desktopu" i "Serwera" do wyboru.
- powinien miec lampke czy zapora wogule jest aktywna
- powinien miec reguly zabezpieczeczajace ( odrzucanie nieprawidlowych pakietow, null skan i inne skany )
- powinien miec przyklady rugul programow - serwerow (ssh, rsync, ftp )
- powinien miec reguly dla programow w trybie "Serwer" ( przegladarka, poczta, qtox )
- powinien posiadac przyciski aktywowania i uzywania np. do programu AIDA lub wlasny  w celu sprawdzania plikow systemowych,
ale tez dla plikow domowych jesli bysmy chcieli zabezpieczyc przed modyfikacja
- powinien pokazywac zadania crontab wszystkich uzytkownikow, jesli sa.
- moze tworzyc konto sandbox do uruchamiania z niego aplikacji ? ( Np. kiedys chodzily plotki ze jeden z komunikatorow mogl przegladac nasze pliki )
- moze jakies statystyki logow ?
- powinien pokazywac log / informacje o pakietach z logu systemowego, jesli logowanie pakietow jest aktywne.
- powinno dac sie tworzyc reguly na podstawie zarowno procesow jak i plikow aplikacji
- powinno dac sie blokowac strony na podstawie pelnych nazw www.
( tu moze byc utrudnienie, zapora iptables uzywa chyba IP, wiec przy uruchomieniu program musialby sprawdzac i odswiezac liste adresow IP )
- powinien pokazac aktualna siec, polaczenie ( localne IP, zewnetrzne IP po wybraniu serwera i wcisnieciu guzika )
- moze harmonogram polaczen ?
- moze jeszcze modyfikacja publicznego DNS ? ( np. z domyslnego na DNS dostawcy na inny )
- moze jedna z komend traceroute, mtr, ping w celu sprawdzenia problemow z polaczeniem z dana strona ?
- moze mozliwosci konfiguracji proxy ?
- moze powinien miec linki do przykladowych testerow predkosci internetu zeby sprawdzic czy  z proxy internet jest wolniejszy, czy po wybraniu reguly zapory internet jest wolniejszy ?


Moze przesadzilem, moze czegos brakuje ?

10
Tips & Tricks / Przydatne Linki
« dnia: 2019-04-04, 12:57:45 »
"Programming Notes for Professionals books"
https://goalkicker.com/

11
Kolega zauwazyl na kanale CultOfMush  ( youtube )
ze od 10 kwietnia gra bedzie za darmo
https://albiononline.com/en/news/albion-online-goes-free-to-play

Nie potrafie sie rozczytac na jak dlugo, ale jesli ktos ma ochote przetestowac to prosze bardzo,
bo widze ze istnieje klient także na Linuxa.

12
Uwagi i propozycje / Reklamy
« dnia: 2019-03-18, 15:10:19 »
Ile kosztuje wylaczenie reklam na jakis czas ?
Tak sie tylko pytam, bo jak sie powylacza wtyczki w przegladarce, to tych reklam jest sporo.
W postach, nad forum, z boku forum.
Moze by tak nie razilo, gdyby google czasami nie dawal reklam mrugajacych jak w Las Vegas.
Niektore reklamy moga oszukiwac uzytkownikow, jak np. z bonami,
https://natemat.pl/69819,oszukani-na-biedronke-strona-oferowala-bon-na-zakupy-w-dyskoncie-a-tak-naprawde-naciagala-internautow-na-pieniadze
Choc rozumiem ze nie da sie tego usunac z google.

13
Gra dostepna tylko przez okreslony czas,
Proces pobrania kodu, ktory trzeba wpisac w kliencie Steam,
mniej wiecej tak samo jak poprzednich tematach z innymi grami wspomniano.

https://www.humblebundle.com/store/grid2-spa-bathurst?hmb_source=humble_home&hmb_medium=product_tile&hmb_campaign=mosaic_section_1_layout_index_1_layout_type_twos_tile_index_2

14
Inne / Kompilacja kernela.
« dnia: 2019-01-26, 13:05:35 »
Nie znam sie na kompilacji kernela, ale chcialem sprobowac z domyslnymi ustawieniami

Probowalem w ten sposob
make ARCH=x86 defconfig
make

Ale ciagle mi wychodzi jakas wersja odchudzona
config ma linii
$ grep y .config | wc -l
1198
a sterownikow ma
...  CC      arch/x86/boot/version.o
  CC      arch/x86/boot/video-vga.o
  CC      arch/x86/boot/video-vesa.o
  CC      arch/x86/boot/video-bios.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  OBJCOPY arch/x86/boot/vmlinux.bin
  HOSTCC  arch/x86/boot/tools/build
  BUILD   arch/x86/boot/bzImage
Setup is 15452 bytes (padded to 15872 bytes).
System is 6468 kB
CRC a7a2a8b9
Kernel: arch/x86/boot/bzImage is ready  (#1)
  Building modules, stage 2.
  MODPOST 18 modules
  CC      drivers/thermal/x86_pkg_temp_thermal.mod.o
  LD [M]  drivers/thermal/x86_pkg_temp_thermal.ko
  CC      fs/efivarfs/efivarfs.mod.o
  LD [M]  fs/efivarfs/efivarfs.ko
  CC      net/ipv4/netfilter/ipt_MASQUERADE.mod.o
  LD [M]  net/ipv4/netfilter/ipt_MASQUERADE.ko
  CC      net/ipv4/netfilter/iptable_nat.mod.o
  LD [M]  net/ipv4/netfilter/iptable_nat.ko
  CC      net/ipv4/netfilter/nf_log_arp.mod.o
  LD [M]  net/ipv4/netfilter/nf_log_arp.ko
  CC      net/ipv4/netfilter/nf_log_ipv4.mod.o
  LD [M]  net/ipv4/netfilter/nf_log_ipv4.ko
  CC      net/ipv4/netfilter/nf_nat_ipv4.mod.o
  LD [M]  net/ipv4/netfilter/nf_nat_ipv4.ko
  CC      net/ipv4/netfilter/nf_nat_masquerade_ipv4.mod.o
  LD [M]  net/ipv4/netfilter/nf_nat_masquerade_ipv4.ko
  CC      net/ipv6/netfilter/nf_log_ipv6.mod.o
  LD [M]  net/ipv6/netfilter/nf_log_ipv6.ko
  CC      net/netfilter/nf_log_common.mod.o
  LD [M]  net/netfilter/nf_log_common.ko
  CC      net/netfilter/nf_nat.mod.o
  LD [M]  net/netfilter/nf_nat.ko
  CC      net/netfilter/nf_nat_ftp.mod.o
  LD [M]  net/netfilter/nf_nat_ftp.ko
  CC      net/netfilter/nf_nat_irc.mod.o
  LD [M]  net/netfilter/nf_nat_irc.ko
  CC      net/netfilter/nf_nat_sip.mod.o
  LD [M]  net/netfilter/nf_nat_sip.ko
  CC      net/netfilter/xt_LOG.mod.o
  LD [M]  net/netfilter/xt_LOG.ko
  CC      net/netfilter/xt_addrtype.mod.o
  LD [M]  net/netfilter/xt_addrtype.ko
  CC      net/netfilter/xt_mark.mod.o
  LD [M]  net/netfilter/xt_mark.ko
  CC      net/netfilter/xt_nat.mod.o
  LD [M]  net/netfilter/xt_nat.ko

Czyli sterowników  tyle co pies napłakał ...
Nie chcialem uzywać oldconfig, bo znowu musiałbym się naklikać żeby ustawić nowe opcje.
$ find ./ -type f -name "*.ko"
./drivers/thermal/x86_pkg_temp_thermal.ko
./net/ipv6/netfilter/nf_log_ipv6.ko
./net/ipv4/netfilter/nf_log_arp.ko
./net/ipv4/netfilter/ipt_MASQUERADE.ko
./net/ipv4/netfilter/iptable_nat.ko
./net/ipv4/netfilter/nf_nat_masquerade_ipv4.ko
./net/ipv4/netfilter/nf_nat_ipv4.ko
./net/ipv4/netfilter/nf_log_ipv4.ko
./net/netfilter/xt_addrtype.ko
./net/netfilter/nf_log_common.ko
./net/netfilter/xt_nat.ko
./net/netfilter/xt_LOG.ko
./net/netfilter/xt_mark.ko
./net/netfilter/nf_nat.ko
./net/netfilter/nf_nat_ftp.ko
./net/netfilter/nf_nat_irc.ko
./net/netfilter/nf_nat_sip.ko
./fs/efivarfs/efivarfs.ko
Nie wiem czy to jest kwestia ze nie istalowalem żadnych zależnosći , czy ja coś źle robie ...
Czy istnieje możliwosc taka najprostrza kompilacja ?
Testowalem to na Linux Mint 18 z kernelem 4.9.153

15
Bash, skrypty powłoki / Ulepszanie skryptu.
« dnia: 2018-11-18, 14:00:42 »
Zrobilem sobie taki skrypt side (Simple Intrusion Detection Environment)
( na własne potrzeby )

#!/bin/bash

# Name: side
# Version: 2
# Licence: GPLv3


error1(){
echo "$@" ; exit 1
}

# Check if sha256sum is installed
[ "$(sha256sum --version)" ] || error1 "--> You need install sha256sum"


#=============={
side_verify() {
echo "--> Verify base with local hash"
sha256sum -c dat/hash.base.org.sum || error1 "--> Error: Verify hash.base.org FAILED"
sha256sum -c dat/perm.base.org.sum || error1 "--> Error: Verify perm.base.org FAILED"


ADDITIONAL_VERIFICATION_HASH_V1()
{
#### YOU NEED CHECK THIS AND ADAPT TO YOUR OWN NEEDS
echo "=========={"
echo "--> Verify base with on-line hash"
## tr -d '\r' will remove "CRLF line terminators"
curl -v --silent https://pastebin.com/paste_own_link --stderr - | grep " dat/hash.base.org" | sed -e 's/<[^>]*.//g' | tr -d '\r' \
| sha256sum --check || error1 "--> Error: Verify hash.base.org FAILED"
curl -v --silent https://pastebin.com/paste_own_link --stderr - | grep " dat/perm.base.org" | sed -e 's/<[^>]*.//g' | tr -d '\r' \
| sha256sum --check || error1 "--> Error: Verify perm.base.org FAILED"
echo "==========}"
}

ADDITIONAL_VERIFICATION_HASH_V2()
{
echo "=========={"
echo "--> Paste hash of hash.base.org to verify and click Enter key:"
read -p "hash.base.org=" HASH_OF_HASH
echo "$HASH_OF_HASH" | sha256sum --check || error1 "--> Error: Verify hash.base.org FAILED"

echo "--> Paste hash of perm.base.org to verify and click Enter key:"
read -p "perm.base.org=" HASH_OF_PERM
echo "$HASH_OF_PERM" | sha256sum --check || error1 "--> Error: Verify perm.base.org FAILED"
echo "==========}"
}

#### Remove " # " to active below function.
# ADDITIONAL_VERIFICATION_HASH_V1
# ADDITIONAL_VERIFICATION_HASH_V2
}
#==============}


#========================={
side_create() {
mkdir -p ./dat
[ -e dat/hash.base ] && rm dat/hash.base
[ -e dat/perm.base ] && rm dat/perm.base

#### YOU NEED CHECK AND ADAPT TO YOUR OWN NEEDS
FIND_IN="/"

#### YOU NEED CHECK AND ADAPT TO YOUR OWN NEEDS
#### "-print" is for "-prune", which is to skip the indicated directories,
#### be careful with edit option "prune", because first used "prune" sometimes may not work,
#### working example from "man find": find . -path ./src/emacs -prune -o -print.
find "$FIND_IN" \
\
-path '/cdrom' -prune -o  \
-path '/dev' -prune -o  \
-path '/home' -prune -o  \
-path '/media' -prune -o  \
-path '/mnt' -prune -o  \
-path '/proc' -prune -o  \
-path '/run' -prune -o \
-path '/sys' -prune -o  \
-path '/tmp' -prune -o  \
-path '/var' -prune -o  \
 \
-type f  -exec sha256sum {} + | tee -a dat/hash.base

while IFS= read -r LINE1
do
    ls -l "$LINE1" | tee -a dat/perm.base
done <<< "$(cut -d" " -f3- dat/hash.base)"
}
#=========================}


#========================={
side_move() {
mv dat/hash.base dat/hash.base.org
mv dat/perm.base dat/perm.base.org

echo "=========={"
echo "OPTIONAL:"
echo "--> You can sent hash files to inaccessible place,"
echo " for example on paste.bin, manualy"
echo "and add links to this script or paste hash, during verification:"
sha256sum dat/hash.base.org > dat/hash.base.org.sum
sha256sum dat/perm.base.org > dat/perm.base.org.sum
cat dat/hash.base.org.sum
cat dat/perm.base.org.sum
echo "==========}"
}
#=========================}


#========================================================================================={
case $1 in
"--first.init"|"-f")
side_create
side_move
;;
"--check"|"-c")
side_verify
side_create
echo "######################################################"
echo "    "
echo "--> Changed files:"
echo "    "
diff dat/hash.base dat/hash.base.org
diff dat/perm.base dat/perm.base.org
;;
"--help"|"-h")
echo "--first.init Option to create base of checksums."
echo "--check Option to verify files with base."
        echo " "
echo "This software is used to verify changes in the system."
        echo " "
echo "WARNING: "
echo "Because the length of the checksum is constant,"
echo "regardless of the size of the file,"
echo "with bigger file, exist higher risk "
echo "of building the same checksum for the changed file."
;;
*)
echo " Error: unknown option"
echo " Try use: $0 --help"
exit
;;
esac
#=========================================================================================}

Czy mozna jeszcze jakos go ulepszyc ?

1. Skrypt bedzie uruchamiany jako root,
wiec nie jestem pewien czy zmienna np.  FIND_IN moze byc tak zapisana.
2. Chcialem zeby skrypt byl bardziej przejrzysty,
 np. zapisanie sciezek (  "/proc/*"  "/home/*" ) do pliku konfiguracyjnego ale komenda find obraza sie na moje zmienne
i tablica nie chce nic zapisac w sobie w petli while.
3. Skrypt narazie nie potrafi wyslac hash przez curl, trzeba wkleic recznie,  a fpaste czy czegos podobnego nie mam i narazie nie bede kompilował.


Edytowane
Przydalaby sie aplikacja na telefon do skanowania i weryfikowania hashy na telefonie :D
Dzieki temu nie musialbym zapisywac hashy w sieci.


Edytowane
- A moze by fragment z linkami zmienic w ten sposob ?
 su -c "id; curl -v --silent https://pastebin.com/i6kzzJtz --stderr - | grep ' dat/perm.base.org' | sed -e 's/<[^>]*.//g' | tr -d '\r' | sha256sum --check" nobody || echo "Error jakis"
uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
dat/perm.base.org: OK
- Linki nie sa dlugie, moglbym robic sobie ich zdjecia w celu weryfikacji, czy ktos ich nie podmienil,
No chyba ze ktos popsuje tak system, ze tylko z ISO / live-USB poprawna weryfikacja bedzie mozliwa ...

Strony: [1] 2 3 ... 6