본문 바로가기

리눅스

[리눅스] 리눅스 보안설정

반응형

리눅스 보안설정

 

1. 현재 서버 보안상태및 자원상태 확인

 

pstree # 구동중인 프로세스 확인

 

lsof / ps # 프로세스 상세점검

 

netstat -anlp | more # open 된 포트 확인하여 iptables 에 반영할준비

 

vmstat / top / iostat / sar # 시스템자원의 상태파악하여 시스템 부하상태확인

 

df -Th # 파티션 용량 확인

 

uname -a # 현재 구동중인 커널 이미지확인

커널버전 낮을시 커널업데이트후 고객과 상담하여 리부팅하여 반영할것

 

2. 시간 정보 동기화

 

crontab 에 새벽 6시에 시간동기화 실행하도록 설정

rdate -s time.bora.net && date && clock -r && clock -w

 

echo '#!/bin/sh' >> /root/time.sh;

 

echo 'rdate -s time.bora.net && date && clock -r && clock -w;' >> /root/time.sh;

 

echo '# time sync' >> /etc/crontab;echo '00 6 * * * root /root/time.sh' >> /etc/crontab;

 

chmod 700 /root/time.sh;

 

/etc/rc.d/init.d/crond restart;

 

3. 초기 실행 데몬 선택 (아래 데몬들은 예제이므로 필요없는데몬여부는 고객과 상담하여 진행)

 

crond, imap,imaps,ipop3, pop3s, irqbalance, network, sendmail, saslauthd, sshd, syslog, vsftpd, xinetd,

 

( httpd, mysqld,named 는 서비스 이용여부에 따라 선택적 )

 

4. 서버에 불필요한 패키지들 제거

 

rpm -e raidtools; (소프트웨어 레이드 구성시에는 주석처리)

rpm -e eject --nodeps;

rpm -e kernel-pcmcia-cs;

rm -f /etc/sysconfig/pcmcia.rpmsave;

rpm -e setserial;

rpm -e statserial;

rpm -e rsh;

rpm -e rlogin;

rpm -e telnet-server;

rpm -e redhat-config-mouse;

rpm -e gpm-devel;

rpm -e gpm;

rpm -e nfs-utils;

rpm -e yp-tools ypbind;

rpm -e isdn4k-utils;

rpm -e fam-devel;

rpm -e anacron;

rpm -e irda-utils;

rpm -e minicom;

rpm -e ppp --nodeps;

 

5. iptable 설정

 

iptable 정책확인

 

iptables -L -n

cat /etc/sysconfig/iptables

# 정책이 이미 잘설정이 되어 있을경우는 rc.firewall 작업수행하지말것

chkconfig --level 345 iptables off

cd /etc/rc.d/;

 

wget ftp://ftp.kksstt.com/scripts/rc.firewall*;

 

chmod 700 /etc/rc.d/rc.firewall*;

 

echo "/etc/rc.d/rc.firewall" >> /etc/rc.d/rc.local

 

;/etc/rc.d/rc.firewall;

이외에 netstat -anp 로 확인하여 포트를 열것

 

/etc/rc.d/rc.firewall.stop # iptable 정책멈춤

 

/etc/rc.d/rc.firewall # iptable 정책시작

 

iptables -L -n #했을시 아래와 같은 정책이 제대로 되었는지 확인

Chain INPUT (policy DROP)

target prot opt source destination

ACCEPT all -- 127.0.0.1 0.0.0.0/0

ACCEPT all -- 고객아이피 0.0.0.0/0

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

ACCEPT tcp -- 0.0.0.0/0 고객아이피 multiport dports 20,21,22,25,53,80,110,143

ACCEPT udp -- 0.0.0.0/0 고객아이피 multiport dports 20,53

ACCEPT tcp -- 0.0.0.0/0 고객아이피 multiport sports 20,21,22,25,53,80,110,143

ACCEPT udp -- 0.0.0.0/0 고객아이피 multiport sports 20,53

ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0

ACCEPT icmp -- 고객아이피 고객아이피

DROP tcp -- 0.0.0.0/0 고객아이피 tcp spt:2603 flags:0x16/0x02

DROP tcp -- 0.0.0.0/0 고객아이피 tcp spts:6666:6667 flags:0x16/0x02

DROP udp -- 0.0.0.0/0 고객아이피 multiport dports 135

