apache 웹서버 자체 보안설정리눅스2013/08/22 19:47수정삭제 http://blog.naver.com/winsomeday/130174753394 전용뷰어 보기httpd.conf 파일을 루트만 확인 및 수정할 수 있도록 퍼미션을 600으로 설정 아파치 cgi 실행옵션이 필요하지 않은 서버에서는 사용하지 못하게 한다. → AddHandler cgi-script .cgi 특정 디렉토리내에서만 cgi 사용가능하게 설정 cgi실행파일을 웹서버에 올려두고 실행하면 시스템 정보가 쉽게 유출되므로, httpd.conf파일에서 설정 →ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" httpd.conf의 지시자 Options에 설정되는 Indexes 값 문제 Indexes가 설정되어 있고 DirectoryIndex에서 지정한 파일이 디렉토리내에 없으면 그 디렉토리의 목록을 출력해 주므로 →Options 지시자에서 Indexes 값 삭제 Options 지시자 FollowSymLinks를 제거 예를 들어 /home/kbs/www/linkfile 파일이 "ln -s /home/kbs/linkfile /etc/passwd" 의
install : 권한, 속성, 소유자, 그룹명등을 지정하여 복사하는 명령어 install 명령어 옵션 -c : 전통 유닉스 버젼과 호환을 위한 옵션, 별 의미 없음 -d : 복사될 경로를 지정, 경로가 존재하지 않으면 디렉토리 만들어서 복사 -g : 그룹 변경 (-g 그룹명) -m : 퍼미션 변경 (-m 퍼미션) -o : 소유자 변경 (-o 소유자)
사용형식 : gpasswd [옵션] [그룹명] [옵션] -a user : 특정 그룹에 유저 추가 -d user : 특정 그룹에서 유저 제거 -r : 특정 그룹의 패스워드 제거 -R : 특정 그룹에 접근 제한 -A user : 특정 그룹의 그룹관리자로 지정 -M user : 특정 그룹의 그룹멤버를 새로 설정 vi /etc/group 로 수정하는 방법이 보편적
/etc/skel 디렉토리는 사용자 계정 생성(useradd)시에 환경 설정 파일들이 저장되어 있는 디렉토리다.이 파일들은 useradd 명령어로 계정 생성시에 /etc/skel 이라는 디렉토리에 존재하는 파일들을 그대로 복사해온다.새로생성되는 사용자의 홈디렉토리로 복사 되어진다. root@web:/etc# ll skeltotal 20drwxr-xr-x. 2 root root 4096 Dec 25 07:51 .drwxr-xr-x. 82 root root 4096 Jan 2 03:24 ..-rw-r--r--. 1 root root 18 May 11 2012 .bash_logout-rw-r--r--. 1 root root 176 May 11 2012 .bash_profile-rw-r--r--. 1 root root 124 May 11 2012 .bashrcroroot@web:/# useradd KY root@web:/# passwd hky Changing password for user hky.New password: passwd: all authentication tokens updated successfully.ot@web:/# ll /home/KY tot
w 명령어 현재 접속중인 사용자들의 정보를 보는 명령어이다. 명령어의 위치 : /usr/bin/w - 서버의 현재 시각 정보 - 서버 부팅이후 시스템 작동시간 - 서버 접속자의 총 수 - 접속자별 서버 평균 부하율 정보 - 접속자별 서버 접속 계정명 - 접속자 별 접속 TTY명 - 접속자 별 접속한 IP명 - 접속자 별 로그인 시각 정보 - 접속자 별 CPU 사용 정보(JCPU, PCPU) - 접속자별 현재 사용 명령어 정보 -JCPU: tty필드에서 사용하는 징치명에서 사용하는 모든 프로세스의 CPU사용시간을 나타냄. 이때 지난 background로 실행되는 시간제외.현재실행되는 background 작업시간은 포함. -PCPU: 해당 w결과 값에서 WHAT필드에 나타나는 프로세스명에서 사용하는 CPU의 총시간을 나타냄 옵션 -h : head 정보(uptime정보와 필드 제목 정보)를 출력하지않고 좀 더 간단한 정보 출력. -s : JCPU, PCPU의 정보를 생략하고 결과 출력한다. -f : 고정된 형식의 FROM필드의 값(접근한 사용자의 ip주소 정보)을 생략하고 보여준다. 예 [root@web ~]# w 10:44:37 up 1 min, 2 us
active, stanby 구분 [root@~]# pstree ├─pulse───lvsd───2*[nanny] // active [root@~]# pstree ├─pulse // stanby <LVS1> eth0 123.45.123.20 eth0:1 123.45.123.59 [root@~]# ipvsadm -L // 현재 로드밸런싱 되고 있는 리스트 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 123.45.123.59:http wlc persistent 1800 // 59 VIP → 75 VIP -> 123.45.123.75:http Route 1 131 20 → 77 VIp -> 123.45.123.77:http Route
runleve 중, 1=single-user모드는 별도의 로그인 과정 없이 root 계정으로 시스템을 사용할 수 있는 모드 이 모드로 부팅하면 root 패스워드를 변경할 수 있다. ※ 콘솔모드에서만 된다. <GRUB 메뉴가 나올경우> 1. 부팅해서 아래 커널선택 후 e키를 입력 2. Kernel 로 시작하는 줄에서 e키를 한번 더 입력 3. 끝부분에 "1" 또는 "single" 입력하고 Enter 누르면 2번의 화면으로 돌아오게 되는데 b키 입력 4. "passwd" 명령어 사용해서 패스워드 변경하고 reboot <선택메뉴만 나올경우> 1. Ctrl + X 를 누름 2. linux single 를 입력 후 엔터 3. 명령프롬프트가 나오면 passwd 를 누른뒤 암호를 변경
◎ /etc/passwd와 /etc/shadow 필드 설명 [/etc/passwd] root : x : 0 : 0 : root : /root : /bin/bash 필드 1 2 3 4 5 6 7 1 : 사용자명2 : 패스워드3 : 사용자 계정 uid4 : 사용자 계정 gid5 : 사용자 계정 이름6 : 사용자 계정 홈 디렉토리7 : 사용자 계정 로그인 쉘 [/etc/shadow] root : $1$9L2L0oTwd : 12751 : 0 : 99999 : 7 : : :필드 1 2 3 4 5 6 7 8 9 1 : 사용자명2 : 암호화된 패스워드3 : 암호 최종 변경일4 : 암호 변경 최소일수5 : 암호 변경 최대일수6 : 암호 변경 경고일 수7 : 암호 비활성화 기간8 : 계정 사용 종료일9 : 예약 필드
ftp란..파일의 업/다운로드를 할수 있는 시스템을 말한다.일반적으로 파일서버or다운로드사이트 등의 용도로 구축되어 ftp서버가 사용된다.ftp서버에는 proftpd와 vsftp가 많이 사용된다. 1.proftp 장점과 특징-standalone환경에서의 설치,운용과 xinetd모드의 설치운용이 가능.-shadow 패스워드시스템에서 사용가능-proftpd에서도 .htaccess를 개별 디렉토리에서의 접근제어 파일로 사용가능.-파일및 디렉토리 퍼미션을 개별설정 가능하며 서버보안 면에서 효율적 운용가능하다.-free sofrware이며 소스공개가능. 2.proftpd 관련 중요파일/etc/pam.d/ftp : proftpd의 보안을 위한 접근허용정책파일/etc/proftpd.conf : proftpd의 환경설정 파일/usr/sbin/in.proftpd : proftpd를 xinetd모드로 운영할 경우의 proftpd데몬 링크파일/usr/sbin/proftpd : proftpd의 데몬파일/home/ftp : anonymous로 proftpd에 접속할 경우의 ftp 홈디렉토리 /etc/rc.d/init.d/proftpd start : proftpd 시작/etc/rc
ftp 서비스파일의 업로드, 다운로드를 가능하게 해주는 서비스.ftp 서버포트는 21번을 사용하며 서버와 클라이언트가 통신한다. vsftpd 설치rpm -qa | grep vsftpd : 설치되어있는지 확인yum install vsftpd : yum명령어로 다운로드및 설치.rpm -qa | grep vsftpd : 설치가 잘되어있는지 확인한다. vsftpd 구동하기 /etc/init.d/vsftpd start : 서비스 시작 /etc/init.d/vsftpd stop : 서비스 중지 예root@hosting01:~# rpm -qa | grep vsftp #설치 되어 있는지 확인vsftpd-2.0.5-21.el5 # 기존에 설치 되어있음 root@hosting01:~# rpm -e vsftpd # rpm명령어로 기존 데몬 삭제warning: /etc/vsftpd/vsftpd.conf saved as /etc/vsftpd/vsftpd.conf.rpmsaveroot@hosting01:~# rpm -qa | grep vsftpd # 삭제가 잘되었는지 확인
사용형식 : rpm -q+[옵션] 패키지명모든 패키지 확인 : rpm -qa 어떤 패키지로 설치 됐는지 확인 : rpm -qf /절대경로/파일명 (rpm으로 설치되었을때만 확인됨)패키지로 설치되는 파일들 확인 : rpm -ql 패키지명패키지 상세 정보 : rpm -qi 패키지명패키지로 설치된 파일들 정상여부 검사 : rpm -qs 패키지명패키지의 설정파일들만 확인 : rpm -qc 패키지명메뉴얼파일들 보기 : rpm -qd 패키지명의존성 확인 : rpm -qR 패키지명무결성 검사 : rpm -V 패키지명 (출력되는 파일들은 변경되었을 가능성이 있다)
파일의 내용을 페이지 단위로 내용을 확인 # more 명령어 사용형식 : more [옵션][+줄번호][파일명] [옵션] space bar, f : 한 페이지씩 앞으로 이동 b : 한 페이지씩 뒤로 이동 enter : 한행씩 이동 ! : 쉘명령어 입력 / : 문자열 검색 (대소문자 구분) v : 현재위치에서 vi 실행 + 숫자 : 숫자행부터 출력 # less 명령어 옵션 사용형식 : less [옵션] 파일명 space bar, f : 한 페이지씩 앞으로 이동 b : 한페이지씩 뒤로 이동 enter : 한행씩 이동 방향키 : 한행씩 이동