# yum install -y ncurses-devel glib2-devel GeoIP-devel 
# wget https://tar.goaccess.io/goaccess-1.3.tar.gz
# tar -xzvf goaccess-1.3.tar.gz
# cd goaccess-1.3/
# ./configure --enable-utf8 --enable-geoip=legacy
# make
# make install
vi /etc/goaccess.conf

# Apache/NGINX’s log formats below.
time-format %H:%M:%S
# Apache/NGINX’s log formats below.
date-format %d/%b/%Y
# NCSA Combined Log Format
log-format %h %^[%d:%t %^] “%r” %s %b “%R” “%u”

주석해제 !
# /usr/local/bin/goaccess -f /var/log/nginx/access.log
실행하면 터미널에서 실시간으로 로그 분석이 가능하다!
# /usr/local/bin/goaccess -f /var/log/nginx/access.log --log-format=COMBINED -o /usr/share/nginx/html/report.html
html파일 저장해서 그래픽으로 보는것도 가능하다.

# vi /etc/bashrc // bash 전역설정

export PROMPT_COMMAND=’RETRN_VAL=$?;logger -p local6.debug “$(whoami) [$$]: $(history 1 | sed “s/^[ ][0-9]+[ ]//” ) [$RETRN_VAL]”‘
//맨 밑에 추가후 저장

# vi /etc/rsyslog.d/bash.conf

local6.* /var/log/commands.log
//로그 저장할 장소 설정.

vi /etc/logrotate,d/rsyslog

/var/log/commands.log
//로그 백업 설정

# systemctl restart rsyslog

rkhunter는 리눅스 시스템에 백도어가 있는지 파일 변조가 있는지 체크할 수 있다.
설치 방법은 YUM을 이용한 설치가 되겠다.

# yum install -y rkhunter

# rkhunter 를 입력하면 사용할 수 있는 명령어들이 나온다.
여기서 체크하는 옵션 -c 를 붙이면 실행된다.

rkhunter 실행 화면

실행되면 순차적으로 점검된 목록이 나오는데 warning 항목들은 변조되었거나 위험성이 있다는 표시니깐 주의 깊게 관찰하면 되겠다.

 

위 화면에서는 Warning 항목에 대한 자세한 설명이 없는데 /var/log/rkhunter에서 자세한 설명이 나온다.

'공부 > Linux' 카테고리의 다른 글

(CentOS 7) goaccess 웹 로그 분석 툴  (0) 2020.02.19
(CentOS 7) 셸 커맨드라인 로그 관리  (0) 2020.02.19
(CentOS 7) Nginx 버전 정보 숨기기  (0) 2020.02.19
(CentOS 7) firewalld 사용법  (0) 2020.02.19
(CentOS 7) SSH 보안설정  (0) 2020.02.19

휘발성 정보 수집

  1. 날짜 및 시간 정보
    명령어 : date
  2. 시스템 정보 확인
    명령어 : uname -a
  3. 프로세스 분석
    명령어 : ps -ef , pstree , top
  4. 네트워크 분석
    명령어 : ifconfig , netstat -anop , netstat -nr , arp -a , tcpdump -i
  5. 사용자 정보
    명령어 : w

비휘발성 정보 수집

  1. 사용자 정보
    명령어 : last , lastlog , /etc/passwd , /etc/shadow
  2. 파일시스템
    명령어 : df -k , dpkg -l(레드헷계열은 rpm -qa)
  3. 시간 정보
    명령어 : find / -ctime -1 -type f (최근 1시간 이내 속성이 변한 파일만 검색)
    (mtime , atime)
    윈도우/리눅스 – modify (수정시간/수정시간)
    – access(엑세스시간/엑세스시간)
    – create/change(생성시간/속성이 변한 시간)
  4. 스케줄 정보
    명령어 : crontab -l
  5. 로그 분석
    명령어 : history

리눅스의 분석 정보는 >> 을 통해 파일로 저장하여 분석이 가능.
예) #dpkg -l >> dpkg.txt

'공부 > 침해대응' 카테고리의 다른 글

[침해대응] 가상 환경 구축 #1 - ESXi  (0) 2020.03.25
ELK 설치  (0) 2020.02.27
Sysmom tools 설치  (0) 2020.02.24
시스몬(Sysmon) 설치  (0) 2020.02.20
윈도우 분석 도구  (0) 2020.02.19
#vi /etc/nginx/nginx.conf http { }

http {
     server_tokens off; //추가
}

#systemctl restart nginx

CentOS/RHEL 7 버전 부터 firewalld로 변경되었다.
firewalld에서는 zone이라는 것이 존재하는데 default가 public이다.
규칙을 추가하면 이 파일에 저장>> /etc/firewalld/zones/public.xml

1. 특정 포트 허용/삭제
# firewall-cmd --permanent --zone=public --add-port=80/tcp
# firewall-cmd --permanent --zone=public --remove-port=80/tcp 
 