LOG all -- 0.0.0.0/0 0.0.0.0/0 state INVALID LOG flags 0 level 4 prefix `INVALID DROP'

DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID

DROP tcp -- 0.0.0.0/0 고객아이피 tcp flags:0x16/0x02

 

6. 계정삭제

 

불필요한 계정 및 그룹 삭제한다

userdel adm;

userdel news;

userdel gopher;

userdel lp;

userdel sync;

userdel shutdown;

userdel halt;

userdel operator;

userdel games;

userdel ftp;

userdel rpc;

userdel rpcuser;

userdel nfsnobody;

userdel nscd;

groupdel adm;

groupdel news;

groupdel games;

groupdel dip;

 

7. 파일시스템 옵션설정 (디바이스명(/dev/shm /tmp 등등) 을 잘확인하여 굵은글씨추가)

 

/etc/fstab

none /dev/shm tmpfs defaults,noexec,nosuid 0 0

LABEL=/home /home ext3 defaults,noatime,nodev 1 2

LABEL=/tmp /tmp ext3 defaults,noatime,nodev,noexec,nosuid 1 2

LABEL=/usr /usr ext3 defaults,noatime,nodev 1 2

LABEL=/usr/local /usr/local ext3 defaults,noatime,nodev 1 2

리마운트하여 적용

 

mount -o remount,rw / /usr /usr/local /tmp /home /dev/shm

 

mount (옵션 확인)

## 설명 ##

 

# /dev/shm 은 공유메모리 디바이스로 posix기반의 공유메모리를 사용하는 소스에서 사용함

 

# noatime access time 에 대해서는 기록을 하지않아 자주 사용하는 파티션의 파일일경우 아주 약간의 성능향상이 있다.

 

# nodev 는 해당파티션에서 문자나 특정 디바이스 장치를 허용하지 않음

 

# noexec 는 해당 파티션에서 실행파일의 실행이 허용되지 않음

 

# nosuid 는 해당파티션에서 suid / sgid 등의 setuid설정을 허용하지 않는다

8. 퍼미션 조정

 

chmod 600 /proc;

chmod 751 /;

chmod 701 /bin;

chmod 700 /boot;

chmod 701 /dev;

chmod 755 /dev/shm;

chmod 751 /etc;

chmod 700 /etc/rc.d;

chmod 751 /home;

chmod 751 /lib/modules;

chmod 700 /mnt;

chmod 700 /root;

chmod 751 /sbin;

chmod 751 /usr;

chmod 751 /usr/local;

chmod 700 /usr/local/apache/conf;

chmod 701 /usr/local/apache/htdocs;

chmod 700 /usr/local/apache/logs;

chmod 751 /usr/local/bin;

chmod 751 /usr/local/sbin;

chmod 700 /usr/local/src;

chmod 701 /usr/sbin;

chmod 700 /usr/src;

chmod 751 /var;

chmod 751 /var/log;

chmod 751 /var/named;

chmod 751 /var/run;

chmod 755 /var/tmp;

chmod 750 /etc/cron.*;

chmod 640 /etc/crontab;

chmod 750 /etc/default;

chmod 600 /etc/exports;

chmod 600 /etc/fstab;

chmod 600 /etc/hosts.allow;

chmod 600 /etc/hosts.deny;

chmod 600 /etc/inittab;

chmod 600 /etc/login.defs;

chmod 750 /etc/logrotate.d;

chmod 600 /etc/mtab;

chmod 650 /etc/my.cnf;

chmod 750 /etc/rc.d;

chmod 600 /etc/redhat-release;

chmod 750 /etc/rpm;

chmod 600 /etc/rpc;

chmod 600 /etc/securetty;

chmod 751 /etc/security;

chmod 700 /etc/skel;

chmod 700 /etc/ssh;

chmod 700 /etc/sysconfig;

chmod 700 /etc/xinetd.d;

chmod 700 /etc/vsftpd;

chmod 700 /bin/mount;

chmod 500 /bin/ping;

chmod 700 /bin/umount;

chmod 550 /bin/ps;

chmod 550 /bin/netstat;

chmod 550 /bin/dmesg;

chmod 550 /bin/df;

chmod 700 /bin/rpm;

chmod 700 /sbin/netreport;

chmod 755 /usr/bin/at;

chmod 700 /usr/bin/chage;

chmod 700 /usr/bin/chfn;

chmod 700 /usr/bin/chsh;

chmod 755 /usr/bin/crontab;

chmod 550 /usr/bin/find;

chmod 700 /usr/bin/gpasswd;

chmod 700 /usr/bin/newgrp;

chmod 750 /usr/bin/pstree;

chmod 111 /usr/bin/sudo;

chmod 500 /usr/bin/wall;

chmod 700 /usr/bin/write;

chmod 700 /usr/sbin/ping6;

chmod 700 /usr/sbin/traceroute;

chmod 700 /usr/sbin/traceroute6;

chmod 700 /usr/sbin/usernetctl;

chmod 550 /usr/bin/who;

chmod 550 /usr/bin/finger;

chmod 550 /usr/bin/last;

chmod 550 /usr/bin/top;

chmod 550 /usr/bin/w;

chmod 550 /usr/bin/uptime;

chmod 550 /usr/sbin/useradd;

chmod 550 /usr/sbin/userdel;

chmod 700 /usr/sbin/groupdel;

chmod 700 /usr/sbin/usermod;

chmod 750 /usr/bin/telnet;

chmod 750 /usr/bin/rlogin;

chmod 750 /usr/bin/rcp;

chmod 750 /usr/bin/rsh;

chmod 700 /usr/bin/wget;

chmod 700 /usr/bin/lynx;

chmod 700 /usr/bin/curl;

chmod 700 /usr/bin/ncftpget;

 

9. ftp 보안설정 (복사후 붙여넣기)

 

### 스마일서브 vsftpd 설정 v1.0 ###

 

anonymous_enable=NO

# --> ☞ FTP 익명 접근 차단

 

local_enable=YES

# --> ☞ 로컬에서 계정의 접근허용

 

write_enable=YES

# --> ☞ 쓰기허용

 

data_connection_timeout=180

# --> ☞ 3분간 전송이 없을시 접속해제

 

local_umask=022

# --> ☞ directory=755 / file=644

 

xferlog_enable=YES

# --> ☞ 로그기록여부

 

connect_from_port_20=YES

# --> ☞ 20포트허용여부

 

xferlog_std_format=YES

# --> ☞ 로그파일이 쌓일시 일반적인 로그포멧사용

 

chroot_local_user=YES

# --> ☞ 본인 계정의 디렉토리내에서만 접근허용

 

use_localtime=YES

# --> ☞ 서버의 로컬시간 사용

 

pam_service_name=vsftpd

# --> ☞ pam에서의 vsftpd 이름

 

userlist_enable=YES

# --> ☞ /etc/vsftpd.ftpusers 에 등록된 사용자 접속거부

 

listen=YES

# --> ☞ Standalone 으로 운영하기위한설정

 

max_clients=30

# --> ☞ 최대클라이언트

 

max_per_ip=5

# --> ☞ ip에서 최대접속연결

 

tcp_wrappers=YES

# --> ☞ /etc/hosts.allow /etc/hosts.deny 파일의 정책지원

/etc/init.d/vsftpd restart

 

10. ssh 설정수정

 

(redhat 9 이하 와 Centos / Fedora 구분이 되어 있으니 주의)

 

(그대로 복사하여 붙여넣은후 AllowUsers 아이디는 고객아이디를 반드시 기입한다)

 

### 스마일서브 sshd 설정 v1.0 Centos/Fedora 설정 ###

 

Port 22

 

Protocol 2

 

ListenAddress 0.0.0.0

 

AllowUsers 고객아이디

# 고객아이디만 ssh 원격접근가능하도록 설정 (고객아이디 반드시 기입할것)

 

HostKey /etc/ssh/ssh_host_rsa_key

# 프로토콜2 방식에서의 rsa키값설정

 

HostKey /etc/ssh/ssh_host_dsa_key

# 프로토콜2 방식에서의 dsa키값설정

 

KeyRegenerationInterval 30m

# 30분간 키입력이 없을시 로그아웃

 

ServerKeyBits 1024

# 키 비트수 지정

 

LoginGraceTime 30

# 로그인을 하기 까지의 시간 제한 (30)

 

SyslogFacility AUTHPRIV

# 로그정책 코드설정 (시스템상에서 로그기록을 일반적인 형식으로 기재)

 

LogLevel INFO

# 세세한접근에도 모두 로그에기록

 

PermitRootLogin no

# 원격에서 root 바로 접근불가

 

RSAAuthentication yes

# RSA 인증 여부

IgnoreRhosts yes

# .rhosts, .shosts file 무시 여부

 

IgnoreUserKnownHosts yes

# RhostsRSAAuthentication 을 통한 ~/ssh/known_hosts 를 믿지 못하겠다면 yes로 지정

 

HostbasedAuthentication no

# ssh2에서 /etc/ssh/ssh_known_hosts 파일의 host key 사용 여부

 

PermitEmptyPasswords no

# 빈 패스워드 인정여부

 

PasswordAuthentication yes

# 패스워드 인증방식 사용여부

 

ChallengeResponseAuthentication no

# Challenge-response 인증 매개변수를 허용하지 않음으로 설정 (보안문제로 off)

 

GSSAPIAuthentication yes

# sasl 패키지를 이용한 (Generic Security Services API) 인증방식사용 (Kerberos V5 보안방식의 하나)

 

GSSAPICleanupCredentials yes

# 계정의 pam 인증 방식을 yes할경우 적용되는 항목으로 pam인증방식이 허용됨

 

UsePAM yes

# pam 과의 호환여부 설정

 

X11Forwarding yes

# xwindows 실행후 ssh 접근하면 다음부터 display 환경변수를 설정하지않아도 x의 디스플레이정보가 client로 저장됨

 

UsePrivilegeSeparation yes

# 접속된 프로세스에 대해 상위 권한 없이 chroot로 고립된 형태로 작동

 

Subsystem sftp /usr/libexec/openssh/sftp-server

# secure ftp 서버로의 사용여부 (sftp-client로 접근하여 사용가능)

/etc/init.d/sshd restart

 

### 스마일서브 sshd 설정 v1.0 Redhat9 이하 설정 ###

 

Port 22

 

Protocol 2

 

ListenAddress 0.0.0.0

 

AllowUsers 고객아이디

# 고객아이디만 ssh 원격접근가능하도록 설정 (고객아이디 반드시 기입할것)

 

HostKey /etc/ssh/ssh_host_rsa_key

# 프로토콜2 방식에서의 rsa키값설정

 

HostKey /etc/ssh/ssh_host_dsa_key

# 프로토콜2 방식에서의 dsa키값설정

 

KeyRegenerationInterval 30m

# 30분간 키입력이 없을시 로그아웃

 

ServerKeyBits 1024

# 키 비트수 지정

 

LoginGraceTime 30

# 로그인을 하기 까지의 시간 제한 (30)

 

SyslogFacility AUTHPRIV

# 로그정책 코드설정 (시스템상에서 로그기록을 일반적인 형식으로 기재)

 

LogLevel INFO

# 세세한접근에도 모두 로그에기록

 

PermitRootLogin no

# 원격에서 root 바로 접근불가

 

RSAAuthentication yes

# RSA 인증 여부

 

IgnoreRhosts yes

# .rhosts, .shosts file 무시 여부

 

IgnoreUserKnownHosts yes

# RhostsRSAAuthentication 을 통한 ~/ssh/known_hosts 를 믿지 못하겠다면 yes로 지정

 

HostbasedAuthentication no

# ssh2에서 /etc/ssh/ssh_known_hosts 파일의 host key 사용 여부

 

PermitEmptyPasswords no

# 빈 패스워드 인정여부

 

PasswordAuthentication yes

# 패스워드 인증방식 사용여부

 

ChallengeResponseAuthentication no

# Challenge-response 인증 매개변수를 허용하지 않음으로 설정 (보안문제로 off)

 

#GSSAPIAuthentication yes

# sasl 패키지를 이용한 (Generic Security Services API) 인증방식사용 (Kerberos V5 보안방식의 하나)

 

#GSSAPICleanupCredentials yes

# 계정의 pam 인증 방식을 yes할경우 적용되는 항목으로 pam인증방식이 허용됨

 

#UsePAM yes

# pam 과의 호환여부 설정

 

X11Forwarding yes

# xwindows 실행후 ssh 접근하면 다음부터 display 환경변수를 설정하지않아도 x의 디스플레이정보가 client로 저장됨

 

UsePrivilegeSeparation yes

# 접속된 프로세스에 대해 상위 권한 없이 chroot로 고립된 형태로 작동

 

Subsystem sftp /usr/libexec/openssh/sftp-server

# secure ftp 서버로의 사용여부 (sftp-client로 접근하여 사용가능)

/etc/init.d/sshd restart

11. Su 사용자 제한

 

(sshd_config 파일의 AllowUsers 에 명시된아이디를 필히기재할것)

 

vi /etc/group

 

wheel:x:10:root wheel:x:10:root,고객계정추가

 

chgrp wheel /bin/su;

 

chmod 4750 /bin/su

 

ls -al /bin/su

 

-rwsr-x--- 1 root wheel 60772 8 13 19:26 /bin/su

결과: root 로 바로 접속되지 않고 설정한 고객계정으로 접속후 root 권한을 얻어야하며,고객계정외에는 su root 권한획득이 불가능해야한다.

 

위 작업후 반드시 고객계정으로 로그인및 su 확인

 

12. 커널 매개변수 설정

 

vi /etc/sysctl.conf # 아래내용붙여넣기

# icmp redirects를 보내지 않는다.

net.ipv4.conf.eth0.accept_redirects=0

net.ipv4.conf.lo.accept_redirects=0

net.ipv4.conf.default.accept_redirects=0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.conf.eth0.send_redirects = 0

net.ipv4.conf.lo.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.all.send_redirects = 0

 

# proxy arp를 설정하지 않는다.

net.ipv4.conf.eth0.proxy_arp=0

net.ipv4.conf.lo.proxy_arp=0

net.ipv4.conf.default.proxy_arp=0

net.ipv4.conf.all.proxy_arp=0

 

# 게이트웨이로부터의 redirect를 허용하지 않음으로써 스푸핑을 막기 위해 설정한다.

net.ipv4.conf.eth0.secure_redirects=0

net.ipv4.conf.lo.secure_redirects=0

net.ipv4.conf.default.secure_redirects=0

net.ipv4.conf.all.secure_redirects=0

 

# 스푸핑을 막기 위해 source route 패킷을 허용하지 않는다.

# 소스 라우팅을 허용할 경우 악의적인 공격자가 IP 소스 라우팅을 사용해서 목적지의

# 경로를 지정할 수도 있고, 원래 위치로 돌아오는 경로도 지정할 수 있다. 이러한 소스 라우팅이

# 가능한 것을 이용해 공격자가 마치 신뢰받는 호스트나 클라이언트인 것처럼 위장할 수 있는 것이다.

net.ipv4.conf.eth0.accept_source_route=0

net.ipv4.conf.lo.accept_source_route=0

net.ipv4.conf.default.accept_source_route=0

net.ipv4.conf.all.accept_source_route=0

 

# Broadcast로부터 오는 핑을 차단함(Smurt 공격을 차단함).

net.ipv4.icmp_echo_ignore_broadcasts=1

 

# IP TCP 헤더가 깨진 bad icmp packet을 무시한다.

net.ipv4.icmp_ignore_bogus_error_responses = 1

 

# 자신의 네트워크가 스푸핑된 공격지의 소스로 쓰이는 것을 차단한다.

# 모든 인터페이스에서 들어오는 패킷에 대해 reply를 하여 들어오는 인터페이스로 나가지 못하는 패킷을 거부한다.

net.ipv4.conf.eth0.rp_filter=2

net.ipv4.conf.lo.rp_filter=2

net.ipv4.conf.default.rp_filter=2

net.ipv4.conf.all.rp_filter=2

 

# bootp 패킷을 허용하지 않는다.

net.ipv4.conf.eth0.bootp_relay=0

net.ipv4.conf.lo.bootp_relay=0

net.ipv4.conf.default.bootp_relay=0

net.ipv4.conf.all.bootp_relay=0

 

# 스푸핑된 패킷이나 소스라우팅, Redirect 패킷에 대해 로그파일에 정보를 남긴다.

net.ipv4.conf.eth0.log_martians=1

net.ipv4.conf.lo.log_martians=1

net.ipv4.conf.default.log_martians=1

net.ipv4.conf.all.log_martians=1

 

# 1/100초에 받아들이는 igmp "memberships"의 수

net.ipv4.igmp_max_memberships=1

 

# 매우 복잡한 사이트에서는 이 값을 늘리는 것도 가능하지만 64로 두는 것이 적당하며

# 더 늘렸을 경우에는 큰 문제가 발생할 수도 있다.

net.ipv4.ip_default_ttl=64

 

# 게이트웨이 서버가 아닌 이상 패킷을 포워딩 할 필요는 없다.

net.ipv4.ip_forward=0

 

# fragmented packet이 메모리에 존재하는 시간을 15초로 설정한다.

net.ipv4.ipfrag_time=15

 

# SYN_Flooding 공격에 대한 대비로 백로그큐(Backlog Queue)가 가득차면 다른 접속 요구를 받아들이지 못한다.

net.ipv4.tcp_max_syn_backlog = 1024

 

# TCP 연결에서 Three-way Handshake가 성공적으로 이루어지지 않으면 더 이상 소스 경로를 거슬러 올라가지 않도록 한다.

# 따라서 적절한 연결 요청에 대해서만 연결을 맺는다.

# syncookies가 작동할 때 SYN Flooding 공격이 있으면 messages 파일에 아래와 같은 내용이 출력된다.

# possible SYN flooding on port 80. Sending cookies.

net.ipv4.tcp_syncookies = 1

 

# 일정한 시간과 IP별로 보내고 받는 SYN 재시도 횟수를 3회로 제한한다.

# 이 옵션은 스푸핑된(위조된) 주소로 오는 SYN 연결의 양을 줄여준다.

# 기본 값은 5(180 초에 대응)이며 255를 넘지 않아야 한다.

net.ipv4.tcp_syn_retries = 3

 

# passive TCP 접속시도가 재접속을 하기 위한 SYNACKs의 값을 정한다. 255 보다 높

# 게 지정할 수 없다. 기본값은 5이며, 180초에 대응이 된다.

net.ipv4.tcp_synack_retries = 3

 

# 무언가 문제가 있을 때 연결을 위해 재시도 할 횟수, 최소 값과 기본 값은 3이다.

net.ipv4.tcp_retries1=3

 

# TCP 연결을 끊기 전에 재시도할 횟수.

net.ipv4.tcp_retries2=7

 

# 연결을 종료시 소요되는 시간을 줄여준다(기본 설정값: 60).

net.ipv4.tcp_fin_timeout=20

 

# 동시에 유지 가능한 timewait 소켓의 수이다.

# 만약 지정된 숫자를 초과하였을 경우에는 timewait 소켓이 없어지며 경고 메시지가 출력된다.

# 이 제한은 단순한 DoS 공격을 차단하기 위해 존재하는데, 임의로 이 값을 줄여서는 안되며

# 메모리가 충분하다면 적절하게 늘려주는 것이 좋은데, 64M 마다 180000으로 설정하면 된다.

# 따라서 256M일 경우에는 256/4=4 4*180000=720000

# 64M -> 180000

# 128M -> 360000

# 256M -> 720000

# 512M -> 1440000

# 1G -> 2880000

# 2G -> 5760000

 

#net.ipv4.tcp_max_tw_buckets = 180000

 

# 연결이 끊어졌다고 판단할 때까지, 얼마나 keepalive probe 를 보낼지 결정. 기본값 9회 간단한 DoS 공격을 막아준다.

net.ipv4.tcp_keepalive_probes=2

 

# keepalive 가 활성되 되어 있을 경우, 얼마나 자주 TCP keepalive 메세지를 보내게 할 것인지를 설정.

net.ipv4.tcp_keepalive_time=30

 

# keepalive_probes 를 보낼 간격을 정함. probe 를 보낸 후,

# probes * intvl 의 시간이 지나도록 응답이 없으면 연결이 해제된 것으로 간주하게 됨.

# 기본 값의 사용시 11 15초 동안 재시도를 하고 연결을 취소함. 값은 초단위

net.ipv4.tcp_keepalive_intvl = 10

 

# 서버 쪽에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수를 정한다. 기본 값은 7

# RTO 50 초에서 16 분 사이에 해당한다. 웹 서버가 운영 중 이라면 이 값을 줄여서

# 소켓 등이 귀한 리소스를 소비하지 않도록 할 수도 있다.

net.ipv4.tcp_orphan_retries = 2

 

# SYN 패킷을 전송한 후에 로스가 발생을 하여 ACK 를 일부 받지 못했을 경우, 선택

# 적으로 (selected) 받지못한 ACK 만 받도록 요청하는 것을 허락한다. 로스가 많은

# 네트워크에서는 상당히 중요한 역할을 한다.

net.ipv4.tcp_sack = 1

 

한사용자가 열수있는파일수 제한 “too many open files” 오류 예방

 

ulimit -n 32768

/etc/rc.d/init.d/network restart

12. 작업마무리 히스토리 파일비움

 

cat /dev/null > ~/.bash_history

 

 

 

출처 : http://www.backrush.com/vek.php3?code=sysadmin&id=317&cpage=1

 

 

 

728x90
반응형