RHEL 8 Beta แแแแแแแผแแขแแแแขแแทแแแแแแแแผแแแปแแแถแแแแแธแแแถแ แแแพแ แแถแแ แปแแแแแแธแแแแขแถแ แแแแแแแแแถแ แแแแแถแแแถแแแถแแแแแ แแถแแแแแขแแแธแแแแแแแธแแบแแแแแแแแแแพแแแถแแแแแปแแแถแแขแแปแแแแ แแผแ แแแแแแถแแแแแแแแแ แแพแแแแแแแแผแแแผแแแทแแแแถแแถแแถแแแแธแแธแแถแแแแแแพแแ แแแแแถแแ แแถแแแแแแแแแแแแแแทแแธแแแแแแขแแแแพ Red Hat Enterprise Linux 8 Beta แ
แ
แผแแแ Python แแแแแถแแถแแถแแแแแแแแแแแทแแธแแแแแแแทแแแแแแปแแ
แแแแแขแแแแขแแทแแแแแแ แแถแแผแแแแแถแ แแถแแแฝแแแแแ
แผแแแแแถแแ Django แแทแ PostgreSQL แแแแแถแแถแแแฝแแแแแ
แผแแแแแถแแแแถแแแแแแฝแแแแแแถแแแแแแแพแแแแแแแทแแธ แแทแแแแแแแแ
แแถแแแแแแแแ RHEL 8 Beta แแพแแแแธแแแแพแแถแแแถแแฝแแแฝแแแแ แแแแแถแแแแ แแพแโแแนแโแแแแแแโแแแแฟแแแแแโแแธแโแแธโแแแ (แแทแโแแถแโแ
แถแแแแแแถแแ)แ
แแแทแแถแแถแแแถแแแแแแแนแแแแแถแแแแแแผแ แแแแแแแถแแฝแแฑแแแ
แถแแแขแถแแแแแแแแแแปแแแถแแแแแแแแแแแธแแแแแแถแแแแแแแแแแแแแแแแทแแแแ แแแแพแแถแแแถแแฝแแแปแแแบแแแ แแทแแแถแแแแแแแแทแแแแถแแแถแแฝแแแแถแแแธแแแแ
แแแพแแ แแพแแแแธแ
แถแแแแแแพแแแถแแฝแแแแแแแแแแแธ แขแแแแขแถแ
แ
แถแแแแแแพแแแแแแแแแพแแแแแผแแผแ
แแฝแแแแแแแแแแถแแ แแผแ
แแแแแขแแแแขแถแ
แแพแแ
แแแถแแแแผแแขแแแธแแแแแแแผแแแพแแกแพแ แแทแแแแแแแแแแถแแถแแขแแแแแแแแ แ แพแแแแแแถแแแแแแแแแแ
แแแแแแแแแแแแแท แแทแแแแแแพแแแถแแแแแแแแ
แแถแแแแแแแแแแแแปแแแแแถแแแแแแแแแแแ แแแแแแแแแแแแแพแแแแแปแแแทแแถแแขแแแธแแถแแแแแแพแแแแแผแแแแแแแ
แ แผแแ แถแแแแแแพแแแแแแถแแแถแแแฑแแแแแแพแแแแถแแแแผแแแถแ RHEL 8 Beta VM แ แขแแแแขแถแ แแแกแพแแแแถแแแธแแแทแแแแทแแแธแแแ แฌแแแแพแแผแแแถแแแแแแ KVM แแแแแถแแแถแแฝแแแถแแแถแแแแแถแแแแแขแแแแ แแ แแแแแแแพแแผแแแถแแแแแแ แขแแแแแนแแแแแผแแแแแแแแ แแถแแแแแแแแแแแธแแธแแทแแแแทแแแแแแนแแแถแแแทแแแแแแแแแแถ แแทแแแทแแแแแแแขแแแแแแแพแแแแถแแแแแแแถแแแแถแแ แถแแแแแแพแแแแ (cloud-init) แ แขแแแแแทแแ แถแแแถแ แแแแแพแขแแแธแแทแแแแแถแแฝแแแ แแถแแแแแแแแแแถแ แฌแแแแ แแแแแแแถแแแ แแถแแแแแแแแ แแถแแแแแแแแแแถแแฝแแแนแแแแแพแ
แ แผแแแพแแแทแแทแแแแแพแแแถแแแแแแทแแแแแแผแแแแแพแแแถแแแถแแแแผแแ
แแถแแแแกแพแ Django
แแถแแฝแแแนแแแแแแแแแธแแแแปแแแแแ Django แขแแแแแนแแแแแผแแแถแแแแทแแถแแถแแแทแแแแทแ (virtualenv) แแถแแฝแ Python 3.5 แฌแแแแแแแถแแแแแ แแ แแแแปแแแแแแแ แแแถแแแแแถ แขแแแแขแถแ แแพแแแพแแแถ Python 3.6 แขแถแ แแแแพแแถแ แแผแแแทแแทแแแแแพแแแถแแพแแแแแทแแแถแแแแธแ
[cloud-user@8beta1 ~]$ python
-bash: python: command not found
[cloud-user@8beta1 ~]$ python3
-bash: python3: command not found
Red Hat แแแแพ Python แแแถแแแแแแแแถแงแแแแแแแแแแแแแแแ แแแแปแ RHEL แแผแ แแแแแ แแแปแขแแแธแแถแแแถแแแแแแแแแ?
แแถแแแทแแแบแแถแขแแแแขแแทแแแแแแ Python แแถแ
แแแพแแแ
แแแแแแแนแแแทแแขแแแธแแถแแแแแถแแแแแแผแแแธ Python 2 แแ
Python 2 แแแแแแแแแ Python 3 แแแแฝแแแถแแแแทแแแ
แแแแแแแถแแขแแทแแแแแแแแแถแแแแแแ แ แพแแแแแแแแแธแแถแแแแแ
แแแพแแแแแปแแแแ
แกแพแแฅแแแแแแแ แแผแ
แแแแ แแพแแแแธแแแแแแแแแแผแแแถแแงแแแแแแแแแแแแแแแแแแถแแแแแแแแถแ แแแแแแแแแแแแแแแแผแแขแแแแแแแพแแแแถแแแ
แผแแแ
แแถแแแแแแแแแแธแแแแ Python แแแแแแแแ Python แแแแผแแแถแแแแแถแแแแแแผแแแ
แแแแปแแแแแ
แแแแแแธ แแทแแแแแแแแแแแแถแแแแแปแแแถแแแแกแพแแแถแแ Python 2.7 แแทแ 3.6 แ แแแแแแถแโแแแแแแโแขแแแธโแแถแโแแแแถแแโแแแแผแ แแทแโแแผแโแ แแแปโแแแโแแฝแโแแโแแแแผแโแแถแโแแโแแแแพโแกแพแโแขแถแ
โแแโแแพแโแแ
โแแแแปแโแแถแโแแแแแปแแแโแแแแถแโแแ
โแแแแปแ
แแผแ แแแแ แแพแแแแธแแแฝแแแถแ Python แแแแพแแแถแ แขแแแแแแแถแแแแแแแกแพแแแแแ แแแแธแแแแปแแแแแ แแแแแฝแแแแแ แผแ python3-pip แแถแแถแแแนแแแแขแแแ
sudo yum install python36 python3-virtualenv
แ แแแปแขแแแธแแทแแแแแพแแถแแ แ แแแผแแปแแแแแแแแถแแแแผแ แแแ Langdon แแแแถแ แแทแแแแกแพแ pip3? แแแแ แแ แถแแขแแแธแแแแแแแแแแแแแทแแแแแแถแแแแแถแแแปแ แแถแแแแผแแแถแแแแแนแแแถ Ansible แแนแแแแแแผแแฑแแแแแกแพแ pip แแพแแแแธแแแแพแแแถแ แ แถแแแแถแแแแธแแแผแแปแ pip แแทแแแถแแแแ virtualenvs แแถแแฝแแแนแ pip แแแแถแแแแแแฝแแแแแขแถแ แแแแแทแแแแแทแแถแแ
แแถแแฝแแแนแแขแแแแแแแแแ python3 แแแแแแแปแแแแแพแแถแแแ แแถแแ แแแแแแแขแแแ แขแแแแขแถแ แแแแแแถแแฝแแแนแแแแแพแแแถแแแแกแพแ Django แแทแแแถแแแแแแแแแแแถแแแถแแแฝแแแถแแฝแแแนแแแแถแแแถแแปแแแแแแแแแแแแแแพแแ แแถแแแแแแพแแขแแปแแแแแแถแ แแแพแแแแแแถแแแ แแพแขแแธแแแบแแทแแ แแถแแแแแแแฝแแแแแ แถแแแ แแธแแแ แแแปแแแแแขแแแแแแแพแแแแถแแแขแถแ แแแแพแแแแพแแแถแแแแแถแแแแแแฝแแแแแแแฝแแแแ
แแพแแแนแแแแกแพแแแแแ PostgreSQL แแทแ Nginx แแแแแถแแแ แแแแปแ RHEL 8 แแถแแแแแถแแแพแแแแแแแแพ Yum แ
sudo yum install nginx postgresql-server
PostgreSQL แแนแแแแแแผแแฑแแแแถแ psycopg2 แแแปแแแแแแถแแแแผแแแแแถแแแ แแแแปแแแแทแแแแถแแแทแแแแทแแแแแแปแแแแแ แแผแ แแแแแแพแแแนแแแแกแพแแแถแแแแแแแพ pip3 แแฝแแแถแแฝแ Django แแทแ Gunicorn แ แแแปแแแแแแแแผแแแพแแแแแผแแแแแ แ virtualenv แ
แแถแแแแแแแถแแแถแแแแแแแแแแแแแถแ แแแพแแแพแแแแแถแแแแแแแถแแแแแพแแแพแแแแแแแแแแแแแแนแแแแแผแแแแแปแแแถแแแแกแพแแแแแแแ Django แแแปแแแแแแ แแแแแถแแแถแแแแแแแ แขแแแแขแถแ แแถแแแ แแแแแแแแแถแแแถแแถแแปแแแแแแแแแแแแแฏแแแถแแแธแแปแ แ แแถแแทแแแ FHS แแทแแถแแแถ /srv แแแแผแแแถแแแแแพแแพแแแแธแ "แแแแแถแแปแแแทแแแแแแแแถแแแแถแแแแแแแแแถแแแธแ-แแทแแแแแแแแแแแแแแแแแแแแทแ แแผแ แแถแแทแแแแแแแแแถแแแธแแแแแแ แแแแแ แแทแแแแแแแธแ แแทแแแแแแแแแแแถแแปแแแ แแพแแแถแแแธแแแ FTP แแทแแแถแแแแแแแแแแแแแแถแแแแแแแแแแแ" แแแแ (แแแแ แถแแแ แแแแปแ FHS -2.3 แแแแปแแแแแถแ 2004) แ
แแแแแทแแแถแแแแธแแแแแแพแ แแผแ แแแแแแพแแแถแแแขแแแธแแแแแแแแถแแแแแแพแแแแแผแแแถแแแ แแแแปแ /srv แแแแแถแแแแแแทแแแแทแแแแแขแแแแแแแพแแแแถแแแแแแแแทแแธแแแแแแพแ (cloud-user)แ
sudo mkdir /srv/djangoapp
sudo chown cloud-user:cloud-user /srv/djangoapp
cd /srv/djangoapp
virtualenv django
source django/bin/activate
pip3 install django gunicorn psycopg2
./django-admin startproject djangoapp /srv/djangoapp
แแถแแแแกแพแ PostgreSQL แแทแ Django แแบแแถแแแแแฝแแ แแแแแพแแแผแแแแแถแแแทแแแแแแ แแแแแพแแขแแแแแแแพแแแแถแแ แแแแแแแถแแขแแปแแแแถแแ แแฟแแแฝแแแแแแแแผแแ แแ แถแแแ แแแแแแกแพแ PostgreSQL แแแแผแแแบแแแแแแธแ postgresql-setup แแแแแแแผแแแถแแแแกแพแแแถแแฝแแแแแ แแ postgresql-server แ แแแแแแธแแแแแแฝแแขแแแแแแแพแแทแ แแ แแถแแแผแแแแแถแแแแแแถแแแแแแนแแแถแแแแแแแแแแแ แแแแแแแผแแแแแถแแแทแแแแแแ แแผแ แแถแแถแแ แถแแแแแแพแแ แแแแแ แฌแแแแพแแแถแแแแแพแฑแแแแแแแพแแกแพแแ แแพแแแแธแแแแแแแ แแถแแแแแแแแ PostgreSQL แแแแธแแ แแพแแแแแแแแ RHEL แแพแแแแแผแแแแแพแแแถแแแถแแแแแแแแถแ
sudo /usr/bin/postgresql-setup -initdb
แแแแแถแแแแแขแแแแขแถแ แ แถแแแแแแพแ PostgreSQL แแแแแแแพ systemd แแแแแพแแแผแแแแแถแแแทแแแแแแ แแทแแแแแ แแแแแแแแแ แแแแปแ Django แ แแผแแ แถแแแถแแแแผแแ แถแแแแแแพแ PostgreSQL แกแพแแแทแแแแแแถแแแแธแแแแพแแถแแแแแถแแแแแแผแแฏแแแถแแแแแแแแ แแถแแแแแแแแแแถแแแแแแแแแแถแแแขแแทแแทแแ (แแถแแแแแแถ pg_hba.conf) แแพแแแแธแแแแแแแ แแถแแแแแแแแแแถแแแแแปแแแถแแแแแแแแถแแแแแแแถแแแขแแแแแแแพแแแแถแแแแแแแแทแแธแ แแแแแทแแแพแขแแแแแฝแแแแแแแแถแแแแแถแแแแแแแแแ แแแแผแแแแแถแแแแถแแแแถแแแแแแผแแแถแแแแแแ IPv4 แแทแ IPv6 แแ แแแแปแแฏแแแถแ pg_hba.conf แ
systemctl enable -now postgresql
sudo -u postgres psql
postgres=# create database djangoapp;
postgres=# create user djangouser with password 'qwer4321';
postgres=# alter role djangouser set client_encoding to 'utf8';
postgres=# alter role djangouser set default_transaction_isolation to 'read committed';
postgres=# alter role djangouser set timezone to 'utc';
postgres=# grant all on DATABASE djangoapp to djangouser;
postgres=# q
แแ แแแแปแแฏแแแถแ /var/lib/pgsql/data/pg_hba.conf:
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
แแ แแแแปแแฏแแแถแ /srv/djangoapp/settings.py:
# Database
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '{{ db_name }}',
'USER': '{{ db_user }}',
'PASSWORD': '{{ db_password }}',
'HOST': '{{ db_host }}',
}
}
แแแแแถแแแแธแแแแแแแ แแถแแแแแแแแแฏแแแถแ settings.py แแแแปแแแแแแแ แแทแแแแแ แแแถแแแแแแแแ แแถแแแแแแแแแแผแแแแแถแแแทแแแแแแ แขแแแแขแถแ แ แถแแแแแแพแแแแถแแแธแแแแขแแทแแแแแแ แแพแแแแธแแแแถแแแแถแขแแแธแแแแแพแแแถแแ แแแแแถแแแแธแ แถแแแแแแพแแแแถแแแธแแแแขแแทแแแแแแ แแถแแถแแแแทแแแแขแแแแปแแแถแแแแแแพแแขแแแแแแแพแแแแถแแแแแแแแแแแ แแพแแแแธแแถแแแแแแแถแแแแแแถแแแแ แแผแแแแแถแแแทแแแแแแแ
./manage.py runserver 0.0.0.0:8000
./manage.py createsuperuser
WSGI? แแแ?
แแแถแแแธแแแแขแแทแแแแแแแแถแแแแแแแแแแแแแแถแแแแถแแแแแพแแแแแ แแแปแแแแแแพแแแแธแแแแพแแแถแแแแแแแทแแธ แขแแแแแแแผแแแแแแแแแแ แแถแแแแแแแแแแแถแแแธแแแ แแทแแแแแผแแแแธแแแแแแแแแแแถแแแ แแแปแ แแแแแถแแ Web Server Gateway Interface (WSGI) แ แแถแแแแแแแแผแแ แแถแ แแแพแแงแแถแ แแแ Apache HTTPD แแถแแฝแ uWSGI แฌ Nginx แแถแแฝแ Gunicorn แ
แแถแแแถแแแแแ Web Server Gateway Interface แแบแแแแแผแแแแแพแแธ web server แแ แแถแแ web framework Pythonแ WSGI แแบแแถแแแแแปแแปแแถแแแแขแแธแแแถแแแแขแถแแแแแแแ แแแแแแแแแถแแแธแ CGI แแ แแปแแแทแ แ แพแแแแแแแแแแแแ WSGI แแบแแถแแแแแแแถแแแถแแแแแแแ แแแแแทแแแทแแแธ web server แฌ Python framework แแแแแแแผแแแถแแแแแพแแแแถแแแ แแแปแแแแแแแแแธแแถแแถแแแแแพแแแแถแแแแแถแแแผแแแแผแแถแแแแแแ แแแแ แแแแถแแแถแแแปแแแแแแแแแแถแแถแ แแแพแแแ แแแแแแแพแแถแแแถแแฝแแแแแแแแแแแแถแแแแแ แแทแแแถแแแแแแพแแแถแ แแแพแแ แแแแปแแแแแธแแแ แแพแแแนแแแแแถแแถแแแแแแพแแขแแแแแแแแแแแถแ Gunicorn แแทแ Nginx แแถแแแแแแแแแแฝแแ
แแแแแถแแแแถแแแถแแปแแถแแแแธแแแแแแแแผแแแถแแแแกแพแแแ แแพแแแถแแแธแแแแแแแฝแ แแผแแแถแแแแแแแแแพแแแแ UNIX แแแแฝแแฑแแแแแแแแแแแถแแ แแแแแถแแแถแแแแแถแแแแแแแถแแแแแแแแถแแถแแแถแแแแแแแแแปแแแแแธแแถแแแแแ แแแแแแแถแแถแแแแแแแ แถแแแฝแแแแ แถแแแแ แ แพแแแแแแแแ แแถแแแแแแแแแแถแแแแแพแฑแแแแแแแแแแแแแแแแถแแ Gunicorn แแถแแแแแแแแแแแแแ
แแแแพแแแถแแแแแถแแแแแแพแ socket activated services แแบแแถแแแแแแถแแแ แแแแผแ แฏแแแถแแฏแแแถแแแแผแแแถแแแแแแพแแแแแแถแแแถแแแแแถแ ListenStream แ แแแขแปแแแ แ แแแปแ แแแแแแแ UNIX แแนแแแแแผแแแถแแแแแแพแ แแแแแถแแแแแฏแแแถแแฏแแแถแแแแแถแแแแแแถแแแแแแแแแแ แแแแธแแแแถแแแแแแผแแแนแแ แแแขแปแแแ แฏแแแถแแฏแแแถแแแแแ แแแแแถแแแแ แแ แแแแปแแฏแแแถแแฏแแแถแแแแถแแแแ แขแแแธแแแแแ แแแแแแแแบแแแแผแแ แ Gunicorn แแธแแแทแแถแแถแแแทแแแแทแ แ แพแแแแแแพแแแถแแ แ WSGI แแแแแถแแแแแแ UNIX แแทแแแแแแแทแแธ Django แ
แแแแแบแแถแงแแถแ แแแแแฝแแ แแแฝแแแแฏแแแถแฏแแแถแแแแแขแแแแขแถแ แแแแพแแถแแผแแแแแถแแ แแแแผแแแพแแแแกแพแแแแแแ
[Unit]
Description=Gunicorn WSGI socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
แฅแกแผแแขแแแแแแแผแแแแแแแแ แแถแแแแแแแแแแแแทแ Gunicorn แ
[Unit]
Description=Gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=cloud-user
Group=cloud-user
WorkingDirectory=/srv/djangoapp
ExecStart=/srv/djangoapp/django/bin/gunicorn
โaccess-logfile -
โworkers 3
โbind unix:gunicorn.sock djangoapp.wsgi
[Install]
WantedBy=multi-user.target
แแแแแถแแ Nginx แแถแแถแแแแ แถแแถแแแแแแแแถแแแแแแพแแฏแแแถแแแแแแแแ แแถแแแแแแแแแแแแผแแแแธ แแทแแแแแ แแแแฏแแแถแแแพแแแแธแแแแแถแแปแแแถแแทแแถแแทแแทแแแแ แแแแแทแแแพแขแแแแแแแปแแแแแพแแฝแแ แแ แแแแปแ RHEL แฏแแแถแแแแแแแแ แแถแแแแแแแแ Nginx แแถแแแธแแถแแแแ /etc/nginx/conf.d. แขแแแแขแถแ แ แแแแแงแแถแ แแแแแถแแแแแแแแ แแแแปแแฏแแแถแ /etc/nginx/conf.d/default.conf แ แพแแ แถแแแแแแพแแแแแถแแแแแ แแแแผแแแแแถแแแแถแแแแแ server_name แฑแแแแแแผแแแนแแแแแแแแแถแแแธแแแแแแขแแแแ
server {
listen 80;
server_name 8beta1.example.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /srv/djangoapp;
}
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
แ แถแแแแแแพแแแแแ Gunicorn แแทแ Nginx แแแแแแแพ systemd แ แพแแขแแแแแฝแ แแถแแแแพแแแแธแ แถแแแแแแพแแแถแแแแแแ
แแแ แปแแ แแแแแแแผแแแทแแแแข?
แแแแแทแแแพแขแแแแแแแ แผแแขแถแแแแแแถแแแ แแแแปแแแแแแแทแแธแแปแแแแแแแแขแแแ แขแแแแแแแแแถแแนแแแแฝแแแถแแแแ แปแ 502 Bad Gateway แ แแถแขแถแ แแแแแถแแแแแธแแถแแขแแปแแแแถแแแแแแแผแแธแแแแแแถแแแแแแแแ แแถแแแแแแแแแแทแแแแแนแแแแแผแ แฌแแถแขแถแ แแแแแถแแแแแธแแแแ แถแแแแปแแแแแถแแแแแแแแแแแแถแแแแแแนแแแถแแแแแแแแแแแแถแแ แผแแแแแพแแ แแแแปแ SELinux แ
แแ แแแแปแแแแแแแ แแแปแแแ แปแ nginx แขแแแแขแถแ แแพแแแแแแถแแแแผแ แแแแ
2018/12/18 15:38:03 [crit] 12734#0: *3 connect() to unix:/run/gunicorn.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.122.1, server: 8beta1.example.com, request: "GET / HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/", host: "8beta1.example.com"
แแแแแทแแแพแแพแแแถแแแแแ Gunicorn แแแแแแแถแแ แแพแแแนแแแแฝแแแถแแ แแแแพแแแแแ
curl โunix-socket /run/gunicorn.sock 8beta1.example.com
แ แผแแแพแแแแแแแแแแแถแ แแแปแขแแแธแแถแแแถแแฟแแแแแแพแแกแพแแ แแแแแทแแแพแขแแแแแพแแแแแแแ แแแป แขแแแแแแแแแถแแนแแแพแแแถแแแแ แถแแบแแถแแแแแแนแ SELinuxแ แแแแแถแแแพแแแแแปแแแแแพแแแถแแแแแทแ แแแแแแแถแแแแแแถแแแแแถแแฝแแแแแผแแแถแแแแแแพแ แแถแแแแผแแแถแแแแแแถแแแแถ init_tแ แ แผแแแพแแแถแแแแแแแแแนแแแแธแแแแแแแปแแแถแแขแแปแแแแแ
sudo setenforce 0
แแถแแแขแแแแแแขแถแ แแแแแถแแฑแแแแถแแแถแแแทแแแแ แแทแแแแแ แผแแแถแ แแแปแแแแแแแแแแแถแแแแแแถแแถแแแแแถแแแแแ แปแแแแแผแแพแแแแปแแแแแแ แแผแแแทแแแถแแแแแแแ แแพแแแแธแแแแถแแแแถแแแแแถแแแแ แถ แแแแแถแแแแแแพแแแนแแแแแแแแขแแแธแแแแแแแแแถแแแแแกแแแแ แแแแแแแแทแแ
แแแแแถแแแแแพแฑแแแแแแแแกแพแแแทแแแ แแแแปแแแแแแแทแแธแแปแแแ แฌแแแแพแแแถแแแถแแแแแแแแถ curl แแแแแแพแแกแพแแแทแ แขแแแแขแถแ แแพแแแแแแแแถแแแแแ Django แ
แแผแ แแแแ แแแแแถแแแแแพแฑแแแแแแถแแแแถแขแแแธแแแแแพแแแถแแแถแ แแทแแแทแแแถแแแแแ แถแแถแแขแแปแแแแถแแแแแแ แแพแแแพแ SELinux แแแแแแแแ
sudo setenforce 1
แแแแปแแแนแแแทแแแทแแถแแขแแแธ audit2allow แฌแแแแแพแแแแแแแแแถแแแแขแแแแพแแถแแแผแแแแแนแแแถแแฝแ sepolgen แแ แแธแแแแแ แแแแแถแแแทแแแถแแแแแแแทแแธ Django แแทแแแแแถแแแแ แแแแแแ แแผแ แแแแแแทแแแถแแแแแแธแแแแแแแแแขแแแธแแแ Gunicorn แขแถแ แ แแแ แผแแแแแพ แแทแแขแแแธแแแแแถแแฝแแแแแแทแแแแแถแแ แผแแแแแพแ แแผแ แแแแแ แพแ แแถแ แถแแแถแ แแแแแปแแแถแแแแแแแแแพแแแถแ SELinux แแพแแแแธแแถแแแถแแแแแแแแแ แแแแแแแแแแขแแปแแแแถแแฑแแแแแแแแทแแธแแแแพแแแถแ แแทแแแปแแแถแแแ แแแแปแแแแแแแ แแแปแแแแแแแ แแผแ แแแแแแแแแถแแแแแทแแแแแถแแแขแถแ แแแแผแแแถแแแแแแพแแแธแแฝแแแแ
แแถแแแแแแถแแแแแแขแแปแแแแถแ
แแทแแแแแแแแแแแแแถแแปแแแแแแแแแถแแแฎแขแแแธแแแแแแแแถแแขแแปแแแแถแแแ แแแแปแ SELinux แแแแแ แแแปแแแแแแฝแแแแแทแแแถแแขแแแธแแแแธแแแแแแ แแแปแแแแแถแ แแแพแแแแแแถแแแแถแแแแแพแแถแแแถแแฝแแแฝแแแแแแแแทแแแนแแแแแฝแแ แแ แแแแแแแแแแแถแแแแแแแผแแแถแแแแแแพแแแแแแแขแแแแพแแถแแแแแแแแ แแแแแถแแแแแแแแถแแแแแแพแแแแแถแแฑแแแแแแแแแแถแแแแแแแแถแแ แ แผแแแพแแแแแถแแถแแแแแแพแแแแแแถแแแแขแแปแแแแถแแแแแถแแแแแแฝแแ
แแพแแแแธแแแแแพแแแแแแแแแถแแขแแปแแแแถแแแถแแแแถแแแแแแแถแแแ แแแธแแแ แขแแแแแแแผแแแถแแแแแแถแแแแแฝแแ แแแฝแ แ แพแแขแแแแแแแแแผแแแแแแถแแแฏแแแถแแแแแแแแแแแแแแแแ แแพแแแธแแแ แงแแแแแแแบแแแแผแแแถแแแถแ แถแแแถแ แแแพแแแแธแแแแแผแแแแแปแแแแแแแแแถแแแแแธแ
sudo yum install selinux-policy-devel
แแแแแแถแแแแแแแแแถแแขแแปแแแแถแแแบแแถแงแแแแแแแแแแขแแแแแถแแแแแแแแแแแ แถ แแถแแทแแแแแ แแแแแทแแถแแขแแแธแแแแแแทแแธแแแแถแแแแแแฝแ แฌแแแแแแทแแธแแแแแนแแแแแแผแแแแแแแแถแแแแแแถแแแแแแแแถแแแแแแพแแแฝแ แ แพแแ แแแแปแแแแแธแแแ แแแแแถแแแแแแแแแแแถแแขแแปแแแแถแแแแแแถแแ Gunicorn แแนแแแถแแแแแแแแแถแแแแแแถแแแแแขแถแ แแแแพแแ แแถแ - แแแแแถแแแแแแแแ แแแแ (gunicorn_t) แแแแแถแแแแแแแแแแแแพแแแนแแแแแพแแพแแแแธแแแแแถแแแแถแแแแแแทแแแแแทแ แแแพแ (gunicorn_exec_t) แ แพแแแแแแถแแแแแแแแ แแแถแแแแแถแแแแแแผแแแแแแถแแแแแแแแแแแแพแแแแธแแแแแถแแแฑแแแแถแแแแแนแแแแแผแแ แแแแพแแแถแแแแแพแแแถแแ แแแแแถแแแ แปแแแแแแแแแแแแแแแแถแแแแแถแแถแแแพแแแถแแแแแถแแแพแแแ แแแแแแแแถแแแแผแแแถแแแแแปแแ
gunicorn.teแ
policy_module(gunicorn, 1.0)
type gunicorn_t;
type gunicorn_exec_t;
init_daemon_domain(gunicorn_t, gunicorn_exec_t)
permissive gunicorn_t;
แขแแแแขแถแ แ แแแแแแฏแแแถแแแแแแถแแแแแแ แ แพแแแแแ แผแแแถแแ แแแแปแแแแแแแแแแแแแแขแแแแ
make -f /usr/share/selinux/devel/Makefile
sudo semodule -i gunicorn.pp
sudo semanage permissive -a gunicorn_t
sudo semodule -l | grep permissive
แแผแแแทแแทแแแแแพแแแถแแพ SELinux แแแแปแแแถแแถแแแขแแแธแแแแแแแแ แแแแ แแธแขแแแธแแแแแแแทแแแทแแแแแถแแแแแแแแพแแแแแปแแ แผแแแแแพแ
sudo ausearch -m AVC
type=AVC msg=audit(1545315977.237:1273): avc: denied { write } for pid=19400 comm="nginx" name="gunicorn.sock" dev="tmpfs" ino=52977 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:var_run_t:s0 tclass=sock_file permissive=0
SELinux แแถแแแถแ Nginx แแธแแถแแแแแแแแทแแแแแแแแ แแถแแแแแแ UNIX แแแแแแแพแแแ Gunicorn แ แแถแแแแแแถ แแแแปแแแแแธแแแแแแ แแแแแแแแถแแ แถแแแแแแพแแแแแถแแแแแแผแ แแแปแแแแแแถแแแแแ แถแแแแแแแแแแแแแแแ แแถแแแปแแ แขแแแแแแขแถแ แแแแถแแแแแแผแแแถแแแแแแแแแแแธแแแแแถแแแแแแแทแแแ แแถแแแแขแแปแแแแถแแ แฅแกแผแแแผแแแแแถแแแแธ httpd_t แแ แแแแขแแปแแแแถแแ แแถแแนแแแแแแแฑแแ Nginx แแผแแแถแแ แผแแแแแพแแแแถแแแ แถแแแถแ แ แ แพแแแพแแขแถแ แแแแแแถแแฝแแแนแแแถแแแถแแแแแถแแแแแ แปแแแแแแแแแแแ
sudo semanage permissive -a httpd_t
แแผแ แแแแแแ แแแแแแแขแแแแแถแแแแแแแแแแแแพแแแแธแแแแแถ SELinux แแถแแแถแ (แขแแแแแทแแแถแแทแแแฝแแ แถแแ แแแแธแแแแแแ SELinux แแ แแแแปแแแแแแแถแแแแแแแทแ) แ แพแแแแแขแแปแแแแถแแแแแผแแแถแแแแแปแ แขแแแแแแแผแแแแแแแแแแแถแแพแขแแแธแแแแแแแผแแแแแแถแแแแถ gunicorn_exec_t แแพแแแแธแฑแแแขแแแธแแแแแพแแแถแแแถแแแแแนแแแแแผแแ แแแแแแแแ แแแแแถแแแแแแ แผแแแพแแแแ แแแแแแแพแแแแธแแพแแแถแแแแแธแขแแแธแแถแแแนแแแแแแนแแแถแแ แผแแแแแพแ
sudo ausearch -m AVC -c gunicorn
แขแแแแแนแแแพแแแถแแแถแ แแแพแแแแแแถแ 'comm="gunicorn"' แแแแแแแพแแทแ แแ แแถแแแแแแแแแพแฏแแแถแแแแแปแ /srv/djangoapp แแผแ แแแแแ แแแถแแแแถแแแแแแแบแแถแแถแแแแแแแแถแแฝแแแแแปแแ แแแแแแถแแแแแแแแถแแแแแถแแแแแแแแถแแแแแแ
แแแปแแแแแแพแแแธแแแ แแถแแแแแแแแแแ แกแพแแ
type=AVC msg=audit(1545320700.070:1542): avc: denied { execute } for pid=20704 comm="(gunicorn)" name="python3.6" dev="vda3" ino=8515706 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:var_t:s0 tclass=file permissive=0
แแแแแทแแแพแขแแแแแแแกแแแแพแแแแแถแแแถแแแแแแแถแแแแ gunicorn แฌแแแแพแแแถแแแถแแแแแแแแถ ps แขแแแแแนแแแทแแแพแแแแแพแแแถแแแแแแแแปแแแแแพแแแถแแแแ แแถแ แถแแแแผแ แแถ gunicorn แแแแปแแแแแถแแถแแ แผแแแแแพแแแแแแทแแธแแแแแแ Python แแ แแแแปแแแแทแแแแถแ virtualenv แแแแแแพแ แแแแขแถแ แแแแพแแแถแแแแแแแธแแแแแแแแ แแผแ แแแแแฅแกแผแแแแ แ แผแแแพแแแแแแถแแแฏแแแถแแแแแขแถแ แแแแแทแแแแแทแแถแแแถแแแแธแแแแแ แพแแแทแแทแแแแแพแแแถแแพแแพแแขแถแ แแพแแแแแแแแถแแแแแ Django แแแแแแพแแแแแฌแแแ
chcon -t gunicorn_exec_t /srv/djangoapp/django/bin/gunicorn /srv/djangoapp/django/bin/python3.6
แแแแถแแแแแแถแแแแแพแแแนแแแแแผแแ แถแแแแแแพแแกแพแแแทแ แแปแแแแแแแแถแแแแแธแขแถแ แแแแผแแแถแแแแแพแแแพแแ แขแแแแขแถแ แ แถแแแแแแพแแแถแกแพแแแทแแแแแถแแ แฌแแแแแแแแแแถแแแแ แ แพแแขแแปแแแแถแแฑแแแแแแแ แถแแแแแแพแแแถแแ แแแแขแแแแแพแแแแ แแแแแแแ แแแแปแแแแแแแทแแธแแปแแแแ แแแแแแแแแถแแแแถแแแแพแแแถแแแถแแแแฝแแแแแถแแแแแนแแแแแผแแแแแแแแพ ps แ
ps -efZ | grep gunicorn
แแปแแแแแแ แแแแแพแแแแแแถแแแ SELinux แแแแแแถแแ แแแแแแแแ!
แแแแแทแแแพแขแแแแแแแกแแแแพแแแถแ AVC แฅแกแผแแแแ แแถแแ แปแแแแแแแแถแ permissive=1 แแแแแถแแแขแแแธแแแแแแแแถแแแแแแถแแแแแแนแแแแแแแทแแธ แแทแ permissive=0 แแแแแถแแแแแแแแแแแแแแแ แแแแ แแแแแทแแแพแขแแแแแแแแถแแแแแแแแแแถแแ แผแแแแแพแแแแแแทแแธแแทแแแแแถแแแแแแผแแแถแ แขแแแแขแถแ แแแแแแแแแทแแธแแแขแแแแปแแแพแแแแธแแแแแแแถแแแแแ แถแแแแแแแแถแแแแถแแแถแแแแ แแแ แแแปแแแแแแ แผแแแแแแแแแแ แแถแแถแแถแแแแขแแแแปแแแแแปแแแถแแแแแแถแแแแแแแแแฑแแแแถแแแปแแแแแทแแถแ แแทแแแแฝแแแถแแแแแแแแแ แแแถแแแแถแแ แแทแแขแถแ แแแแพแแถแแแแแแแแแ Django แ
sudo ausearch -m AVC
แแถแแแพแแกแพแ!
แแแแแแ Django แแแแแแแปแแแแแพแแแถแแแถแแแแแ แถแแแแแฝแแแถแแฝแแแนแแแแแแแแถแแแปแแแแแแแขแแแแพ Nginx แแทแ Gunicorn WSGI แ แแพแแแถแแแแแแแแ
แแถแแแแแแแแ Python 3 แแทแ PostgreSQL 10 แแธแแแแถแแ RHEL 8 Beta แ แฅแกแผแแแแ แขแแแแขแถแ
แแแแแแแ
แแปแ แแทแแแแแแพแ (แฌแแแแถแแแแแแถแแแแแแแถแ) แแแแแแทแแธ Django แฌแแแแแแแแงแแแแแแแแแแถแแแแแแแแแแแ
แแแแปแ RHEL 8 Beta แแพแแแแธแแแแพแแแแแแแแแแแแแทแแแแแแแแพแแแถแแแแแแแแ
แแถแแแแแแแแ แแแแแแขแแถแแขแแปแแแแ แฌแแผแแแแธแแแแแแปแแแถแแแแแแแแ
แแถแแแแแแแแแแแแ
แแแแแ: www.habr.com