summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdenetwork/kppp/security.docbook
blob: a0ae43a1f1d6d05138b0b3ee50d11e069f75974f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<chapter id="security">
<title
>&kppp; и безопасность</title>

<para
>В основном этот раздел предназначен для суперпользователей (<systemitem
>root</systemitem
>), людей с высокими потребностями в безопасности и тех, кто просто интересуется безопасностью. Нет необходимости в прочтении этого материала тем, кто использует &Linux; дома, тем не менее, кое-какие знания можно почерпнуть и отсюда.</para>

<sect1 id="security-restricting-access">
<title
>Запрет на доступ к &kppp;</title>

<para
>Системный администратор может ограничить доступ на использование &kppp;. Существует два способа для достижения этого.</para>

<sect2 id="security-group-permissions">
<title
>Разрешение на доступ на уровне привилегий группы</title>

<para
>Создайте новую группу (назовите её, к примеру, <systemitem
>dialout</systemitem
> или как-нибудь в этом роде) и добавляйте в неё тех пользователей, кому разрешено использовать &kppp;. Затем наберите в командной строке:</para>

<screen
><prompt
>#</prompt
> <userinput
><command
>chown</command
> <option
>root.dialout</option
> <filename
>/opt/kde/bin/kppp</filename
></userinput>
<prompt
>#</prompt
> <userinput
><command
>chmod</command
> <option
>4750</option
> <filename
>/opt/kde/bin/kppp</filename
></userinput
>
</screen>

<para
>Здесь подразумевается, что &kde; установлена в каталог <filename class="directory"
> /opt/kde/</filename
> и что новая группа называется <systemitem
>dialout</systemitem
>.</para>

</sect2>

<sect2 id="security-kppps-way">
<title
>Запрет на доступ с непосредственным использованием &kppp;</title>

<para
>С самого начала &kppp; проверяет, существует ли файл <filename
>/etc/kppp.allow</filename
>. Если такой файл существует, только перечисленные в нем пользователи могут использовать программу. Этот файл должен быть открыт для всех на чтение (но, конечно, <emphasis
>НЕ</emphasis
> запись.) Распознаваемыми являются только имена пользователей, вы не можете использовать <acronym
>UID</acronym
> в этом файле. Короткий пример:</para>

<screen
># /etc/kppp.allow
# строки комментариев игнорируются,
# как и пустые строки

fred
karl
daisy
</screen>

<para
>В приведённом примере только пользователи <systemitem
>fred</systemitem
>, <systemitem
>karl</systemitem
> и <systemitem
>daisy</systemitem
> могут использовать программу, а так же пользователи с <acronym
>UID</acronym
> 0 (нет необходимости добавлять суперпользователя в этот файл).</para>

</sect2>

</sect1>

<sect1 id="security-why-suid">
<title
>У &kppp; присутствует <acronym
>SUID</acronym
>-бит. А безопасность?</title>

<para
>Представляется невозможным написать программу дозвона без использования <acronym
>SUID</acronym
>-бита, безопасную и простую в использовании неопытными пользователями. В плане безопасности &kppp; использует следующую стратегию.</para>

<itemizedlist>
<listitem>
<para
>Процессы программы &kppp; разветвляются в самом начале выполнения программы.</para>
</listitem>
<listitem>
<para
>Основной процесс, ответственный за операции с <acronym
>GUI</acronym
> (такие как взаимодействие с пользователем), теряет бит <acronym
>SUID</acronym
> после разветвления и выполняется с привилегиями обычного пользователя.</para>
</listitem>
<listitem>
<para
>Порождённый процесс сохраняет привилегии и отвечает за все действия, которым нужны привилегии <systemitem
>суперпользователя</systemitem
>. Для обеспечения безопасности этой части, в ней не используются вызовы библиотек &kde; и &Qt;, а только вызовы обычных библиотек. Исходный код этого процесса короток (около 500 строк) и хорошо документирован, его легко проверить на наличие дыр в безопасности.</para>
</listitem>
<listitem>
<para
>Головной и порождённый процессы взаимодействуют согласно стандартному <acronym
>IPC</acronym
> (взаимодействие процессов) ОС &UNIX;.</para>
</listitem>
</itemizedlist>

<para
>Особая благодарность выражается Harri Porten за написание этого замечательного участка программы. Задача казалась невыполнимой, но он сумел решить её за одну неделю.</para>

</sect1>

</chapter>