Ta strona wygląda najlepiej z włączoną obsługą JavaScript

Tworzenie własnej strony internetowej na Dark Web

 ·  ☕ 9 min czytania  ·  🐧 sysadmin

Cześć, poniższa treść pozwoli ci łatwo skonfigurować swoją własną stronę na Dark Web, zwanej również Dark Net. Pamiętaj, że ten samouczek dotyczy dystrybucji rodziny Red Hat, takich jak CentOS, Red Hat, Fedora itp. Dla dystrybucji rodziny Debian jest to nieco inaczej, ale nie jest trudne do dostosowania.

Bardzo podstawowa konfiguracja twojej własnej strony na Dark Web

Poniżej znajdziesz bardzo podstawową konfigurację, która pozwoli ci na skonfigurowanie tego, co jest potrzebne. Zaawansowana konfiguracja zabezpieczeń dla nginx została dodana poniżej tej sekcji, aby umożliwić ci wzmocnienie zabezpieczeń nginx. Oczywiście ten samouczek nie zawiera wszystkich kroków, ponieważ wymaga wiedzy, którą udostępniam w moich innych wpisach.

Aktualizacja pakietów
1
dnf update
Dodaj grupę adminów, która nadaje uprawnienia do sudo
1
groupadd admins
Dodaj użytkownika. Zastąp “user” losową nazwą.
1
useradd user
Dodaj użytkownika do grupy adminów
1
usermod -aG admins user
Ustaw hasło dla użytkownika
1
passwd user
Stwórz bardzo zaawansowane hasło. Polecam korzystać z menedżera haseł, takiego jak bitwarden.
Zastąp domyślne “wheel” na “admins”
1
sed -i 's/%wheel/%admins/g' /etc/sudoers
Sprawdź, czy użytkownik został dodany do grupy adminów
1
id user
Przełącz się na konto użytkownika
1
su - user
Zainstaluj edytor tekstu vim lub nano
1
sudo dnf install vim -y
lub
1
sudo dnf install nano  -y
Zainstaluj nginx i tor
1
sudo dnf install nginx tor -y
edytuj plik konfiguracyjny tor
1
sudo vim /etc/tor/torrc
Odkomentuj
1
2
3
4
5
Log notice file /var/log/tor/log
RunAsDaemon 1
DataDirectory /var/lib/tor
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
Zapisz i wyjdź
Uruchom, aktywuj podczas rozruchu i sprawdź status obu usług
1
2
3
sudo systemctl start nginx tor
sudo systemctl enable nginx tor
sudo systemctl status nginx tor
Wróć do roota (ctrl + D)
1
cat /var/lib/tor/hidden_service/hostname
Wyświetli to twój adres onion. To jest adres onion dla tego serwera. Powinieneś umieścić go w sekcji bloku serwera, zobacz “server_name” w pliku /etc/nginx/nginx.conf
Przełącz się z powrotem na konto użytkownika
1
su - user
Usuń zawartość w pliku index.html
1
sudo cat /dev/null > /usr/share/nginx/html/index.html
Edytuj plik index.html
1
sudo vim /usr/share/nginx/html/index.html
lub
1
sudo nano /usr/share/nginx/html/index.html
Wklej poniższy kod:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Witaj na Dark Web</title>
</head>
<body>
<p>Witaj świecie!</p>
</body>
</html>
Zapisz i wyjdź

*** Zabezpiecz nginx - bardzo podstawowa konfiguracja ***

Edytuj konfigurację nginx
1
sudo vim /etc/nginx/nginx.conf
Dodaj w sekcji bloku serwera
1
server_tokens off;
Dodaj w sekcji bloku serwera
1
listen 127.0.0.1:80 default_server
Zakomentuj:
1
2
listen       80 default_server;
listen       [::]:80 default_server;
Zabroń przeglądania katalogu
Dodaj “autoindex off;” w ten sposób:
1
2
3
location / {
                autoindex off;
        }
Przetestuj konfigurację
1
nginx -t
Zrestartuj nginx
1
sudo systemctl restart nginx

Ciesz się swoją stroną na Dark Web!

Zaawansowana ochrona Nginx

Możesz kontrolować i konfigurować ustawienia jądra Linux i sieciowe za pomocą pliku /etc/sysctl.conf. Pamiętaj, aby zrestartować serwer po wykonaniu tego kroku, proszę.

1
sudo vim /etc/sysctl.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# Unikaj ataku typu smurf
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Włącz ochronę przed błędnymi komunikatami ICMP
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Włącz syncookies w celu ochrony przed atakiem SYN flood
net.ipv4.tcp_syncookies = 1

# Włącz i loguj pakietów z fałszywymi źródłami, ze źródłowym trasowaniem i przekierowaniem
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# Brak pakietów ze źródłowym trasowaniem
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Włącz filtrowanie trasy wstecznej
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Upewnij się, że nikt nie może zmieniać tablic routingu
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0

# Nie działa jako router
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Włącz execshild
kernel.exec-shield = 1
kernel.randomize_va_space = 1

# Dostosuj IPv6
net.ipv6.conf.default.router_solicitations = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.default.max_addresses = 1

# Optymalizacja dla użycia portów w LBs
# Zwiększ limit deskryptorów plików systemowych
fs.file-max = 65535

# Pozwól na więcej PID (aby zredukować problemy z przepełnieniem); może uszkodzić niektóre programy 32768
kernel.pid_max = 65536

# Zwiększ limity portów IP systemu
net.ipv4.ip_local_port_range = 2000 65000

# Zwiększ maksymalny rozmiar bufora TCP ustawiany za pomocą setsockopt()
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608

# Zwiększ maksymalne rozmiary bufora TCP podczas autotuningowania Linux
# min, domyślny i maksymalny liczba bajtów do użycia
# Ustaw maksymalną wartość na co najmniej 4 MB lub wyższą, jeśli używasz bardzo dużych ścieżek BDP
# Okna TCP itp.
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1

Kontrola ataków typu przepełnienie bufora

Edytuj plik nginx.conf i ustaw ograniczenia rozmiaru bufora dla wszystkich klientów.

1
sudo vim /etc/nginx/nginx.conf

Edytuj i ustaw ograniczenia rozmiaru bufora dla wszystkich klientów w następujący sposób:

1
2
3
4
client_body_buffer_size  1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;

Wyłącz niepożądane metody HTTP

Sugeruję, aby wyłączyć metody HTTP, które nie zostaną użyte i które nie są wymagane na serwerze WWW. Jeśli dodasz poniższy warunek w bloku location pliku konfiguracyjnego wirtualnego hosta nginx, serwer będzie akceptować tylko metody GET, HEAD i POST, a odrzuci metody takie jak DELETE i TRACE.

1
2
3
location / {
    limit_except GET HEAD POST { deny all; }
}

Innym podejściem jest dodanie następującego warunku do sekcji serwera (lub bloku serwera). Można to uznać za bardziej uniwersalne, ale bądź ostrożny z instrukcjami warunkowymi w kontekście lokalizacji.

1
2
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 444; }

Konfiguracja Nginx w celu uwzględnienia nagłówków zabezpieczeń

Aby dodatkowo zabezpieczyć swój serwer WWW nginx, możesz dodać kilka różnych nagłówków HTTP w bloku http.

X-Frame-Options

Aby zapobiec atakom typu clickjacking, możesz używać nagłówka odpowiedzi HTTP X-Frame-Options, aby określić, czy przeglądarka powinna mieć zezwolenie na renderowanie strony w elemencie lub