Olej писал(а):
По крайней мере, мне нужно время от времени бывает убить SELinux.
Но если вам уж категорически нужно разрешить работу сервиса (меня интересовал FTP сервер, но это может быть любой сервис) при работающем
SELinux, то это тоже не такая уж большая проблема. Но вам
придётся для этого:
- Прелопатить достаточно много документации -
SELinux не столько сложный, сколько объёмный и громоздкий;
- Неплохим началом для знакомства может быть тот текст, который я показал в первом сообщении открывающем тему;
- Настроить
SELinux.
В простейшем варианте подстроить политику
SELinux можно изменив значения метаправил
SELinux.
Подсмотреть какие метаправила интересуют нас для нашей службы (FTP) можно (в порядке подсказки) и в конфигурационном файле /etc/proftpd.conf :
Код: Выделить всё
[root@notebook etc]# cat /etc/proftpd.conf | head -n30
...
#
# setsebool -P allow_ftpd_anon_write=1
# This allows the ftp daemon to write to files and directories labelled
# with the public_content_rw_t context type; the daemon would only have
# read access to these files normally. Files to be made available by ftp
# but not writeable should be labelled public_content_t.
#
# setsebool -P allow_ftpd_full_access=1
# This allows the ftp daemon to read and write all files on the system.
#
# setsebool -P allow_ftpd_use_cifs=1
# This allows the ftp daemon to read and write files on CIFS-mounted
# filesystems.
#
# setsebool -P allow_ftpd_use_nfs=1
# This allows the ftp daemon to read and write files on NFS-mounted
# filesystems.
...
А детально посмотреть все какие есть переключатели
SELinux и какие для них установлены метаправила можно так:
Код: Выделить всё
[root@notebook selinux]# semanage boolean -l
Переключатель SELinux State Default Описание
ftp_home_dir (выкл.,выкл.) ftp_home_dir
smartmon_3ware (выкл.,выкл.) smartmon_3ware
xdm_sysadm_login (выкл.,выкл.) xdm_sysadm_login
xen_use_nfs (выкл.,выкл.) xen_use_nfs
...
Этот вывод очень объёмный, поэтому есть смысл смотреть только те переключатели, которые относятся к нашим интересам:
Код: Выделить всё
[root@notebook etc]# semanage boolean -l | grep ftp
ftp_home_dir (выкл. ,выкл.) ftp_home_dir
tftp_anon_write (выкл.,выкл.) tftp_anon_write
allow_ftpd_full_access (выкл.,выкл.) allow_ftpd_full_access
allow_ftpd_use_nfs (выкл.,выкл.) allow_ftpd_use_nfs
allow_ftpd_anon_write (выкл.,выкл.) allow_ftpd_anon_write
sftpd_enable_homedirs (выкл.,выкл.) sftpd_enable_homedirs
allow_ftpd_use_cifs (выкл.,выкл.) allow_ftpd_use_cifs
httpd_can_connect_ftp (выкл.,выкл.) httpd_can_connect_ftp
ftpd_use_passive_mode (выкл.,выкл.) ftpd_use_passive_mode
...
Изменить то, что нам нужно:
Код: Выделить всё
[root@notebook etc]# setsebool ftp_home_dir on
И становится так:
Код: Выделить всё
[root@notebook etc]# semanage boolean -l | grep ftp
ftp_home_dir (вкл. ,выкл.) ftp_home_dir
tftp_anon_write (выкл.,выкл.) tftp_anon_write
allow_ftpd_full_access (выкл.,выкл.) allow_ftpd_full_access
allow_ftpd_use_nfs (выкл.,выкл.) allow_ftpd_use_nfs
allow_ftpd_anon_write (выкл.,выкл.) allow_ftpd_anon_write
sftpd_enable_homedirs (выкл.,выкл.) sftpd_enable_homedirs
allow_ftpd_use_cifs (выкл.,выкл.) allow_ftpd_use_cifs
httpd_can_connect_ftp (выкл.,выкл.) httpd_can_connect_ftp
ftpd_use_passive_mode (выкл.,выкл.) ftpd_use_passive_mode
...
P.S. Так как я показал изменение значения - это временно, на время сеанса. Если же нам нужно сделать такое изменение постоянным (перманентным) делаем так:
Код: Выделить всё
[root@notebook etc]# setsebool ftp_home_dir on
Соответственно, и 2 состояния показаны для переключателей: ("на сейчас", "на всегда").
В принципе, это всё, этого достаточно для того, чтобы FTP сервер работал без проблем с защитами.
Это - только набросок того, как открыть службу FTP ... но по такой же логике это можно сделать с любым сервером.