리눅스(Linux), 유닉스(Unix) 서버 => 보안에 강함 (서버 시장에서의 점유율이 높다)
대용량 서버 시장 : Unix
클라우드 환경 : Linux
4가지 관점 : 계정, 서비스, 패치, 로그 관리
vi 에디터 실행 및 모드
- vi [편집 하려는 file 경로] ex) vi /etc/pam.d/login
- 모드
1) 삽입 모드 : 원하는 글자 입력
삽입->명령어 : ESC
2) 명령어 모드 : 방향키로 이동, 글자 삭제 등이 편집이 가능한 모드
명령어->삽입 : i, a, o
명령어->라인 편집 : :, ?, /
3) 라인 편집 모드 : 파일 저장, 종료 가능한 상태
라인 편집->명령어 : Enter
vi 에디터 명령어
1. 파일 저장 및 종료
:w 현재 편집 파일 저장
:q 현재 파일 닫고 vi 에디터 종료
:wq 현재 파일 저장 후 vi 에디터 종료
2. 편집 명령어
i 현재 커서 위치에 글자 추가
a 커서 의 우측에 글자 추가
x 현재 커서 위치에 글자 지움
dd 현재 커서 위치의 한 줄을 지움
3. 이동 명령어
h 왼쪽으로 한 칸
j 아래 줄로 한칸
k, I, O, L, Ctrl+f, Ctrl+b 등등..
1. 계정과 암호 관리
유닉스/ 리눅스 운영체제의 기본 관리자 계정 : root 계정
- 컴퓨터 전체를 관리할 수 있는 막강한 권한을 가진 계정 (엄격한 관리 필요) : supervisor
관리자(root) 계정 지침
1. 원격에서 root 계정 접근 방지
- ssh, telnet 등의 프로그램을 이용해 네트워크를 통해 로그인 하는 것 (원격 접속 허용은 해커의 1차 공격목표가 된다)
리눅스
1 ) 환경 설정 파일 /etc/pam.d/login 의 내용수정 : 보안 규칙 점검 관련 설정 변경
2 ) 환경 설정 파일 /etc/securetty의 내용 수정
유닉스
1 ) AIX : 환경 설정 파일 /etc/security/user에 rlogin = false 내용이 있어야함
2 ) HP/UX : 환경 설정 파일 /etc/security에 console 내용이 있어야함
3 )Solaris : 환경 설정 파일 /etc/default/login에 CONSOLE=/dev/console 내용이 있어야함
2. 비밀번호 파일 섀도우(shadow) 파일로 보호 -> Unix 만의 특징 //반드시 암호화 해서 저장
- 파일/etc/passwd : 다양한 사용자 관련 정보 저장 ex) 사용자 ID, 사용자 비밀번호 정보, 그룹ID 등...
root(로그인ID):10t9ldfg4lyJ80(암호, 암호화 되있다.):0(사용자 번호):0(그룹 번호):root(사용자 이름):/root(사용자 홈 디렉터리):/root:/bin/bash(사용자가 사용할 쉘) <- 형태
파일 자체 권한 설정 : 모든 사용자가 읽어볼 수 있음. <= 일반 사용자가 crack 같은 해킹툴로 파일 해독 시도 가능
-> -(파일 종류) rw-(소유자의 권한) r--(소유 그룹의 권한) r--(소유자도 그룹도 아닌 사용자에 대한 권한)
=>이를 해결하기 위한 대안 : 섀도우 파일 /etc/shadow
- 비밀번호를 암호화 한 별도의 파일, 사용권한을 오직 root 사용자만 읽어 볼 수 있도록 설정
-> 계정 정보는 그대로, 패스워드는 따로 shadow파일에 암호화하여 보관
이렇게 보관하면 root의 비밀번호, 암호부분이 x로 써있다. ex) root:x:0...
즉, shadow 파일의 강제적 사용 설정을 해야한다.
1 ) AIX - 기본적으로 etc/security/passwd 파일에 비밀번호를 암호화 하여 관리
2 ) HP/UX : Trusted Mode 모드로 전환 필요->root 계정으로/etc/tsconveert명령 수행->모드 전환 전 테스트 필요
3 ) Solaris 및 리눅스 : pwconv 명령 실행
3. 잘못된 비밀번호가 여러 번 입력되면 계정이 잠겨야함
- 필요성 : 무차별 공간에 대비하기 위함 (5회 이하 값 권장)
AIX : 환경 설정 파일 /etc/security/user에 loginretries=5 내용추가
HP/UX : 환경 설정 파일 /tcb/files/auth/system/default에 u_maxtries#5 내용 추가
Solaris : 환경 설정 파일 /etc/default/login와 /etc/security/policy.conf 각각 RETRIES=5 LOCK_AFTER_RETRIES=YES추가
Linux : 환경 설정 파일 /etc/pam.d/system-auth에 auth required /lib/security/pam_tally.so deny=5 unlock_time=120
account required /lib/security/pam_tally.so no_magic_root reset 내용 추가
2. 서비스 관리
1. 불필요한 서비스를 제거하라
ex) finger, r 계열 서비스, echo, discard, daytime, NFS, ...등등
2. 이메일 서비스를 관리하라
유닉스/리눅스의 이메일 서비스 : sendmail 서비스 (SMTP/POP3 서버)
->보안 취약점이 많이 알려져 있다.
-> sendmail 비활성화 권장(반드시 써야하면 최신버전 유지 필요 : 보안 취약점 보안)
- sendmail 서비스의 SMTP의 릴레이 기능 제한 권고
- BIND 서버 : DNS 서비스 제공
-> 가능한 비활성화 권장 (Dos, 버퍼 오버플로우, DNS 서버 원격 침입 등 취약성이 많다.)
3. 파일 시스템 관리 : 파일에는 3가지 권한이 있다 r(읽기), w(쓰기), x(실행)
- 소유자가 없는 파일이 있으면 안 된다. (유닉스의 장점은 파일마다 권한 설정이 가능 : 보안이 좋다)
-> 소유자 없는 파일 찾기 : 유닉스/리눅스 운영체제 별로 각 명령 실행 ex) find...
-> 발견한 파일에 대해 불필요 파일/디렉터리 삭제(rm), 필요한 파일/디렉터리 소유자 변경(chown)
-> 중요 시스템 파일의 권한 설정을 확인
3. 패치 관리
패치 적용으로 보안성, 시스템 안정성 확보
패치 과정
1. 기존 서버에 설치된 패치 정보 확인 (명령어 사용)
2. 새로운 패치 정보 확인 (사이트에서 확인)
3. 새로운 패치를 서버에 설치 (명령어 사용)
4. 로그 관리 : 지속적으로 용량 관리, 정기적 점검 필요
시스템 로그 : 시스템 성능, 오류, 경고 및 운영 정보 기록 (서버 보안 관리자가 정기적으로 분석)
-> 침입 시도 및 침입 유무 파악 가능
유닉스의 표준적 로그 인터페이스 : syslog (API를 통해 로그에 생기는 문제 파악)
- 환경설정 syslog.conf의 예
1. *.emerg : 로그수준이 패닉(emerg, Emergency)인 경우에 모든 형태(*)로 로그 저장->로그 파일, 콘솔 등을 포함
2. *alert /var/adm/syslog.log : 로그 수준이 심각한 에러(alert)인 경우에 파일(/var/adm/syslog.log)에 로그 저장
3. authpriv.none /var/log/messages : 보안 로그(authpriv)의 경우 어떤 수준에 대해서도 로그 남기지 않음(none)
4. authpriv.*. /var/log/messages : 보안 로그(authpriv)의 경우라면 모든 수준(*)에 대해 파일(/var/log/messages)에 저장
syslog의 로그 수준
Emergency(패닉), Alert(주의 필요한 심각한 오류), Critical(하드웨어 등의 심각한 오류), Error(일상적 오류),
Warning(경고) Notice(오류X, 관리자 조치 필요) Informational(의미 있는 정보가 있다)
Debug(문제X, 문제해결을 위한 부가적인 정보 제공)
syslog 로그 파일 종류
시스템 로그, 보안 로그, 메일 로그, 부팅 로그, 커널 로그
5. DBMS 보안
1) 계정 관리
- 기본 패스워드, 권한 변경(기본 암호에서 변경) : SQL사용
- 불필요한 계정 삭제 : SQL사용
- 불필요한 권한 삭제(권한 확인 및 삭제) : SQL사용
- 원격에서 DB서버 접속 제한 -> 방화벽 정책 설정 (허용이 필요한 IP주소 범위에서만 허용)
2) 서비스 관리
- public으로 설정되는 역할(Role)이 없도록 관리 (역할 확인 및 삭제SQL 사용)
-> public 설정은 일반 사용자 계정에서도 DBA(Database Administrator, DB관리자)역할 사용 가능
=> 보안 공격 가능, 정보 유출
3) 패치 관리 및 로그 관리;
- DBMS도 일종의 소프트웨어 -> 취약점을 악용해 보안 공격 발생(지속적 패치 필요)
-> 패치와 관련하여도 DB의 접근, 변경 및 삭제 감사 기록이 반드시 남아야한다. (패치 문제 발생시 원인 파악 및 대처)
4) 로그 관리
Aduit 테이블에 대한 접근 관리 필요 : SQL이용
'학교수업' 카테고리의 다른 글
객체지향프로그래밍 6주차 (0) | 2021.10.10 |
---|---|
가상현실 프로그래밍 5주차 (0) | 2021.10.08 |
임베디드기초 5주차 (0) | 2021.10.06 |
사물인터넷의이해 5주차 (0) | 2021.10.05 |
웹개발기초 5주차 (0) | 2021.10.01 |