1 |
scen 11/01/26 22:33:12 |
2 |
|
3 |
Modified: hardenedfaq.xml |
4 |
Log: |
5 |
Version 3.2, revision 1.25 of EN CVS |
6 |
|
7 |
Revision Changes Path |
8 |
1.7 xml/htdocs/proj/it/hardened/hardenedfaq.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?rev=1.7&view=markup |
11 |
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?rev=1.7&content-type=text/plain |
12 |
diff : http://sources.gentoo.org/viewvc.cgi/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml?r1=1.6&r2=1.7 |
13 |
|
14 |
Index: hardenedfaq.xml |
15 |
=================================================================== |
16 |
RCS file: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v |
17 |
retrieving revision 1.6 |
18 |
retrieving revision 1.7 |
19 |
diff -u -r1.6 -r1.7 |
20 |
--- hardenedfaq.xml 25 Aug 2010 21:21:21 -0000 1.6 |
21 |
+++ hardenedfaq.xml 26 Jan 2011 22:33:12 -0000 1.7 |
22 |
@@ -1,6 +1,6 @@ |
23 |
<?xml version="1.0" encoding="UTF-8"?> |
24 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
25 |
-<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v 1.6 2010/08/25 21:21:21 scen Exp $ --> |
26 |
+<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/it/hardened/hardenedfaq.xml,v 1.7 2011/01/26 22:33:12 scen Exp $ --> |
27 |
|
28 |
<guide link="/proj/it/hardened/hardenedfaq.xml" lang="it"> |
29 |
<title>Domande frequenti su Gentoo Hardened</title> |
30 |
@@ -17,6 +17,15 @@ |
31 |
<author title="Collaborazione"> |
32 |
<mail link="pageexec@××××××××.hu">Il Team PaX</mail> |
33 |
</author> |
34 |
+<author title="Contributi"> |
35 |
+ <mail link="klondike@×××××××××.es">klondike</mail> |
36 |
+</author> |
37 |
+<author title="Contributi"> |
38 |
+ <mail link="zorry@g.o">Magnus Granberg</mail> |
39 |
+</author> |
40 |
+<author title="Contributi"> |
41 |
+ <mail link="blueness@g.o">Anthony G. Basile</mail> |
42 |
+</author> |
43 |
<author title="Traduzione"> |
44 |
<mail link="nsr2@×××××××.it">Paolo Palana</mail> |
45 |
</author> |
46 |
@@ -26,137 +35,28 @@ |
47 |
list gentoo-hardened. |
48 |
</abstract> |
49 |
|
50 |
-<version>1.9</version> |
51 |
-<date>2006-02-18</date> |
52 |
+<version>3.2</version> |
53 |
+<date>2011-01-19</date> |
54 |
|
55 |
-<chapter> |
56 |
+<faqindex> |
57 |
<title>Domande</title> |
58 |
<section> |
59 |
-<title>Generali</title> |
60 |
-<body> |
61 |
- |
62 |
-<ul> |
63 |
- <li><uri link="#toolchain">Cos'è esattamentte una "toolchain"?</uri></li> |
64 |
- <li> |
65 |
- <uri link="#whichisbetter">Cosa dovrei usare: grsecurity, RSBAC o |
66 |
- SELinux?</uri> |
67 |
- </li> |
68 |
- <li> |
69 |
- <uri link="#aclall">È possibile usare grsecurity, RSBAC, SELinux e PaX tutti |
70 |
- contemporaneamente?</uri> |
71 |
- </li> |
72 |
- <li> |
73 |
- <uri link="#hardenedcflags">È necessario passare alcune flag a |
74 |
- LDFLAGS/CFLAGS per abilitare la compilazione PIE/SSP?</uri> |
75 |
- </li> |
76 |
- <li> |
77 |
- <uri link="#hardenedcflagsoff">Come posso disabilitare la compilazione |
78 |
- PIE/SSP?</uri> |
79 |
- </li> |
80 |
- <li> |
81 |
- <uri link="#fsexec">La compilazione del mio kernel fallisce con |
82 |
- l'errore "error: structure has no member named `curr_ip'", come posso |
83 |
- correggere ciò?</uri> |
84 |
- </li> |
85 |
- <li> |
86 |
- <uri link="#hardenedproject">Ho appena scoperto il progetto hardened, devo |
87 |
- installare tutto quello che trovo sulla pagina del progetto prima di |
88 |
- installare Hardened Gentoo?</uri> |
89 |
- </li> |
90 |
- <li> |
91 |
- <uri link="#Othreessp">Perchè i miei programmi non vanno quando uso |
92 |
- CFLAGS="-O3" e hardened gcc?</uri> |
93 |
- </li> |
94 |
- <li> |
95 |
- <uri link="#cascadebootstrap">Che cosa è accaduto a |
96 |
- bootstrap-cascade.sh?</uri> |
97 |
- </li> |
98 |
- <li> |
99 |
- <uri link="#hardenedprofile">Come posso passare al profilo hardened?</uri> |
100 |
- </li> |
101 |
- <li> |
102 |
- <uri link="#hardeneddebug">Come faccio il debug con gdb?</uri> |
103 |
- </li> |
104 |
-</ul> |
105 |
- |
106 |
-</body> |
107 |
-</section> |
108 |
-<section> |
109 |
-<title>PaX</title> |
110 |
-<body> |
111 |
- |
112 |
-<ul> |
113 |
- <li><uri link="#paxinformation">Qual'è l'homepage di PaX?</uri></li> |
114 |
- <li> |
115 |
- <uri link="#paxgentoodoc">Quale documentazione Gentoo esiste riguardo |
116 |
- PaX?</uri> |
117 |
- </li> |
118 |
- <li> |
119 |
- <uri link="#paxnoelf">Continuo ad ottenere il messaggio: "error while |
120 |
- loading shared libraries: cannot make segment writable for relocation: |
121 |
- Permission denied." Che cosa significa?</uri> |
122 |
- </li> |
123 |
- <li> |
124 |
- <uri link="#paxjava">Da quando ho iniziato ad usare PaX Java non funziona, |
125 |
- perchè?</uri> |
126 |
- </li> |
127 |
-</ul> |
128 |
- |
129 |
-</body> |
130 |
-</section> |
131 |
-<section> |
132 |
-<title>grsecurity</title> |
133 |
-<body> |
134 |
- |
135 |
-<ul> |
136 |
- <li> |
137 |
- <uri link="#grsecinformation">Qual'è l'home page di grsecurity?</uri> |
138 |
- </li> |
139 |
- <li> |
140 |
- <uri link="#grsecgentoodoc">Quale documentazione Gentoo esiste riguardo |
141 |
- grsecurity?</uri> |
142 |
- </li> |
143 |
- <li> |
144 |
- <uri link="#grsec2681">Posso usare grsecurity con i kernel 2.6.8, 2.6.8.1, |
145 |
- or 2.6.9?</uri> |
146 |
- </li> |
147 |
-</ul> |
148 |
- |
149 |
-</body> |
150 |
-</section> |
151 |
-<section> |
152 |
-<title>RSBAC</title> |
153 |
-<body> |
154 |
- |
155 |
-<ul> |
156 |
- <li> |
157 |
- <uri link="#rsbacinformation">Qual'è l'home page di RSBAC?</uri> |
158 |
- </li> |
159 |
- <li> |
160 |
- <uri link="#rsbacgentoodoc">Quale documentazione Gentoo esiste riguardo |
161 |
- RSBAC?</uri> |
162 |
- </li> |
163 |
- <li> |
164 |
- <uri link="#rsbacinitrd">Come usare un ramdisk iniziale con un kernel |
165 |
- abilitato per RSBAC?</uri> |
166 |
- </li> |
167 |
-</ul> |
168 |
+<title>Introduzione</title> |
169 |
|
170 |
-</body> |
171 |
-</section> |
172 |
-<section> |
173 |
-<title>SELinux</title> |
174 |
<body> |
175 |
|
176 |
-<ul> |
177 |
- <li> |
178 |
- <uri link="#selinuxfaq">Dove posso trovare le FAQ relative a SELinux?</uri> |
179 |
- </li> |
180 |
-</ul> |
181 |
+<p> |
182 |
+La seguente è un insieme di domande raccolte dal canale IRC #gentoo-hardened e |
183 |
+dalla mailing list gentoo-hardened. Come tale, è orientata a rispondere in modo |
184 |
+celoce e conciso piuttosto che fornire una panoramica globale sulle tecnologie |
185 |
+dietro a Gentoo Hardened. È consigliabile leggere il resto della documentazione |
186 |
+presente sulla pagina del Progetto Gentoo Hardened e quella nelle homepage dei |
187 |
+progetti per ottenere informazioni più approfondite. |
188 |
+</p> |
189 |
|
190 |
</body> |
191 |
</section> |
192 |
-</chapter> |
193 |
+</faqindex> |
194 |
|
195 |
<chapter> |
196 |
<title>Domande Generali</title> |
197 |
@@ -174,54 +74,61 @@ |
198 |
</body> |
199 |
</section> |
200 |
<section id="whichisbetter"> |
201 |
-<title>Cosa dovrei usare: grsecurity, RSBAC o SELinux?</title> |
202 |
+<title>Cosa dovrei usare: RSBAC di grsecurity o SELinux?</title> |
203 |
<body> |
204 |
|
205 |
<p> |
206 |
-La risposta a questa domanda è altamente soggettiva, così il progetto Gentoo |
207 |
-hardened tenta semplicemente di presentare ogni tecnologia e lasciare la scelta |
208 |
-all'utente. Questa decisione ha richiesto molte ricerche che sono state |
209 |
-fiduciosamente e chiaramente inserite nella documentazione inerente l'hardened. |
210 |
-Tuttavia per qualsiasi domanda specifica riguardo i modelli di sicurezza che |
211 |
-ciascuno fornisce ci si senta liberi di interpellare gli svilupptori sul |
212 |
-relativo canale IRC o attraverso mailing list. |
213 |
+La risposta a questa domanda è altamente soggettiva, e dipende molto dai propri |
214 |
+requisiti,così il progetto Gentoo hardened tenta semplicemente di presentare |
215 |
+ogni tecnologia e lasciare la scelta all'utente. Questa decisione ha richiesto |
216 |
+molte ricerche che sono state fiduciosamente e chiaramente inserite nella |
217 |
+documentazione inerente l'hardened. Tuttavia per qualsiasi domanda specifica |
218 |
+riguardo i modelli di sicurezza che ciascuno fornisce ci si senta liberi di |
219 |
+interpellare gli svilupptori sul relativo canale IRC o attraverso mailing list. |
220 |
</p> |
221 |
|
222 |
</body> |
223 |
</section> |
224 |
<section id="aclall"> |
225 |
-<title>È possibile usare grsecurity, RSBAC, SELinux e PaX tutti |
226 |
-contemporaneamente?</title> |
227 |
+<title>È possibile usare grsecurity, SELinux e PaX tutti contemporaneamente? |
228 |
+</title> |
229 |
<body> |
230 |
|
231 |
<p> |
232 |
-Si, questa combinazione è possibile poichè PaX può lavorare con grsecurity, |
233 |
-RSBAC e SELinux. Il solo conflitto che si può verificare è che si può usare |
234 |
-un solo sistema di controllo degli accessi. |
235 |
+Si, questa combinazione è possibile poichè PaX ed alcune delle caratteristiche |
236 |
+di grsecurity funzionano con RSBAC di grsecurity e SELinux. Il solo conflitto |
237 |
+che si può verificare è che si può usare un solo sistema di controllo degli |
238 |
+accessi (che può essere o RBAC o SeLinux). |
239 |
</p> |
240 |
|
241 |
</body> |
242 |
</section> |
243 |
<section id="hardenedcflags"> |
244 |
<title>È necessario passare alcune flag a LDFLAGS/CFLAGS per abilitare la |
245 |
-compilazione PIE/SSP??</title> |
246 |
+compilazione hardened?</title> |
247 |
<body> |
248 |
|
249 |
<p> |
250 |
No, la toolchain attuale implementa automaticamente l'equivalente di |
251 |
-<c>CFLAGS="-fPIE -fstack-protector-all" LDFLAGS="-Wl,-z,now -Wl,-z,relro"</c> |
252 |
-attraverso uno specfile di GCC che risulta essere una soluzione più appropriata. |
253 |
-Per vecchi utenti di hardened-gcc aggiungere <c>USE="hardened pic"</c> al |
254 |
-proprio <path>/etc/make.conf</path> e quindi procedere all'aggiornamento |
255 |
-con il seguente comando: |
256 |
+<c>CFLAGS="-fPIE -fstack-protector-all" -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,now |
257 |
+ -Wl,-z,relro"</c> attraverso le specifiche integrate di GCC ed usando i file |
258 |
+delle specifiche per disabilitarli che risulta essere una soluzione più |
259 |
+appropriata. PEr i vecchi utenti di hardened-gcc l'approccio migliore è migrare |
260 |
+al nuovo profilo hardened e successivamente seguire i passaggi elencati nella |
261 |
+domanda <uri link="#hardenedprofile">Come posso passare al profilo hardened? |
262 |
+</uri> |
263 |
</p> |
264 |
|
265 |
-<pre caption="Installazione dell' Hardened Toolchain"> |
266 |
-# <i>emerge --oneshot binutils gcc virtual/libc</i> |
267 |
-# <i>emerge -e world</i> |
268 |
-</pre> |
269 |
+<note> |
270 |
+Abilitare manualmente le flag di hardening è assolutamente non raccomandato. |
271 |
+</note> |
272 |
|
273 |
<note> |
274 |
+Inviare una flag -fno... disabiliterà la flag, e anche fstack-protector-all e |
275 |
+-fstack-protector potrebbero interferire se passate direttamente. |
276 |
+</note> |
277 |
+ |
278 |
+<note> |
279 |
Gentoo si occuperà di applicare delle patch al relativo GCC per permettere che |
280 |
gli specfiles possano essere passati attraverso variabili di ambiente. |
281 |
Attualmente sono installati nel sistema Gentoo diversi tipi di specfile che |
282 |
@@ -233,7 +140,7 @@ |
283 |
</body> |
284 |
</section> |
285 |
<section id="hardenedcflagsoff"> |
286 |
-<title>Come posso disabilitare la compilazione PIE/SSP?</title> |
287 |
+<title>Come posso disabilitare la compilazione hardened?</title> |
288 |
<body> |
289 |
|
290 |
<p> |
291 |
@@ -242,29 +149,53 @@ |
292 |
|
293 |
<pre caption="Esempio di output di gcc-config"> |
294 |
# gcc-config -l |
295 |
- [1] i686-pc-linux-gnu-3.4.4 * |
296 |
- [2] i686-pc-linux-gnu-3.4.4-hardenednopie |
297 |
- [3] i686-pc-linux-gnu-3.4.4-hardenednopiessp |
298 |
- [4] i686-pc-linux-gnu-3.4.4-hardenednossp |
299 |
- [5] i686-pc-linux-gnu-3.4.4-vanilla |
300 |
+ [1] x86_64-pc-linux-gnu-4.4.4 * |
301 |
+ [2] x86_64-pc-linux-gnu-4.4.4-hardenednopie |
302 |
+ [3] x86_64-pc-linux-gnu-4.4.4-hardenednopiessp |
303 |
+ [4] x86_64-pc-linux-gnu-4.4.4-hardenednossp |
304 |
+ [5] x86_64-pc-linux-gnu-4.4.4-vanilla |
305 |
|
306 |
+<comment>Per disabilitare la compilazione PIE passare al profilo hardenednopie:</comment> |
307 |
+# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopie |
308 |
<comment>Per disabilitare la compilazione SSP passare al profilo hardenednossp:</comment> |
309 |
-# gcc-config i686-pc-linux-gnu-3.4.4-hardenednossp |
310 |
+# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednossp |
311 |
+<comment>Per disabilitare la compilazione SSP e PIE passare al profilo hardenednopiessp:</comment> |
312 |
+# gcc-config x86_64-pc-linux-gnu-4.4.4-hardenednopiessp |
313 |
+<comment>Per disabilitare tutte le compilazioni hardened passare al profilo vanilla:</comment> |
314 |
+# gcc-config x86_64-pc-linux-gnu-4.4.4-vanilla |
315 |
</pre> |
316 |
|
317 |
+<note> |
318 |
+L'output precedente potrà variare in base alla versione di gcc e |
319 |
+all'architettura in uso, inoltre i comandi richiesti per disabilitare le varie |
320 |
+opzioni possono dipendere dall'output del primo comando. |
321 |
+</note> |
322 |
+ |
323 |
<p> |
324 |
Alternativamente si può raggiungere lo stesso risultato modificando CFLAGS: |
325 |
</p> |
326 |
|
327 |
+<impo> |
328 |
+Disabilitare manualmente le flag non è raccomandato dal team e viene considerata |
329 |
+un'opzione non supportata, pertanto usarla a proprio rischio e pericolo. |
330 |
+</impo> |
331 |
+ |
332 |
<p> |
333 |
Per disabilitare la compilazione SSP, di default quando si usa l'hardened |
334 |
-toolchain, aggiungere <c>-fno-stack-protector-all -fno-stack-protector</c> alla |
335 |
-fine delle proprie CFLAGS. |
336 |
+toolchain, aggiungere <c>-fno-stack-protector</c> alla fine delle proprie |
337 |
+CFLAGS. |
338 |
</p> |
339 |
|
340 |
+<note> |
341 |
+Nei rilasci di gcc 3.4 bisogna usare <c>-fno-stack-protector-all |
342 |
+-fno-stack-protector</c> |
343 |
+</note> |
344 |
+ |
345 |
<p> |
346 |
Se si vuole disabilitare la compilazione di default PIE aggiungere <c>-nopie</c> |
347 |
-alla fine delle proprie CFLAGS. |
348 |
+alla fine delle proprie <c>CFLAGS</c> e alle proprie <c>LDFLAGS</c> (in quanto |
349 |
+le LDFLAGS vengono usate senza CFLAGS quando gcc viene usato per collegare i |
350 |
+file oggetto). |
351 |
</p> |
352 |
|
353 |
<impo> |
354 |
@@ -273,6 +204,21 @@ |
355 |
GCC che dovrebbe essere il risultato cercato. |
356 |
</impo> |
357 |
|
358 |
+<p> |
359 |
+Se si vuole disabilitare il binding "now" predefinito accodare <c>-z,lazy</c> |
360 |
+alle proprie <c>LDFLAGS</c>. |
361 |
+</p> |
362 |
+ |
363 |
+<p> |
364 |
+Se si vuole disabilitare il binding "relro" predefinito accodare |
365 |
+<c>-z,norelro</c> alle proprie <c>LDFLAGS</c>. |
366 |
+</p> |
367 |
+ |
368 |
+<note> |
369 |
+Relro è l'impostazione predefinita su binutils pertanto assicurarsi di volerla |
370 |
+disabilitare prima di farlo. |
371 |
+</note> |
372 |
+ |
373 |
<note> |
374 |
Se si è interessati ad usare per-package CFLAGS con Portage allora è |
375 |
interessante leggere a proposito di script solar sviluppato per lavorare con |
376 |
@@ -281,19 +227,6 @@ |
377 |
|
378 |
</body> |
379 |
</section> |
380 |
-<section id="fsexec"> |
381 |
-<title>La compilazione del mio kernel fallisce con l'errore"error: structure has |
382 |
-no member named `curr_ip'", come posso correggere ciò?</title> |
383 |
-<body> |
384 |
- |
385 |
-<p> |
386 |
-Per utilizzare PaX su sorgenti hardened, è necessario abilitare grsecurity nella |
387 |
-configurazione del proprio kernel. Questo potrebbe essere corretto in future |
388 |
-versioni del kernel. |
389 |
-</p> |
390 |
- |
391 |
-</body> |
392 |
-</section> |
393 |
<section id="hardenedproject"> |
394 |
<title>Ho appena scoperto il progetto hardened, devo installare tutto quello che |
395 |
trovo sulla pagina del progetto prima di installare Hardened Gentoo?</title> |
396 |
@@ -315,28 +248,27 @@ |
397 |
|
398 |
<p> |
399 |
È noto che l'utilizzo del flag di ottimizzazione <c>-O3</c> in molte situzioni |
400 |
-crea problemi al stack-smashing protector (SSP). Questo flag di ottimizzazione |
401 |
-non è ufficialmente supportato e quindi ne viene scoraggiato l'uso dall'hardened |
402 |
-team. Compilazioni dove l'utente fa uso di <c>CFLAGS="-O3"</c> vengono chiuse |
403 |
-come INVALID/CANTFIX e/o ignorate. |
404 |
+crea problemi al stack-smashing protector (SSP) e in compilazioni vanilla. |
405 |
+Questo flag di ottimizzazione non è ufficialmente supportato e quindi ne viene |
406 |
+scoraggiato l'uso dall'hardened team. Compilazioni dove l'utente fa uso di |
407 |
+<c>CFLAGS="-O3"</c> vengono chiuse come INVALID/CANTFIX e/o ignorate. |
408 |
</p> |
409 |
|
410 |
</body> |
411 |
</section> |
412 |
-<section id="cascadebootstrap"> |
413 |
-<title>Che cosa è accaduto a bootstrap-cascade.sh?</title> |
414 |
+<section id="hardenedprofile"> |
415 |
+<title>Come posso passare al profilo hardened?</title> |
416 |
<body> |
417 |
|
418 |
<p> |
419 |
-Recentemente i vecchi bootstrap.sh e bootstrap-2.6.sh sono stati deprecati. Al |
420 |
-loro posto bootstrap-cascade.sh è stato rinominato bootstrap.sh. |
421 |
+Per cambiare il proprio profilo usare eselect per selezionarlo. |
422 |
</p> |
423 |
|
424 |
-</body> |
425 |
-</section> |
426 |
-<section id="hardenedprofile"> |
427 |
-<title>Come posso passare al profilo hardened?</title> |
428 |
-<body> |
429 |
+<note> |
430 |
+Per reperire informazioni migliori su come cambiare il proprio profilo è |
431 |
+raccomandabile leggere la parte 1, capitolo 6 "Installare il sistema base |
432 |
+Gentoo" del <uri link="/doc/it/handbook/">Manuale Gentoo</uri> |
433 |
+</note> |
434 |
|
435 |
<pre caption="Impostare make.profile"> |
436 |
# <i>eselect profile list</i> |
437 |
@@ -347,8 +279,8 @@ |
438 |
[5] default/linux/amd64/10.0/developer |
439 |
[6] default/linux/amd64/10.0/no-multilib |
440 |
[7] default/linux/amd64/10.0/server |
441 |
-[8] hardened/linux/amd64/10.0 |
442 |
-[9] hardened/linux/amd64/10.0/no-multilib |
443 |
+[8] hardened/linux/amd64 |
444 |
+[9] hardened/linux/amd64/no-multilib |
445 |
[10] selinux/2007.0/amd64 |
446 |
[11] selinux/2007.0/amd64/hardened |
447 |
[12] selinux/v2refpolicy/amd64 |
448 |
@@ -359,6 +291,12 @@ |
449 |
# <i>eselect profile set 8</i> <comment>(sostituire 8 con il profilo hardened desiderato)</comment> |
450 |
</pre> |
451 |
|
452 |
+<note> |
453 |
+L'output precedente potrà variare in base alla versione di gcc e |
454 |
+all'architettura in uso, inoltre i comandi richiesti per disabilitare le varie |
455 |
+opzioni possono dipendere dall'output del primo comando. |
456 |
+</note> |
457 |
+ |
458 |
<p> |
459 |
Dopo aver impostato il profilo bisogna ricompilare il proprio sistema |
460 |
usando l'hardened toolchain in modo da avere una base consistente: |
461 |
@@ -366,9 +304,15 @@ |
462 |
|
463 |
<pre caption="Passaggio all'hardened toolchain"> |
464 |
# <i>emerge --oneshot binutils gcc virtual/libc</i> |
465 |
-# <i>emerge -e world</i> |
466 |
+# <i>emerge -e --keep-going system</i> |
467 |
+# <i>emerge -e --keep-going world</i> |
468 |
</pre> |
469 |
|
470 |
+<p> |
471 |
+È stata aggiunta l'opzione <c>--keep-going</c> per assicurarsi che emerge non si |
472 |
+interrompa in caso di fallimento nella compilazione di qualche pacchetto. |
473 |
+</p> |
474 |
+ |
475 |
</body> |
476 |
</section> |
477 |
<section id="hardeneddebug"> |
478 |
@@ -376,57 +320,100 @@ |
479 |
<body> |
480 |
|
481 |
<p> |
482 |
-La prima cosa da sottolineare è che GDB non può risolvere i simboli in PIEs; non |
483 |
-riesce a capire che gli indirizzi sono relativi in PIEs, non assoluti. Questo si |
484 |
-manifesta quando, per esempio, si tenta di fare un backtrace e viene |
485 |
-visualizzato un flusso di linee di '??' dove dovrebbero essere i simboli. |
486 |
+È stato redatto un <uri link="/proj/en/hardened/hardened-debugging.xml"> |
487 |
+documento su come effettuare il debug con Gentoo Hardened</uri> (in inglese, |
488 |
+ndT), pertanto seguire le raccomandazioni lì presente per risolvere il proprio |
489 |
+problema. |
490 |
</p> |
491 |
|
492 |
+</body> |
493 |
+</section> |
494 |
+ |
495 |
+<section id="jitflag"> |
496 |
+<title>Perchè la flag jit è disabilita nel profilo hardened?</title> |
497 |
+<body> |
498 |
+ |
499 |
<p> |
500 |
-Per aggirare questo, eseguire la fase finale di linkaggio con <c>-nopie</c> |
501 |
-tutte le precedenti compilazioni possono ancora essere fatte normalmente con |
502 |
-<c>-fPIE</c> (i.e. di default con il compilatore hardened) In maniera tale che |
503 |
-il proprio eseguibile sia il più vicino possibile al caso reale, ma la fase |
504 |
-finale di linkaggio da origine ad un eseguibile normale. È possibile aggiungere |
505 |
-<c>-nopie</c> alle LDFLAGS se si intende compilare utilizzando emerge. |
506 |
+JIT significa Just in Time Compilazione e consiste nel prendere del codice che |
507 |
+si considera interpretato (come i bytecode Java o il codice Javascript), |
508 |
+compilarlo in codice binario nativo in memoria e successivamente eseguire il |
509 |
+codice compilato. Ciò significa che il programma ha bisogno di una sezione di |
510 |
+memoria con permessi di scrittura ed esecuzione per scrivere e poi eseguire il |
511 |
+codice che viene negato da PaX, a meno che la flag mprotect sia non impostata |
512 |
+per l'eseguibile. Ne consegue la disabilitazione della flag use JIT come |
513 |
+impostazione predefinita per evitare reclami e problemi di sicurezza. |
514 |
</p> |
515 |
|
516 |
<p> |
517 |
-Un'altra maniera per fare ciò consiste nel fare l'emerge di >=sys-devel/gdb-7.1, |
518 |
-che contiene una patch particolare che rende possibile il debug di eseguibili |
519 |
-lincati con -pie |
520 |
+Si dovrebbe tenere a mente che avere una sezione in cui si scrive e viene |
521 |
+eseguito qualcosa può essere un grave problema di sicurezza in quanto |
522 |
+l'attaccante necessita di poter sfruttare un bug tra le fasi di scrittura ed |
523 |
+esecuzione per scrivere in quella sezione in modo da eseguire qualunque codice |
524 |
+egli desideri. |
525 |
</p> |
526 |
|
527 |
+</body> |
528 |
+</section> |
529 |
+ |
530 |
+<section id="enablejit"> |
531 |
+<title>Come posso abilitare la flag jit?</title> |
532 |
+<body> |
533 |
+ |
534 |
<p> |
535 |
-Il secondo punto è che PaX potrebbe impedire a GDB di creare breakpoints, a |
536 |
-seconda della configurazione del kernel. Questo include anche il breakpoint nel |
537 |
-main di cui si necessita come punto di partenza. Per impedire a PaX di |
538 |
-comportarsi in questo modo gli eseguibili da debuggare necessitano dei flag |
539 |
-<c>m</c> e <c>x</c>. IL flag <c>x</c> è settato di default, così è sufficiente |
540 |
-fare: |
541 |
+Se è necessario, si raccomanda di abilitare la flag su basi per pacchetto usando |
542 |
+<c>/etc/portage/package.use</c> |
543 |
</p> |
544 |
|
545 |
-<pre caption="Rilassare PaX per il debug"> |
546 |
-# <i>/sbin/paxctl -m foo</i> |
547 |
+<pre caption="Esempio di abilitazione JIT per alcuni pacchetti in |
548 |
+ /etc/portage/package.use"> |
549 |
+x11-libs/qt-core jit |
550 |
+x11-libs/qt-script jit |
551 |
+x11-libs/qt-webkit jit |
552 |
</pre> |
553 |
|
554 |
<p> |
555 |
-A questo punto si dovrebbe essere pronti per partire! Avviate gdb come sempre e |
556 |
-buona fortuna. |
557 |
+Tuttavia, è possibile abilitare la flag use globalmente usando |
558 |
+<c>/etc/make.conf</c> |
559 |
</p> |
560 |
|
561 |
+<pre caption="Esempio di /etc/make.conf con JIT abilitato"> |
562 |
+CFLAGS="-O2 -pipe -fomit-frame-pointer -march=native" |
563 |
+CXXFLAGS="${CFLAGS}" |
564 |
+# WARNING: Changing your CHOST is not something that should be done lightly. |
565 |
+# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. |
566 |
+CHOST="x86_64-pc-linux-gnu" |
567 |
+# These are the USE flags that were used in addition to what is provided by the |
568 |
+# profile used for building. |
569 |
+<comment>#Se si hanno ulteriori use dovrebbe essere sufficiente aggiungere jit alla fine</comment> |
570 |
+USE="jit" |
571 |
+ |
572 |
+MAKEOPTS="-j2" |
573 |
+ |
574 |
+GENTOO_MIRRORS="ftp://ftp.udc.es/gentoo/" |
575 |
+ |
576 |
+SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" |
577 |
+</pre> |
578 |
+ |
579 |
+<impo> |
580 |
+Ricordarsi che se si vuole abilitare codice JIT su PaX bisognera disabilitare |
581 |
+mprotect sui binari che usano tale codice, sia attraverso i binari stessi o |
582 |
+attraverso le librerie. Controllare la <uri link="#paxjavajit">domanda di Pax su |
583 |
+ Java e JIT per vedere come farlo</uri> |
584 |
+</impo> |
585 |
+ |
586 |
</body> |
587 |
</section> |
588 |
+ |
589 |
</chapter> |
590 |
|
591 |
<chapter> |
592 |
<title>Domande su PaX</title> |
593 |
<section id="paxinformation"> |
594 |
-<title>Qual'è l'homepage di PaX?</title> |
595 |
+<title>Dov'è l'homepage di PaX?</title> |
596 |
<body> |
597 |
|
598 |
<p> |
599 |
-L'home page è reperibile all'indirizzo <uri>http://pax.grsecurity.net</uri>. |
600 |
+Questa è <uri link="http://pax.grsecurity.net">l'homepage di PaX</uri>. |
601 |
</p> |
602 |
|
603 |
</body> |
604 |
@@ -436,13 +423,48 @@ |
605 |
<body> |
606 |
|
607 |
<p> |
608 |
-Attualmente l'unica documentazione Gentoo riguardante PaX è la PaX quickstart |
609 |
-guide reperibile presso l'indirizzo |
610 |
-<uri>http://www.gentoo.org/proj/it/hardened/pax-quickstart.xml</uri>. |
611 |
+Attualmente l'unica documentazione Gentoo riguardante PaX è la |
612 |
+<uri link="http://www.gentoo.org/proj/it/hardened/pax-quickstart.xml">Guida |
613 |
+rapida per PaX su Gentoo Hardened</uri>. |
614 |
</p> |
615 |
|
616 |
</body> |
617 |
</section> |
618 |
+ |
619 |
+<section id="paxmarkings"> |
620 |
+<title>Come funzionano i contrassegni ("marking", ndT) di PaX?</title> |
621 |
+<body> |
622 |
+ |
623 |
+<p> |
624 |
+I contrassegni ("marking", ndT) sono un modo per dire a PaX quali |
625 |
+caratteristiche dovrebbe abilitare (o disabilitare) per un determinato binario. |
626 |
+</p> |
627 |
+ |
628 |
+<p> |
629 |
+Le caratteristiche possono essere o abilitate, o disabilitate o non impostate. |
630 |
+Abilitarle o disabilitarle rimpiazzare l'azione del kernel, così un binario con |
631 |
+una caratteristica abilitata userà sempre quest'ultima e uno con la |
632 |
+caratteristica disabilitata non la userà mai. |
633 |
+</p> |
634 |
+ |
635 |
+<p> |
636 |
+Quando lo stato della caratteristica non è impostato il kernel sceglierà se |
637 |
+abilitarla o disabilitarla. Come impostazione predefinita, il kernel hardened |
638 |
+abiliterà quelle caratteristiche con solo due eccezioni, ovvero se la |
639 |
+caratteristica non è supportata dall'architettura/kernel o se PaX è in |
640 |
+esecuzione in modalità "Soft"- In quei due casi, essa verrà disabilitata. |
641 |
+</p> |
642 |
+ |
643 |
+<note> |
644 |
+Per poter ottenere la modalità "Soft", il proprio kernel dovrebbe avere la |
645 |
+caratteristica abilitata e la si dovrebbe abilitare o passando |
646 |
+<c>pax_softmode=1</c> alla riga di comando del kernel o impostando ad 1 |
647 |
+l'opzione in <c>/proc/sys/kernel/pax/softmode</c>. |
648 |
+</note> |
649 |
+ |
650 |
+</body> |
651 |
+</section> |
652 |
+ |
653 |
<section id="paxnoelf"> |
654 |
<title>Continuo ad ottenere il messaggio: "error while loading shared libraries: |
655 |
cannot make segment writable for relocation: Permission denied." Che cosa |
656 |
@@ -450,14 +472,33 @@ |
657 |
<body> |
658 |
|
659 |
<p> |
660 |
-Questo errore si manifesta quando viene abilitato CONFIG_PAX_NOELFRELOCS nel |
661 |
+Le "Text relocations" sono un modo con il quale i riferimenti nel codice |
662 |
+dell'eseguibile ad indirizzi non conosciuti al momento della fase di link |
663 |
+vengono risolti. Semplicemente essi scrivono solo l'indirizzo appropriato in |
664 |
+fase di esecuzione marcando il segmento di codice come scrivibile in modo da |
665 |
+cambiare l'indirizzo quando esso viene deselezionato. Questo può essere un |
666 |
+problema in quanto un attaccante potrebbe provare a sfruttare un bug quando la |
667 |
+text relocation avviene in modo da poter scrivere codice arbitrario nel segmento |
668 |
+di testo che dovrebbe essere eseguito. Ciò inoltre significa che il codice verrà |
669 |
+caricato su indirizzi fissi (non in posizioni indipendenti) che può essere |
670 |
+altrettanto sfruttabile scavalcando le caratteristiche di casualità fornite da |
671 |
+PaX. |
672 |
+</p> |
673 |
+ |
674 |
+<p> |
675 |
+In quanto questo può essere innescato per esempio aggiungendo una libreria con |
676 |
+text relocation a quelle caricate dall'eseguibile, PaX offre l'opzione |
677 |
+CONFIG_PAX_NOELFRELOCS in modo da evitarle. Questa opzione è abilitata nel |
678 |
seguente modo: |
679 |
</p> |
680 |
|
681 |
<pre caption="Opzione di Menuconfig"> |
682 |
-Non-executable page -> |
683 |
- |
684 |
- [*] Disallow ELF text relocations |
685 |
+-> Security options |
686 |
+ -> PaX |
687 |
+ -> Enable various PaX features |
688 |
+ -> Non-executable pages |
689 |
+ [*] Restrict mprotect() |
690 |
+ [*] Allow ELF text relocations |
691 |
</pre> |
692 |
|
693 |
<p> |
694 |
@@ -496,89 +537,89 @@ |
695 |
|
696 |
</body> |
697 |
</section> |
698 |
-<section id="paxjava"> |
699 |
-<title>Da quando ho iniziato ad usare PaX Java non funziona, perchè?</title> |
700 |
+<section id="paxjavajit"> |
701 |
+<title>Da quando ho iniziato ad usare PaX il codice Java/JIT non funziona, |
702 |
+perchè?</title> |
703 |
<body> |
704 |
|
705 |
<p> |
706 |
Come parte di questo progetto la Java virtual machine genera una quantità |
707 |
-considerevole di codice a runtime, cosa che non rende PaX felice. Ci sono due |
708 |
-maniere per correggere questo problema: |
709 |
+considerevole di codice a runtime, cosa che non rende PaX felice. Sebbene, con |
710 |
+le versioni attuali di portage e java, portage contrassegni automaticamente i |
711 |
+binari, è ancora necessario abilitare i contrassegni di PaX in modo che esso |
712 |
+possa fare un'eccezione con essi ed avere paxctl installato così i contrassegni |
713 |
+possono essere applicati ai binari (e rieseguire l'emerge di questi ultimi in |
714 |
+modo da applicarli). |
715 |
</p> |
716 |
|
717 |
-<pre caption="Installiare Chpax"> |
718 |
-# <i>emerge chpax</i> |
719 |
-# <i>/etc/init.d/chpax start</i> |
720 |
+<p> |
721 |
+This of course can't be applied to all packages linking with libraries with JIT |
722 |
+code, so if it doesn't, there are two ways to correct this problem: |
723 |
+</p> |
724 |
+ |
725 |
+<pre caption="Abilitare i contrassegni nel proprio kernel"> |
726 |
+-> Security options |
727 |
+ -> PaX |
728 |
+ -> Enable various PaX features |
729 |
+ -> PaX Control |
730 |
+ [*] Use ELF program header marking |
731 |
+</pre> |
732 |
+ |
733 |
+<pre caption="Installare paxctl"> |
734 |
+# <i>emerge paxctl</i> |
735 |
</pre> |
736 |
|
737 |
<p> |
738 |
-O se già si ha <c>chpax</c> installato si può dare: |
739 |
+Quando si già si ha <c>chpax</c> installato si può dare: |
740 |
</p> |
741 |
|
742 |
-<pre caption="Opzioni Chpax per Java"> |
743 |
-# <i>chpax -pemrxs /opt/*-jdk-*/{jre,}/bin/*</i> |
744 |
+<pre caption="Disabilitare PaX per il binario"> |
745 |
+# <i>paxctl -pemrxs /percorso/al/binario</i> |
746 |
</pre> |
747 |
|
748 |
<p> |
749 |
-Entrambe queste opzioni modificano leggermente l' ELF header al fine di |
750 |
-impostare correttamente i falgs di PAX sui binari. |
751 |
+Questa opzione modifica leggermente l' ELF header al fine di impostare |
752 |
+correttamente le flag di PAX sui binari. |
753 |
</p> |
754 |
|
755 |
<note> |
756 |
Se si sta utilizzando PaX in conbinazione con ulteriori strumenti per la |
757 |
-sicurezza, come ad esempio RSBAC, grsecurity, o SELinux è necessario gestire PaX |
758 |
-attraverso l'utilizzo dei kernel hooks previsti per ogni implementazione. |
759 |
+sicurezza, come ad esempio RSBAC di grsecurity, o SELinux è necessario gestire |
760 |
+PaX attraverso l'utilizzo dei kernel hooks previsti per ogni implementazione. |
761 |
</note> |
762 |
|
763 |
<p> |
764 |
-Con RSBAC si possono etichettare tutti i file Java utilizzando il seguente |
765 |
-comando. |
766 |
+L'altro modo è usare la propria implementazione di sicurezza per ottenere ciò |
767 |
+usando gli hook del kernel. |
768 |
</p> |
769 |
|
770 |
-<pre caption="Opzioni Pax per Java con RSBAC"> |
771 |
-# <i>for i in $(ls /opt/*(jdk|sdk)*/{jre,}/bin/*);do attr_set_file_dir FILE $i pax_flags pmerxs;done</i> |
772 |
-</pre> |
773 |
- |
774 |
</body> |
775 |
</section> |
776 |
-</chapter> |
777 |
|
778 |
-<chapter> |
779 |
-<title>Domande su grsecurity</title> |
780 |
-<section id="grsecinformation"> |
781 |
-<title>Qual'è l'home page di grsecurity?</title> |
782 |
+<section id="paxbootparams"> |
783 |
+<title>Posso disabilitare le caratteristiche di PaX all'avvio?</title> |
784 |
<body> |
785 |
|
786 |
<p> |
787 |
-L'homepage di grsecurity è reperibile all'indirizzo |
788 |
-<uri>http://www.grsecurity.net</uri>. |
789 |
+Sebbene non sia consigliato farlo eccetto quando si deve recuperare il sistema o |
790 |
+per scopi di debug, è possibile cambiare alcuni comportamenti di Pax all'avvio |
791 |
+tramite la linea di comando del kernel. |
792 |
</p> |
793 |
|
794 |
-</body> |
795 |
-</section> |
796 |
-<section id="grsecgentoodoc"> |
797 |
-<title>Quale documentazione Gentoo esiste riguardo grsecurity?</title> |
798 |
-<body> |
799 |
- |
800 |
<p> |
801 |
-La documentazione più aggiornata su grsecurity è la Grsecurity2 quickstart |
802 |
-guide, reperibile all'indirizzo |
803 |
-<uri>http://www.gentoo.org/proj/it/hardened/grsecurity.xml</uri>. |
804 |
+Passare <c>pax_nouderef</c> nella linea di comando del kernel disabiliterà |
805 |
+uderef che può causare problemi su alcuni ambienti virtualizzati e causare |
806 |
+alcuni bug (a volte) con lo svantaggio di lasciare il kernel sprotetto contro |
807 |
+deferenze in spazio utente indesiderate. |
808 |
</p> |
809 |
|
810 |
-</body> |
811 |
-</section> |
812 |
-<section id="grsec2681"> |
813 |
-<title>Posso usare grsecurity con i kernel 2.6.8, 2.6.8.1, or 2.6.9?</title> |
814 |
-<body> |
815 |
- |
816 |
<p> |
817 |
-Sono stati apportati dei cambiamenti significativi nel kernel 2.6.8 che hanno |
818 |
-compromesso Pax, per i kernel 2.6.8.1 e 2.6.9 non sono diponibili patch ne per |
819 |
-per PaX ne per grsecurity. Anche se per il kernel 2.6.10 è disponibile una |
820 |
-patch sperimentale è bene prendere in considerazione la posizione ufficiale del |
821 |
-team PaX nei confronti del kernel 2.6 prima di utilizzarlo: |
822 |
-<uri> http://forums.grsecurity.net./viewtopic.php?t=968</uri>. |
823 |
+Passare <c>pax_softmode=1</c> nella linea di comando del kernel abiliterà la |
824 |
+modalità "soft" che può risultare utile quando si avvia un sistema non |
825 |
+predisposto con un kernel PaX. Nella modalità "soft" PaX disabiliterà la maggior |
826 |
+parte delle caratteristiche come impostazione predefinita dove non specificato |
827 |
+altrimenti tramite i contrassegni. Similmente, <c>pax_softmode=0</c> |
828 |
+disabiliterà la modalità "soft" se essa è stata abilitata nella configurazione. |
829 |
</p> |
830 |
|
831 |
</body> |
832 |
@@ -586,25 +627,25 @@ |
833 |
</chapter> |
834 |
|
835 |
<chapter> |
836 |
-<title>Domande su RSBAC</title> |
837 |
+<title>Domande su Grsecurity</title> |
838 |
<section id="rsbacinformation"> |
839 |
-<title>Qual'è l'home page di RSBAC?</title> |
840 |
+<title>Dov'è l'home page di Grsecurity?</title> |
841 |
<body> |
842 |
|
843 |
<p> |
844 |
-L'homepage di RSBAC è reperibile all'indirizzo <uri>http://www.rsbac.org</uri>. |
845 |
+Questa è <uri link="http://www.grsecurity.net">l'homepage per Grsecurity</uri>. |
846 |
</p> |
847 |
|
848 |
</body> |
849 |
</section> |
850 |
<section id="rsbacgentoodoc"> |
851 |
-<title>Quale documentazione Gentoo esiste riguardo RSBAC?</title> |
852 |
+<title>Quale documentazione Gentoo esiste riguardo Grsecurity?</title> |
853 |
<body> |
854 |
|
855 |
<p> |
856 |
-Tutta la documentazione Gentoo inerente RSBAC è reperebile presso la pagina |
857 |
-del sottoprogetto RSBAC all'indirizzo |
858 |
-<uri>http://www.gentoo.org/proj/en/hardened/rsbac/index.xml</uri> |
859 |
+La maggior parte della documentazione Gentoo per Grsecurity è una rapida <uri |
860 |
+link="http://www.gentoo.org/proj/it/hardened/grsecurity.xml">Guida a Grsecurity |
861 |
+v2</uri>. |
862 |
</p> |
863 |
|
864 |
<p> |
865 |
@@ -614,20 +655,18 @@ |
866 |
|
867 |
</body> |
868 |
</section> |
869 |
-<section id="rsbacinitrd"> |
870 |
-<title>Come usare un ramdisk iniziale con un kernel abilitato per RSBAC?</title> |
871 |
+<section id="grsecnew"> |
872 |
+<title>Posso usare Greecurity con un kernel recente non nel portage tree?</title> |
873 |
<body> |
874 |
|
875 |
<p> |
876 |
-Per usare un ramdisk iniziale con un kernel abilitato per RSBAC è necessario |
877 |
-abilitare una particolare opzione, altrimenti RSBAC tratterà l'initrd come |
878 |
-il root device: |
879 |
+Abitualmente viene rilasciato una nuova versioni degli hardened sources non |
880 |
+molto dopo un nuovo rilascio di una patch PaX/Grsecurity, pertanto l'opzione |
881 |
+migliore è aspettare un po' in modo che il team del kernel possa adattare le |
882 |
+patch ed infine testarle. Ricordarsi che non vengono supportati sorgenti di |
883 |
+kernel che non provengono dal portage tree. |
884 |
</p> |
885 |
|
886 |
-<pre caption="Opzioni Menuconfig"> |
887 |
- [*] Delayed init for initial ramdisk |
888 |
-</pre> |
889 |
- |
890 |
</body> |
891 |
</section> |
892 |
</chapter> |
893 |
@@ -639,8 +678,8 @@ |
894 |
<body> |
895 |
|
896 |
<p> |
897 |
-FAQ specifiche per SELinux possono essere reperite all'indirizzo |
898 |
-<uri>http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml?part=3&chap=3</uri>. |
899 |
+Ci sono alcune <uri link="http://www.gentoo.org/proj/it/hardened/selinux/selinux-handbook.xml?part=3&chap=3"> |
900 |
+FAQ specifiche per SELinux</uri>. |
901 |
</p> |
902 |
|
903 |
</body> |