Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
linux:grsec [2006/07/31 17:31] a grsec compile tips |
linux:grsec [2009/05/25 00:35] (current) |
||
|---|---|---|---|
| Line 41: | Line 41: | ||
| ==== kernel 2.4.x tips ==== | ==== kernel 2.4.x tips ==== | ||
| + | |||
| ==== kernel 2.6.x tips ==== | ==== kernel 2.6.x tips ==== | ||
| Line 87: | Line 88: | ||
| come out fine for x86 and sparc. I havent tried it on ppc but for the most | come out fine for x86 and sparc. I havent tried it on ppc but for the most | ||
| part it is safe, and it is also safe for production envoirnments. | part it is safe, and it is also safe for production envoirnments. | ||
| + | |||
| + | === Using Pax and Grsecurity features === | ||
| + | |||
| + | First get a grsecurity patch kernel ready go in your **'' | ||
| + | |||
| + | < | ||
| + | Enable various PaX features | ||
| + | |||
| + | [*] Support soft mode | ||
| + | [*] Use legacy ELF header marking | ||
| + | [*] Use ELF program header marking | ||
| + | MAC system integration (direct) | ||
| + | |||
| + | Non-executable pages | ||
| + | |||
| + | [*] Enforce non-executable pages | ||
| + | [*] | ||
| + | [*] | ||
| + | [*] Emulate trampolines | ||
| + | [*] Restrict mprotect() | ||
| + | [ ] | ||
| + | [*] Enforce non-executable kernel pages | ||
| + | |||
| + | [*] Address Space Layout Randomization | ||
| + | [*] | ||
| + | [*] | ||
| + | [*] | ||
| + | </ | ||
| + | And for Miscellaneous hardening features I advise not to select any. | ||
| + | |||
| + | <note important> | ||
| ===== Configuration ===== | ===== Configuration ===== | ||
| Line 131: | Line 163: | ||
| kernel.pax.softmode = 1 | kernel.pax.softmode = 1 | ||
| kernel.grsecurity.grsec_lock = 0 | kernel.grsecurity.grsec_lock = 0 | ||
| + | |||
| ==== PaX ==== | ==== PaX ==== | ||
| Line 174: | Line 207: | ||
| Executable shared library data : Vulnerable | Executable shared library data : Vulnerable | ||
| Writable text segments | Writable text segments | ||
| + | |||
| + | ==== Hardening Webservers ==== | ||
| + | |||
| + | For example | ||
| + | |||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | You can even use wildcards like'' | ||
| + | |||
| + | Also make sure you do the** '' | ||
| ==== gdadm ==== | ==== gdadm ==== | ||
| Line 204: | Line 249: | ||
| gradm -D | gradm -D | ||
| + | |||
| ==== grsec iptables patch ==== | ==== grsec iptables patch ==== | ||
| FIXME TODO | FIXME TODO | ||
| + | |||
| + | ===== Tips / troubleshooting ===== | ||
| + | |||
| + | ==== complaints of grsecurity-kernel about RLIMIT_CORE being 0 ==== | ||
| + | |||
| + | If, while running program x, a segmentation fault occurs in program x and syslog outputs the following string: | ||
| + | Apr 17 11:55:06 yyy kernel: grsec: attempted resource overstep by requesting 4096 for RLIMIT_CORE against limit 0 by (x:z) UID(y) EUID(y), parent (y:y) UID(y) EUID(y) | ||
| + | then kernel tried to write a core-file for the program x to disk, BUT the max size of the core file is set to 0. | ||
| + | Growing the maximum size of a core file: | ||
| + | |||
| + | # ulimit -S -c 8192 | ||
| + | |||
| + | |||