2. 특정 IP 허용/삭제
# firewall-cmd --permanent --zone=public --add-source=192.168.199.111
# firewall-cmd --permanent --zone=public --remove-source=192.168.199.111
 
3. 서비스 허용/삭제
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --remove-service=http
* /usr/lib/firewalld/services 에 해당 서비스 xml 룰 파일이 존재해야함.
 
위 명령어들을 적용시키려면 firewall-cmd --reload 명령어로 서비스 재시작.

permanent 는 영구적용 옵션인데 제외하고 firewall-cmd 명령어만 사용하면 재시작없이 바로 적용된다. 하지만 시스템 리부팅이나 방화벽 리로드시 적용이 안된다.

최근에 SSH를 다시 설치했으니깐 보안설정을 해보자.

 

기본적으로 RPM으로 설치되어있는 경우에는 설정파일이 /etc/ssh/sshd_config
나같은 경우에는 컴파일해서 설치했으므로 /usr/local/openssh/etc/sshd-config
vi 편집기로 열어보면 기본적으로 전부 주석처리 되어있다.

 

일단 port는 기본적으로 22로 되어있는데 외부접속이 가능할때 무작위로 공격이 들어온다. 그래서 포트는 변경해주는 것이 좋다. 변경해주면 firewalld에 해당 포트를 추가해줘야 접속이 가능하다.

 

PermitRootLogin no 이것도 해제해주자. root 로그인을 막는 옵션이다. 그래서 보통 일반사용자로 로그인후 su로 권한상승을 한다.
MaxAuthTries 는 로그인 실패 횟수를 말하는건데 나는 3으로 지정했다.

 

PermitEmptyPasswords no 비밀번호가 없는 계정을 허용하겠냐? 라는 옵션

 

AllowUsers test1 설정파일에는 없지만 추가해주면 된다. 특정 사용자만 접속 가능하게끔 해주는 옵션이다. test1 외에는 접속이 불가능하다.

 

이정도만 보안설정해주면 문제없을듯 하다.

'공부 > Linux' 카테고리의 다른 글

(CentOS 7) Nginx 버전 정보 숨기기  (0) 2020.02.19
(CentOS 7) firewalld 사용법  (0) 2020.02.19
(CentOS 7) openssh 업데이트  (0) 2020.02.19
(CentOS 7) 워드프레스 설치 #4  (0) 2020.02.19
(CentOS 7) 워드프레스 설치 #3  (0) 2020.02.19

centos 7 버전에는 기본적으로 openssh 7.x 버전이 탑재되어 있었다.
openssh 홈페이지에 가보니 8.1으로 최신버전으로 올라와있다.
오랜만에 리눅스를 사용해봐서 익숙해질겸 컴파일해서 설치해보기로 했다.

 

컴파일을 하기위해서 gcc라는 컴파일러를 설치한다.
# yum install -y gcc

 

openssh 설치파일은 홈페이지 wget으로 다운받고 압축해제 해놓은 상태이다.
# ./configure –prefix=/usr/local/openssh –with-md5-passwords
prefix는 위치설정이고 MD5 암호화 알고리즘을 사용한다는 설정이다.
명령어를 실행해보니 zlib.h missing 이라고 뜬다…
구글링을 해보니 zlib-devel를 설치하면 된다고한다. 설치해준다.
그리고 다시 configure를 해보니 이번에는 ‘working libcrypto not found’ 라고 뜨는데 또 다시 구글링을 해보니 openssl-devel을 설치해주면 된다고 한다.
다시 configure를 해보니 정상적으로 된다!
# make & make install 까지 하면 설치 끝!

 

# cp ./contrib/sshd.pam.generic /etc/pamd.sshd
이 파일을 복사해야 접속이 된다한다. 검색해보니 레드헷 리눅스의 사용자 인증과정은 pam을 통해서 이루어진다한다. pam에 대해선 나중에 또 찾아보도록 하자.
# /usr/local/openssh/sbin/sshd // ssh 실행 명령어
실행후 외부프로그램으로 접속해보니 잘된다.

 

이제 자동실행을 설정해줘야하는데 이게 yum이나 rpm으로 설치한게 아니라서
systemctl enable 명령어를 사용못하므로 /etc/rc.local 을 사용할 것이다.

# chmod u+x /etc/rc.d/rc.local
# systemctl start rc-local
위 명령어로 rc.local를 활성화

 

# vi /etc/rc.d/rc.local 에다가

 

/usr/local/openssh/sbin/sshd 를 넣어주면 재부팅시에도 자동으로 실행된다.

'공부 > Linux' 카테고리의 다른 글

(CentOS 7) firewalld 사용법  (0) 2020.02.19
(CentOS 7) SSH 보안설정  (0) 2020.02.19
(CentOS 7) 워드프레스 설치 #4  (0) 2020.02.19
(CentOS 7) 워드프레스 설치 #3  (0) 2020.02.19
(CentOS 7) 워드프레스 설치 #2  (0) 2020.02.19

+ Recent posts