PrASK 2018 - konsultacje

W tym miejscu można zadawać pytania dotyczące przedmiotu Praktyczne Aspekty Sieci Komputerowych edycja 2018.

Mam pytanie odnośnie listy 2. Pojawiają się na niej sformułowania:

Doprowadź by analizator SSL […] pokazywał co najmniej wynik “A” dla Twojej strony.

[…] tak ustaw nagłówki http, żeby uzyskać wynik A+ dla swojej strony.

Która z poniższych to “moja strona”?

  • twojadomena.tld
  • www.twojadomena.tld
  • www1.twojadomena.tld
  • www2.twojadomena.tld
  • www3.twojadomena.tld

Tak samo jak w 4 “dotyczy www.twojadomena.tld oraz twojadomena.tld i certyfikatów wydanych przez LetsEncrypt”. Na www1-www3 to raczej nie jest możliwe. :wink:

Po wykładzie i po odpowiedzeniu na pytania w zad 1. powinno być oczywistym, że analizator nie zaakceptuje certyfikatu nie podpisanego przez zaufane CA… Już nie wspominając o wystawieniu najwyższej oceny.

Tak, to prawda, ale wolałem się upewnić co do treści tych poleceń. Dziękuję!

Jak punktowane jest zadanie 3 z listy 3 ? Ile punktów można za nie uzyskać?
Czy podpunkty a) i b) się wykluczają?

1p za wersję ze statycznymi kluczami / dowolną działającą.
2p za (a)
2p za (b)

Łącznie max 5p.

(a) i (b) niekoniecznie się wykluczają. Uwierzytelnianie klienta można bazować na kluczach (a) i/lub hasłach (b). Natomiast w obu podpunktach konieczna jest implementacja CA i klucza serwera (np. te z poprzedniej listy). Może Pan zrobić albo dwie wersje konfiguracji - jedną metodą z (a) i jedną z (b) - albo jedną wersję, łączoną (2fa) autentykacją klucz+hasło. Obie opcje za max punktów.

Mamy problem z @mzr z zadaniem 3 z listy 5. Według health-checka:

IPv6 nameserver delegation and glue trace (experimental)
Loop detected whilst resolving ns1.yukz.pl

Z tego co widzę błąd polega na tym że dla mojej domeny serwery DNS to:

  • ns1.pszczolow.ski,
  • ns1.yukz.pl,

i tylko dla pierwszego hosta jest ustawiony rekord GLUE. Niestety w OVH nie mogę ustawić rekordu GLUE dla serwera DNS spoza *.pszczolow.ski. Tak samo Janek nie może ustawić GLUE na mój serwer.

Da się to jakoś naprawić? Albo może ja źle rozumiem nasz problem.

Sytuacja jest dość prosta - pan ustawia GLUE dla DNSów ze swojej domeny, a kolega ze swojej. I to wszystko.

Alternatywnie: Pan i kolega robicie ns2 w swojej domenie: dla Pana było by to ns2.pszczolow.ski z adresem serwera DNS kolegi. Jeden adres IP może mieć kilka wpisów DNS. :slight_smile:

Dodatkowo: O ile dobrze pamiętam ten test można zaliczyć nawet jak tylko jeden DNS ma prawidłowe GLUE dla ipv6. Ale mogło się to zmienić.

[ lista7 ]
zad 9
Nie widzę opcji day of the month, czy chodzi o jakiś hack (np. cron) ?

zad 10
IP jest to samo (NAT), TTL to zadanie 8. Czy chodzi o MTU?

ad9

$ man iptables-extensions
time
       This matches if the packet arrival time/date is within a given range. All options are optional, but are ANDed when specified. All times are interpreted as UTC by default

[…]

[!] --monthdays day[,day...]
              Only match on the given days of the month. Possible values are 1 to 31. Note that specifying 31 will of course not match on months which do not have a 31st day; the same goes for 28- or 29-day February.

ad10 tak.

Działa komuś limit icmp/s ?
Standardowe rozwiązanie wydaje się nie działać.

Spoiler

Nie działa:
iptables -A INPUT -p icmp -m limit --limit 1/sec -j ACCEPT

Wychodzi na to, że reguła z ESTABLISHED,RELATED w module conntrack łapie pingi (co jest moim zdaniem mało oczywiste) więc ta regułka z limitem icmp powinna być na samym początku i do tego jeszcze potem explicite blokowanie pingów np. iptables -A INPUT -p icmp -j DROP.

