우리는 트래픽 급증을 경험하는 사이트를 운영하므로 SELinux는 일반적으로 이 트래픽을 SYN 플러드 공격으로 간주합니다. 다양한 CentOS 서버에서 동일한 문제가 발생하고 있습니다.
비활성화 또는 허용으로 설정되었음에도 불구하고 /etc/selinux/config
서버가 시작되면 selinux는 다시 강제 모드로 전환됩니다.
SELinux를 비활성화하는 유일한 방법은 echo 0 > /proc/sys/net/ipv4/tcp_syncookies
서버가 시작될 때마다 비활성화하는 것입니다.
위의 명령을 사용하여 부팅할 때마다 cron 작업을 실행하는 것이 한 가지 해결책이라는 것을 알고 있지만 /etc/selinux/config
충분히 수정하지 않은 이유가 무엇인지 아는 사람이 있는지 궁금합니다. 그것? ).
답변1
/etc/sysconfig/selinux
원하는 곳에서 SELINUX=disabled
재부팅하세요.
원천:http://www.centos.org/docs/5/html/5.2/Deployment_Guide/sec-sel-enable-disable.html
답변2
SELinux를 유지하고 싶지만존재하다그리고 서버를 손상시키는 모든 것을 허용하는 정책이 있으면 언제든지 SELinux를 비활성화해 볼 수 있습니다.
$: sudo echo 0 > /selinux/enforce
답변3
기본적으로 활성화된 Syn-Flood 보호 메커니즘(참조)은 /proc/sys/net/ipv4/tcp_syncookies
SELinux와 아무 관련이 없습니다.
IOW, SELinux 활성화 여부에 관계없이 syn-flood 보호가 활성화됩니다.
또한보십시오커널 문서tcp_syncookies
:
tcp_syncookies - BOOLEAN 커널이 CONFIG_SYN_COOKIES로 컴파일된 경우에만 유효합니다. Syncookies는 소켓의 syn 백로그 큐가 오버플로될 때 전송됩니다. 이는 일반적인 "SYN 플러드 공격"을 방지하기 위한 것입니다. 기본값: 1
싱크쿠키는 대체 기능이라는 점에 유의하세요. 합법적인 연결 속도에 비해 부하가 높은 서버를 지원하는 데는 사용할 수 없습니다. 로그에 SYN 플러드 경고가 표시되지만 조사 결과 해당 경고가 합법적인 연결의 과부하로 인해 발생한 것으로 나타나면,다른 매개변수를 조정해야 합니다.경고가 사라질 때까지. 참조: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.
syncookies는 TCP 프로토콜에 대한 심각한 위반이며 TCP 확장 사용을 허용하지 않습니다. 이로 인해 일부 서비스(예: SMTP 릴레이)가 심각하게 저하될 수 있으며 사용자에게는 보이지 않지만 클라이언트와 릴레이에서는 사용자에게 연락합니다. 로그에 SYN 플러드 경고가 표시되는 경우정말 압도되지 않았어, 귀하의 서버 심각한 구성 오류.
(강조는 내 것)
/etc/sysctl.d
다음과 같이 파일을 로 끌어서 놓아 해당 설정을 영구적으로 변경할 수 있습니다 .
# echo 'net.ipv4.tcp_syncookies=0' > /etc/sysctl.d/23-network
이러한 파일은 다음에 재부팅하거나 호출하는 동안 적용됩니다 sysctl --system
.