Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Hướng dẫn khắc phục lỗ hổng bảo mật CVE-2019-11477 trên Cloud365
Nơi chứa các tài liệu tham khảo của dịch vụ Cloud365.
Bạn đang là Developer và bạn cần tracking các exceptions trong ứng dụng của mình ? Bạn đã bắt log cho ứng dụng của mình nhưng vẫn bị sót các exception? Hoặc đơn giản bạn muốn đếm số lần xuất hiện một lỗi cụ thể ở ứng dụng của bạn. Có rất nhiều công cụ có thể làm được việc đếm log, thống kê log lỗi ví dụ ELK, Graylog … Nhưng với môi trường cụ thể là Dev thì các công cụ trên có thể sẽ chưa phù hợp cho lắm. Và ở bài viết này mình sẽ hướng dẫn các bạn cài đặt và sử dụng Sentry, một công cụ tích hợp để quản lý lỗi trong ứng dụng của bạn.
Sentry là một giải pháp open-source cung cấp một nền tảng có khả năng realtime tracking và logging. Sentry kiểm soát lỗi và hiển thị cho bạn biết khi nào có lỗi, lỗi xảy ra ở đâu, user nào đang bị dính lỗi. Đặc biệt Sentry hỗ trợ khá nhiều ngôn ngữ và framework trong đó có Ruby, Js, Java, Django, iOS, .NET …
Chuẩn bị một SSD Cloud VPS CentOS7 có cấu hình tối thiểu như sau:
Giả vờ môi trường là lý tưởng, disable SELinux, và stop firewall và cài đặt các gói cần thiết
ssh root@you_vps
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
reboot
python --version
yum install epel-release -y
yum update -y
yum install python-pip mailcap -y
yum -y install gcc gcc-c++ kernel-devel
yum -y install python-devel libxslt-devel libffi-devel openssl-devel
yum install postgresql-server.x86_64 postgresql-contrib -y
postgresql-setup initdb
systemctl enable postgresql.service
systemctl start postgresql.service
/var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
systemctl restart postgresql.service
yum install redis -y
systemctl enable redis.service
systemctl start redis.service
yum install python-pip
pip install -U virtualenv
Lưu ý sử dụng python 2.7
useradd sentry
su - postgres
psql template1
create user sentry with password 'cloud365';
alter user sentry with superuser;
create database sentrydb with owner sentry;
\q
exit
su - sentry
virtualenv /home/sentry/sentry_app
source /home/sentry/sentry_app/bin/activate
pip install sentry==9.0.0
/home/sentry/sentry_app/bin/sentry init
/home/sentry/.sentry/sentry.conf.py
DATABASES = {
'default': {
'ENGINE': 'sentry.db.postgres',
'NAME': 'sentrydb',
'USER': 'sentry',
'PASSWORD': 'cloud365',
'HOST': 'localhost',
'PORT': '5432',
}
}
SENTRY_CONF=/home/sentry/.sentry sentry upgrade
Would you like to create a user account now? [Y/n]: y
Email: huytm@nhanhoa.com.vn
Password:
Repeat for confirmation:
Should this user be a superuser? [y/N]: y
User created: huytm@nhanhoa.com.vn
Added to organization: sentry
su -
yum install supervisor -y
systemctl start supervisord.service
systemctl enable supervisord.service
echo "files = supervisord.d/*.conf" >> /etc/supervisord.conf
/etc/supervisord.d/sentry.conf
[program:sentry-web]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry --config=/home/sentry/.sentry run web
autostart=true
autorestart=true
redirect_stderr=true
user=sentry
stdout_logfile=syslog
stderr_logfile=syslog
[program:sentry-worker]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry --config=/home/sentry/.sentry run worker
autostart=true
autorestart=true
redirect_stderr=true
user=sentry
stdout_logfile=syslog
stderr_logfile=syslog
startsecs=1
startretries=3
stopsignal=TERM
stopwaitsecs=10
stopasgroup=false
killasgroup=true
[program:sentry-cron]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry --config=/home/sentry/.sentry run cron
autostart=true
autorestart=true
redirect_stderr=true
user=sentry
stdout_logfile=syslog
stderr_logfile=syslog
systemctl restart supervisord.service
http://<your_vps_ip>:9000
Login vào vps với tài khoản root:
ssh root@your_vps
yum install git -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
docker -v
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
git clone https://github.com/getsentry/onpremise.git docker-sentry
cd docker-sentry
> Dockerfile
echo "FROM sentry:9.0.0-onbuild" > Dockerfile
cat Dockerfile
FROM sentry:9.0.0-onbuild
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
cp -n .env.example .env
docker-compose build
docker-compose run --rm web config generate-secret-key
# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY=SENTRY_SECRET_KEY
docker-compose run --rm web upgrade
docker-compose up -d
Would you like to create a user account now? [Y/n]: y
Email: huytm@nhanhoa.com.vn
Password:
Repeat for confirmation:
Should this user be a superuser? [y/N]: y
User created: huytm@nhanhoa.com.vn
Added to organization: sentry
http://<your_vps_ip>:9000
Như vậy, trong bài viết này mình đã giới thiệu về Sentry và cài đặt Sentry theo 2 cách trên CentOS 7. Trong bài viết tiếp theo mình sẽ hướng dẫn tích hợp Sentry với Framework mình đang sử dụng là Django. Cảm ơn các bạn đã theo dõi bài viết, chúc các bạn cài đặt thành công :D.
“if you have knowledge let others light their candles in it”
https://docs.sentry.io/server/installation/
Thực hiện bởi cloud365.vn