Another hugely important part of ICMP is the fact that it is used to tell the hosts what happened to specific UDP and TCP connections or connection attempts. For this simple reason, ICMP replies will very often be recognized as RELATED to original connections or connection attempts. A simple example would be the ICMP Host unreachable or ICMP Network unreachable. These should always be spawned back to our host if it attempts an unsuccessful connection to some other host, but the network or host in question could be down, and hence the last router trying to reach the site in question will reply with an ICMP message telling us about it. In this case, the ICMP reply is considered as a RELATED packet.

Alternatywnie (i może nawet trochę ładniej) jest dopisać ! -p icmp przy regułce z conntrack.

ADD: bo (mam nadzieję) oczywistym jest, że ICMP nie jest stanowe.
https://www.linuxtopia.org/Linux_Firewall_iptables/x1571.html

mam na początku takie dwie regułki

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/min -j ACCEPT 
iptables -A INPUT -p icmp -j DROP

i dalej ping przechodzi bez limitu

1 polubienie

A jest Pan pewny, że to są pierwsze regułki i że pakiety się łapią?

przed tym miałem tylko regułki dla nata, a one nie powinny nic zmienić, ale najdziwniejsze jest to że nic nie zmieniając w iptables, nagle limit zaczął działać

PING ac333.cf (195.177.217.151) 56(84) bytes of data.
64 bytes from 195.177.217.151 (195.177.217.151): icmp_seq=1 ttl=110 time=24.2 ms
64 bytes from 195.177.217.151 (195.177.217.151): icmp_seq=2 ttl=110 time=22.4 ms
64 bytes from 195.177.217.151 (195.177.217.151): icmp_seq=3 ttl=110 time=24.0 ms
64 bytes from 195.177.217.151 (195.177.217.151): icmp_seq=4 ttl=110 time=22.8 ms
64 bytes from 195.177.217.151 (195.177.217.151): icmp_seq=44 ttl=110 time=21.0 ms

chociaż pierwsze kilka pakietów poszło bez limitu

Złapał się Pan na domyślną wartość burst (5 o ile pamiętam).

--limit-burst

followed by a number, indicating the maximum burst before the above limit kicks in.

[lista4]
Próbowałem przestawić WiFi na LAN i eth na WAN, ale coś pokręciłem z konfiguracją. WRT nie utworzył żadnej sieci bezprzewodowej, a interfejs eth “działa” przez parę sekund po starcie i wyłącza się (gasną diody na porcie do którego go podpinam).
Mógłbym prosić o poradę jak odzyskać dostęp?

[EDIT]
Udało mi się połączyć z routerem (Fail-Safe mode) i wyedytować zawartość dwóch zmienionych plików (przeżywają restart); niestety objawy bez zmian.

lukdz@lukdz:~$ ssh root@192.168.1.1
root@(none):~# mount_root
loading kmods from internal overlay
switching to jffs2 overlay
root@(none):/rom/root# cat /etc/config/wireless 

config wifi-device 'radio0'
	option type 'mac80211'
	option channel '11'
	option hwmode '11g'
	option path 'platform/ar933x_wmac'
	option htmode 'HT20'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'wan'
	option mode 'sta'
	option ssid 'LukR'
	option encryption 'psk2'
	option key 'Xedmi'
root@(none):/rom/root# cat /etc/config/network 

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd9b:7769:b222::/48'

config interface 'lan'
	option type 'bridge'
	option ifname 'eth0'
	option proto 'static'
	option ipaddr '192.168.2.1'
	option netmask '255.255.255.0'
	option ip6assign '60'

config interface 'wan'
	option proto 'dhcp'

Mode “sta” czylu klient wireless. Chyba chciał Pan zrobić ‘mode “ap”’.

Mode “sta” to pewnie jeden z powodów dlaczego nowy config nie zadziałał.

Niestety to nie wyjaśnia dlaczego po przywróceniu (przy pomocy Fail-Safe mode) dwóch zmienionych plików do wcześniejszej zawartości (zamieszczonej w poprzednim poście): ethernet wyłącza się po kilku sekundach od startu i lede nie łączy się z Wi-Fi.
PS. Po zmianie na ‘mode “ap”’ objawy analogiczne: ethernet wyłącza się po kilku sekundach od startu i lede nie tworzy sieci bezprzewodowej.