LINUX.ORG.RU
решено ФорумAdmin

centos6 не применяются изменения sysctl.conf после перезагрузки

 ,


0

1

Требуется изменить параметры ядра:

net.nf_conntrack_max = 1048576
net.netfilter.nf_conntrack_max = 1048576

Эти две строки добавляю в /etc/sysctl.conf, но после перезагрузки

 sysctl -a | grep conn 
показывает что ничего не поменялось. Почему?

Если сделать

/sbin/sysctl -e -p /etc/sysctl.conf 
, то все становится как в конфиге.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 3)

Ответ на: комментарий от andrew667

И хорошо, что раньше. Я же говорю - подгружай conntrack в /etc/sysconfig/iptables-config. Переменная назывется IPTABLES_MODULES

Chumka ★★★
()
Ответ на: комментарий от Chumka

Я тут отлучился ненадолго. В общем пробовал всяко разно (модули по одному, несколько модулей), например,

IPTABLES_MODULES="conntrack ip_conntrack nf_conntrack nf_conntrack_max"
 
грузился, но ни фига не работает. Я вообще примерно это должен был сделать?

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от Chumka

Стартует

iptables       	0:выкл	1:выкл	2:вкл	3:вкл	4:вкл	5:вкл	6:выкл
 
Я и правила понаписал чтобы закрыть все ненужные порты, так что точно скажу что работает iptables.

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от mky

IPTABLES_MODULES_UNLOAD=«no»

не хочет, зараза. Попробовал и вернул обратно на yes

Интересно, что если дописать в /etc/sysctl.conf

net.core.somaxconn = 256 
, то после перезагрузки жрет (по умолчанию значение 128).

Выхлоп sysctl -a | grep conn

net.netfilter.nf_conntrack_generic_timeout = 600
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
net.netfilter.nf_conntrack_tcp_loose = 1
net.netfilter.nf_conntrack_tcp_be_liberal = 0
net.netfilter.nf_conntrack_tcp_max_retrans = 3
net.netfilter.nf_conntrack_udp_timeout = 30
net.netfilter.nf_conntrack_udp_timeout_stream = 180
net.netfilter.nf_conntrack_icmp_timeout = 30
net.netfilter.nf_conntrack_acct = 0
net.netfilter.nf_conntrack_events = 1
net.netfilter.nf_conntrack_events_retry_timeout = 15
net.netfilter.nf_conntrack_max = 65536
net.netfilter.nf_conntrack_count = 20
net.netfilter.nf_conntrack_buckets = 16384
net.netfilter.nf_conntrack_checksum = 1
net.netfilter.nf_conntrack_log_invalid = 0
net.netfilter.nf_conntrack_expect_max = 256
net.core.somaxconn = 256
net.nf_conntrack_max = 65536

Выхлоп /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
#andrew667 added
net.core.somaxconn = 256
net.netfilter.nf_conntrack_max = 131072
net.nf_conntrack_max = 131072
#net.netfilter.ip_conntrack_max = 1048576

Выхлоп /etc/sysconfig/iptables-config

 # Load additional iptables modules (nat helpers)
#   Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
#IPTABLES_MODULES=""
IPTABLES_MODULES="conntrack nf_conntrack nf_conntrack_max"

# Unload modules on restart and stop
#   Value: yes|no,  default: yes
# This option has to be 'yes' to get to a sane state for a firewall
# restart or stop. Only set to 'no' if there are problems unloading netfilter
# modules.
#IPTABLES_MODULES_UNLOAD="yes"

# Save current firewall rules on stop.
#   Value: yes|no,  default: no
# Saves all firewall rules to /etc/sysconfig/iptables if firewall gets stopped
# (e.g. on system shutdown).
IPTABLES_SAVE_ON_STOP="no"

# Save current firewall rules on restart.
#   Value: yes|no,  default: no
# Saves all firewall rules to /etc/sysconfig/iptables if firewall gets
# restarted.
IPTABLES_SAVE_ON_RESTART="no"

# Save (and restore) rule and chain counter.
#   Value: yes|no,  default: no
# Save counters for rules and chains to /etc/sysconfig/iptables if
# 'service iptables save' is called or on stop or restart if SAVE_ON_STOP or
# SAVE_ON_RESTART is enabled.
IPTABLES_SAVE_COUNTER="no"

# Numeric status output
#   Value: yes|no,  default: yes
# Print IP addresses and port numbers in numeric format in the status output.
IPTABLES_STATUS_NUMERIC="yes"

# Verbose status output
#   Value: yes|no,  default: yes
# Print info about the number of packets and bytes plus the "input-" and
# "outputdevice" in the status output.
IPTABLES_STATUS_VERBOSE="no"

# Status output with numbered lines
#   Value: yes|no,  default: yes
# Print a counter/number for every rule in the status output.
IPTABLES_STATUS_LINENUMBERS="yes"

