본문 바로가기

보안기사 - UNIX/Linux 로그 * 참고 일반적으로 UNIX는 /var/adm 디렉토리, Linux는 /var/log 디렉토리에 저장 리눅스는 /etc/syslog.conf 파일에서 시스템 로그 파일들의 위치를 지정 서버에는 여러 개의 로그 파일이 있으며 이들 로그를 남기든 데몬들 또한 다양(syslogd, sendmail, httpd, named, xinetd 등) 주요 로그 파일 utmp(x) 현재 로그인한 사용자의 상태정보를 담고 있는 로그 파일 binary 파일이므로 'w', 'who', 'finger' 등의 명령어 이용 Linux : /var/run/utmp, Unix(SunOS) : /var/adm/utmpx wtmp(x) 성공한 로그인/로그아웃 정보, 시스템의 boot/shutdo..
보안기사 - PAM PAM (Pluggable Authentication Modules, 장착형 인증 모듈) 리눅스 시스템 내에서 사용되는 각종 어플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리들 /lib/security 또는 /usr/lib/security 디렉터리에 해당 라이브러리 저장 프로그램 개발 시 인증모듈을 별도 개발하지 않고 플러그인 방식의 PAM을 사용함으로써 인증 방식 및 정책의 유연성과 중앙 통제가 가능 각 프로그램은 인증이 필요한 부분에 PAM 라이브러리를 호출 ->PAM라이브러리 호출되면 해당 프로그램의 PAM 설정파일 참조하여 등록된 여러 PAM 모듈 수행하고 그 결과를 응용 프로그램에 반환 ->응용 프로그램은 반환된 결과를 이용해 인증여부 결정 PAM 설정 파일 /etc/pam.d PAM ..
보안기사 - UNIX/Linux 서버 네트워크 보안 SSH (보안쉘) 암호 통신을 이용하여 네트워크 상의 다른 컴퓨터에 접속하여 원격 명령 실행 또는 파일 조작하는 응용 프로그램 또는 프로토콜 기존의 rsh, rlogin, Telnet, FTP 등 평문 송수신 서비스의 취약점을 위해 설계 22/tcp 포트를 사용 슈퍼서버 (inetd 데몬) inetd 방식 vs stand-alone 방식 inetd 방식 공통적인 부분을 처리하는 슈퍼데몬을 만들어 개별 서비스를 등록하게 하여 클라이언트 요청은 슈퍼 데몬이 모두 처리하고 개별 서비스를 호출해주는 방식 ->효율적 서버자원의 활용, but 상대적으로 느림 (HTTP 같이 다수 클라이언트에게 엄청난 동시요청 발생하는 서비스는 불가 - 서비스 처리속도가 너무 낮아짐) stand-alone 방식 서비스별로 서버 프로..
C++ - next_permutation #include void nextPermutaionTest(vector data) { sort(data.begin(), data.end()); do { ///// 데이터 처리 /////// } while (next_permutation(data.begin(), data.end())); } 이런 식으로 쓰면 된다 (iterator 대신 배열 주소 넣어도 됨)
프로그래머스 - SQL 연습 출처 : 프로그래머스 - 코딩테스트 연습 NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE [ANIMAL_INS 테이블 구조] Q1. 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; Q2. 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 ANIMAL_ID 역순으로 조회하는 SQL문을 작성 SELEC..
분할 정복 (병합정렬, 퀵정렬) 분할 정복 (Divide & Conquer) 주어진 문제를 둘 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 재귀 호출을 이용해 계산하고, 각 부분 문제의 답으로부터 전체 문제의 답을 계산 => 빠르게 작업을 처리할 수 있다 divide : 문제를 더 작은 문제로 분할하는 과정 merge : 각 문제에 대해 구한 답을 원래 문제에 대한 답으로 병합하는 과정 base case : 더이상 답을 분할하지 않고 곧장 풀 수 있는 매우 작은 문제 example : 1 + 2 + ... + n int sum(int n) { // 기저 사례 if (n == 1) return 1; if (n % 2 == 1) return sum(n-1) + n; // 홀수일 경우 처리 방법 return 2*sum(n/2) + (n..
보안기사 - UNIX/Linux 서버 시스템 보안 패스워드 관리 과거에는 사용자의 패스워드를 /etc/passwd 파일의 두 번째 필드에 저장했지만 최근에는 /etc/shadow 파일에 암호화된 패스워드 저장 /etc/passwd 파일 root 계정은 시스템에 대한 총괄 권한 가져 공격자의 목표가 될 수 있으므로, 원격 접속을 금지한다. su를 허용하는 계정 그룹을 생성하여 해당 계정으로 접속 후 root 계정으로 전환하여 사용하도록.. /etc/passwd 파일의 두 번째 필드(사용자 비밀번호)가 x인 것은 shadow 패스워드 사용한다는 의미 임의로 생성된 계정에 UID가 0으로 부여되어 있다면 root 권한 탈취를 위한 행위로 의심 GID 도 마찬가지 로그인이 불필요한 계정(시스템 및 어플리케이션 계정)은 로그인을 금지하는 것이 보안상으로 안전 (..
보안기사 - UNIX/Linux 시스템 관리 (crond) 사용자 관리 useradd usermod userdel group~ 동일 파일시스템 관리 mount umount du df 프로세스 스케줄 관리 정기적 스케줄 관리 (cron 데몬 프로세스) crontab 파일 정기적으로 처리할 작업 목록을 정의 사용자 계정별로 생성 crontab -e : crontab 파일 편집 crontab -l : crontab 파일 출력 crontab -r : crontab 파일 삭제 crontab 명령 crontab 파일을 제어(편집) /etc/cron.allow, /etc/cron.deny 설정파일로 crontab 명령 접근제어 수행 (allow만 -> white list, crontabdeny만 -> black list, crontab둘 다O -> allow 우선, cron..