'팁&테크/Linux'에 해당되는 글 69건
- 2012.02.08 리눅스 설치시 처리해야 되는 작업
- 2012.02.06 리눅스 파일 인코딩 변경(iconv)
- 2012.02.02 MySql DB 별 백업 쉘스크립트(메모)
- 2012.02.02 웹계정 증분 백업 쉘 스크립트(메모)
- 2012.01.09 favicon.ico & MaSiteInfo.ini error_log 처리 방법
- 2011.12.22 YUM Centos 5버젼 daum repo
- 2011.12.08 /etc/sysconfig/iptables 내용(메모)
- 2011.11.07 httpd.conf 디렉토리 권한설정 옵션 설명
- 2011.11.07 특정 디렉토리에 php 실행 끄기
- 2011.08.18 Nginx 서비스에 등록
리눅스 설치시 처리해야 되는 작업
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
리눅스 파일 인코딩 변경(iconv)
그래서 한글을 EUC-KR로 사용할 필요가 없는 설정파일들은 그냥 UTF-8로 변환해서 주석등을 관리하는게 보기가 좋다.
EUC-KR -> UTF-8 파일 인코딩 변경
iconv -c -f euc-kr -t utf-8 euckr.txt > utf8.txt
파일명이 EUC-KR인 경우 convmv를 이용해서 파일명을 변경
convmv -f euc-kr -t utf-8 --notest 한글.txt
MySql DB 별 백업 쉘스크립트(메모)
15일이 지난 백업분 제거
#!/bin/sh
웹계정 증분 백업 쉘 스크립트(메모)
엄밀히 말하면 모델+컨트롤러+뷰(html), 뷰(img,css,js등), 첨부파일 의 개별 백업임
월별로 백업(1일 전체, 1일 이후 증분방식), 62일이 지난 백업 디렉토리 삭제
#!/bin/sh
favicon.ico & MaSiteInfo.ini error_log 처리 방법
httpd.conf 에 아래 내용 추가
# Don't bother looking for favicon.ico & MaSiteInfo.ini
Redirect 404 /favicon.ico
Redirect 404 /MarkAny/Websafer/MaSiteInfo.ini
# Don't bother sending the custom error page for favicon.ico & MaSiteInfo.ini
<Location /favicon.ico>
ErrorDocument 404 "No favicon"
</Location>
<Location /MarkAny/Websafer/MaSiteInfo.ini>
ErrorDocument 404 "No MaSiteInfo"
</Location>
YUM Centos 5버젼 daum repo
gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-5
gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-5
gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-5
gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-5
gpgkey=http://ftp.daum.net/centos/RPM-GPG-KEY-CentOS-5
/etc/sysconfig/iptables 내용(메모)
httpd.conf 디렉토리 권한설정 옵션 설명
특정 디렉토리에 php 실행 끄기
AddType application/x-httpd-php3-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins .php4
AddType application/x-httpd-php-source .phps .php .ph .php3 .cgi .sh .pl .html .htm .shtml .vbs .ins .php4
Order allow,deny
Deny from all
</Files>
</DirectoryMatch>
디렉토리의 .htaccess를 이용하는 방법(단 httpd.conf 에 AllowOverride Options 옵션이 설정되어 있어야함)
php_flag engine off
</IfModule>
<IfModule mod_php4.c>
php_flag engine off
</IfModule>
Nginx 서비스에 등록
서비스의 사작,종료와 관련된 쉘 스크립트는 /etc/rc.d/init.d 에 모두 모여 있다.
1. 서비스 쉘스크립트 설치
첨부된 쉘스크립트 를 /etc/rc.d/init.d 로 복사한다.
2. 서비스 등록
chkconfig --add nginx 명령을 이용해서 nginx를 서비스에 추가한다.
시작레벨은 chkconfig --level 3 nginx on 으로 하거나 ntsysv를 통해 자동 시작되도록 설정한다.
3. 사용
service nginx start | stop | restart | reload 명령을 마음껏 사용하자.