본문 바로가기

Computer Engineering/LINUX

LINUX#2

= Kernel 관리 파일 =

로드 되었던 모듈을 메모리에서 제거
[root@localhost ~]# rmmod ehci_hcd
ERROR: Module ehci_hcd does not exist in /proc/modules
[root@localhost ~]# lsmod | grep ehci_hcd
=> lsmod 결과 ehci_hcd 를 확인할 수 없다.

다시
모듈을 인식
[root@localhost ~]# modprobe ehci_hcd
[root@localhost ~]# lsmod | grep ehci_hcd
ehci_hcd               34125  0
=> 모듈이 추가된 것을 확인할 수 있다.
(*참고로 insmod 는 잘 사용하지 않는다고 한다.)

[root@localhost ~]# modprobe -a uhci_hcd
[root@localhost ~]# lsmod | grep uhci_hcd
uhci_hcd               25421  0

[root@localhost modules]# ls -F
2.6.18-194.el5/  2.6.18-274.7.1.el5/

=> 모듈은 커널버전마다 따로 관리를 해주어야 한다!!


[root@localhost modules]# modprobe -l | grep eth
/lib/modules/2.6.18-274.7.1.el5/kernel/drivers/usb/net/cdc_ether.ko
/lib/modules/2.6.18-274.7.1.el5/kernel/drivers/net/forcedeth.ko
/lib/modules/2.6.18-274.7.1.el5/kernel/drivers/usb/net/kaweth.ko

[root@localhost modules]# lsmod | grep ohci_hcd     //USB 모듈 검색
ohci_hcd               24937  0

[정리]
# lsmod | grep uhci_hcd < - USB 모듈검색
# modprobe -r uhci_hcd < - USB 모듈 제거
# modprobe -a uhci_hcd < - USB 모듈 삽입
# modprobe -l uhci_hcd < - USB 모듈 검색

[참고] 모듈을 제어할때는 modprobe 로 관리를 주로 한다. 커널은 /lib/modules/ 안에 각각 모듈 파일들이 존재한다.

[기타] # lsmod 로 확인할때는 /proc/modules 안의 내용을 보고 보여준다.

depmod : 의존성 검사를 한뒤 modules.dep 파일 갱신
의존성 검사를 한뒤 modules.dep 파일을 갱신한다.
kerneld나 modprobe를 실행하기 전엔 반드시 depmod –a 사용하는 습관이 좋다.


= nmap =
 nmap을 공부해야하는 이유
① 빠른 ping 및 포트 스캐닝 기능
② 운영체제 핑거프린팅(finger printing)
③ 순서 번호 추측(sequence prediction)
④ TCP 기반 연결을 다양하게 흉내
⑤ 스푸핑(spoofing) 기능
⑥ 스캔 속도와 순서 조절 기능
⑦ 출력을 텍스트 파일에 저장하는 기능
⑧ 텍스트 파일에서 입력 정보를 읽는 기능

[가정] samba-swat 스캔 당하지 않도록 제거해보자. 그런데 이 프로그램은 불필요한 가정한에서 이다. 필요없는 것은 운영체제에 둘 필요가 없다.

그래서 smaba-swat 스캔 당하지 않도록 제거해 보자
 - 삼바스왓 이 녀석이 무엇인지 알아야한다.
 - 이 녀석의 프로세스 정보나 관련된 모든 사랑을 알아야 된다.
 - 정말 필요 없는 녀석이라면 제거하자

[실습] samba-swat 녀석은 xinetd 라는 수퍼데몬으로 구동된다. 이 녀석은 samba 설치하면서 같이 설치된 것인데 이 녀석을 프로그램(samba-swat)만 삭제하도록 하자.

# rpm -qa samba-swat
# rpm -e samba-swat

[root@localhost nmap-5.51]# rpm -qa samba-swat
samba-swat-3.0.33-3.29.el5_7.4
[root@localhost nmap-5.51]# rpm -e samba-swat
경고: /etc/xinetd.d/swat(이)가 /etc/xinetd.d/swat.rpmsave(으)로 저장되었습니다
[root@localhost nmap-5.51]# rpm -qa | grep samba-swat
[root@localhost nmap-5.51]# rpm -qa | grep samba-swat
[root@localhost nmap-5.51]# nmap localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2011-11-05 15:16 KST
Warning: File ./nmap-services exists, but Nmap is using /usr/local/share/nmap/nmap-services for security and consistency reasons.  set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
79/tcp   open  finger
80/tcp   open  http
111/tcp  open  rpcbind
631/tcp  open  ipp
901/tcp  open  samba-swat
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds
[root@localhost nmap-5.51]# service  xinetd restart
xinetd 를 정지 중:                                         [  OK  ]
xinetd (을)를 시작 중:                                     [  OK  ]
[root@localhost nmap-5.51]# nmap localhost

