เบกเบตเปเบฅเบทเปเบญเบเบเบตเปเบเปเปเบเปเปเบเบเบตเปเบชเบธเบเปเบเบตเบเบเบถเปเบเบเบฑเบเปเบนเปเบเบญเบเบเปเบญเบเบเบปเบเปเบถเปเบ. โเปเบเปโเบกเบฑเบโเปเบเบฑเบโเบเบตเปโเบเปเปโเบเปโเปเบโเบเบตเปโเบกเบฑเบโเปเบเปโเบเบฒเบโเปเบเบฑเบโเบชเบณเบฅเบฑเบ Mikhail, เบกเบฑเบโเปเบเบฑเบโเบเบฒเบโเบกเปเบงเบโเบเบทเปเบโเบชเบณเบฅเบฑเบโเบเปเบญเบ.
เบเปเบญเบเบเปเบญเบเปเบงเบปเปเบฒเบงเปเบฒเปเบเบทเปเบญเบเบเบญเบเบเปเบญเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบ UNIX-user: เบชเบฒเบกเบฒเบเบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบเปเบญเบเปเบเป mysql, php เปเบฅเบฐโเปเบฎเบฑเบโเปเบซเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเปเบฒเบโเบเบฒเบโ nginx.
เปเบฅเบฐเบฅเบฒเบงเบกเบตเปเบงเบฑเบเปเบเบเปเบญเบฒเบเปเบเบฑเบชเบซเบผเบทเบซเบเบถเปเบเปเบฅเบฐเปเบเบดเปเบเบซเบเบถเปเบเบเบตเปเบญเบธเบเบดเบเบเบปเบเปเบเบทเปเบญเปเบเบทเปเบญเบเบกเบทเบเปเปเบชเปเบฒเบ.
เบซเบเบถเปเบเปเบเบชเบฐเบเบฒเบเบเบตเปเปเบซเบผเบปเปเบฒเบเบตเปเบญเบธเบเบดเบเบเบปเบเปเบเบทเปเบญ chainsaws เบเบฑเปเบเบขเปเบฒเบเบซเบเบฑเบเปเบซเบเปเบเบขเบนเปเปเบ TOP เบเบญเบเปเบเบทเปเบญเบเบเบฑเบเบเบญเบเบซเบฒ. เปเบงเบฑเบเปเบเบเปเบเบตเปเปเบกเปเบเบเบฑเบเบเบปเบเบเบงเบเบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเบเปเบฒ, เปเบเปเบกเบตเบเบปเบเปเบเบปเปเบฒเปเบเปเบเบเบดเปเบชเบเบญเบเบเบฒเบเปเบเบกเบเบตเบกเบฑเบ. เบเบฑเปเบ DDoS, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, brute force, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบงเบเปเบเบปเบฒเบเบฝเบเบเปเบฒเบเบดเบเปเบซเบฑเบเบเบตเปเบซเบเบฒเบเบเบฒเบเปเบฅเบฐเบชเบปเปเบเบเบฒเบเบฅเปเบงเบเบฅเบฐเปเบกเบตเบเปเบเบซเบฒเปเบเบปเปเบฒเบเบฒเบเปเบฅเบฐ RKN.
เบเบฑเบเบเบตเบเบฑเบเปเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบชเบฐเบซเบเบปเบเบฅเบปเบเปเบฅเบฐเบเบงเบฒเบกเบชเบฐเบซเบเบปเบเบเบตเปเปเบเปเบเบฒเบเปเบเบฑเบเบเปเปเบเบต, เปเบฅเบฐเปเบงเบฑเบเปเบเบเปเปเบเปเปเบฅเบตเปเบกเบเปเบญเบเปเบญเบญเบเบเบฒเบเปเบเบงเปเบเบดเบเบเบญเบเบเบปเบเบเบฒเบเบเบปเปเบเบซเบฒ.
เบเบฑเปเบเปเบกเปเบเบเปเบฒเปเบงเบปเปเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบฅเบทเปเบญเบเบเบญเบ admin เปเบญเบ.
เบกเบฑเบเปเบเปเบเบฐเปเบเบปเปเบฒเบเบญเบเปเบกเบทเปเบญเปเบเบฅเบฐเบชเบฑเบเบเบฑเบเบเบถเปเบ: โเบเบฒเบ, เปเบเบปเปเบฒเบเปเปเปเบเบดเปเบเปเบเบตเบเปเบงเบตเบเบญเบเบเปเบญเบเบเป? เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเปเบญเบเบเบทเบเปเบฎเบฑเบ, เบเปเบญเบเบเปเปเบชเบฒเบกเบฒเบเบเบดเบชเบนเบเปเบเป, เปเบเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเปเปเปเบเปเบเบฐเปเบงเปเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบญเบฒเบเบดเบเบเบตเบชเบฒเบก. เบเบฒเบเบเบตเบกเบฑเบเปเบเบดเบเปเบงเบฅเบฒเปเบฅเปเบงเบชเบณเบฅเบฑเบเบเปเบญเบเบเบตเปเบเบฐเบเบดเปเบเบเบปเบงเบเบฐเบเบฒเบ paranoia?โ
เบชเบดเปเบโเบเบตเปโเบเบดเบโเบเบฒเบกโเบกเบฒโเปเบกเปเบโเบเบฒเบโเบชเบปเบโเบเบฐโเบเบฒโเปเบเบฑเบโเปเบงโเบฅเบฒโเปเบเบดเปเบโเบเบปเปเบงโเปเบกเบ เบเบถเปเบโเบชเบฒโเบกเบฒเบโเบชเบฐโเบซเบผเบธเบโเปเบเปโเบเบฑเปเบโเบเบตเป:
- เบเบดเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ hack เปเบกเปเบเบเปเบญเบเบเปเบฒเบเบญเบธเบเบปเบกเบชเบปเบกเบเบนเบ;
- เบเบนเปเปเบเบกเบเบตเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบชเบดเบเบเบดเบเบนเปเปเบเปเบชเบนเบเบชเบธเบ;
- เบเบฒเบโเปเบเบกโเบเบต (เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบกเบฑเบโเปเบเบตเบโเบเบถเปเบโ) เปเบกเปเบโเปเบเบปเปเบฒโเบซเบกเบฒเบโเบชเบฐโเปเบเบฒเบฐโเบขเบนเปโเปเบโเปเบงเบฑเบโเปเบโเบเบตเปโ;
- เบเบทเปเบเบเบตเปเบเบฑเบเบซเบฒเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเปเบเปเบฅเบฐเบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบงเปเบฒเบกเบตเบเบฒเบเปเบเบฒเบฐ;
- hack เบเปเปเบชเบฒเบกเบฒเบเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบฅเบฐเบซเบฑเบเปเบงเบฑเบเปเบเบเปเปเบฅเบฐเบเบฒเบเบเปเปเบกเบนเบ.
เบเปเบฝเบงเบเบฑเบเบเบธเบเบชเบธเบเบเปเบฒเบ.
เบเบฝเบเปเบเป IP frontend เบชเบตเบเบฒเบงเปเบเบดเปเบเบญเบญเบเปเบเปเบเปเบฅเบ. เบเปเปเบกเบตเบเบฒเบเปเบฅเบเบเปเบฝเบเบฅเบฐเบซเบงเปเบฒเบ backends เปเบฅเบฐ frontend เบเบปเบเปเบงเบฑเปเบ http (s), เบเบนเปเปเบเป / เบฅเบฐเบซเบฑเบเบเปเบฒเบเปเบกเปเบเปเบเบเบเปเบฒเบเบเบฑเบ, เบเปเปเบกเบตเบเบฒเบเปเบฅเบเบเปเบฝเบเบฅเบฐเบซเบฑเบ. เปเบเบเบตเปเบขเบนเปเบชเบตเปเบเบปเบฒ, เบเบธเบเบเบญเบเบเบปเบเปเบงเบฑเปเบ 80/443 เบเบดเบ. IP backend เบชเบตเบเบฒเบงเปเบกเปเบเปเบเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบเบเบฑเบเบเบนเปเปเบเปเบชเบญเบเบเบปเบเปเบเบปเปเบฒเบเบฑเปเบ, เปเบเบดเปเบ Mikhail เปเบงเปเบงเบฒเบเปเบเบขเปเบฒเบเบชเบปเบกเบเบนเบ.
เบเบดเบเบเบฑเปเบเบขเบนเปเบเปเบฒเบเปเปเบฒ Debian 9 เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเปเบเปเบกเปเบ, เบฅเบฐเบเบปเบเปเบเปเบเบทเบเปเบเบเบเปเบฝเบงเบเบฒเบเปเบฅเบเปเบเบ firewall เบเบฒเบเบเบญเบเปเบฅเบฐเบขเบธเบเปเบเบปเบฒ.
โเบเบปเบเบฅเบปเบ, เปเบซเปเบเปเบญเบเปเบเบปเปเบฒเปเบเบดเบ,โ เบเปเบญเบเบเบฑเบเบชเบดเบเปเบเปเบเบปเบฒเบเบญเบเปเบเบฑเบเปเบงเบฅเบฒเปเบถเปเบเบเบปเปเบงเปเบกเบ. "เบเปเบญเบเบเบฐเปเบซเบฑเบเบเปเบงเบเบเบฒเบเบญเบเบเปเบญเบเปเบญเบ."
เบเบตเปเบเบตเป เปเบฅเบฐเบเปเปเปเบ:
$ grep -F PRETTY_NAME /etc/*releas*
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
$ `echo $SHELL` --version
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
$ nginx -v
nginx version: nginx/1.10.3
$ gdb --version
GNU gdb (Debian 8.2.1-2) 8.2.1
เบเบญเบเบซเบฒเบเบฒเบ hack เบเบตเปเปเบเบฑเบเปเบเปเบเป
เบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเปเบฒเบญเบดเบเปเบ เบฎเบนเบโเปเบเบโเบเบฒเบโเบเบนเปโเปเบโ. เบเปเบญเบเบเบดเบเปเบเปเบเปเบฅเบฐเบเบดเบเบเปเบฒเบเบเบงเบเบกเบฑเบ auth-เปเบกเปเบเปเบญเบ, เบเบฐเบซเบงเบฑเบเบชเบฒเบ, เบเบฑเบเบเบถเบเบฅเบฐเบเบปเบ, เปเบฅเบฐเบญเบทเปเบเป, เบเปเบฒเปเบเบฑเบเปเบเปเบเป, เบเปเบญเบเบเบงเบเปเบเบดเปเบเบงเบฑเบเบเบตเบเบญเบเบเบฒเบเบชเปเบฒเบเปเบเบฅเป, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบญเบเปเบเบปเปเบฒเปเบเบงเปเบฒ cracker เบเบปเบเบเบฐเบเบดเบเบฐ "เบเบงเบฒเบเบฅเปเบฒเบ" เบเบปเบงเปเบญเบ, เปเบฅเบฐ Misha เปเบเป "เบขเบฝเบ" เบซเบผเบฒเบเปเบฅเปเบงเปเบเบเบฐเบเบฐเบเบตเปเบฅเบฒเบงเบเปเบฒเบฅเบฑเบเบเบญเบเบซเบฒเบเบปเบงเปเบญเบ. .
เบเปเบญเบเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฎเบนเบเปเบเบเบเบปเบเบเบฐเบเบด, เบเบฑเบเบเปเปเบเบฑเบเปเบเบปเปเบฒเปเบเบชเบดเปเบเบเบตเปเบเปเบญเบเบเบญเบเบซเบฒ, เบเปเบญเบเบชเบถเบเบชเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒ. เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เบเปเบญเบเบชเบปเบเปเบ nginx เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ, เปเบเบเบเบปเปเบงเปเบ, เบเปเปเบกเบตเบซเบเบฑเบเบญเบตเบเปเบ frontend เบเบปเบเปเบงเบฑเปเบเบกเบฑเบ.
configs เปเบกเปเบเบเบฐเบซเบเบฒเบเบเปเบญเบ, เปเบเบเบชเปเบฒเบเบเบตเปเบเบตเปเบเบปเปเบฒเปเบเปเบเบญเบฒเบเปเบเบฑเบชเปเบเบฅเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเปเบเบดเปเบเบเปเบฒเบเบเบงเบเบกเบฑเบ เปเบกเบงเปเบญเปเบเบซเบเบถเปเบเบซเบเบถเปเบ. เบเบธเบเบขเปเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบชเบฐเบญเบฒเบ, เปเบเปเปเบเบปเปเบฒเบเปเปเปเบเบตเบเบฎเบนเปเบงเปเบฒเบเปเบญเบเบเบฒเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ เบเบฐเบเบญเบเบเปเบงเบ, เปเบซเปเบเปเบญเบเปเบฎเบฑเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบก:
$ nginx -T
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
เบเปเบญเบเบเปเปเปเบเบปเปเบฒเปเบ: "เบฅเบฒเบเบเบฒเบเบขเบนเปเปเบช?"
$ nginx -V
nginx version: nginx/1.10.3
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2' --with-ld-opt='-Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_sub_module --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
เบเปเบฒเบเบฒเบกเบเบตเบชเบญเบเบเบทเบเปเบเบตเปเบกเปเบชเปเบเปเบฒเบเบฒเบกเบฅเบฒเบเบเบทเป: "เปเบเบฑเบเบซเบเบฑเบ nginx เบฎเบธเปเบเปเบเบปเปเบฒเปเบเปเปเบเบเบเบตเป?"
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบฅเบฐเบเบปเบเปเบเบทเปเบญเบงเปเบฒเบกเบตเบเบฒเบเบเบดเบเบเบฑเปเบเปเบงเบตเบเบฑเบเบซเบผเปเบฒเบชเบธเบ:
$ dpkg -l nginx | grep "[n]ginx"
ii nginx 1.14.2-2+deb10u1 all small, powerful, scalable web/proxy server
เบเปเบญเบเบเบณเบฅเบฑเบเปเบเบซเบฒ:
- Misha, เปเบเบฑเบเบซเบเบฑเบเบเปเบฒเบเบเบถเปเบเบเบฐเบเบญเบเบเบทเบเปเบซเบกเป nginx?
- เบฅเปเบเปเบฒ, เบเปเบญเบเบเปเปเบฎเบนเปเบงเบดเบเบตเปเบฎเบฑเบเปเบเบงเบเบตเป!
- เบเบตเปเบฅเปเบง, เปเบเบเบญเบ ...
Nginx เบกเบฑเบเปเบเปเบเบทเบเบชเปเบฒเบเปเบซเบกเปเบขเปเบฒเบเบเบฐเปเบเปเบเปเบฅเบฐเบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบฅเบฒเบเบเบทเปเบเบตเปเปเบเป "-T" เบเบทเบเปเบเบทเปเบญเบเปเบงเปเบเปเบงเบเปเบซเบเบเบปเบ. เบเปเปเบกเบตเบเบงเบฒเบกเบชเบปเบเปเบชเปเบเปเบเปเบฝเบงเบเบฑเบเบเบฒเบ hacking เปเบฅเบฐเบเปเบฒเบเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเบเบญเบกเบฎเบฑเบเบกเบฑเบเปเบฅเบฐ (เบเบฑเบเบเบฑเปเบเปเบเป Misha เบเปเบฝเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเปเบงเบเปเบเบทเปเบญเบเปเบซเบกเปเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก) เบเบดเบเบฒเบฅเบฐเบเบฒเปเบเปเปเบเบเบฑเบเบซเบฒ.
เปเบฅเบฐเปเบเปเบเบดเบเปเบฅเปเบง, เบเบฑเบเบเบฑเปเบเปเบเปเบเบนเปเปเบเบเบนเปเบซเบเบถเปเบเปเบเปเบฎเบฑเบเบชเบดเบเบเบด เบฎเบฒเบ'เบญเปเบฒ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฝเบเปเบเปเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบเบฐเปเบฎเบฑเบ เบเบดเบเบเบฑเปเบเบฅเบฐเบเบปเบเบเบทเบเปเปเป, เปเบฅเบฐเบกเบฑเบเบเปเปเบกเบตเบเบฐเปเบซเบเบเบเบตเปเบเบฐเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเบดเบเบเบฒเบเบขเบนเปเบเบตเปเบเบฑเปเบ, เปเบเปเปเบงเบฅเบฒเบเบตเปเบเบงเบฒเบกเบขเบฒเบเบฎเบนเปเบขเบฒเบเปเบเปเปเบญเบปเบฒเบเบฐเบเบฐเบเบฒเบเบเบญเบ. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเบเปเบญเบเบเบฒเบเบเบดเบเบเบฑเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบงเปเบ?
เปเบซเปเบเบฐเบเบฒเบเบฒเบกเบเบดเบเบเบฒเบก:
$ strace nginx -T
เบเบงเบโเปเบฎเบปเบฒโเปเบเบดเปเบโเบขเบนเปโเปเบโเบกเบฑเบโ, เบกเบตโเบขเปเบฒเบโเบเบฐโเปเบเปเบโเบเปเปโเบกเบตโเบชเบฒเบโเบเบฝเบโเบเปโเปเบ trace a laโ
write(1, "/etc/nginx/nginx.conf", 21/etc/nginx/nginx.conf) = 21
write(1, "...
write(1, "n", 1
เบเบฝเบเปเบเปเปเบเบทเปเบญเบเบงเบฒเบกเบกเปเบงเบ, เปเบซเปเบเบฝเบเบเบฝเบเบเบฒเบเบเบปเปเบเบเบปเบ.
$ strace nginx -T 2>&1 | wc -l
264
$ strace nginx -t 2>&1 | wc -l
264
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบฅเบฐเบซเบฑเบ /src/core/nginx.c
case 't':
ngx_test_config = 1;
break;
case 'T':
ngx_test_config = 1;
ngx_dump_config = 1;
break;
เปเบเปโเบเปเบฒโเปเบญเบปเบฒโเบฎเบนเบโเปเบเบโเบเบฒเบโ:
case 't':
ngx_test_config = 1;
break;
case 'T':
ngx_test_config = 1;
//ngx_dump_config = 1;
break;
เบซเบผเบท
case 't':
ngx_test_config = 1;
break;
case 'T':
ngx_test_config = 1;
ngx_dump_config = 0;
break;
เบเบฑเปเบเบเบฑเปเบ, เบฅเบฒเบเบเบทเปเปเบเบ "-T" เบเปเปเปเบเปเบเบทเบเบชเบฐเปเบเบ.
เปเบเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบ config เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบงเปเบ?
เบเปเบฒเบเบงเบฒเบกเบเบดเบเบเบญเบเบเปเบญเบเบเบทเบเบเปเบญเบเปเบฅเบฐเบเบฑเบเบซเบฒเปเบกเปเบเบเบฝเบเปเบเปเบขเบนเปเปเบเบเบปเบงเปเบ ngx_dump_config เปเบซเปเบเบฐเบเบฒเบเบฒเบกเบเบดเบเบเบฑเปเบเบกเบฑเบเปเบเบเปเบเป gdb, เปเบเบเบเบตเบเบตเปเบกเบตเบเบฐเปเบ --with-cc-opt -g เบเบฐเบเบธเบเบฑเบเปเบฅเบฐเบซเบงเบฑเบเบงเปเบฒเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฑเปเบ -O2 เบกเบฑเบเบเบฐเบเปเปเบเปเบฒเบฎเปเบฒเบเบเบงเบเปเบฎเบปเบฒ. เปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบฎเบนเปเบงเบดเบเบต ngx_dump_config เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบธเบเปเบเปเบเปเบ เบเปเบฅเบฐเบเบต 'T':, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบเบซเบฒเบเบฑเบเบเบตเป, เปเบเปเบเบดเบเบเบฑเปเบเบกเบฑเบเปเบเบเปเบเป เบเปเบฅเบฐเบเบต 't':
เปเบเบฑเบเบซเบเบฑเบเปเบเบปเปเบฒเบเบถเปเบเบชเบฒเบกเบฒเบเปเบเป '-t' เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบ '-T'เบเบฅเบฑเบญเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบ เบเปเบฒ(ngx_dump_config) เปเบเบตเบเบเบถเปเบเบเบฒเบเปเบ เบเปเบฒ(ngx_test_config):
if (ngx_test_config) {
if (!ngx_quiet_mode) {
ngx_log_stderr(0, "configuration file %s test is successful",
cycle->conf_file.data);
}
if (ngx_dump_config) {
cd = cycle->config_dump.elts;
for (i = 0; i < cycle->config_dump.nelts; i++) {
ngx_write_stdout("# configuration file ");
(void) ngx_write_fd(ngx_stdout, cd[i].name.data,
cd[i].name.len);
ngx_write_stdout(":" NGX_LINEFEED);
b = cd[i].buffer;
(void) ngx_write_fd(ngx_stdout, b->pos, b->last - b->pos);
ngx_write_stdout(NGX_LINEFEED);
}
}
return 0;
}
เปเบเปเบเบญเบ, เบเปเบฒเบฅเบฐเบซเบฑเบเบเบทเบเบเปเบฝเบเปเบเบเปเบเบชเปเบงเบเบเบตเปเปเบฅเบฐเบเปเปเบขเบนเปเปเบ เบเปเบฅเบฐเบเบต 'T':, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบงเบดเบเบตเบเบฒเบเบเบญเบเบเปเบญเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบ.
เบเบปเบเบชเบญเบ nginx.confเปเบเบเปเบเปเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเปเบเบเปเบฒเบงเปเบเบเบฒเบเบเบปเบเบฅเบญเบเปเบฅเปเบง, เบกเบฑเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบฑเปเบเบเบทเปเบเบงเปเบฒเบเปเบญเบเบกเบตเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฑเปเบเบเปเปเบฒเบชเปเบฒเบฅเบฑเบ malware เบเบตเปเบเบฐเปเบฎเบฑเบเบงเบฝเบ nginx เบเบฐเปเบเบ:
events {
}
http {
include /etc/nginx/sites-enabled/*;
}
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบกเบฑเบเบชเปเบฒเบฅเบฑเบ brevity เปเบเบเบปเบเบเบงเบฒเบก.
เปเบเบตเบเปเบเปเบเบปเบงเบเบตเบเบฑเบ
$ gdb --silent --args nginx -t
Reading symbols from nginx...done.
(gdb) break main
Breakpoint 1 at 0x1f390: file src/core/nginx.c, line 188.
(gdb) run
Starting program: nginx -t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, main (argc=2, argv=0x7fffffffebc8) at src/core/nginx.c:188
188 src/core/nginx.c: No such file or directory.
(gdb) print ngx_dump_config=1
$1 = 1
(gdb) continue
Continuing.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# configuration file /etc/nginx/nginx.conf:
events {
}
http {
map $http_user_agent $sign_user_agent
{
"~*yandex.com/bots" 1;
"~*www.google.com/bot.html" 1;
default 0;
}
map $uri $sign_uri
{
"~*/wp-" 1;
default 0;
}
map ะพ:$sign_user_agent:$sign_uri $sign_o
{
ะพ:1:0 o;
default ะพ;
}
map ะฐ:$sign_user_agent:$sign_uri $sign_a
{
ะฐ:1:0 a;
default ะฐ;
}
sub_filter_once off;
sub_filter 'ะพ' $sign_o;
sub_filter 'ะฐ' $sign_a;
include /etc/nginx/sites-enabled/*;
}
# configuration file /etc/nginx/sites-enabled/default:
[Inferior 1 (process 32581) exited normally]
(gdb) quit
เปเบเบเบฑเปเบเบเบญเบ:
- เบเบฑเปเบเบเบธเบเบขเบธเบเปเบเบเบฑเบเบเบฑเบ เบเบปเปเบเบเป ()
- เปเบเบตเบเบเบปเบงเปเบเบเบเบฒเบ
- เบเปเบฝเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเบเบตเปเบเปเบฒเบเบปเบเบเบปเบเบเบฐเบฅเบดเบเบเบญเบ config ngx_dump_config=1
- เบชเบทเบเบเปเป / เบชเบดเปเบเบชเบธเบเปเบเบเบเบฒเบ
เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบเปเบเบดเบเปเบเบเบเปเบฒเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเปเบฅเบทเบญเบเบเบดเปเบเบชเปเบงเบเบเบญเบเปเบกเปเบเบฒเบเบฒเบเบเบฒเบเบกเบฑเบ:
map $http_user_agent $sign_user_agent
{
"~*yandex.com/bots" 1;
"~*www.google.com/bot.html" 1;
default 0;
}
map $uri $sign_uri
{
"~*/wp-" 1;
default 0;
}
map ะพ:$sign_user_agent:$sign_uri $sign_o
{
ะพ:1:0 o;
default ะพ;
}
map ะฐ:$sign_user_agent:$sign_uri $sign_a
{
ะฐ:1:0 a;
default ะฐ;
}
sub_filter_once off;
sub_filter 'ะพ' $sign_o;
sub_filter 'ะฐ' $sign_a;
เปเบซเปเบเบดเบเบฒเบฅเบฐเบเบฒเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบเบขเบนเปเบเบตเปเบเบตเปเปเบเบฑเบเบฅเปเบฒเบเบฑเบ.
เบเปเบฒเบเบปเบ เบเบปเบงเปเบเบเบเบนเปเปเบเป'yandex/google:
map $http_user_agent $sign_user_agent
{
"~*yandex.com/bots" 1;
"~*www.google.com/bot.html" 1;
default 0;
}
เปเปเบฒเบเปเบฅเบดเบเบฒเบเบเบทเบเบเบปเบเปเบงเบฑเปเบ wordpress:
map $uri $sign_uri
{
"~*/wp-" 1;
default 0;
}
เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเบเบนเปเบเบตเปเบเบปเบเบขเบนเปเบเบฒเบเปเบเปเบเบฑเบเบชเบญเบเปเบเบทเปเบญเบเปเบเบเปเบฒเบเปเบเบดเบ
map ะพ:$sign_user_agent:$sign_uri $sign_o
{
ะพ:1:0 o;
default ะพ;
}
map ะฐ:$sign_user_agent:$sign_uri $sign_a
{
ะฐ:1:0 a;
default ะฐ;
}
เปเบเบเปเปเบเบงเบฒเบก html- เบซเบเปเบฒโเบเปเบฝเบโเปเบเบโ 'เปเบญ' เบชเบธเบ 'o' ะธ 'เบ' เบชเบธเบ 'a':
sub_filter_once off;
sub_filter 'ะพ' $sign_o;
sub_filter 'ะฐ' $sign_a;
เบเบฑเปเบเปเบกเปเบ, เบเบงเบฒเบกเบญเปเบญเบเปเบเบเบเบฝเบเปเบเปเบเบฑเปเบเปเบกเปเบ 'a' != 'เบ' เบเบทเบเบฑเบเบเบฑเบ 'o' != 'o':
เบเบฑเปเบเบเบฑเปเบ, bots เปเบเบทเปเบญเบเบเบฑเบเบเบญเบเบซเบฒเปเบเปเบฎเบฑเบ, เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเปเบเบงเบฒเบกเบเบปเบเบเบฐเบเบด 100% Cyrillic, เบเบตเปเปเบซเบเบทเปเบญเบเบฑเบเปเบเป diluted เบเบฑเบ Latin 'a' ะธ 'o'. เบเปเบญเบเบเปเปเบเปเบฒเบเบตเปเบเบฐเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบปเบเบเบฐเบเบปเบเบเปเป SEO, เปเบเปเบกเบฑเบเบเปเปเบซเบเปเบฒเบเบฐเปเบเบฑเบเปเบเปเบเปเบงเปเบฒเบเบปเบงเบซเบเบฑเบเบชเบทเบเบฑเปเบเบเปเบฒเบงเบเบฐเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบเบงเบเบเปเปเบเปเบฒเปเบซเบเปเบเปเบเบเบปเบเบเบฒเบเบเบปเปเบเบซเบฒ.
เบเปเบญเบเบชเบฒเบกเบฒเบเปเบงเบปเปเบฒเบซเบเบฑเบเปเบเป, เบเบปเบเบเบตเปเบกเบตเบเบดเบเบเบฐเบเบฒเบเบฒเบ.
เปเบญเบเบฐเบชเบฒเบ
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com