간혹 해킹을 당하거나 버그 등으로 네트웍 트래픽을 과도하게 유발하는 데몬이 있을 수 있습니다. 

 

아래와 같은 방법으로 문제를 해결할 수 있으니 참고하시기 바랍니다. 

 

iptraf 으로 특정 포트에서 외부로 특정 주소의 6666포트로 데이터를 12MB/s로 트래픽을 발생하는 현상을 발견했다고 가정해 보겠습니다. (추가로 nload를 사용하면 in/outbound에서 어느 정도 트래픽이 발생하는 정리해서 보여줍니다.)

 

(* iptraf-ng는 보다 편리한 인터페이스를 제공합니다.)

 

iptables에서 ip 혹은 포트를 바로 막을 수도 있겠지만 그보다는 트래픽을 유발하는 데몬을 찾아 삭제하는 것이 좋습니다.

 

만약 긴급한 상황이라 먼저 막아야 하는 상황이라면 아래와 같이 지정한 포트 사용을 차단할 수 있습니다. 

    iptables -I OUTPUT -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 --dport 6666 -j DENY    
    systemctl restart iptables

 

바로 차단하기 보다는 해당 포트를 사용하는 데몬을 찾고 싶을 때는 아래 절차로 진행해 보시기 바랍니다. 

 

1. 6666 포트를 사용하는 데몬을 찾습니다.

     netstat -ntlp | grep :6666

2. 프로세스를 찾았다면 kill로 다운시켜보세요.

kill -9 processid

3. 프로세스를 kill 후 다시 가동되는지 감시하세요.

 

4. 다시 올라왔다면 해당 프로세스를 가동하는 또다른 데몬이 있는 겁니다.

  • ps axo pid,ppid,comm | grep processname(6666을 사용하는 프로세스 이름) 으로 검색하면 몇 번 프로세스가 6666을 사용하는지, 해당 프로세스를 가동하는 데몬의 processid가 무엇인지 찾을 수 있습니다.
  • ps -ef | grep ppid 로 해당 프로세스를 찾아 삭제하세요.

 5. 해킹에 대비해 root pw를 수정하세요. 그리고 해당 시스템의 모든 유저들의 pw를 수정하시기 바랍니다.
 6. 이후 정기적으로 iptraf로 과도한 트래픽이 발생하는지 확인하세요. 만약 6666 포트가 아니라도 비슷한 상황이 발생한다면 루트권한을 누군가 탈취한겁니다. 이 경우 같은 네트웍을 사용하는 모든 시스템의 점검과 라우터 장비에 대한 점검이 필요합니다.

 

이상입니다. 

'개발 이야기 > linux' 카테고리의 다른 글

악성 데몬 찾고 해결하는 방법  (0) 2020.05.12
ssh key 충돌 해결방법  (0) 2019.07.03
시스템 기본 사양 확인하기  (0) 2018.08.30
메모리 사용양 측정 - mpstat  (1) 2015.04.10
apache2에서 perl 설정하기  (0) 2015.02.05
ubuntu apt-get source generate  (0) 2015.02.03
[root@lnk635 ~]# ssh 'root'@'172.xx.xx.xx'
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)! 
It is also possible that a host key has just been changed. 
The fingerprint for the ECDSA key sent by the remote host is 
SHA256:FTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Please contact your system administrator. 
Add correct host key in /root/.ssh/known_hosts to get rid of this message. 
Offending ECDSA key in /root/.ssh/known_hosts:8 
ECDSA host key for [172.xx.xx.xx]:22 has changed and you have requested strict checking. 
Host key verification failed.

 

 

ssh로 원격접속을 시도하면 위와 같은 에러가 출력될 때가 있다. 기존에 접속하던 시스템의 변경 문제(시스템 재설치 혹은 교체)로 저장된 원격 시스템의 고유값이 기존에 저장된 값과 다를 때 발생한다. 

 

스푸핑 같은 해킹으로 의심되기 때문에 위와 같은 경고를 출력하는데, /root/.ssh/known_hosts  파일에 들어가서 해당 ip로 저장된 키 값이 저장된 라인을 삭제한 후 재접속을 시도하면 된다. 

 

 

'개발 이야기 > linux' 카테고리의 다른 글

악성 데몬 찾고 해결하는 방법  (0) 2020.05.12
ssh key 충돌 해결방법  (0) 2019.07.03
시스템 기본 사양 확인하기  (0) 2018.08.30
메모리 사용양 측정 - mpstat  (1) 2015.04.10
apache2에서 perl 설정하기  (0) 2015.02.05
ubuntu apt-get source generate  (0) 2015.02.03

CentOS 기준.. 매번 사용하지 않는 것들이라 기록해둔다.



OS 버전 확인

cat /etc/redhat-release(el7 ~)   or cat /etc/issue(~el6)


커널 버전 확인

cat /proc/version


Kernel bits 확인

getconf WORD_BIT


cpu 정보 확인 

cat /proc/cpuinfo

실 CPU 수 : grep ^processor /proc/cpuinfo | wc -l

CPU당 코어 수 : grep 'cpu cores' /proc/cpuinfo | tail -1


메모리 

cat /proc/meminfo


디스크 용량 확인 

df -h

'개발 이야기 > linux' 카테고리의 다른 글

악성 데몬 찾고 해결하는 방법  (0) 2020.05.12
ssh key 충돌 해결방법  (0) 2019.07.03
시스템 기본 사양 확인하기  (0) 2018.08.30
메모리 사용양 측정 - mpstat  (1) 2015.04.10
apache2에서 perl 설정하기  (0) 2015.02.05
ubuntu apt-get source generate  (0) 2015.02.03

