CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin
CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.
ModSecurity, çeşitli web uygulamalarındaki potansiyel güvenlik açıklarını hedefleyen çeşitli siber saldırılara karşı Apache, Nginx ve IIS'yi korumak için harika bir açık kaynaklı web uygulaması güvenlik duvarı (WAF) modülüdür
Bu makalede, Centgin 7, Debian 8 ve Ubuntu 16.04 üzerine Nginx için ModSecurity'yi kuracağız ve yapılandıracağız.
root
.Ardından bu kılavuzda , sunucunuzun Kernel ve en son sürüme Paketleri güncelleyin.
Nginx ve ModSecurity'yi başarıyla derleyebilmeniz için önce aşağıdaki gibi birkaç yazılım paketi yüklemeniz gerekir.
a) CentOS 7'de:
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) Debian 8 veya Ubuntu 16.04'te:
apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf
Nginx ana dalı için ModSecurity'de bildirilen çeşitli istikrarsızlıklar nedeniyle, şimdilik, nginx_refactoring
şubenin en son sürümünü mümkün olduğunca kullanmanız resmi olarak önerilir .
nginx_refactoring
Nginx için ModSecurity şubesini indirin :
cd /usr/src
git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git
ModSecurity'yi Derleyin:
a) CentOS 7'de:
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
Not: sed
yukarıdaki iki komut, daha yeni otomatik yapım sürümlerini kullanırken uyarı mesajlarını önlemek için kullanılır.
b) Debian 8 veya Ubuntu 16.04'te:
cd ModSecurity
./autogen.sh
./configure --enable-standalone-module --disable-mlogc
make
Nginx 1.10.3
Yazma sırasındaki Nginx'in en son kararlı sürümünü indirin ve arşivden çıkarın :
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) CentOS 7'de:
İlk olarak, Nginx için özel bir kullanıcı nginx
ve özel bir grup oluşturmanız gerekir nginx
:
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
Ardından ModSecurity ve SSL modüllerini etkinleştirirken Nginx'i derleyin:
cd nginx-1.10.3/
./configure --user=nginx --group=nginx --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module
make
make install
Varsayılan Nginx kullanıcısını değiştirin:
sed -i "s/#user nobody;/user nginx nginx;/" /usr/local/nginx/conf/nginx.conf
b) Debian 8 veya Ubuntu 16.04'te:
İlk olarak, mevcut kullanıcıyı www-data
ve mevcut grubu kullanmalısınız www-data
.
Ardından ModSecurity ve SSL modüllerini etkinleştirirken Nginx'i derleyin:
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
Varsayılan Nginx kullanıcısını değiştirin:
sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf
Nginx başarıyla yüklendiğinde, ilgili dosyalar şu konumda bulunur:
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"
kurulumu aşağıdakilerle test edebilirsiniz:
/usr/local/nginx/sbin/nginx -t
Eğer hiçbir şey yanlış gitmezse, çıktı:
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
Size kolaylık sağlamak için, Nginx için bir systemd birim dosyası oluşturabilirsiniz:
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
İleride, Nginx'i aşağıdaki şekilde başlatabilir / durdurabilir / yeniden başlatabilirsiniz:
systemctl start nginx.service
systemctl stop nginx.service
systemctl restart nginx.service
vi /usr/local/nginx/conf/nginx.conf
Segment içinde aşağıdaki segmenti bulun http {}
:
location / {
root html;
index index.html index.htm;
}
Aşağıdaki satırları location / {}
segmente ekleyin :
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
Nihai sonuç şöyle olmalıdır:
location / {
ModSecurityEnabled on;
ModSecurityConfig modsec_includes.conf;
#proxy_pass http://localhost:8011;
#proxy_read_timeout 180s;
root html;
index index.html index.htm;
}
Kaydet ve çık:
:wq!
Not: Yukarıdaki Nginx yapılandırması, Nginx'i ters proxy yerine web sunucusu olarak kullanmak için yalnızca örnek bir yapılandırmadır. Nginx'i ters proxy olarak kullanıyorsanız #
, son iki satırdaki karakteri kaldırın ve bunlarda uygun değişiklikleri yapın.
/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
Not: Yukarıdaki yapılandırma owasp-modsecurity-crs/rules/
dizindeki tüm OWASP ModSecurity Temel Kurallarını uygulayacaktır . Yalnızca seçmeli kuralları uygulamak istiyorsanız, include owasp-modsecurity-crs/rules/*.conf
satırı kaldırmalı ve adım 4.5'ten sonra tam olarak ihtiyacınız olan kuralları belirtmelisiniz.
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.conf
Dosyayı değiştirin :
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
Nginx'i başlat:
systemctl start nginx.service
Dışarıdan erişime izin vermek için 80 numaralı bağlantı noktasını açın:
a) CentOS 7'de:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload
b) Debian 8 hakkında:
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) Ubuntu 16.04'te:
ufw allow OpenSSH
ufw allow 80
ufw default deny
ufw enable
Web tarayıcınızı şu adrese yönlendirin:
http://203.0.113.1/?param="><script>alert(1);</script>
grep
Hata mesajlarını aşağıdaki gibi getirmek için kullanın :
grep error /usr/local/nginx/logs/error.log
Çıktı, aşağıdakine benzer birkaç hata iletisi içermelidir:
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"]
Bu kadar. Gördüğünüz gibi, ModSecurity modülü bu saldırıyı varsayılan eylem ilkesine göre başarıyla kaydetmiştir. Daha fazla özel ayar yapmak istiyorsanız, lütfen /usr/local/nginx/conf/modsecurity.conf
ve /usr/local/nginx/conf/owasp-modsecurity-crs/crs-setup.conf
dosyaları dikkatlice inceleyin ve düzenleyin .
CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.
Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.
OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.
Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?