관리 메뉴

드럼치는 프로그래머

[Linux] Linux 실무 명령 메뉴얼 본문

★─Programing/☆─Linux

[Linux] Linux 실무 명령 메뉴얼

드럼치는한동이 2007. 8. 6. 17:25
분할압축방법
압축하고자하는 디렉터리로 이동한다.
# tar cfz ? 압축할디렉터리 | split ?b 2000m - 압축파일.tar.gz
압축풀기
# cat 압축파일.tar.gz* | tar xfz -
메모리 부족을 위한 해결책(스왑추가)
그냥 스왑을 늘려주고 픈 경우에도 이렇게 늘려주면
좋겠져.
# dd if=/dev/zero of=tempswap bs=1k count=300000
# chmod 600 tempswap
# mke2fs tempswap
# mkswap tempswap
# swapon tempswap
이렇게 하고 free 를 해보시면 스왑이 추가된걸 볼수 있습니다.
ping 응답하지 않게 하기
다음 옵션으로 서버의 ping에 대한 반응을 on off할수 있습니다.
/etc/rc.d/rc.local에다 넣어 두면 좋겠죠..
# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
하면 반응을 하지 않고 다시
# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
하면 다시 반응 할 수 있다.
안전하게 시스템 셧다운 하기
shutdown [option] time [message]
ex ) shutdown -h now : 시스템을 바로 다운 시켜라.
     shutdown -r now : 시스템을 바로 재부팅 시켜라 .
     shutdown -r +10 : 시스템을 10분 뒤에 재부팅 시켜라.
     shutdown -c     : 예약된 shutdown 명령을 취소 한다.
긴급 사항시 콘솔에서 Ctrl + Alt + delete 키를 누름으로 해서 재부팅
을 시킬수있다
/etc/inittab 이 안에 ==>
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
이는 보안상 문제가 될수 있다. 그러므로 이를 방지하기 위해서 위 방법을
이용하여 시스템을 shutdown 시킬수 있는 권한을 갖는 사용자 리스트를
포함한 /etc/shutdown.allow 파일을 만든다.
시스템 과부하로 인해 쉘에 명령을 내릴수 없는 상항에서 안전하게
시스템을 재가동 시킬수 있는 방법으로 매직키를 사용할수가 있다.
ALT + SysRq (print screen) + S : Sync
ALT + SysRq (print screen) + E : Term signal
ALT + SysRq (print screen) + U : Umount all
ALT + SysRq (print screen) + B : Boot
위와 같이 차례대로 눌러주면 안전하게 재부팅 시킬수 있다.
물런 커널 컴파일시 "MagicSysRq Key" 부분을 y 로 컴파일을 해야 한다.
sudo 를 이용하여 루트 작업 하기
sample.sudoers화일처럼 써 주면 된다.
예>
rootALL=(ALL) ALL
kdhong  ALL = /usr/bin/cdrecord
아래와 같이 사용하면 된다.
[root@sunny /]# sudo cdrecord -v speed=2 blank=fast dev=0,0 test.raw
보안관련및 기본명령
suid가 걸린 파일의 경우 절대적으로 권한변경을 해주시기 바랍니다.
/usr/bin/finger(chmod 700 적용) <-- 서버 이용자 파악을 하지 못하게 함
/usr/bin/nslookup(chmod 700 적용)
/usr/bin/gcc(chmod 700 적용) <-- 당연히 막아줘야져.
/usr/bin/suidperl(chmod 700 적용) <--suid 걸린 파일
/usr/bin/whereis(chmod 700 적용)
/usr/bin/cc(chmod 700 적용) <--- 소스 컴파일은 루트이외에 못하도록 조치
/usr/bin/sperl5.00503(chmod 700 적용) <--- perl중에 suid걸린 파일임
/usr/bin/c++(chmod 700 적용)
/usr/bin/make(chmod 700 적용)
/usr/bin/pstree(chmod 700 적용)
/usr/bin/rlog(chmod 700 적용)
/usr/bin/rlogin(chmod 700 적용) <-- 필요없는 경우에는 삭제 하시길
/usr/bin/which(chmod 700 적용)
/usr/bin/who(chmod 700 적용)
/usr/bin/w(chmod 700 적용)
/bin/mail(chmod 700 적용) <-- 아웃룩익스프레스가 아닌 계정상에서
텔넷으로 메일을 확인하지 못하게 하십시요.
/bin/ps(chmod 700 적용)
/etc/hosts(chmod 700 적용)
/etc/hosts.deny(chmod 700 적용)
/etc/hosts.allow(chmod 700 적용)
2.anonymous ftp 막기
#vi proftpd.conf (/etc 에 위치)
중략
<Anonymous ~ftp> 에서
UserAlias anonymous ftp //이부분을 주석처리 해준다.
3.telnet 사용막기 <--가장 추천하는 방법입니다.
ip 거부
#vi hosts.deny (/etc 에 위치)
in.telnet:ALL
#hosts.allow (/etc에 위치)
ALL:(IP 추가) <--- 텔넷으로 들어올 아이피만 적는다.
저장후 다음과 같이
#/etc/rc.d/init.d/xinet restart
5.chkconfig 사용법(부팅시 수행되는 서비스) <--중요합니다.
#chkconfig --list (/sbin 밑에 위치)
#chkconfig --help (참고)
#chkconfig --level 3 sendmail off (사용방법예)
보통 부팅의 경우 레벨3으로 부팅이 됩니다.
그러므로 레벨3에서 필요하지 않은 데몬은 위와 같은 방법으로
모두 꺼두시기 바랍니다.
#chkconfig --list (하면 나오는것들)
 3번레벨을