Starting Nmap 5.51 ( http://nmap.org ) at 2011-11-05 15:17 KST
Warning: File ./nmap-services exists, but Nmap is using /usr/local/share/nmap/nmap-services for security and consistency reasons.  set NMAPDIR=. to give priority to files in your local directory (may affect the other data files too).
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000080s latency).
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 993 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
23/tcp   open  telnet
79/tcp   open  finger
80/tcp   open  http
111/tcp  open  rpcbind
631/tcp  open  ipp
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
[root@localhost nmap-5.51]#

= Sync Flooding 공격의 원리 =
■ 네트워크 서비스거부 공격
네트워크 서비스 과부하 공격은 네트워크에 대한 서비스 요청으로 서버데몬(Daemon)을 오버플로우 시킴으로서 가능하다. 최근 논의되고 있는 "TCP SYNC FLOOD" 라는 공격은 다음과 같은 동작에 의해 공격을 한다.


= 리눅스 시스템 로그 =


[root@localhost ~]# ps -ef | grep syslogd

root     18435     1  0 16:21 ?        00:00:00 syslogd -m 0
root     18828 18455  0 16:58 pts/1    00:00:00 grep syslogd

환경 설정 파일 /etc/syslog.conf
<설정형식>
서브시스템.메시지 종류                                                       출력 장치

메시지 종류(중요도 순서)
emerg : 시스템 패닉(시스템 충돌: 자동차가 움직일 수 없는 경우)
alert : 치명적인 에러, 즉시 알려야 하는 내용
(변조된 시스템 데이터베이스: 자동차는 가지만 일부 장비가 파손된 경우)
crit : 치명적인 에러(하드웨어 에러, critical error)
err : 에러(일반적인 에러 상태)
warn : 경고 메시지(시스템 요구 상황 에러)
notice : 알림 메시지(정상적인 상태지만 중대한 상황)
info : 정보 메시지
debug : 디버그 메시지(실행중인 프로세서의 디버깅 정보)
none : 모든 메시지를 무시한다.

= logrotate =
로그파일은 특정한 파일에 지속적으로 기록이 된다. 이것은 시간이 지나면 지날수록 그 파일의 크기가 커져 시스템에서 많은 공간을 차지하며, 시스템 성능저하의 원인을 제공하기도 한다.
이런 문제점을 해결하기 위하여 logrotate를 이용하여 로그를 정기적으로 잘라서 보관하도록 한다.

일반적인 로그는 /var/log 안에 있다.

= IPtables =
윈도우즈의 방화벽과 똑같은 역할을 한다.

[root@localhost logrotate.d]# iptables -N ITCLASS
[root@localhost logrotate.d]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain ITCLASS (0 references)
target     prot opt source               destination
[root@localhost logrotate.d]# iptables -X ITCLASS
[root@localhost logrotate.d]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@localhost logrotate.d]#

[실습] iptables 에서 23 포트를 막고 tcp_wrapper(호스트 기반 제어 방식)에서 열었다면 23 포트 서비스인 telnet이 될까요? 안될까요?

가. # iptables -A INPUT -p tcp --dport 23 -j DROP
나. # vi /etc/hosts.allow
맨 아랫줄에 in.telnetd : ALL

====> 결론은 telnet 접속이 안된다.

[실습] 위 과정을 반대로해보자! iptables 에서 23 포트(텔넷)을 열고 tcp_wrapper 에서 막아보고 접속해보자!

가. # iptables -A INPUT -p tcp --dport 23 -j ACCEPT
나. # vi /etc/hosts.deny
ALL : ALL
=====> 결론 접속이 안된다

'Computer Engineering > LINUX' 카테고리의 다른 글

[해결법] Ubuntu 에서 한글입력이 안될 때  (0) 2011.12.16
LINUX#2  (0) 2011.11.06
LINUX#2 - Apache  (0) 2011.10.30
LINUX#2  (0) 2011.10.29
LINUX#2 -  (0) 2011.10.23