리눅스 설치시 처리해야 되는 작업
1. 원격 SSH로 ROOT 원격접속 금지
/etc/ssh/sshd_config
PermitRootLogin no
2. YUM 사용시 가장 빠른 미러사이트로 연결해주는 플러그인 설치
- 네트웍으로 충분히 빠른 미러로 설치했을 경우 안하는게 나음
Cent OS 4.X
yum install yum-plugin-fastestmirror -y
Cent OS 5.X
yum install yum-fastestmirror -y
3. 최신 RPM으로 업데이트
yum -y update
4. 포트열기
/etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 포트번호 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --dport 포트,포트,포트 -j ACCEPT
4-1. 80포트는 접속트래킹 제외
/etc/sysconfig/iptables
# *fileter 위에 추가 해줌
# 80포트는 상태 옵션을 빼고 설정함
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
5. VSFTPD 상위 이동 막기, anonymous 막기, 버젼노출 막기,시스템 시간 사용
/etc/vsftpd/vsftpd.conf
chroot_local_user=YES
anonymous_enable=NO
ftpd_banner=접속시 출력 메세지
6. SSH 특정 아이피만 접속 가능하게 하기
tcp wrapper 만으로는 불안함 iptable 로 바꿈
sshd : ALL
/etc/hosts.allow
sshd : 아이피 : ALLOW -> 아이피 형식은 특정대역을 원하면 222.222.222. 까지만 입력하면 뒷쪽 대역 포함됨
/etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -s 허용할IP -m tcp --dport 포트번호 -j ACCEPT
아이피는 192.168.0.100 과 같은 단독 IP 및 192.168.0.0/24 과 CLASS로 설정가능
-A INPUT -p tcp -m state --state NEW -s 허용할IP -m multiport --dport 20,21,22 -j ACCEPT
위 같이 여러개 포트로도 설정가능
7. ROOT로 오는 메일을 다른 계정으로 가도록 변경
/etc/aliases
root: 계정명 #root로 오는 메일이 전부 지정한 계정으로 감
8. Cron 데몬이 root로 메일 보내는거 막기
/etc/crontab
MAILTO=root -> MAILTO="" 로 변경
service crond restart #크론탭 재시작
9. Logwatch가 발송하는 메일 변경(필요없으면 안해도..)
/etc/cron.daily/0logwatch -> /usr/share/logwatch/scripts/logwatch.pl
$Config{'mailto'} = "root"; -> 사용하는 계정이나 메일로 바꿈
10. php mail 함수 사용시 헤더에 정의된 return-path 적용하기
/etc/php.ini -> rpm 설치시 경로
sendmail_path = /usr/sbin/sendmail -t -i -ba -> -ba 추가
/etc/sysconfig/i18n -> 수정
<<EUC-KR로 접속시 : 시스템상 환경파일등이 UTF-8로 저장되므로 UTF-8설정을 추천함>>
LANG="ko_KR.eucKR"
SYSFONT="latarcyrheb-sun16"
<<UTF-8로 접속시>>
SYSFONT="latarcyrheb-sun16"
/etc/httpd/conf/httpd.conf -> 수정(yum 설치시)
13. fail2ban 모듈 설치
http://wyseburn.tistory.com/175
14. 시간동기화
크론에 추가, 시간 및 time서버는 다른걸로 바꿔도 무관함
17. APM소스 설치 시 서비스로 등록
http://wyseburn.tistory.com/231
18. /etc/security/limits.conf 내용변경
Centos 6.x 버젼부터 기본으로 max user processes 수가 1024로 제한됩니다.
그래서 사용자 프로세서들의 수가 1024가 되면 mysqld, httpd 등에 따로 프로세스의 수가 정의되 있다고 하더라도 더 이상 늘어나지 않게됩니다.
/etc/security/limits.conf 파일을 열어 아래와 같이 허용할 사용자 프로세스의 수를 적어 준후에 리부팅합니다.
열어줄 갯수는 서버의 가용리소스 등을 염두해서 갯수를 지정합니다. 아니면 unlimited 라고 해두면 커널에서 허용한 최대갯수까지 늘어나므로 unlimited 로 해도 됨
(주의 : nofile 을 unlimited 로 할경우 PAM쪽에 문제가 생겨서 접속 안되니 unlimited 로 하지 말것)
그리고 open file 갯수가 기본으로 1024로 되있어서 프로세스가 늘어나도 해당 프로세서가 파일을 사용해야 한다면(DB나 HTTP) 문제가 발생하니 open file 갯수도 늘려줘야 함
* - nproc unlimited
* - nofile 409600
관련 명령 : ulimit
19. file descriptor 허용 갯수 변경
Too many open file... 과 같은 에러가 난다면 더 늘려주자.
nofile 와도 연관이 있는데 fd 의 갯수를 nofile보다 크게 잡아줘야 한다. (기본으로 더 크게 되있음)
nofiles 에 갯수를 조정할때 참고 하면 된다.
확인 :
# sysctl -a | grep file
file-max 는 허용된 file descriptor 갯수
file-nr 은 현재 열려진 file descriptor 갯수이다.
변경 :
# vi /etc/sysctl.conf
fs.file-max = 500000
적용 :
#sysctl -p