![]() | Importante |
|---|---|
Los cambios que se muestran a continuación, han de ser discutidos y mejorados por los desarrolladores de metadistros: | |
Todo sistema basado en metadistros, debería llevar activas las shadow passwords y las claves con encriptación md5.
Para obtener las shadow passwords, si no se hace con la instalación oficial de Debian, se ha de ejecutar: pwconv, grpconv y finalmente shadowconfig on
Si queremos utilizar las claves md5, hemos de añadir a los archivos /etc/pam.d/login y /etc/pam.d/passwd, la palabra md5 en la siguiente línea:
password required pam_unix.so nullok obscure min=4 max=8 |
Si se trata de una distribución destinada a usuarios hispanoparlantes, ejecutar el script eurocastellanizar. Una vez realizado esto, añadir las siguientes locales al archivo '/etc/locales.gen' y ejecutar locale-gen.
ca_ES.ISO-8859-1 ca_ES.ISO-8859-15@euro es_ES.ISO-8859-1 es_ES.ISO-8859-15@euro eu_ES.ISO-8859-1 eu_ES.ISO-8859-15@euro gl_ES.ISO-8859-1 gl_ES.ISO-8859-15@euro |
Quitar los servicios “discard”, “daytime”, “time” del archivo de configuración del superservidor inetd (update-inetd) - si es necesario sustituirlo por xinetd.
Algunas opciones que me parecen interesantes para el /etc/fstab
# /etc/fstab: Información estática del sistema de ficheros. # # <Sis. ficheros> <Punto montaje> <Tipo> <Opciones> <volcado> <pasada> /dev/ide/host0/bus0/target0/lun0/part5 / reiserfs rw,nosuid, dev, exec,auto,nouser,async 0 0 /dev/ide/host0/bus0/target0/lun0/part1 /boot reiserfs ro,nosuid,nodev,noexec,auto,nouser,async 0 0 /dev/disco/root /root reiserfs rw,nosuid,nodev, exec,auto,nouser,async 0 0 /dev/disco/home /home reiserfs rw,nosuid,nodev,noexec,auto,nouser,async 0 0 /dev/disco/tmp /tmp reiserfs rw,nosuid,nodev, exec,auto,nouser,async 0 0 /dev/disco/usr /usr reiserfs ro,nosuid,nodev, exec,auto,nouser,async 0 0 /dev/disco/var /var reiserfs rw,nosuid,nodev,noexec,auto,nouser,async 0 0 /dev/disco/log /var/log reiserfs rw,nosuid,nodev,noexec,auto,nouser,async 0 0 /dev/disco/spool /var/spool reiserfs rw,nosuid,nodev,noexec,auto,nouser,async 0 0 /dev/sandisco/setuid /mnt/setuid reiserfs ro, suid,nodev, exec,auto,nouser,async 0 0 /dev/ide/host0/bus0/target0/lun0/part2 none swap sw,pri=1 0 0 proc /proc proc defaults 0 0 /dev/floppy/0 /floppy auto rw,nosuid,nodev,noexec,auto, user,async 0 0 /dev/ide/host0/bus1/target0/lun0/cd /cdrom iso9660 ro,nosuid,nodev,noexec,auto, user,async 0 0 |
Si se han aplicado las opciones del archivo /etc/fstab, sería conveniente incluir estas en el archivo /etc/apt/apt.conf.
DPkg
{
Pre-Invoke { "mount / -o remount,rw" };
Pre-Invoke { "mount /usr -o remount,rw" };
Pre-Invoke { "mount /boot -o remount,rw" };
Pre-Invoke { "mount /tmp -o remount,exec" };
Pre-Invoke { "mount /var -o remount,exec" };
Post-Invoke { "mount / -o remount,ro" };
Post-Invoke { "mount /usr -o remount,ro" };
Post-Invoke { "mount /boot -o remount,ro" };
Post-Invoke { "mount /tmp -o remount,noexec" };
Post-Invoke { "mount /var -o remount,noexec" };
}; |
Añadimos soporte para el Euro en consola.
# # Soporte para el Euro -> ¤ # SCREEN_FONT=lat0-sun16 APP_CHARSET_MAP=iso15 # #DO_VCSTIME=yes # # Forget this one unless you _know_ it is necessary for your font: # # Soporte para el Euro -> ¤ # SCREEN_FONT_vc1=lat0-sun16 SCREEN_FONT_vc2=lat0-sun16 SCREEN_FONT_vc3=lat0-sun16 SCREEN_FONT_vc4=lat0-sun16 SCREEN_FONT_vc5=lat0-sun16 SCREEN_FONT_vc6=lat0-sun16 |
Añadir el archivo 'interfaces-secure', con el siguiente contenido:
# Script-name: /etc/network/interface-secure
# Modifies some default behaviour in order to secure against
# some TCP/IP spoofing & attacks
#
# Contributed by Dariusz Puchalak
#
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# broadcast echo protection enabled
echo 0 > /proc/sys/net/ipv4/ip_forward # ip forwarding disabled
echo 1 > /proc/sys/net/ipv4/tcp_syncookies # TCP syn cookie protection enabled
# Log packets with impossible addresses
# but be careful with this on heavy loaded web servers
echo 1 >/proc/sys/net/ipv4/conf/all/log_martians
# defragging protection always enabled
echo 1 > /proc/sys/net/ipv4/ip_always_defrag
# bad error message protection enabled
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# now ip spoofing protection
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
# and finally some more things:
# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done
# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
echo 1 > $f
done |
![]() | Nota |
|---|---|
Para interfaces que se configuran vía DHCP, hacer lo siguiente: crear un nuevo archivo denominado '/etc/network/interfaces-arranque' en el cual se ha de añadir la siguiente línea a la configuración de la tarjeta de red de Internet, por ejemplo: pre-up /etc/network/interface-secure Una vez hecho esto, se edita el archivo '/etc/network/interfaces' y se añade lo siguiente a la definición de una interfaz de red: pre-up /etc/network/interface-secure up /etc/init.d/rc_firewall start Siendo rc_firewall, el cortafuegos. finalmente, modificar el archivo '/etc/init.d/networking' para que se llame al archivo /etc/network/interfaces-arranque en lugar de al /etc/network/interfaces, en al arranque. | |
![]() | Nota |
|---|---|
Para interfaces con direcciones fijas, hacer lo siguiente: Añadir la siguiente línea al archivo '/etc/network/interfaces': pre-up /etc/network/interface-secure | |
Comentarios a la configuración por defecto de las PAM:
Añadir los grupos 'wheel' y 'nosu'. En el primero irán los usuarios a los que les está permitido hacer uso de 'su', y a los que no le está permitido, añadirlos a 'nosu'.
chfn, chsh y cron: quitar la entrada 'nullok'
login
* Descomentar las líneas: auth required pam_issue.so issue=/etc/issue auth optional pam_group.so account requisite pam_time.so account required pam_access.so session required pam_limits.so * Eliminar las entradas 'nullok' * Comentar la línea: # password required pam_unix.so nullok obscure min=4 max=8 md5 * Descomentar y modificar las líneas siguientes, para que queden: password required pam_cracklib.so retry=3 minlen=8 difok=4 password required pam_unix.so use_authtok md5 |
other
* Comentar o borrar las líneas por defecto y añadir las siguientes: auth required pam_securetty.so auth required pam_unix_auth.so auth required pam_warn.so auth required pam_deny.so account required pam_unix_acct.so account required pam_warn.so account required pam_deny.so password required pam_unix_passwd.so password required pam_warn.so password required pam_deny.so session required pam_unix_session.so session required pam_warn.so session required pam_deny.so |
passwd
* Comentar la línea: password required pam_unix.so nullok obscure min=4 max=8 md5 * Descomentar y modificar las dos últimas líneas para que aparezcan como: password required pam_cracklib.so retry=3 minlen=8 difok=4 password required pam_unix.so use_authtok md5 * Eliminar las entradas 'nullok' |
ssh
* Comentar la línea: password required pam_unix.so * Descomentar y modificar las dos últimas líneas para que aparezcan como: password required pam_cracklib.so retry=3 minlen=8 difok=4 password required pam_unix.so use_authtok md5 |
su
* Descomentar y modificar las líneas: auth required pam_wheel.so group=wheel debug auth required pam_wheel.so deny group=nosu account requisite pam_time.so session required pam_limits.so |
Configuración propuesta:
* hard core 0 * soft nofile 100 * hard rss 10000 * hard nproc 150 * soft fsize 50000 www-data soft nofile 100000 @usuarios hard core 0 @usuarios hard rss 2000 @usuarios hard nproc 15 @usuarios hard cpu 2 @usuarios hard nofile 30 @usuarios hard fsize 10000 @usuarios hard memlock 5000 @usuarios hard data 1000 @usuarios hard maxlogins 4 @usuarios hard priority 17 |
Si en nuestro sistema tenemos un usuario, podríamos añadir:
#nombreusuario soft fsize 3000000 nombreusuario hard nofile 10000000 |
Configuracion propuesta para estos archivos:
ssh_config: añadir lo siguiente:
Host * Protocol 2 Ciphers blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc Compression yes HostKeyAlgorithms ssh-dss,ssh-rsa |
sshd_config: añadir lo siguiente:
AllowGroups ssh Ciphers blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,arcfour |
Si tenemos instalado el parche de grsecurity, y utilizamos la configuración del los núcleos de metadistros, tendríamos que añadir los siguientes grupos:
privileged:x:2000: trustedpath:x:2002: socketall:x:2004: socketclient:x:2005: socketserver:x:2006: auditar:x:2007: |
![]() | Aviso |
|---|---|
El nombre de los grupos es orientativo, lo que es importate es hacer coincidir los “gid” con aquellos que se añadieron en la configuración de grsecurity cuando se compiló en kernel. | |
Lineas propuestas para incorporarlas a este archivo:
# Desautorizar a todos los hosts con nombre sospechoso ALL: PARANOID # Desautorizar a todos los hosts ALL:ALL |
Opciones propuestas:
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See sysctl.conf (5) for information.
#
#
##
# Activamos low-latency
#
# kernel.lowlatency=1
#############################################
# Mejorando el rendimiento del servidor web #
#############################################
#
# Máximo número de archivos abiertos
#
fs/file-max=150000
#
# Aumentamos el número de en la tabla de conexiones
#
net/ipv4/ip_conntrack_max=524288
#
# Aumentamos la cola de backlog
#
net/ipv4/tcp_max_syn_backlog=4096
##############################
# Buffer Overflow Protection #
##############################
# _______________________
# Read-only kernel memory
#
# root will not be able to modify the contents of
# kernel memory. If module support is removed in addition to enabling
# this option, the ability of an attacker to insert foreign code into
# a running kernel is removed.
#
# kernel/grsecurity/read_only_kmem=1
# _______________________
# Fixed mmap restrictions
#
# If you say Y here, it will be impossible for an attacker to bypass the
# PaX buffer overflow protection by mmaping an executable memory region
# with a specific address set.
#
# kernel/grsecurity/mmap_fixed_restrict=1
##########################
# Filesystem protections #
##########################
# ____________________
# Linking restrictions
#
# /tmp race exploits will be prevented, since users
# will no longer be able to follow symlinks owned by other users in
# world-writeable +t directories (i.e. /tmp), unless the owner of the
# symlink is the owner of the directory. users will also not be
# able to hardlink to files they do not own.
#
kernel/grsecurity/linking_restrictions=1
# _________________
# FIFO restrictions
#
# Users will not be able to write to FIFOs they don't
# own in world-writeable +t directories (i.e. /tmp), unless the owner of
# the FIFO is the same owner of the directory it's held in.
#
kernel/grsecurity/fifo_restrictions=1
# _______________________
# Secure file descriptors
#
# set*id binaries will be protected from data spoofing
# attacks (eg. making a program read /etc/shadow). The patches do this
# by opening up /dev/null to any of the stdin, stdout, stderr file descriptors
# for set*id binaries that are open and run by a user that is not the owner
# of the file.
#
# kernel/grsecurity/secure_fds=1
# ________________________
# Chroot jail restrictions
#
#
# * Restricted signals
#
# Processes inside a chroot will not be able to send
# signals outside of the chroot. The only signals allowed are null
# signals which perform no action, and the parent process sending
# a certain signal to its child.
#
##kernel/grsecurity/chroot_restrict_sigs=1
#
# * Deny mounts
#
# Processes inside a chroot will not be able to
# mount or remount filesystems.
#
kernel/grsecurity/chroot_deny_mount=1
#
# * Deny double-chroots
#
# Processes inside a chroot will not be able to chroot
# again. This is a widely used method of breaking out of a chroot jail
# and should not be allowed.
#
kernel/grsecurity/chroot_deny_chroot=1
#
# * Enforce chdir("/") on all chroots
#
# The current working directory of all newly-chrooted
# applications will be set to the the root directory of the chroot.
# The man page on chroot(2) states:
# Note that this call does not change the current working
# directory, so that `.' can be outside the tree rooted at
# `/'. In particular, the super-user can escape from a
# `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
#
# It is recommended that you say Y here, since it's not known to break
# any software.
#
#kernel/grsecurity/chroot_deny_chdir=1
#
# * Deny (f)chmod +s
#
# Processes inside a chroot will not be able to chmod
# or fchmod files to make them have suid or sgid bits. This protects
# against another published method of breaking a chroot.
#
kernel/grsecurity/chroot_deny_chmod=1
#
# * Deny mknod
#
# Processes inside a chroot will not be allowed to
# mknod. The problem with using mknod inside a chroot is that it
# would allow an attacker to create a device entry that is the same
# as one on the physical root of your system, which could range from
# anyhing from the console device to a device for your harddrive (which
# they could then use to wipe the drive or steal data). It is recommended
# that you say Y here, unless you run into software incompatibilities.
#
kernel/grsecurity/chroot_deny_mknod=1
#
# * Deny ptraces
#
# Processes inside a chroot will not be able to ptrace
# other processes. Ptracing a process allows one to attach and alter the
# flow of execution for the process. It is strongly recommended that you
# say Y here.
#
##kernel/grsecurity/chroot_deny_ptrace=1
#
# * Restrict priority changes
#
# Processes inside a chroot will not be able to raise
# the priority of processes in the chroot, or alter the priority of
# processes outside the chroot. This provides more security than simply
# removing CAP_SYS_NICE from the process' capability set.
#
kernel/grsecurity/chroot_restrict_nice=1
# _____________________________________
# Capability restrictions within chroot
#
# The capabilities on all root processes within a
# chroot jail will be lowered to stop module insertion, raw i/o,
# system and net admin tasks, transferring capabilities, and
# tty configuration tasks. This is left an option because it breaks
# some apps. Disable this if your chrooted apps are having
# problems performing those kinds of tasks.
#
kernel/grsecurity/chroot_caps=1
# _____________________
# Secure keymap loading
#
# KDSKBENT and KDSKBSENT ioctl calls being
# called by unprivileged users will be denied. If you answer N,
# everyone with access to the console will be able to modify keyboard
# bindings.
#
# kernel/grsecurity/secure_kbmap=1
####################
# Security Logging #
####################
# _________________________
# Single group for auditing
#
# the exec, chdir, (un)mount, and ipc logging features
# will only operate on a group you specify. This option is recommended
# if you only want to watch certain users instead of having a large
# amount of logs from the entire system.
#
kernel/grsecurity/audit_group=1
#
# * GID for auditing
#
# Here you can choose the GID that will be the target of
# kernel auditing. Remember to add the users you want to log
# to the GID specified here. If the sysctl option is
# enabled, whatever you choose here won't matter. You'll have to
# specify the GID in your bootup script by echoing the GID to
# the proper /proc entry. View the help on the sysctl option for
# more information.
#
kernel/grsecurity/audit_gid=2007
# ____________
# Exec logging
#
# All execve() calls will be logged (since the
# other exec*() calls are frontends to execve(), all execution
# will be logged). Useful for shell-servers that like to keep track
# of their users.
#
# WARNING: This option when enabled will produce a LOT of logs, especially
# on an active system.
#
kernel/grsecurity/exec_logging=0
# _______________________
# Log execs within chroot
#
# All executions inside a chroot jail will be logged
# to syslog.
#
kernel/grsecurity/chroot_execlog=1
# _____________
# Chdir logging
#
# All chdir() calls will be logged.
#
kernel/grsecurity/audit_chdir=0
# _________________
# (Un)Mount logging
#
# All mounts and unmounts will be logged.
#
kernel/grsecurity/audit_mount=1
# ___________
# IPC logging
#
# creation and removal of message queues, semaphores,
# and shared memory will be logged.
#
kernel/grsecurity/audit_ipc=1
# ______________
# Ptrace logging
#
# All successful ptraces will be logged. Ptraces are
# special operations performed when programs like strace or gdb are run.
# They have also been the focus of some kernel vulnerabilities.
#
###kernel/grsecurity/audit_ptrace=1
# ______________
# Signal logging
#
# Certain important signals will be logged, such as
# SIGSEGV, which will as a result inform you of when a error in a program
# occurred, which in some cases could mean a possible exploit attempt.
#
kernel/grsecurity/signal_logging=0
# ____________________
# Fork failure logging
#
# All failed fork() attempts will be logged.
# This could suggest a fork bomb, or someone attempting to overstep
# their process limit.
#
kernel/grsecurity/forkfail_logging=1
# ____________________________
# Set*id logging for all users
#
# All set*id() calls will be logged. Such information
# could be useful when detecting a possible intrusion attempt. This
# option can produce a lot of logs on an active system.
#
# kernel/grsecurity/suid_logging=0
# ___________________
# Time change logging
#
# Any changes of the system clock will be logged.
#
kernel/grsecurity/timechange_logging=0
##########################
# Executable Protections #
##########################
# _____________________
# Exec process limiting
#
# Users with a resource limit on processes will
# have the value checked during execve() calls. The current system
# only checks the system limit during fork() calls.
#
kernel/grsecurity/execve_limiting=1
# ___________________________
# Dmesg(8) restriction
#
# Non-root users will not be able to use dmesg(8)
# to view up to the last 4kb of messages in the kernel's log buffer.
#
kernel/grsecurity/dmesg=1
# _______________
# Randomized PIDs
#
# All PIDs created on the system will be
# pseudo-randomly generated. This is extremely effective along
# with the /proc restrictions to disallow an attacker from guessing
# pids of daemons, etc. PIDs are also used in some cases as part
# of a naming system for temporary files, so this option would keep
# those filenames from being predicted as well. We also use code
# to make sure that PID numbers aren't reused too soon.
#
kernel/grsecurity/rand_pids=1
# _____________________________
# Limit uid/gid changes to root
#
# You will be able choose from three option that
# will allow you to restrict access to the root account by console
# type. These options should only be enabled if you are sure of what
# you're doing. Also note that they only apply to processes that have
# ttys, which generally involves some kind of user-interaction. The
# options are basically in place to keep users on a system who have a
# (stolen) password for root from using it unless their console
# credentials match.
#
#
# * Deny physical consoles (tty)
#
# Access to root from physical consoles will be
# denied. This is only recommended for rare cases where you will
# never need to be physically at the machine.
#
# kernel/grsecurity/deny_phys_root=0
#
# * Deny serial consoles (ttyS)
#
# Access to root from serial consoles will be
# denied. Most people can say Y here, since most don't use serial
# devices for their console access. If you are unsure, say N.
# kernel/grsecurity/deny_serial_root=1
#
# * Deny pseudo consoles (pty)
#
# Access to root from pseudo consoles will be
# denied. Pseudo consoles include consoles from telnet, ssh, or any other
# kind of interactive shell initiated from the network. Pseudo consoles
# also include any terminals you use in XFree86. If you will only be
# accessing the machine for root access from the physical console, you
# can say Y here. Only say Y here if you're sure of what you're doing.
# kernel/grsecurity/deny_pseudo_root=0
# ____________________
# Fork-bomb protection
#
# You will be able to configure a group to add to users
# on your system that you want to be unable to fork-bomb the system.
# You will be able to specify a maximum process limit for the user and
# set a rate limit for all forks under their uid. (Fork-bombing is a
# tactic used by attackers that can be enacted in two ways, (1) loading
# up thousands of processes until the system can't take any more (this
# method can be stopped outside of the kernel with PAM, however we place
# protection for it in the kernel to be more complete and reduce overhead),
# and (2), by forking processes at a rapid rate, and then killing them
# off, which cannot be protected against in the same way at tactic 1)
# The rate limit is specified in forks allowed per second. Set this
# limit low enough to stop tactic 2, but high enough to allow for
# normal operation. The protection will kill the offending process.
#
# kernel/grsecurity/fork_bomb_prot=1
#
# * GID for restricted users
#
# Here you can choose the GID to enable fork-bomb protection for.
# Remember to add the users you want protection enabled for to the GID
# specified here. If the sysctl option is enabled, whatever you choose
# here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
# kernel/grsecurity/fork_bomb_gid=2001
#
# * Forks allowed per second
#
# Here you can specify the maximum number of forks allowed per second.
# You don't want to set this value too low, or else you'll hinder
# normal operation of your system. The default value should be fine for
# most users.
#
# kernel/grsecurity/fork_bomb_sec=40
#
# * Maximum processes allowed
#
# Here you can configure the maximum number of processes users in the
# fork-bomb protected group can run. I would not recommend setting a
# value lower than 8, since some programs like man(1) spawn up to 8
# processes to run. The default value should be fine for most purposes.
#
# kernel/grsecurity/fork_bomb_max=20
# ______________________
# Trusted path execution
#
# You will be able to choose a gid to add to the
# supplementary groups of users you want to mark as "untrusted."
# These users will not be able to execute any files that are not in
# root-owned directories writeable only by root.
#
kernel/grsecurity/tpe=1
#
# * Glibc protection
#
# All non-root users will not be able to execute
# any files while glibc specific environment variables such as
# LD_PRELOAD are set, which could be used to evade the trusted path
# execution protection. It also protects against evasion through
# /lib/ld-2.* It is recommended you say Y here also.
#
###kernel/grsecurity/tpe_glibc=1
#
# * Partially restrict non-root users
#
# All other non-root users will only be allowed to
# execute files in directories they own that are not group or
# world-writeable, or in directories owned by root and writeable only by
# root.
#
kernel/grsecurity/tpe_restrict_all=1
#
# - GID for untrusted users:
#
# Here you can choose the GID to enable trusted path protection for.
# Remember to add the users you want protection enabled for to the GID
# specified here. If the sysctl option is enabled, whatever you choose
# here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
kernel/grsecurity/tpe_gid=2002
# _________________
# Restricted ptrace
#
# No one but root will be able to ptrace processes.
# Tracing syscalls inside the kernel will also be disabled. All allowed
# ptraces will be logged when this option is enabled.
#
# kernel/grsecurity/restrict_ptrace=1
#
# * Allow ptrace for group
#
# You will be able to choose a GID of whose users
# will be able to ptrace.
#
# kernel/grsecurity/allow_ptrace_group=1
#
# - GID for ptrace
#
# Here you can choose the GID of whose users will be able to ptrace.
# Remember to add the users you want ptrace enabled for to the GID
# specified here. If the sysctl option is enabled, whatever you choose
# here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
# kernel/grsecurity/ptrace_gid=2003
#######################
# Network Protections #
#######################
# _________________
# Randomized IP IDs
#
# All the id field on all outgoing packets
# will be randomized. This hinders os fingerprinters and
# keeps your machine from being used as a bounce for an untraceable
# portscan. Ids are used for fragmented packets, fragments belonging
# to the same packet have the same id. By default linux only
# increments the id value on each packet sent to an individual host.
# We use a port of the OpenBSD random ip id code to achieve the
# randomness, while keeping the possibility of id duplicates to
# near none.
#
kernel/grsecurity/rand_ip_ids=1
# ___________________________
# Randomized TCP source ports
#
# Situations where a source port is generated on the
# fly for the TCP protocol (ie. with connect() ) will be altered so that
# the source port is generated at random, instead of a simple incrementing
# algorithm.
#
kernel/grsecurity/rand_tcp_src_ports=1
# ___________________________
# Randomized RPC XIDs
#
# The method of determining XIDs for RPC requests will
# be randomized, instead of using linux's default behavior of simply
# incrementing the XID.
#
kernel/grsecurity/rand_rpc=1
# ________________
# Altered Ping IDs
#
# The way Linux handles echo replies will be changed
# so that the reply uses an ID equal to the ID of the echo request.
# This will help in confusing OS detection.
#
kernel/grsecurity/altered_pings=1
# ______________
# Randomized TTL
#
# Your TTL (time to live) for packets will be set at
# random, with a base level you specify, to further confuse OS detection.
#
# kernel/grsecurity/rand_ttl=1
#
# * TTL starting point:
#
# Here you can choose a base TTL for the randomization. The default value
# for this setting is the Linux default TTL. Most users will want to
# leave this setting as-is. The higher you set the base level (note that
# you can't set it above 255) the more hops your packets will live.
# If the sysctl option is enabled, whatever you choose here won't matter.
# You'll have to specify the threshold in your bootup script by echoing
# the threshold to the proper /proc entry. View the help on the sysctl
# option for more information.
#
#kernel/grsecurity/rand_ttl_thresh=64
# ___________________________
# Enhanced network randomness
#
# The functions controlling the randomness
# of the Linux IP stack will be enhanced to decrease the chances
# of being able to predict certain packets that require some
# amount of randomness.
#
### kernel/grsecurity/rand_net=1
# ___________________
# Socket restrictions
#
# You will be able to choose from several options.
# If you assign a GID on your system and add it to the supplementary
# groups of users you want to restrict socket access to, this patch
# will perform up to three things, based on the option(s) you choose.
#
# * Deny any sockets to group
#
# You will be able to choose a GID of whose users will
# be unable to connect to other hosts from your machine or run server
# applications from your machine.
#
kernel/grsecurity/socket_all=1
#
# - GID to deny all sockets for:
#
# Here you can choose the GID to disable socket access for. Remember to
# add the users you want socket access disabled for to the GID
# specified here. If the sysctl option is enabled, whatever you choose
# here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
kernel/grsecurity/socket_all_gid=2004
#
# * Deny client sockets to group
#
# You will be able to choose a GID of whose users will
# be unable to connect to other hosts from your machine, but will be
# able to run servers. If this option is enabled, all users in the group
# you specify will have to use passive mode when initiating ftp transfers
# from the shell on your machine.
#
kernel/grsecurity/socket_client=1
#
# - GID to deny client sockets for:
#
# Here you can choose the GID to disable client socket access for.
# Remember to add the users you want client socket access disabled for to
# the GID specified here. If the sysctl option is enabled, whatever you
# choose here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
kernel/grsecurity/socket_client_gid=2005
#
# * Deny server sockets to group
#
# You will be able to choose a GID of whose users will
# be unable to run server applications from your machine.
#
kernel/grsecurity/socket_server=1
#
# - GID to deny server sockets for:
#
# Here you can choose the GID to disable server socket access for.
# Remember to add the users you want server socket access disabled for to
# the GID specified here. If the sysctl option is enabled, whatever you
# choose here won't matter. You'll have to specify the GID in your bootup
# script by echoing the GID to the proper /proc entry. View the help
# on the sysctl option for more information.
#
kernel/grsecurity/socket_server_gid=2006
# __________________
# Stealth networking
#
# You will enable several enhancements that will
# improve your system's protection against portscans.
# Enabling these options and filtering all open ports should make
# your machine very hard to detect, while not interfering with (most)
# normal operation. All the stealth options break RFC, so there's always the
# possibility that it might affect how certain network applications react
# to your system.
#
# * Do not send RSTs on unserved TCP
#
# Your machine will not send RSTs (connection resets)
# on unserved TCP ports. This will slow down portscanners a great deal,
# since it has the same effect as dropping all packets to unserved TCP
# ports. It will also force clients connecting to a non-open port to
# time out instead of immediately stating "connection refused."
#
# kernel/grsecurity/stealth_rst=0
#
# * Do not reply to UDP with ICMP unreachables
#
# Your machine will not reply with ICMP unreachable
# packets (type 3) on UDP ports not waiting for data. This hinders
# portscanners from scanning your UDP ports. Enabling the UDP stealth
# options is known to slow down SSH connection times, and may also
# interfere with other protocols as well. Packets travelling across the
# local loopback interface will not be tampered with.
#
# kernel/grsecurity/stealth_udp=0
#
# * Do not process ICMP packets
#
# Your machine will drop all ICMP packets but
# echo-reply (Which allows you to ping from your machine, while not
# allowing your machine to be pinged). Since ICMP packets can be spoofed
# and are commonly used in Denial of Service attacks, it is recommended
# that you say Y here. Theoretically, it is possible that this option
# could hinder your ability to connect to certain hosts since it also
# blocks "packet too large" icmp messages, though in reality this
# occurance is rare. Packets travelling across the local loopback
# interface will not be tampered with.
#
# kernel/grsecurity/stealth_icmp=0
#
# * Do not reply to IGMP requests
#
# Your machine will drop all IGMP packets. IGMP
# stands for Internet Group Management Protocol. Most users should
# enable this option, unless you are actually connected to a multicast
# network, which IGMP is used for.
#
# kernel/grsecurity/stealth_igmp=1
#
# * Drop packets with illegitimate flags
#
# Your machine will drop packets with TCP flags that
# are never used in normal communication. Such packets are used in
# "stealth" scans, and should not be allowed. It is recommended that
# you say Y here.
#
# kernel/grsecurity/stealth_flags=0
###################
# Network Logging #
###################
# __________________________________
# Log requests to unserved TCP ports
#
# Your machine will log requests to unserved TCP ports.
#
### kernel/grsecurity/stealth_rst_log=0
# __________________________________
# Log requests to unserved UDP ports
#
# Your machine will log packets to UDP ports on your
# system that are not waiting for data. Packets travelling across the
# local loopback interface will not be logged.
#
### kernel/grsecurity/stealth_udp_log=0
# ________________
# Log ICMP packets
#
# Your machine will log all ICMP packets but
# echo-reply. Packets travelling across the local loopback interface
# will not be logged.
#
### kernel/grsecurity/stealth_icmp_log=0
# ___________________________________
# Log packets with illegitimate flags
#
# Your machine will log packets with TCP flags that
# are never used in normal communication. Such packets are used in
# "stealth" scans, and should not be allowed.
#
### kernel/grsecurity/stealth_flags_log=0
##############################
# Miscellaneous Enhancements #
##############################
# ___________________
# BSD-style coredumps
#
# Linux will use a style similar to BSD for
# coredumps, core.processname. Not a security feature, just
# a useful one.
#
# kernel/grsecurity/coredump=1
##################
# Sysctl support #
##################
# ______________
# Sysctl support
#
# You will be able to change the options that
# grsecurity runs with at bootup, without having to recompile your
# kernel. You can echo values to files in /proc/sys/kernel/grsecurity
# to enable (1) or disable (0) various features. All the sysctl entries
# are mutable until the "grsec_lock" entry is set to a non-zero value.
# All features are disabled by default. Please note that this option could
# reduce the effectiveness of the added security of this patch if an ACL
# system is not put in place. Your init scripts should be read-only, and
# root should not have access to adding modules or performing raw i/o
# operations. All options should be set at startup, and the grsec_lock
# entry should be set to a non-zero value after all the options are set.
# *THIS IS EXTREMELY IMPORTANT*
#
kernel/grsecurity/grsec_lock=0 |