Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
ModSecurity to moduł zapory sieciowej typu open source (WAF), który doskonale nadaje się do ochrony Apache, Nginx i IIS przed różnymi cyberatakami atakującymi potencjalne luki w różnych aplikacjach internetowych
W tym artykule zainstalujemy i skonfigurujemy ModSecurity dla Nginx na CentOS 7, Debian 8 i Ubuntu 16.04.
root.Zgodnie z tym przewodnikiem zaktualizuj jądro i pakiety serwera do najnowszej dostępnej wersji.
Aby pomyślnie skompilować Nginx i ModSecurity, musisz zainstalować kilka pakietów oprogramowania w następujący sposób.
a) W CentOS 7:
yum groupinstall -y "Development Tools"
yum install -y httpd httpd-devel pcre pcre-devel libxml2 libxml2-devel curl curl-devel openssl openssl-devel
shutdown -r now
b) W systemie Debian 8 lub Ubuntu 16.04:
apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf
Ze względu na kilka niestabilności zgłoszonych w gałęzi ModSecurity dla gałęzi głównej Nginx, oficjalnie zaleca się na razie używanie najnowszej wersji nginx_refactoringgałęzi.
Pobierz nginx_refactoringgałąź ModSecurity dla Nginx:
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
Skompiluj ModSecurity:
a) W CentOS 7:
cd ModSecurity
sed -i '/AC_PROG_CC/a\AM_PROG_CC_C_O' configure.ac
sed -i '1 i\AUTOMAKE_OPTIONS = subdir-objects' Makefile.am
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Uwaga: dwa sedpowyższe polecenia służą do zapobiegania komunikatom ostrzegawczym podczas korzystania z nowszych wersji automake.
b) W systemie Debian 8 lub Ubuntu 16.04:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Pobierz i rozpakuj najnowszą stabilną wersję Nginx, która jest Nginx 1.10.3w momencie pisania:
cd /usr/src
wget https://nginx.org/download/nginx-1.10.3.tar.gz
tar -zxvf nginx-1.10.3.tar.gz && rm -f nginx-1.10.3.tar.gz
a) W CentOS 7:
Najpierw musisz utworzyć dedykowanego użytkownika nginxi dedykowaną grupę nginxdla Nginx:
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Następnie skompiluj Nginx, włączając ModSecurity i moduły SSL:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Zmodyfikuj domyślnego użytkownika Nginx:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) W systemie Debian 8 lub Ubuntu 16.04:
Po pierwsze, powinieneś użyć istniejącego użytkownika www-datai istniejącej grupy www-data.
Następnie skompiluj Nginx, włączając ModSecurity i moduły SSL:
cd nginx-1.10.3/
./configure --user=www-data --group=www-data --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Zmodyfikuj domyślnego użytkownika Nginx:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
Po pomyślnym zainstalowaniu Nginx powiązane pliki będą znajdować się w:
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
możesz przetestować instalację za pomocą:
/usr/local/nginx/sbin/nginx -t
Jeśli nic nie pójdzie źle, wynikiem powinno być:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Dla Twojej wygody możesz skonfigurować systemowy plik jednostki dla Nginx:
cat <<EOF>> /lib/systemd/system/nginx.service
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
KillStop=/usr/local/nginx/sbin/nginx -s stop
KillMode=process
Restart=on-failure
RestartSec=42s
PrivateTmp=true
LimitNOFILE=200000
[Install]
WantedBy=multi-user.target
EOF
Przechodząc do przodu, możesz uruchomić / zatrzymać / ponownie uruchomić Nginx w następujący sposób:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Znajdź następujący segment w obrębie http {}segmentu:
location / {
root html;
index index.html index.htm;
}
Wstaw poniższe linie do location / {}segmentu:
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
Ostateczny wynik powinien wynosić:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Zapisz i wyjdź:
:wq!
Uwaga: powyższa konfiguracja Nginx jest tylko przykładową konfiguracją do używania Nginx jako serwera WWW zamiast odwrotnego proxy. Jeśli używasz Nginx jako odwrotnego proxy, usuń #znak w dwóch ostatnich wierszach i wprowadź odpowiednie modyfikacje.
/usr/local/nginx/conf/modsec_includes.conf:
cat <<EOF>> /usr/local/nginx/conf/modsec_includes.conf
include modsecurity.conf
include owasp-modsecurity-crs/crs-setup.conf
include owasp-modsecurity-crs/rules/*.conf
EOF
Uwaga: powyższa konfiguracja zastosuje wszystkie OWASP ModSecurity Core Rules w owasp-modsecurity-crs/rules/katalogu. Jeśli chcesz zastosować tylko reguły selektywne, powinieneś usunąć include owasp-modsecurity-crs/rules/*.conflinię, a następnie określić dokładne reguły, których potrzebujesz po kroku 4.5.
cp /usr/src/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/
/usr/local/nginx/conf/modsecurity.confplik:
sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf
cd /usr/local/nginx/conf
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
cd owasp-modsecurity-crs
mv crs-setup.conf.example crs-setup.conf
cd rules
mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
Uruchom Nginx:
systemctl start nginx.service
Otwórz port 80, aby umożliwić dostęp z zewnątrz:
a) W CentOS 7:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) W Debianie 8:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
touch /etc/iptables
iptables-save > /etc/iptables
c) W systemie Ubuntu 16.04:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Skieruj swoją przeglądarkę internetową na:
http://203.0.113.1/?param="><script>alert(1);</script>
Służy grepdo pobierania komunikatów o błędach w następujący sposób:
grep error /usr/local/nginx/logs/error.log
Dane wyjściowe powinny zawierać kilka komunikatów o błędach podobnych do:
2017/02/15 14:07:54 [error] 10776#0: [client 104.20.23.240] ModSecurity: Warning. detected XSS using libinjection. [file "/usr/local/nginx/conf/owasp-modsecurity-crs/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf"] [line "56"] [id "941100"] [rev "2"] [msg "XSS Attack Detected via libinjection"] [data "Matched Data: found within ARGS:param: \x22><script>alert(1);</script>"] [severity "CRITICAL"] [ver "OWASP_CRS/3.0.0"] [maturity "1"] [accuracy "9"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-xss"] [tag "OWASP_CRS/WEB_ATTACK/XSS"] [tag "WASCTC/WASC-8"] [tag "WASCTC/WASC-22"] [tag "OWASP_TOP_10/A3"] [tag "OWASP_AppSensor/IE1"] [tag "CAPEC-242"] [hostname ""] [uri "/index.html"] [unique_id "ATAcAcAkucAchGAcPLAcAcAY"]
Otóż to. Jak widać, moduł ModSecurity pomyślnie zarejestrował ten atak zgodnie ze swoją domyślną polityką działania. Jeśli chcesz wprowadzić więcej ustawień niestandardowych, dokładnie przejrzyj i edytuj /usr/local/nginx/conf/modsecurity.conforaz /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.confpliki.
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.