본문 바로가기

Linux

os별 library path 설정 참조 (http://publib.boulder.ibm.com/infocenter/iisinfsv/v8r1/index.jsp?topic=/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_dsenv_file.html) Table 1. Names of the library path environment variable, by operating system Operating systemLibrary path environment variableIBM AIX®LIBPATHHP-UXSHLIB_PATHHP-UX on Intel® Itanium®LD_LIBRARY_PATHLinux®LD_LIBRARY_PATHSolarisLD_LIBRARY_.. 더보기
semget failed.: No space left on device 에러의 원인은 세마포어에 접근하지 못해서 발생하는 문제다.해당 문제는 아래와 같이 불필요한 세마포어들을 정리하여 해결한다. 1. ipcs -s : 어떤 계정이 불필요하게 세마포어를 사용하는지 확인 2. ipcs | grep $LOGNAME | awk '{print $2}' > sem.txt : 해당 계정이 사용하는 세마포어ID를 추출하여 파일로 저장 3. for i in `cat sem.txt`; do { ipcrm -s $i; }; done; : 추출한 세마포어ID와 ipcrm 명령어를 사용하여 제거 더보기
RHEL4에서 yum 사용하기 http://db.necoaki.net/10 참고해서 설치 더보기
부팅 시 ssh 자동시작 기본적으로 ssh를 시작하기 위해서는 /ect/rc.d/init.d/sshd start를 해줘야한다. 이 명령을 부팅 시 마다 실행되도록 설정하려면 /etc/rc.d/rc.local 파일에 위의 명령을 추가해주면 된다. 더보기
리눅스 백도어 o 리눅스의 공격기법 분석 백도어 종류 1. passwd 백도어 - /etc/passwd 에 숨겨서 나중에 다시 접속을 할 때 사용한다. # useradd -u 0 r00t # useradd -o -u 0 r00t # passwd r00t # ssh r00t@localhost r00t@localhost's password: Last login: Wed Jul 29 21:21:42 2015 from 192.168.56.1 # id uid=0(root) gid=551(r00t) groups=551(r00t) ~~~~~~~~~~~ 2. Set-UID 백도어 - 일반 유저가 실행파일을 실행시키면 관리자 권한으로 변경된다. # useradd testuser # cd ~testuser # vi backdoor.c .. 더보기
보안도구 제작 ======================================================================IPTABLES-LAB> 보안도구를 작성한 후에 공격 테스트를 해보자. Attacker(BT) : 192.168.56.240 Victim(CentOS) : 192.168.56.200 공격형태 : White box test - Attacker 설정 - 1. bt 부팅 2. ssh 로 로그인 3. 공격 1. bt 부팅 - root/toor - VB Guest OS 생성 ( Ubuntu, 32bit 세팅 ), eth1 추가 Attacker# startx 2. ssh 로 로그인 Attacler# ifconfig eth1:0 192.168.56.240 Attacker# sshd-genera.. 더보기
ssh터널링 아래 설정시 각 서버는 IP주소가 다를 수 있으므로 각자의 IP주소를 확인한 후 설정하고 실습을 IP주소가 아닌 도메인주소를 이용한다. -- 서버명 : IP주소 -- s1.boaniyagi.com : 192.168.56.112 s2.boaniyagi.com : 192.168.56.103 s3.boaniyagi.com : 192.168.56.104 -- 서버명 : IP주소 -- 1. hosts 파일 세팅 - 3개의 호스트 모두 아래와 같이 /etc/hosts 파일에 추가적으로 설정한다. -- /etc/hosts -- 127.0.0.1localhost.localdomain localhost 192.168.56.112 s1.boaniyagi.com 192.168.56.103 s2.boaniyagi.com 19.. 더보기
NFS & SAMBA NFS (Network File System) NFS : Unix ---- Unix SAMBA : Unix ---- Windows Server : 56.150(NFS Server) Client : 56.200(NFS Client) -- 순서 -- 1. 네트워크 설정 2. 패키지 확인 3. 공유목록 설정 4. NFS 시작 5. NFS 설정 확인 6. NFS 마운트 -- 순서 -- 1. 네트워크 설정 - 네트워크 설정을 고정 IP로 설정한다. 56.150(NFS Server)# vi /etc/sysconfig/network-scripts/ifcfg-eth1 -- /etc/sysconfig/network-scripts/ifcfg-eth1 -- DEVICE=eth1 BOOTPROTO=static IPADDR=1.. 더보기
chroot환경의_OpenSSH설치하기 1. OpenSSH 패키지 삭제 # rpm -qa | grep ssh # /etc/init.d/sshd stop # rpm -e openssh-server # rpm -e openssh-clients # rpm -e openssh # rm -rf /etrc/ssh # ln -s /usr/local/openssh/etc /etc/ssh 2. OpenSSL 설치 # wget http://openssl.org/source/openssl-1.0.0d.tar.gz # tar xzf openssl-1.0.0d.tar.gz # cd openssl-1.0.0d # ./config zlib shared threads # make && make test && make install # echo /usr/local/ssl/.. 더보기
rsync + ssh + 공개키 + crond 를 이용한 백업시스템 구축하기 =================================================================== OPENSSH-LAB> rsync + ssh + 공개키 + crond 를 이용한 백업시스템 구축하기 google에서 rsync over ssh 검색하면 많은 문서를 참고할 수 있다. !!! rsync 를 사용하는 방법 !!! 1. rsync 데몬을 실행하는 방법 (/etc/rsync.conf) ==> 보안 X !!! 2. rsync over ssh 를 실행하는 방법 ==> 보안 O !!! 2 번인 SSH를 이용한 rsync는 ssh를 이용하므로 rsync 데몬을 사용할 !!! 필요가 없다. !!! 조건 : !!! root 로 접속이 가능(O)하고 root의 비번을 알고 있어야 된다. .. 더보기
공개키 인증방식으로 접속 ssh 로 로그인하기 위해서는 아래 2가지 인증방식을 제공한다. 1. id/pw 인증방식 2. 공개키 인증방식 (보안상 id/pw 보다 더 안전하다) =================================================================== OPENSSH-LAB> 공개키 인증방식 (암호가 없는) 으로 접속을 해보자. -- 순서 -- 1. 키 생성 - 키(개인키/공개키)를 생성한다. 2. 공개키 복사 - 생성된 공개키를 서버에 저장한다. (authorized_keys) 3. 서버 접속 - 서버에 로그인한다. 4. 자동 접속 -- 순서 -- +--------+ +--------+ | | | | | Client | ---> | Server | | | | | +--------+ +.. 더보기
ssh란? 1장. SSH가 무엇이며, 어디서 구할수 있나?SSH (Secure SHell)은 말 그대로 보안 로그인 쉘이다.전통적인 ftp, pop, telnet 같은 서비스들은 잘 알려진 대로 매우 보안에 취약하다. 이런 암호화 되지 않은 인증 방법은 당신의 암호가 그대로 노출될수도 있다.ssh를 통한 모든 데이타는 암호화되며, 트래픽은 압축되어 더 빠른 전송 효율을 얻을수 있다. 또한 기존의 ftp,pop 같은 안전하지 못한 서비스들을 위한 "터널"까지 지원한다.sshd 서버를 운영하지 않는 서버 관리자는 보안에 전혀 관심이 없는 사람이다. 1.2. 어디서 구하나?리눅스에서 사용할수 있는 ssh 는 두가지가 존재한다. ssh의 원 제작처인 www.ssh.com (핀란드 회사) 와 BSD licence(사실 10.. 더보기
scp 사용하기 ==================================================================== OPENSSH-LAB> scp 사용하기!!!! 반드시 호스트명 or IP 주소 뒤에 :(콜론)을 붙여야 한다. !!!! +--------+ +--------+ | | | | | Client | ---> | Server | | | | | +--------+ +--------+ root ---> user : sshuser port : 22 Upload -----> S Dowonload : C 더보기
Xshell, ftp, editplus를 이용한 업로드하기 ================================================================= OPENSSH-LAB> Windows 의 Xshell 에서 Server로 파일 업로드하기 -- 조건 -- Server IP : 192.168.56.101 Server Port : 22 Xshell -> 로컬쉘 실행 Xshell:\> sftp 192.168.56.101 sftp:/home2/sshuser> ls sftp:/home2/sshuser> put c:\windows\system32\notepad.exe =====================================================================================================.. 더보기
sftp 사용하기 [localhost@ ~]#ls /usr/local/openssh/libexec/ sftp-server ssh-keysign ssh-pkcs11-helpersftp 는 기본적으로 지원하기 때문에 따로 설치할 필요 없다. ================================================================= OPENSSH-LAB> sftp 사용하기 !!! sftp 는 ssh 데몬을 실행시켜면 자동으로 동작을 한다. !!! !!! WinSCP 는 윈도우용 무료 클라이언트이다. !!! +--------+ +--------+ | | | | | Client | ---> | Server | | | | | +--------+ +--------+ root ---> user : topuse.. 더보기
ssh 를 이용한 터널링 ================================================================= OPENSSH-LAB> ssh 를 이용한 터널링 구글에서 ssh 터널링 http://www.hanbit.co.kr/network/view.html?bi_id=547 http://suban.tistory.com/227 아래 두 개의 옵션을 사용 ssh [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port] =======================================================.. 더보기
ssh 를 이용한 top 실행하기 ================================================================= OPENSSH-LAB> ssh 를 이용한 top 실행하기 +--------+ +--------+ | | | | | Client | ---> | Server | | | | | +--------+ +--------+ root ---> user : topuser port : 22 Server# useradd -s /usr/bin/top topuser Server# echo 1234 | passwd --stdin topuser Client# ssh topuser@localhost 더보기
ssh 를 이용한 명령어 사용 ================================================================= OPENSSH-LAB> ssh 를 이용한 명령어 사용 o 사용법: ssh sshuser@hostname cmd ssh -l sshuser hostname cmd - ID/PW 인증이 정상적으로 성공하면 명령어(cmd) 가 성공적으로 실행된다. (단 로그인은 안된다.) Client# ssh sshuser@localhost pwd sshuser@localhost's password: 더보기
ssh 를 이용한 서버 접속 ############### ## ssh 명령어 ## ################ ================================================================= OPENSSH-LAB> ssh 를 이용해서 서버에 접속하는 방법 +--------+ +--------+ | | | | | Client | ---> | Server | | | | | +--------+ +--------+ root ---> sshuser o 일반적인 접속방법: - 첫 번째 방법 : ssh sshuser@hostname - 두 번째 방법 : ssh -l sshuser hostname ksw$ ssh 1.1.1.1 더보기
ssh 로 접속을 했더니 Warning 메세지가 나온다면 ? ###################### ## openssh 명령어들 ## ###################### # ls /usr/local/openssh/bin scp sftp slogin ssh ssh-add ssh-agent ssh-keygen ssh-keyscan # ls /usr/local/openssh/sbin sshd # ls /usr/local/openssh/libexec/ sftp-server ssh-keysign ssh-pkcs11-helper ============================================================== OPENSSH-LAB> ssh 로 접속을 했더니 Warning 메세지가 나온다면 ? !!! 작업은 클라이언트에서 한다 !!! 공개.. 더보기
OpenSSH를 xinetd 서버로 구동하기 ============================================================== OPENSSH-LAB> OpenSSH를 xinetd 서버로 구동해보자. -- 순서 -- 1. sshd 데몬 종료 2. sshd 스크립트 off 3. ssh용 xinetd 설정파일 생성 4. xinetd 재시작 5. 확인 6. 접속 -- 순서 -- 1. sshd 데몬 종료 # /etc/init.d/sshd stop 2. sshd 스크립트 off # chkconfig sshd off 3. ssh용 xinetd 설정파일 생성 # vi /etc/xinetd.d/sshd -- /etc/xinetd.d/sshd -- service ssh { disable = no flags = REUSE socket_t.. 더보기
Telnet & OpenSSH & VNC 서버는 크게 두가지 유형으로 실행되며 openssh 는 두 가지 방식 모두 가능하다. 1. Standalone 방식 - openssh 2. xinetd 방식 - openssh , telnet OpenSSH 와 telnet 의 차이점 o telnet 인증방식 : IP/PW 인증 데이터 전송방식 : client와 server 간에 data를 평문(plaintext) 으로 전송한다. 평문 전송의 단점 : 네트워크상에서 암호화 통신이 안되므로 네트워크 공격기법인 스니핑에 쉽게 노출될 수 있다. 보안상 취약하기 때문에 현재는 거의 사용되지 않는다. o openssh 인증방식 : IP/PW 인증, 공개키 인증 데이터 전송방식 : client와 server 간에 data를 암호문(ciphertext) 으로 전송한다... 더보기
vpopmail + cdb 설치 ===================================================================== QMAIL-LAB7> vpopmail + cdb 설치하기 *** 시스템 유저로 메일이 잘 받아졌다면 이제는 가상도메인을 사용할 수 있게 *** vpopmail 을 구축한다. *** 가상도메인의 장점 : 사용자를 얼마든지 추가/삭제할 수 있고 *** 서버의 시스템에 사용자를 생성할 필요가 없으므로 부담이 없다. -- 설치 순서 -- 1. vpopmail 관련 사용자와 그룹 추가 2. vpopmail 설치 3. 기본 도메인 설정 및 SMTP 릴레이 설정 4. clearopensmtp 설정 5. qmail smtp 스크립트 변경 6. vpopmail을 위한 디렉토리와 스크립트 생성 7... 더보기
ucspi-tcp 설치하기 ===================================================================== QMAIL-LAB 1> ucspi-tcp 설치하기 최신버전 : http://cr.yp.to/ucspi-tcp/install.html 소스에 있는 README 파일을 참고한다. - CentOS 에서는 gcc 버전 4 이상을 사용하기 때문에 소스를 그대로 설치면 - 에러가 나므로 헤더파일을 수정해야 된다. - 큐메일은 혼자서 작동하지 않기 때문에 다른 데몬과 연계해서 실행을 해야만 한다. - 큐메일의 실행은 xinetd와 tcpserver로 할 수 있으나 보안과 속도면에서 큐메일과 잘 맞는 - tcpserver로 구축을 하도록 한다. - ucspi-tcp는 UNIX Client-Ser.. 더보기
네임서버 세팅하기 ======================================================================== DNS-LAB3> 아래 도메인명에 해당하는 간단한 네임서버 세팅하기!! 리눅스 IP : 192.168.56.150 도메인명 : myserver.com 호스트명 : www.myserver.com -- 작업 순서 -- 1. 설정파일에 도메인 영역 추가 2. forward zone 파일 생성 ==> 도메인을 ip주소로 매칭 시켜준다. 3. 심볼릭 링크생성 4. 네임서버 설정 확인 5. 네임서버 재시작 6. 확인 -- 작업 순서 -- - 전체설정 - 호스트 방화벽에서 DNS 53번 룰을 설정 # DNS-WEB# iptables -I INPUT -p udp --dport 53 -j A.. 더보기
Call by Reference ===================================================================== -- swap2.c -- #include int main() { int i = 3; int j = 10; { int i = 5; int j = 20; } printf("i = %d, j = %d \n", i , j); return 0; } -- swap2.c -- -- 실행결과 -- # gcc -S -o swap2-att.s swap2.c -- 실행결과 -- -- 어셈블리코드 -- .LC0: .string"i = %d, j = %d \n" .globl main main: pushl%ebp movl%esp, %ebp subl$28, %esp movl$3, -16(%ebp) movl$.. 더보기
연습 2 ============================================================ LAB> APM 설치 static 방식 컴파일 !!! 실무에서는 가끔씩 한 대의 서버에서 테스트용으로 여러개의 !!! 아파치 웹서버를 설치해서 사용 경우도 존재한다. !!! 여기서는 한 대의 서버에 두 개의 웹서버를 설치하는걸로 한다. !!! 중요하는 것은 두 개의 웹서버가 떠지기 위해서는 서로간의 !!! 포트번호가 충돌이 없어야 한다는 조건이 선행되야 한다. -- 조건 -- 1. 한 대의 서버에 (DSO, Static) 둘 다 설치 - 기존의 DSO 로 운영되는 서버에 Static 방식을 설치한다. 2. 설치 디렉토리 - Apache(/usr/local/apache_static) - Php(/u.. 더보기
db 활용 ============================================================ 제로보드에서 최근 게시물을 표시하는 방법 1. 최근 게시물 목록 출력하기 최근 게시물을 출력하고자 하는 곳에 다음과 같이 입력한다. - DocumentRoot 디렉토리 : 웹페이지가 제공되는 시스템의 디렉토리 # cd /usr/local/apache/htdocs # vi index.html -- index.html -- : : : : -- index.html -- !!! 가입 폼 !!! -- input.php -- 이름 : 이메일 : 전화번호 : -- input.php -- -- inputok.php -- -- inputok.php -- -- table1.php -- 1 2 3 4 1 2 3 1 .. 더보기
어셈블리[if] -- var1.c -- #include int sum(int, int); // sum 함수 선언 int main() { int i = 3; int hap; hap = sum(i, 5); // sum 함수 호출 printf("hap = %d \n", hap); return 0; } int sum(int a, int b) // sum 함수 정의 { int res; res = a + b; return res; } -- var1.c -- -- 실행결과 -- # gcc -o var1-att.s -S var1.c # gcc -o var1-att var1-att.s # ./var1-att hap = 8 -- 실행결과 -- -- var1-att.s -- .LC0: .string"hap = %d \n" .globl ma.. 더보기
ebp alias gcc='gcc -mpreferred-stack-boundary=2' 디버깅하며 매개변수의 개수와 매개변수의 값, 환경변수들을 확인해본다. 먼저 기본적인 test.c를 -g 옵션으로 컴파일을 한 뒤 매개변수로 '-u 10 -d /home/bin Hoyoung' 을 주어 실행시켜보았다. 메모리의 내용을 볼 때 사용하는 x명령어를 사용하여 ebp의 내용을 보면 아래와 같다. 첫번 째 (0xbfffea88) : base pointer 저장( 이전 ebp를 저장) 이전 ebp가 없기 때문에 값이 없다. 두번 째 (0x0082fe9c) : return addressr값 저장 현재 0x0082fe9c 값이 들어가 있는 주소는 0xbffea2c 이므로 이 주소에다가 원하는 주소값을 넣어 리턴주소를 변경할 .. 더보기