기준으로, keytable,inet, network,random,kudzu,sendmail,syslog,
crond,proftpd 나머지는 off 시켜주는것이 바람직합니다.
6.find 관련 명령
#find /dev -type f // /dev/MAKEDEV만떠야함 (백도어 찾기)
#find / -ctime -1 //하루동안 만들어진 화일 (해킹당한듯 싶으면 확인 )
#find / -perm -4000 // setuid 걸린 파일을 찾는 명령어
7./etc/inetd.conf 화일 수정
 
네트워크의 서비스를 정의하고 있는 화일로서 , 정의되어 있는
서비스가 많이 있다. 보안사고를 피하기 위해서는 최대한
필요하지 않은 서비스는 차단하는게 바람직하다. 기본적으로 ,
telnet,ftp,pop3외의것은 주석처리 하는것이 좋다. 닫아놨는데,
이외의 것이 열려있다면 해킹의 가능성이 있다. 이때는 다시
주석처리를 하고
#ps -ef | grep inetd //프로세스 확인
#kill -HUP PID //리셋
#vi inetd.conf (/etc 에 위치)
telnet ftp pop3
나머지는 주석처리
wq (저장후 종료)
tip> #kill -9 PID //프로세스 죽이기
8.해킹이 확실한경우 대처법
해킹이 확실한상태에서 그냥 컴퓨터를 종료시키면, 재부팅이
안될수가 있다. 이것을 막기 위해,
#/etc/rc.d/rc.SYSinit 권한을 755를 준다. 최소한 부팅은 된다.
서버 & 보안 관련 문의
<보안관련및 기본명령>
1.chmod 700변경하기
첨부 명령어
/usr/bin/top (chmod 700 적용)
/usr/bin/find (chmod 700 적용)
/usr/bin/lynx (chmod 700 적용)
/usr/bin/wget(chmod 700 적용)
--> 이두 명령어는 일반적으로 해커들이 해킹툴을 가져올때 자주쓰는
명령어
shell-prompt>lynx --dump 가져올화일이 있는 url 경로
shell-prompt>wget 가져올화일이 있는 url 경로
/usr/bin/gcc(chmod 700 적용) <-- 당연히 막아줘야져.
/usr/bin/c++(chmod 700 적용)
/usr/bin/make(chmod 700 적용)
이 명령어를 사용할수 있는 그룹을 설정해 주면 준다.
(일반적으로 wheel이라는 그룹을 많이 사용함, 다른 그룹을 등록해서
사용해도 무관)
* example) find 명령어의 사용자를 제한 할 경우
shell-prompt>grep wheel /etc/group
wheel:x:10:root
/etc/group 화일에 wheel:x:10:root 이분에 wheel이라는 그룹에 user를
추가 한다.(khsheen이라는 user가 있을경우임)
wheel:x:10:root,khsheen
이러면 wheel이라는 그룹에 khsheen 이라는 user가 등록된다.
shell-prompt>ls -la /usr/bin/find
-rwxr-xr-x 1 root root 54544 Feb 3 2000 /usr/bin/find*
shell-prompt>chgrp wheel find
shell-prompt>chmod 755 find
shell-prompt>ls -la /usr/bin/find
-rwxr-x--- 1 root wheel 54544 Feb 3 2000 find*
이런식으로 설정하면 find 명령어는 root와 khsheen만 사용할수 있다.
이 명령어를 su 명령어에도 적용하는 것을 권장함, root로 전환할
유저 (su 명령어 사용자)를 제한 할수 있다.
9.기타 보안에 관련된 내용
a.php , mysql db 지원하는 경우
-일반적으로 php로 mysql에 db에 접속하는 경우 php에서
connect하는 스크립트를 사용하는 화일을 일반적으로 Web상에
공개된 소스에는 화일명이 대부분 connect.inc 를 사용하는데
이것을 웹브라우저에 불러오게 되면 바로 읽혀 져서 mysql db접속
아이디와 패스워드를 알수가 있게된다.
 
이럴경우는 웹서버의 설정화일(httpd.conf)에
 
AddType application/x-httpd-php .php .html .php3 .php3 .inc
~~~~~!!
AddType application/x-httpd-php-source .phps
 
추가하고 웹서버를 제구동한다.
그러면 .inc로 끝나는 화일도 php로 인식하므로 스크립트
노출을 막을수 있다.
 
또한가지 telnet ftp에 사용시 group을 같게 해주고 각 계정의
root Directory를 퍼미션을 705로 처리해 주면 다른 유저가
다른 사용자의 계정에 들어 갈수가 없다.
만약 755로 한다면 다른 유저에게도 읽을 권한이 생겨서 connect
스크립트를 읽을 수 있어 db접속 아이디/passwd를 얻을수 있다.
 
b.사용자들의 passwd
- 등록된 user의 passwd를 자주 갱신하게 만든다.
shell-prompt>vi /etc/login.defs
이중 아래의 스크립트를 일정기간 설정해서 사용자들의
passwd를 바꾸게 만든다.
PASS_MAX_DAYS 99999
~~~~~ 일정기간으로 잡아준다.
 
c.shell 없애기
- 메일계정으로만 사용하는 경우(shell이 필요없는 경우)의
유저가 많다. 특히 웹호스팅 사용자
이런 경우 shell을 주지 않으면 된다.
shell-prompt>vipw
khsheen:x:500:502::/home/gdm:/bin/false
~~~~~~~~~~
khsheen이라는 유저에게 shell을 부여하지 않는다.

 
Comments