없으면 인스톨.. 


apt-get install mpstat


기본으로 mpstat를 입력하면 아래와 같은 결과가 출력됨.


sudo mpstat


Linux 3.13.0-45-generic (rs2mapp1)      04/10/2015      _x86_64_        (2 CPU)


CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle

all       0.02    0.01      0.00   0.02     0.00    0.00    0.00    0.00      0.00    99.95


이걸 코더별로 사용률을 보려면 아래와 같이 실행하면 된다. 

sudo mpstat -P ALL


01:54:52 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle

01:54:52 PM  all    0.02    0.01    0.00    0.02    0.00    0.00    0.00    0.00    0.00   99.95

01:54:52 PM    0    0.02    0.01    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.94

01:54:52 PM    1    0.01    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.97


각 CPU에 대한 내용만 보고 싶다면..

sudo mpstat -P ALL | tail -2 (cpu가 2개니까 밑에서 두줄만 보겠다는 필터 적용)

01:56:08 PM    0    0.02    0.01    0.00    0.03    0.00    0.00    0.00    0.00    0.00   99.94
01:56:08 PM    1    0.01    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.97

특정 시간 간격으로 계속 나오게 하고 싶다면

sudo mpstat -P ALL 5 (5초 간격으로 계속 출력하기.)


예전에 한참 사용할 땐 알겠는데, 너무 오랜동안 사용 안하니 당췌 기억이 안나네. 


찾아서 정리해둔 내용.

  1. 홈짱 2015.11.19 15:17

    고맙습니다. 덕분에 좋은 내용 알아가네요.

아파치(apache2.4.x)를 오랜만에 건드리는데 왜케 많이 변한거지 --;


아래는 gitweb과 연동하는 과정에서 perl 설정을 추가한 부분.


Alias /gitweb /usr/share/testWeb


<IfModule mod_perl.c>

<Directory /usr/share/testWeb>

   Options +ExecCGI

   AddHandler perl-script .cgi .pl

   PerlResponseHandler ModPerl::Registry

   PerlOptions +ParseHeaders

   AllowOverride None

    Require all granted

    AuthType Basic

    AuthName "Git Access"

    Require valid-user

    AuthUserFile /etc/apache2/gitweb-htpasswd

    SetEnv GITWEB_CONFIG /etc/gitweb.conf

</Directory>

</IfModule>


추가로 gitweb.conf 파일 내용도 업데이트.

our $projectroot = "/home/git/repositories/";


# directory to use for temp files

our $git_temp = "/tmp";


# target of the home link on top of all pages

#$home_link = $my_uri || "/";


# html text to include at home page

#$home_text = "indextext.html";


# file with project list; by default, simply scan the projectroot dir.

our $projects_list = "/home/git/projects.list";


# stylesheet to use

#@stylesheets = ("static/gitweb.css");


# javascript code for gitweb

#$javascript = "static/gitweb.js";


# logo to use

#$logo = "static/git-logo.png";


# the 'favicon'

#$favicon = "static/git-favicon.png";


# git-diff-tree(1) options to use for generated patches

#@diff_opts = ("-M");

@diff_opts = ();


$feature{'blame'}{'default'} = [1];



http://repogen.simplylinux.ch/generate.php

그래서 찾아봤더니.. intel CPU에 대해서는 아래와 같은 아티클이 있었음.


http://gobawi.tistory.com/90


난 AMD라.. 확인 했더니.. 


이런 항목이 있네. Enabled로 수정하고 다시 들어오면 64bit OS 생성 가능.



vi /etc/apt/sources.list 를 수정 후 apt-get update 하면 해당 업데이트 서버 리스트 받아옴.


vi 에디터에서 :%s/source/target/하면 source 텍스트가 target 텍스트로 한번에 수정되니 참고할 것!

현재 커널 버전 확인은 " uname -a" 로 확인 가능




업데이트 파일은 여기에 다 모여있음


http://kernel.ubuntu.com/~kernel-ppa/mainline


들어가면 각 버전별로 폴더가 있으며 rc는 완벽한 버전이 아니므로 가능한 설치하지 말 것!


세가지 파일을 받아야 하는데.. 64bit의 경우 wget (http://full path)으로 아래 세 가지 파일을 다운 받는다. 


linux-headers-XXX-XXXX-generic_XXX-XXXXX_amd64.deb


linux-headers-xxx-xxxx-xxxxx_all.deb


linux-image-xxx-xxxx-generic_xxxxx_amd64.deb



파일을 다 받았다면 아래 커멘드를 입력한다.


sudo dpkg -i *.deb



(* 참고1. dpkg = http://ko.wikipedia.org/wiki/Dpkg )

(* 참고2. 패치 파일은 generic 과 lowlatency 두가지가 업데이트 되어 있는데, 커널 빌드 시 특별히 선택한 기억이 없다면 generic이다. 이에 대한 내용은 https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel 을 참고할 것!)





(OS : Ububtu 14.04 Server)


현재 설정된 내용 보기

iptables -L 


현재 룰을 지정한 이름의 파일로 저장하기 

iptables-save  > 특정이름( ex 2015.01.01.rule)


저장한 룰로 복원하기

iptables-restore < 백업했던 롤 파일 이름


직접 iptables 파일 편집하기

iptables-save로 rule을 복사한다.

복사한 파일을 수정한다.

iptables-restore로 복원한다.




+ Recent posts