Light and Salt 311
리눅스 기본 이론 (9) - Nmap, rootkit, rkhunter, snort, TCP/IP 네트워크 설정 본문
리눅스 기본 이론 (9) - Nmap, rootkit, rkhunter, snort, TCP/IP 네트워크 설정
trinitykjs 2017. 4. 19. 00:04Nmap
포트 스캔 도구.
이 프로그램은 해킹보다는 취약점 분석을 위한 도구로 자주 사용이된다.
서버에서 불필요하게 동작하고 있는 서비스들을 찾아낼때 유용하다.
홈페이지 http://www.insecure.org/nmap
패키지설치
yum install nmap nmap-frontend
1. 스캔유형
-sS TCP SYN 스캔
-sT TCP Connect() 스캔
-sP 핑 스캔
-sU UDP 스캔
-sO IP 프로토콜 스캔
-sA ACK 스캔
-sL List 스캔
-sR RPC 스캔
-sW TCP 윈도우 스캔
-b FTP Bounce 스캔
-v 스캐닝과정을 자세히 보여준다.
Discovered open port 23/tcp on 172.16.4.3
Discovered open port 22/tcp on 172.16.4.3
Discovered open port 80/tcp on 172.16.4.3
Discovered open port 912/tcp on 172.16.4.3
Discovered open port 135/tcp on 172.16.4.3
Discovered open port 445/tcp on 172.16.4.3
Discovered open port 139/tcp on 172.16.4.3
Discovered open port 902/tcp on 172.16.4.3
iptables -F
iptables -A INPUT -p tcp -s 0/0 -d 172.16.4.50 --dport 23 -j REJECT
--------------------------------------------------------------------------------------------------
rootkit, backdoor, Worm 찾아내기
루트킷이란 시스템의 취약점이나 취약한 게정을 이용하여 시스템에 침투하여 루트권한을 획득할 수 있게 해주는 도구이다.
http://www.chkrootkit.org
패키지설치
yum install -y chkrootkit
루트킷 점검
chkrootkit
점검메시지
infected 해당 점검 항목이 루트킷으로 변형되었음
not infected 해당 루트킷 없음
not tested 점검이 이루어지지 못함
not found 해당 점검 항목이 존재하지 않음
특정항목을 점검할 경우
chkrootkit cron crontab find su ifconfig login ls netstat
------------------------------------------------------------------------------------------------
rkhunter
MD5 해쉬비교, 루트킷에 이용되는 원래의 파일 탐색, 잘못된 바이너리 파일 퍼미션, LKM과 KLD 모듈속의 의심되는 스트링 검색, 숨겨진 파일 검색을 통해서 시스템에 설치되어 있는 루트킷, 백도어, 로컬익스플로이드 등을 탐지해 주는 도구이다.
홈페이지 http://www.rootkit.nl/projects/rootkit_hunter.html
위 사이트에서 자세한 정보를 확인할 수 있다.
패키지설치
yum install -y rkhunter
rkhunter --update 명령으로 DB를 업데이트할 수 있다.
실행
rkhunter -c
-----------------------------------------------------------------------------------------------
snort
네트워크를 통한 침입에 대한 탐지 및 경고를 시스템 관리자에게 알려주는 네트워크침입탐지시스템(NIDS)로 패킷캡쳐 라이브러리를 이용하여 네트워크상의 패킷과 설정파일에서 정의된 룰에 의해서 침입 및 공격에 대한 경고를 알려주는 도구이다.
snort는 침입을 탐지할 수 있지만 막을 수 있는 도구가 아니기 때문에 완벽한 보안을 유지할 수 있는것이 아니므로 방화벽과 함께 효율적으로 사용하는 것이 중요하다.
홈페이지 http://www.snort.org
http://www.tcpdump.org
패키지설치
libpcap이 먼저 설치되어 있어야 한다.
wget http://www.tcpdump.org/release/libpcap-0.9.7.tar.gz
tar xvfz libpcap-0.9.7.tar.gz
cd libpcap-0.9.7
./configure
make && make install
snort-2.8.4.1.tar.gz을 다운로드하여 설치해준다.
tar xvfz snort-2.8.4.1.tar.gz
cd snort-2.8.4.1
./configure --prefix=/usr/local/snort --with-mysql=/usr/local/mysql
make && make install
mkdir /etc/snort
cp 소스디렉토리/etc/* /etc/snort
mkdir /var/log/snort
chmod 700 /var/log/snort
>I was trying to install snort 2.9 on my RHEL 5.5 system. Initially i tried to install by downloading snort rpm from http://www.snort.org/downloads/265 but i failed because it generated error that libpcap>=1.0.0 is required to install snort 2.9. I decided to check my libpcap version using command ‘rpm -qa|grep libpcap‘ and found that libpcap-0.9.4 is installed on my system. After a bit googling and hit and trial, I got the following steps to install snort-2.9 on my RHEL 5.5 system.
step1. Downloaded libpcap-1.1.1 from http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz and uncompressed it in /usr/local/src folder.
step2. Move into /usr/local/src/libpcap-1.1.1
root#cd /usr/local/src/libpcap-1.1.1
step3. Install libpcap in /usr/lib
root#./configure ?prefix=/usr
root#make
root#make install
step4. Downloaded daq from http://www.snort.org/downloads/263 and uncompressed it in /usr/local/src folder.
step5. Move into /usr/local/daq-0.2
root#cd /usr/local/src/daq-0.2
step6. install daq-0.2
root#./configure
root#make
root#make install
step7. Downloaded snort-2.9 from http://www.snort.org/downloads/269 and uncompressed it in /usr/local/src folder.
step8. Move into /usr/local/src/snort-2.9
root#cd /usr/local/src/snort-2.9
step9. ./configure ?with-mysql
step10. make
step11. make install
I followed above given steps and snort-2.9 successfully get installed on RHEL 5.
----------------------------------------------------------------------------------------------------
TCP/IP 네트워크 설정
1. 이더넷 네트워크 카드 설정
/etc/modprobe.conf
커널에서 지원되는 이더넷 네트워크 장치는 부팅 시 자동으로 모듈이 로딩되어 장치를 사용할 수 있는 상태가 된다.
커널에서 자동으로 검색된 이더넷 모듈 장치는 /etc/modprobe.conf 파일에 정의되어 있다.
alias 디바이스명 모듈명
alias eth0 vmxnet
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias snd-card-0 snd-ens1371
*자주 사용하는 랜카드 모듈명
Realtek 8139too
Realtek 8169 1G PCI r8169
intel express rpo100 PCI e100
Marvell Yukon 88E8055 sky2, forcedeth
2. 로컬 호스트 이름 설정 (/etc/sysconfig/network)
로컬시스템에 고유한 이름을 지정할 수 있다.
HOSNAME=지정값
지정값은 사전적의미이거나 도메인형식으로도 가능하다.
3. /etc/hosts
호스트 주소에 호스트이름을 맵핑해주는 파일이다.
아이피 호스트이름 별칭
예)
127.0.0.1 hyunho h1
172.16.4.159 localhost.localdomain kdu
# ping hyunho
4. 인터페이스 설정
대표적으로 사용되는 인터페이스는 lo, eth0(물리적인 첫번째 랜카드) 이다.
** ifconfig 사용법 **
ifconfig <장치명> <IP> <Netmask 서브넷값> [Broadcast 브로드캐스트주소] [up/down]
ifconfig eth0 192.168.10.100 netmask 255.255.255.128 broadcast 255.255.255.127 up
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:F8:8D:8D
inet addr:172.16.4.50 Bcast:172.16.4.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fef8:8d8d/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:24365 errors:0 dropped:0 overruns:0 frame:0
TX packets:200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2461748 (2.3 MiB) TX bytes:30038 (29.3 KiB)
Interrupt:67 Base address:0x2024
랜카드정보 => /etc/sysconfig/network-scripts/ifcfg-eth0
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 인터페이스 종류, 장치명
BOOTPROTO=none IP 할당방식, static/dhcp/bootp/none
HWADDR=00:0C:29:F8:8D:8D
ONBOOT=yes 재부팅시 활성화 여부 yes/no
NETMASK=255.255.255.0
IPADDR=172.16.4.50
GATEWAY=172.16.4.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
랜카드 활성화/비활성화
ifdown eth0 = ifconfig eth0 down
ifup eth0 = ifconfig eth0 up
5. dhclient
DHCP 서버에 연결하여 자동으로 아이피를 할당받을 때 사용한다.
ifdown eth0
dhclient eth0
랜카드 자동아이피 설정
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0C:29:F8:8D:8D
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
랜카드 고정아이피 설정
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0C:29:F8:8D:8D
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
NETMASK=255.255.255.0
IPADDR=172.16.4.50
GATEWAY=172.16.4.1
6. route 게이트웨이 지정
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.4.0 * 255.255.255.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
1)Destination 목적지 네트워크 또는 목적지 호스트주소
2)Gateway 외부 네트워크 연결해주는 호스트주소(톨게이트와 같다)
3)Genmask 목적지 네트워크 또는 목적지 호스트의 netmask를 의미한다.
255.255.255.255 --> 단일 대상 호스트의 넷마스크
0.0.0.0 --> 기본라우트
4)Flags U 라우트 동작 상태
H 타켓 호스트
G 게이트웨이로 사용
R 동적라우팅에 대한 라우트 재생성
D 데몬 또는 리다이렉션에 의해 동적으로 설치된 상태
M 라우팅 데몬
i 라우트 거부
5)Metric 목적지까지의 거리로 홉 단위로 계산.(최신 커널에서는사용 안함)
6)Ref 현재 라우터 통계
7)Use 라우트 탐색 수
8)Iface 패킷이 전달되는 인터페이스
# route add -host 아이피주소 dev 인터페이스명
ex)
# route add -host 10.10.10.10 dev eth0
# route del 아이피주소 dev 인터페이스명
# route del 10.10.10.10. dev eth0
네트워크
/etc/sysconfig/network
/etc/hosts
/etc/sysconfig/network-scripts/ifcfg-eth0
ifconfig = ifdown/ifup
route
dhclient
'IT 관련정보 > 리눅스' 카테고리의 다른 글
리눅스 기본 이론(11) - SAMBA, DHCP (0) | 2017.04.19 |
---|---|
리눅스 기본 이론(10) - 네트워크 설정, 네트워크 진단 명령어, 서버 포트와 방화벽 (0) | 2017.04.19 |
리눅스 기본 이론(8) - 로그 분석, 백도어 실습, tripwire (0) | 2017.04.19 |
리눅스 기본 이론(7) - CD-ROM, 커널 컴파일, 시스템 로그 (0) | 2017.04.19 |
리눅스 기본 이론(6) - 로그인 쉘, 프롬프트, 쉘 환경변수, 백업, rsync (0) | 2017.04.18 |