IPv6 не юзаем если что. Че тут думать уже не знаю, но наверняка какой-то мелкий нюанс. Установка minimal-server плюс несколько пакетов из репов centos. Софта из сторонних репов нету. Первослаку не разводил.

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от andrew667

IPTABLES_MODULES_UNLOAD=«no»

не хочет, зараза. Попробовал и вернул обратно на yes

Странно это. Вобще «no» полезно, иначе при «service iptables restart» модули будут выгружены и настройки через /proc сбросятся.

С другой стороны, сейчас проверил на своём сервере, у меня SL6. При загрузке, net.nf_conntrack_max устанавливается даже с IPTABLES_MODULES_UNLOAD=«no» и пустым IPTABLES_MODULES=.

Возможно, что у вас где-то в других стартовых скриптах делается restart iptables или ещё что. Я бы на вашем месте подредактировал файл /etc/init.d/functions, засунув бы в начало строку

sysctl -a | grep -E '(conntrack_max|somaxconn)'

И после перезагрузки смотрел, как в ходе запуска init-скриптов меняются эти значения.

mky ★★★★★
()
Ответ на: комментарий от mky

у меня в rc.local висит скрипт для iptables. Если я его из rc.local убираю, то после перезагрузки выхлоп sysctl -a | grep conn

 net.core.somaxconn = 256
И все - больше ничего нету. Неважно, есть в конфиге IPTABLES_MODULES=«conntrack nf_conntrack nf_conntrack_max» или нету. Неважно, есть или нету в /etc/sysctl.conf
net.netfilter.nf_conntrack_max = 131072
net.nf_conntrack_max = 131072

Когда запустишь скрипт, то появляются
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536

Выхлоп скрипта (айпишники изменены)

#!/bin/bash
/sbin/iptables stop
INET1_IFACE="eth1"
INET0_IFACE="eth0"
LO_IFACE="lo"
IPTABLES="/sbin/iptables"
#/sbin/depmod -a
$IPTABLES -F
$IPTABLES -t nat -F

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

$IPTABLES -A tcp_packets -p TCP -s 19.8.20.192/255.255.255.192 -j  ACCEPT
$IPTABLES -A tcp_packets -p TCP -s 0.0.0.0/0.0.0.0 --dport 53 -j  ACCEPT

$IPTABLES -A udp_packets -p UDP -s 19.8.20.192/255.255.255.192   -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --dport 53 -j ACCEPT

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT

$IPTABLES -A INPUT -p ALL -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -j tcp_packets
$IPTABLES -A INPUT -p UDP -j udp_packets
$IPTABLES -A INPUT -p ICMP -j icmp_packets
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "

$IPTABLES -A FORWARD -i $INET1_IFACE -j ACCEPT
$IPTABLES -A FORWARD -i $INET0_IFACE -j ACCEPT
$IPTABLES -A FORWARD -i $LO_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A OUTPUT -p ALL -o $INET1_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $INET0_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT

/sbin/iptables-save

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от andrew667

Вобще правила iptables в RHEL положено хранить в

/etc/sysconfig/iptables

в формате iptables-save. Но, главное, чтобы это файл был. Иначе, если этого файла нет, то скрипт /etc/init.d/iptables ничего не делает (в том числе и модули IPTABLES_MODULES не грузит).

mky ★★★★★
()
Ответ на: комментарий от mky

Всем спасибо огромное за помощь и терпение) УРА!

в формате iptables-save. Но, главное, чтобы это файл был. Иначе, если этого файла нет, то скрипт /etc/init.d/iptables ничего не делает (в том числе и модули IPTABLES_MODULES не грузит).

В общем вот чего было. В rhel так, как сделал я по незнанию неправильно. Я запустил system-config-firewall-tui, выключил firewall и в rc.local прописал свой скрипт для iptables. Я убрал из rc.local этот скрипт, запустил system-config-firewall-tui, ВКЛЮЧИЛ firewall, и о чудо

[root@srv1 ~]# sysctl -a | grep -E '(conntrack_max|somaxconn)'
net.netfilter.nf_conntrack_max = 131072
net.core.somaxconn = 256
net.nf_conntrack_max = 131072
Буду читать как правильно юзать /etc/sysconfig/iptables.save

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от Chumka

спасибо за помощь, разобрался в чем была проблема)

andrew667 ★★★★★
() автор топика
10 апреля 2013 г.

True way

/etc/sysconfig/iptables-config

# Reload sysctl settings on start and restart # Default: -none- # Space separated list of sysctl items which are to be reloaded on start. # List items will be matched by fgrep. #IPTABLES_SYSCTL_LOAD_LIST=".nf_conntrack .bridge-nf"

Например добавляешь вот так вот и все волшебным образом срабатывает. IPTABLES_SYSCTL_LOAD_LIST=".nf_conntrack"

Пожалуйста.

anonymous
()
Ответ на: True way от anonymous

анонимус - твой метод не работает (при выключенном firewall). у не работало, потому что был выключен firewall. Я его включил и все)

andrew667 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.