관리하고 있는 시스템의 메모리상태를 체크해보려면 free라는 명령어를 이용하시면 됩니다.

free라는 명령어로 다음과 같은 내용들의 확인이 가능합니다.

메모리의 전체용량
유휴메모리의 량
사용중인 메모리의 량
스왑(swap)메모리의 량
커널에서 사용되는 공유메모리(shared memory)와 버퍼(buffer)의 량
캐시된 메모리의 량

free명령어에는 다음과 같은 몇 개의 옵션이 있습니다.

-b : byte 단위로 보여줍니다.
-k : kilo byte단위로 보여줍니다.(default)
-m : mega byte단위로 보여줍니다.
-t : 맨 마지막에 total용량을 보여줍니다.
-o : buffer/cache 라인을 보여주지 않습니다.
-s : 지정한 초단위로 refresh하여 메모리상태를 표시해 줍니다.
-V : free명령어의 버전을 표시해줍니다.
2005/07/01 14:50 2005/07/01 14:50
/etc/securetty



이파일은 root가 로그인가능한 터미널(tty)장치들을 나열해 둔 것이다.

tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8


이 장치명은 가상터미널을 의미하는 것으로 root로 이런 가상터미널을 통한 접속이 허용된다는 것을 뜻한다.

그리고,

ttyp0
ttyp1
ttyp2
ttyp3

등은 pseudo 터미널을 통해서 root의 접속이 가능함을 뜻하므로 원격지에서 root로 접속을 막으려면 다음설정과 같이 이 pseudo터미널을 모두 주석처리하도록 한다.

#ttyp0
#ttyp1
#ttyp2
#ttyp3



그리고, 이 /etc/securetty파일에 다음과 같은 것을 볼 수도 있을 것이다.

ttyS0
ttyS1
ttyS2
ttyS3

등은 시리얼라인 또는 모뎀을 통한 root의 접속을 허용한다는 것을 뜻한다.

root의 원격지 접속을 막으려면 이 부분도 주석처리하는 것이 현명할 것이다.



누군가가 어떤형식으로든 접속을 하게되면 /bin/login이라는 프로세스가 실행이되어 접속절차를 밟게되는데, root의 로그인일 경우에는 이 /bin/login이라는 프로세스가 /etc/securetty파일을 참조하여 /etc/securetty파일에 나열되어 있는 터미널로만 접속을 허용하게된다.



또한 shadow 패스워드시스템(명령어 pwconv)을 설정하여 사용하고 있다면 /etc/securetty파일의 설정이 무의미해진다.

따라서 shadow패스워드시스템을 설정하여 사용하고 있는 경우엔 (사실 거의 대부분 shadow패스워드를 설정하고 있음) /etc/login.defs에서 root로의 접속가능한 터미널설정을 하도록 한다.



또한가지 알아야 할 것은

원격지접속등을 안전하게 하기위해 ssh등의 프로그램을 통해서 접속을 할 경우에는 이런설정이 무의미해진다는 것을 알아야한다.

즉, 위에서 말씀드린대로 root로 접속을 막았지만, ssh를 통해서 접속을 할 때에는 이런 설정자체가 무의미해지므로 root로 접속이 허용되게 된다. 참고로 ssh의 설정파일은 /etc/ssh디렉토리에 들어있다.
2005/07/01 14:49 2005/07/01 14:49
pam 을 이용해 보세염..
/etc/pam.d/login 파일에 다음 내용을 추가하세염..
auth required /lib/security/pam_listfile.so item=user
sense=allow file=/etc/loginusers onerr=succeed
밑줄 친건 한줄로 적으셔야 합니당..

그리구 loginusers 파일을 생성합니다..

touch /etc/loginusers
그리구 권한 설정..
chmod 600 /etc/loginusers

이제 다 됐는데요..
loginusers 파일에 적힌 계정만 텔넷 접속할수 있습니당..

그리구..
sense=allow 부분 있져? 진하게 표시된 부분..
그걸 senso=deny 로 고치면은
loginusers 에 적힌 계정만 텔넷 접속이 안되게 됩니당..
2005/07/01 14:48 2005/07/01 14:48

RPM 옵션 알고 쓰기

FAQ 2005/07/01 14:48
바이너리 패키지를 설치할 때 rpm을 사용해 설치하면, 컴파일하는 시간도 줄일 수 있고 라이브러리 등의 의존성도 알아서 체크해 줍니다. 또한 패키지 제거도 간단한 명령어도 쉽게 할 수 있으며, 프로그래밍에 대해 무지하더라도 안심하고 이용할수 있답니다.
--------------------------------------------------------------
*패키지의 설치 여부를 조사하기

# rpm -qp 패키지명
--------------------------------------------------------------
*패키지 설치의 기초


# rpm -Uvh 파일명 ----업그레이드 및 설치
# rpm -ivh 파일명 ----설치
# rpm -e 파일명 --제거

rpm패키지의 이름 구조

패키지 이름 -버전 - 릴리즈 . 아키텍처 . rpm


1.설치의기본옵션:-i
2.제거의기본옵션:-e
3.질의의기본옵션:-q
4.검증의기본옵션:-v
5.패키지제작의기본옵션:-b


*패키지 찾아보기

rpm -q[옵션]패키지목록

-a 모든 패키지를 보여준다
-c 설정파일만 보여준다.
-d 문서파일만 보여준다.
-i 기본정보를 보여준다.
-l 패키지에 포함된 파일을 보여준다.


..................................................................................

과연 내가 가지고 있는 rpm의 버전이 얼마나 될까?
새로운 프로그램이 나와서 업데이트 하려는데, 내가 설치한 RPM 버전을 다 외우고 있을 수는 없잖아요.

이럴 때, 현재 설치되어 있는 RPM의 버전을 확인 할 수 있는 명령어를 가르쳐 드리죠.

rpm -q 패키지명

만약, 현재 깔려있는 김프(gimp)의 버전을 알고싶다면,

rpm -q gimp 라고 치시면, 김프의 버전이 나올것입니다.

예를 들어, gimp-1.0.2 라고 나오면, 1.0.2 버전이 설치되어 있다는 뜻이겠죠?
2005/07/01 14:48 2005/07/01 14:48
#httpd.conf

Redirect <이전URL> <새로운 URL>

Redirct 지시자는 지금은 서버에 존재하지 않는 문서(URL)에 대해서 다른 URL로 포워딩한다. 이 지시자는 클라이언트 입장에서 매우 유용하다.
예전에 자신의 홈페이지가 현재의 서버에 존재 했지만 지금은 다른 곳으로옮겨졌다면
클라이언트에게 알려줄 필요가 있다. 물론 URL 포워딩은 사용자에 입장에서 HTML메타 태그로 가능하지만 서버 입장에서 Redirect 지시자의 사용이 가능하다..
예제 1 : Redirect /kernel http://kernel.linux.ac.kr
=> 결과 http://www.localhsot/kernel - > http://kernel.linux.ac.kr
예제 2 : Redirect /linux/kernel.html http://kernel.linux.ac.kr
=> 결과 http://www.localhost/linux/kernel.html -> http://kernel.linux.ac.kr
예제 3 : Redirect /~study http://www.linux.ac.kr/study.html
=> 결과 http://www.locslhost/~study ->http://www.linux.ac.kr/study.html
2005/07/01 14:47 2005/07/01 14:47
DOS Attack 아시죠?
Denial Of Service라고 하며 서비스거부 공격이라고 하죠.
이중 SYN Attack이라고 TCP 상에서 SYN_RECV 형태의 상태로
계속 접속하여 서버를 느리게 하는 것이 있습니다.
간단하게 아래의 명령어를 Command Line에서 적용하고,
시스템이 부팅될 때 마다 적용되도록 /etc/rc.d/rc.local에
적용하면 됩니다.

echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "2" > /proc/sys/net/ipv4/tcp_retries1
echo "8192" > /proc/sys/net/ipv4/tcp_max_syn_backlog

혹시 알 수 없는 이유로 웹서비스가 느려졌다는 생각이 들면
우선 netstat -an | grep SYN ( | wc ) 로 SYN_RECV 상태의
TCP Socket을 확인하세요.
특정 IP에서 계속 연결을 시도하고 있다면 위와 같은 명령어로
확실히 불필요한 많은 접속 시도를 줄일 수 있습니다.
2005/07/01 14:39 2005/07/01 14:39

useradd 명령 옵션!!

FAQ 2005/07/01 14:38
useradd -D를 사용하면 됩니당..

#useradd -D 를 타이핑 하시고 엔터 치시면..
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

이런식으로 나올겁니다..
이값들은 사용자를 추가할때 지정되는 디폴트 값입니다..
EXPIRE=YYYY-MM-DD
계정이 만료일을 설정하는 겁니다.. 날짜 지정형식은 다를수 있으므로 man useradd -D 해보시면 나와 있을 겁니다..

INACTIVE 이부분에 -1값이 있으면 사용자 계정이 만료된후에도 사용이 가능하므로 이부분 값을 0 이나 (+숫자)값으로 바꿔주시면 됩니다.
0을 했을 경우에는 계정만료일 그날 부터 사용을 못하구여..
(+숫자)값을 했을 경우 숫자값만큼 며칠 더 사용할수 있게 됩니다.
예를 들어 계정만료일이 2000-12-25 이고 INACTIVE=+3 이면..
이계정은 3일 더 사용할수 있게 되는 겁니다..

설정을 바꾸는 방법은
#useradd -D -f 0 =>INACTIVE 설정
#useradd -D -e 2000-12-25 =>EXPIRE 설정.
요렇게 설정을 바꾸시구여..
#useradd userid
새로운 사용자를 추가 하면 이 사용자는 위에서 바꾼 값이 적용 됩니다. 한번 설정을 바꾼이후 새로 생성하는 계정에 대해서 모두 적용되니까 이점 유의 하시구여..
/etc/login.defs 파일에 설정 값들이 나와있습니다..
이파일도 참조하세염...
2005/07/01 14:38 2005/07/01 14:38

quota설정!!!!!!!!!!

FAQ 2005/07/01 14:37
quota 설정방법

root로 로깅을 하고 먼저 quota 작동을 시키기 위해서는 /etc/fstab 에 명시된 화일 시스템이 마운트를 해 놓구
항상 quota를 켜 놓는다..
/etc/fstab 화일을 수정한다.

일반적으로 quota가 작동되기 전의 파티션은 다음과 같다:

/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 1

화일시스템에 quota를 추가하려면, "defaults"라는 단어 뒤, 즉 4번째 항에
"usrquota"를 적는다.

/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults,usrquota 1 1

quota 기록화일인 "quota.user"를 만든다.

quota 기록화일인 quota.user의 소유자는 root여야만 한다.
즉, root이외에는 누구도 읽거나 기록할 수 없도록 해야한다.

quota 를 설치하려는 파티션의 최상위 디렉토리(base)에
quota.user화일을 다음과 같이 만든다.

# touch /partition/quota.user
# chmod 600 /partition/quota.user
# quotacheck -avug
# quotaon -avug

=>옵션설명
-a All file systems in /etc/fstab marked read-write with quotas will have their quotas turned on. Thisis normally used at boot time to enable quotas.
-v Display a message for each file system where quotas are turned on.
-u Manupulate user quotas. This is the default.
-g Manupulate group quotas.

#reboot

자, 이제 수정한 정보로 동작하게끔 시스템을 재가동(reboot)시킨다.

후에 다른 파티션에도 quota를 설치하려면 4, 5, 6번 과정을 되풀이하면 된다.

재부팅시 보시면 /etc/fstab에서 /home 파티션을 체크하면서
쿼터를 설정안해서 에러가 나오는 경우가 있다..그 부분은 쿼터를 설정을 하지 않았기
떄문에 에러 표시가 난다.그럼 이제 quota설정을 해보자..

#edquota -u 사용자명
Quotas for user open1:
/dev/hda9: blocks in use:0, limits(soft = 90000 , hard = 100000)
inodes in use:0, limits(soft=0, hard=0)

==>실행을 하면 vi편집기 형식으로 quota 지정부분이 나온다...

"blocks in use"는 사용자가 사용중인 한 파티션의 총 블럭(kilobyte단위)을
의미한다.(ex) 1mb:1024kilobyte
"inodes in use"는 사용자가 사용중인 전체 화일의 개수이다.

"blocks in use"블럭에 대한 쿼터를 거는것인데.. 90 메가 이후부터는
에러메시지를 출력하고 100메가가 되면 더이상 쓸수 없게 됩니다.
밑의 inodes는 파일의 갯수를 제한하는것인데 거의 쓰이지는 않고
있습니다.
quota의 용량제한을 안하고 싶은면 soft,hard 를 0를 해준다..
저장하고 빠져나옴...설정 완료!!

#quota -v 사용자명 =======> 사용자명에 대한 quota정보를 보여준다.

#repquota -avug ===> 총 사용자의 quota정보를 보여준다..


# edquota -p aaa -u bbb ccc ===>aaa 유저 말고 bbb,ccc 에 대한 유저에 대해서도 같은 용량으로
제한하실려면 이런식으로..
2005/07/01 14:37 2005/07/01 14:37
vi로 문서를 작성 도중에 정전이나 그 밖의 이유로 연결이 끊어져 버렸을 경우는?

ㅠ.ㅠ 울고만 계시지 마세요.
방법이 있습니다.

vi는 변경 사항을 버퍼에 저장하고 있으니깐요.
다음과 같이 입력하면 올바르게 종료하지 않았다는 메시지가 뜨고, 엔터를 치면 갑작스레 연결이 끊어지기 전까지의 작업하던 내용들이 그대로 보여진답니다.

vi -r 파일명

그럼 오늘도 즐거운 하루 되시길.. ^^
2005/07/01 14:36 2005/07/01 14:36

ssh 강좌

FAQ 2005/07/01 14:34
ssh(Secure Shell)

SSH(Secure Shell)은 네트워크의 다른 컴퓨터에 로그인 할 수 있으며 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로그램이다
강력한 인증방법과 안전하지 못한 네트워크에서 안전하게 통신을 할 수 있는 기능을 제공해 준다.
SSH는 두 호스트간의 통신 암호화와 사용자 인증을 위하여 공개 열쇠 암호 기법을 사용한다. 즉, telnet,rlogin,rcp,ftp,pop등과 비교해 보면 이들은 스니퍼(NetWorek 상에서 패킷을 Capturer 하기 위한 해킹툴)를 당하면 입력 문자 그대로 패킷이 쉽게 노출된다..
이에 반해 ssh는 이 모든 문자들을 암호화 하여 비록 노출이 된다 하더라도 이해할 수 없는 암호화된 문자로 나타나게 되는 것입니다. 또 IP스푸핑, DNS 스푸핑등으로부터 SSH를 사용하면 보호가 가능하다.
세션 하이젝킹(Session Hijacking)과 DNS 스푸핑을 방지해 주면서 원격 호스트에 로그인 하거나 호스트끼리 데이터를 복사하기 위해 사용될 수 있다.
일반 login프로그램들이 packet을 전송할 때 암호화 되지 않은 Test(PlanText)으로 전달 하는과 달리 ssh는 packet자체를 암호화를 하여 보내기 때문에 원격 관리의 보안이 매우 안정적이다.
SSH는 RSA공개키/개인키 방식을 이용하여 암호화 하게 되는데 Secure ID, S/Key, Kerberos and TIS 역시 지원한다.
또한 SSH 는 X11서버와 연결도 지원 하므로 접속한 서버의 X프로그램 또한 실행 가능하게 해줍니다. 그리고 파일 전송등 현재는 sftp까지 지원을 하고 있으며, SOCKS 도 지원한다.
현재는 ssh1과 ssh2가 나와 있는데 ssh1은 공개로 자유롭게 사용가능하지만 ssh2는 비상업적인 경우에만 자유롭게 사용할 수 있는 라이선스 제한을 가하고 있다.
▶ ssh2 license
여기서는 유닉스에서의 라이센스 적용에 대해서 다루고자 한다.
www.ssh.com/products/ssh/ssh_license_agreement.html
위 링크에 라이센스에 대한 구체적인 사항이 나온다.
요약하면 리눅스,FreeBSD,NetBSD,OpenBSD에서 ssh2를 사용하고자 한다면 상용이든 그렇지 않든 관계가 없다. 윈도용은 30일 평가 버전이 존재하며 사용하기 위해서는 라이센스에 따른 비용을 지불하여야 한다. 이글의 라이센스 다른 웹페이지나,ftp등에 이 글을 그대로 기재할수 있다. 그러나 종이나 여타 인쇄매체를 사용할 시에는 이 내용들을 인용만 해야 한다. 즉 참고만 가능하다.
▶ ssh의동작
다음과같은 2쌍의 RSA key를사용하여동작한다.
◎ 클라이언트의개인키와공개키( authentication 에사용 )
user try to authenticate -> sever checks matching public keys ->
send challenge to the user -> user sign the challenge using the private key ->
return signed challenge to the server
◎ host 의개인키와공개키 ( login또는 connect된컴퓨터(host)가실제 connect
하려고했던컴퓨터인지를확인하는데사용)
host's identification changed -> issues warning
-> disable password authentication
1) ssh 설치

OpenSSH는 설치시 OpenSSL(www.openssl.org)이나 SSLeay를 필요로 한다.
여기서는 OpenSSL을 사용하겠다. SSL(Secure Socket Layer)은 암호화관련라이브러리라고 생각하면 되겠다. 나중에(?) https://으로 시작하는 보안걸린 웹페이지를 만들때도 사용된다.
▶ OpenSSL설치
OpenSSH를 설치전 먼저 OpenSSL을 설치해야 한다.
전형적인 유닉스 설치방법인 configure, make, make install만 해주면 끝이다.
ssh 소스파일 http://www.ssh.com에서 받을수 있습니다.
## cd ssh-3.0.1.tar.gz
# ./configure (configuration)
# make
# make install (루트계정으로 이 명령을 실행해야 한다)

ssh2(ssh-3.0.1.tar.gz)를설치하게되면다음과같은디렉토리에
프로그램이생성된다.
▶ /usr/local/sbin
sshd2 : server demon 프로그램

▶ /usr/local/bin

ssh2 : ssh의클라이언트프로그램
ssh-keygen2 : 키생성유틸리티
ssh-agent2 : authentication 에이전트
ssh-add2 : authentication 에이전트에 identities 추가한다
sftp : secure ftp
sftp-server : sftp server(sshd2에의해실행된다)
scp2 : secure rcp

▶ /etc/ssh2
hostkey : host의비밀키 개인 키이며 보안에 조심해야 하는 파일

hostkey.pub : host의공개키

ssh2_config : ssh 클라이언트의 설정파일로 실제로 ssh1과 호환할 필요
가 없으면 신경쓰지 않아도 된다.

sshd2 _config : ssh demon의 설정 파일입니다.

▶ ~/.ssh2
id_dsa_1024_a : 1024 비트비밀키
id-dsa-1024_a.pub : 공개키
authorization : server측에생성 (클라이언트의공개키파일에대한정보)
identification : 클라이언트측에생성 ( 클라이언트의개인키파일에대한정보)
random_seed

manager:/etc/ssh2 % ls
./ hostkey.pub ssh_dummy_shell.out
../ random_seed sshd2_9999.pid
hostkey ssh2_config sshd2_config

▶/home/SHELL/.ssh2/hostkeys


key_22_210.100.93.42.pub (클라이언트(IP address 210.100.254.13) 측의호스트 공개키즉 user 측컴퓨터의 /etc/ssh2/host.pub의값, 클라이언트가처음 server 에 login할때 server측에전달된다. ) 각 file들을 설명하자면 hostkey는 말그대로 host를 나타내는 privite key이며 보안에 아주 신경을 써야 하는 파일이다. hostkey.pub는 말그대로 host를 나타내는 공개 key입니다. ssh2_config는 ssh client의 설정 file이며, 실제로 ssh1과의 호환을 고려하지 않는다면 손을 델 필요가 없습니다. sshd2_config는 ssh daemon의 설정 파일이면, 한가지의 설정만 빼고는 ssh1과의 호환을 고려하지 않느다면 특별히 ssh2_config역시 손을 볼 것은 없다고 생각된다







2) ssh 서버 설정하기


manager:/etc/ssh2 % vi sshd2_config

## SSH CONFIGURATION FILE FORMAT VERSION 1.1
## REGEX-SYNTAX egrep
## end of metaconfig
## (leave above lines intact!)
## sshd2_config
## SSH 3.0 Server Configuration File
##
## 공통설정
# VerboseMode no
# QuietMode yes
# ForcePTTYAllocation no
# SyslogFacility AUTH
# SyslogFacility LOCAL7

## SSH1 compatibility (ssh1 호환성)

# Ssh1Compatibility
# Sshd1Path
==> 위의 두line은 ssh1과의 호환 부분이다. 여기서는
생략한다. SSH1 로의 접속이 요구 된다면 openssh 를 사용하는
것을 권장한다. openssh 는 동시에 ssh1, ssh2 를 지원한다
# This is given as argument to sshd1 with "-f" if sshd2 is invoked
# with "-f"
# Sshd1ConfigFile /etc/sshd_config_alternate

## Chrooted environment

# ChRootUsers ftp,guest
# ChRootGroups guest
sftp 를 이용하여 작업을 할 경우 지정된 유저는 자신의 홈계정
이상으로 올라가지 못한다. Chroot환경을 사용하는 방법은 뒤에
서 따로 다루도록 하겠다.
## subsystem definitions

# Subsystem's don't have defaults, so this is needed here (uncommented).
subsystem-sftp sftp-server
# Network 설정

# Port is not commented out, as it is needed by the example startup
# scripts. Well, the default won't likely change.
Port 22
=> ssh가 사용할 port를 지정해 준다. 변경 필요성은 별로 없다.
# ListenAddress 0.0.0.0
=> sshd가 귀를 기울일 주소를 정해준다. 0.0.0.0은 모든 곳으로
부터 접속을 받아들이겠다는 의미이다. 하지만 패키징을 할때
어떻게 한것인지는 모르겠지만 tcp-wrapper의 영향을 받아서
hosts.deny에서 막혀 있으면 접속이 안되니 hosts.allow와
hosts.deny에서 sshd2 항목으로 제어를 할수가 있다.

# RequireReverseMapping no
=> 접속하는 곳의 도메인이 Revers Mapping이 되는지를 확인하여 접속을
허가할지 안할지를 지정한다. 실제로 internet상에 호스트들중
revers mapping이 안되는 host가 상당히 많으며 또한 여러분이 사용하는
host중에도 revers mapping 이 안되는 host이 대다수이니 no로
설정을 하는 것이 낳을듯 하다. 자신의 host들이 revers mapping이 되는
것이 확실하다면 보안상 yes로 하는 것이 좋을수도 있다.
단 revers mapping이 안되면 접속이 안된다는 것을 명심하자

# MaxBroadcastsPerSecond 0
# MaxBroadcastsPerSecond 1
# NoDelay yes
# KeepAlive yes
# MaxConnections 50
# MaxConnections 0
=> 최대 몇개의 접속을 허락할지를 지정합니다. 0은 제한을 하지 않는다는 것
을 의미합니다.
# 0 == number of connections not limited
## Crypto
# Ciphers AnyCipher
# Following includes "none" 'cipher':
# Ciphers AnyStd
## Ciphers AnyStdCipher
# Ciphers 3des
=> 세션을 암호화 할 때 사용할 방법을 명시해 줍니다
(idea,des,3des,blowfish,arcfour 또는 없음)
# Following includes "none" 'mac':
# MACs AnyMAC
#
# MACs AnyStd
# MACs AnyStdMAC
# RekeyIntervalSeconds 3600

## User(사용자 설정)

# PrintMotd yes
==> login 을 한 후에 /etc/motd file 을 출력 할 것인지의 여무를 지정한다
# CheckMail yes
==> login 을 한 후에 SHELL 상에서 메일 도착 여부 체크 설정을 지정한다.

# UserConfigDirectory "%D/.ssh2"
==> user들의 정보가 들어 있는 directory를 지정한다.

# UserConfigDirectory "/etc/ssh2/auth/%U"
# UserKnownHosts yes
# LoginGraceTime 600
# PermitEmptyPasswords no
# StrictModes yes
# IdleTimeOut 1h

## User public key authentication

# HostKeyFile hostkey
# PublicHostKeyFile hostkey.pub
# RandomSeedFile random_seed
# IdentityFile identification
# AuthorizationFile authorizaj\tion
# AllowAgentForwarding yes

## Tunneling

# AllowX11Forwarding yes
# AllowTcpForwarding yes
# AllowTcpForwardingForUsers sjl, cowboyneal@slashdot\.org
#
# DenyTcpForwardingForUsers 2[[:isdigit:]]*4,peelo
# AllowTcpForwardingForGroups priviliged_tcp_forwarders
# DenyTcpForwardingForGroups coming_from_outside


## Authentication
## Hostbased and PAM are not enabled by default.

# BannerMessageFile /etc/ssh2/ssh_banner_message
# BannerMessageFile /etc/issue.net
# PasswordGuesses 3
==> 인증에 실패했을때 몇번까지 재시도할수 있는지를 지정한다.

# AllowedAuthentications hostbased,publickey,password
# AllowedAuthentications publickey,pam-1@ssh.com
# AllowedAuthentications publickey,password
==> 인증 순서를 지정한다.

# RequiredAuthentications publickey,password
==> 공개키를 이용하여 인증을 하려면 위설정의 주석을 풀어준다.

# HostbasedAuthForceClientHostnameDNSMatch no
# SshPAMClientPath ssh-pam-client
## Host restrictions

# AllowHosts localhost, foobar.com, friendly.org

#
## Next one matches with, for example, taulu.foobar.com, tuoli.com, but
## not tuoli1.com. Note that you have to input string "\." when you want it
## to match only a literal dot. You also have to escape "," when you
## want to use it in the pattern, because otherwise it is considered a list
## separator.
## AllowHosts => Ssh 서비스에 접근가능한호스트 명시 (예 : AllowHosts
shell.ourcompany.net) 호스트는 IP를 스거나 호스트명을 쓸 수 있으며 와일드카드가 지원되고 공백문자로 호스트를 구분합니다.
## AllowHosts t..l.\..*
## The following matches any numerical IP-address (yes, it is cumbersome)
##
## AllowHosts ([[:digit:]]{1\,3}\.){3}[[:digit:]]{1\,3}
# Same thing is achieved with using the special prefix "\i" in a
## pattern. This means that the pattern is only used to match
## IP-addresses.
##
## Using the above example:
##
## AllowHosts \i.*
##
## You can probably see the difference between the two.
##
# DenyHosts evil\.org, aol\.com
DenyHosts : 명시된 호스트는 ssh서비스에 접근할 수 없도록 하는 기능(Deny Hosts
shell.ourcompany.net).호스트 IP를 쓰거나 호스트 명을 쓸 수 있으며 와일드 카드가
지원되고 공백 문자로 호스트를 구분합니다.

# AllowSHosts trusted\.host\.org
AllowSHosts : .shosts나 .rhosts에 있는 호스트들 중에서 shd서비스를 접근할 수 있는 호스트를 명시. 호스트는 IP 를 스거나 호스트명을 쓸 수 있으며 와일드카드가 지원되고 공백 문자로 호스트를 구분합니다.

# DenySHosts not\.quite\.trusted\.org
# IgnoreRhosts no
# IgnoreRootRHosts no
## 위의 설정이 되어 있지 않으면 기본값으로 IgnorRhosts 값을 가진다.
## 유저 제한

# AllowUsers sj.*,s[[:isdigit:]]*,s(jl|amza)
# DenyUsers skuuppa,warezdude,31373
# DenyUsers don@untrusted\.org
# AllowGroups staff,users
AllowGroups : ssh 로그인을 해당 그룹으로 제한한다. 각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.

# DenyGroups guest
DenyGroups : AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.

# PermitRootLogin nopwd
# PermitRootLogin yes
==> root로의 login 허락 여부를 지정한다.


3) 사용자 개인 설정

------------------------------
1. 비밀번호에 의한 인증/접속
------------------------------

manager /export/home/opsign 8 % ssh remote.host 또는
manager /export/home/opsign 8 % ssh remote.host -l username

타겟서버에 비밀번호를 입력하고 접속한다.
접속했던 호스트 정보는 ~/.ssh/known_hosts 에 남는다.

** 비밀번호에 의한 인증 접속만 이용한다면 아래부분의 RSA 키값을 만들 필요가 없다





------------------------------------
2. 암호문구(passphrase)에 의한 접속
------------------------------------

암호문구에 의한 접속은 비밀번호 대신에 암호문구를 사용하며, 암호없이 로그인할 수도
있다.
manager /export/home/opsign 8 % ssh-keygen

로컬서버의 공개키를 만든다.
RSA키를 만들면서 암호문구를 입력하면 ~/.ssh 폴더에 1024비트의 개인키(identity)와 공개키(identity.pub)가 만들어 진다. 암호문구는 ssh 접속할 때 비밀번호 대신 사용한다.


4) 하고자 하는 작업예 )

local 컴퓨터에서 whoami 컴퓨터의 young이란 유저가 시스템의 패스워드를 사용하지 않고
local young user의 공개키 (Public key) 를 사용하여 접근한다.
local 에서 공개키와 개인키를 생성한다.



[young@local .ssh2]$ ssh-keygen2
Generating 1024-bit dsa key pair
10 Oo.oOo..oOo.
Key generated.
1024-bit dsa, young@local, Sun
Jan 28 2001 22:28:13 +0900
Passphrase :
Again :
Private key saved to
/home/young/.ssh2/id_dsa_1024_a
Public key saved to
/home/young/.ssh2/id_dsa_1024_a.pub
[young@local .ssh2]$

Passphrase: ->이곳에 패스워드를 입력한다.
Again : -> 다시 입력확인..

생성된 파일들..
[young@local .ssh2]$ ls

hostkeys/ id_dsa_1024_a id_dsa_1024_a.pub random_seed
[young@local .ssh2]$
.pub는 공개키이고 id_dsa_1024_a 는 개인키(private key)입니다.

local의 identification 파일을 생성할 차례다.

[young@local .ssh2]$ echo "IdKey id_dsa_1024_a" > identification
[young@local .ssh2]$

id_dsa_1024_a.pub 파일을 whoami에서 /home/young/.ssh2/에 Local.pub로 복사한다.
이때 scp를 이용한다. whoami에서 local에 있는 id_dsa_1024.a를
/home/young/.ssh2/Local.pub로 복사하는 과정

▶ scp(secure copy client) 파일 복사
scp는 투명한 ssh인증과 암호화를 통하여 호스트간에 파일을 복사 또는 이
동 하는 기능을 제공합니다. #man scp를 실행하면 아주 자세히 알 수 있지
만 여기서는 간단한 사용법만 언급하도록 하겠습니다.
=> user@host1 : filename user2@host2:filename
다음은 scp의 명령행 옵션을 요약한 것입니다.
- A ; 파일에 대한 파일 통계 출력 기능 해제
- a : 파일에 대한 파일 통계 출력 기능 사용
- cipher : 이번 전송에서 사용할 암호 방법 명시 ( blowfis, idea, 3des)
- i : 신원 파일 변경
- o(ssh옵션) : 파일을 전송하기 전에 ssh에게 옵션을 전달
- P : 원격 호스트로 접속할 포트 명시
- q : 세션에 대한 통게 출력 기능 해제
- Q : 세션에 대한 통계 출력 기능 사용
- r : 디렉토리를 재귀적으로 복사
- v : 디버그 모드로 수행

[young@whoami young]$ scp
211.187.74.28:/home/young/.ssh2/id_dsa_1024_a.pub ./.ssh2/Local.pub
young@211.187.74.28's password:
Transfering
211.187.74.28:/home/young/.ssh2/id_dsa_1024_a.pub
-> ./.ssh2/Local.pub (1k)

|.............................................................................|

735 bytes transferred in 0.09
seconds [7.18 kB/sec].
[young@whoami young]$
authorization 파일을 ~/.ssh2 안데 생성한다.(whoami)

[young@whoami .ssh2]$ echo "key Local.pub" > authorization
[young@whoami .ssh2]$

테스팅
[young@local .ssh2]$ ssh
whoami.sarang.net
Passphrase for key
"/home/young/.ssh2/id_dsa_1024_a" with comment
"1024-bit dsa, young@local, Sun Jan 28 2001 22:28:13
+0900":
Last login: Sun Jan 28 2001
23:13:00 +0900
No mail.
[young@whoami young]$

먼저 공개키의 Passphrase를 물어본다. 이때 아까 위에서 입력한 Passphrase를 입력하면
로그인할수 있다. 이때 공캐키가 맞지 않으면 시스템의 패스워드를 물어본다.
예 )
[young@local .ssh2]$ ssh
whoami.sarang.net
Passphrase for key
"/home/young/.ssh2/id_dsa_1024_a" with comment
"1024-bit dsa, young@local, Sun Jan 28 2001 22:28:13
+0900":
young@whoami.sarang.net's
password:

5) SSH client 사용
일단 가장 기본적이 사용법은 아래와 같다. 일단 보기 쉽게 하기 위하여 remote를 oops라고 하고 local(이때까지 설정을 한 host)를 bbuwoo라고 하겠다.
[bbuwoo@oops oops]$ ssh bbuwoo
Passphrase for key "/home/member/oops/.ssh2/id_dsa_1024_a" with
comment "1024-bit dsa, oops@hera.digitalmax.net,
Mon Sep 20 1999 15:24:57 +0900": PASSWORD PHRASE
Last login: Tue Sep 21 1999 15:38:53 +0900
[bbuwoo@bbuwoo bbuwoo]$

일단 위와 같이 ssh <접속할 hostname>로 접속을 하게 되면 현재 user인 bbuwoo로 login을 하는 것을 알수가 있다. 앞에서와 같이 authorization file에 publickey가 등록이 되어 있는 user라면 위와 같이 passphrase 를 물어 오게 되며 등록이 안되어 있는 경우 bbuwoo account의 password를 물어오게 된다.

[bbuwoo@oops oops]$ ssh 192.168.1.200
Accepting host 192.168.1.200 key without checking.
bbuwoo@192.168.1.200's password: Account Password
Last login: Tue Sep 21 1999 15:38:53 +0900
[bbuwoo@bbuwoo bbuwoo]$

즉 위에서 보면 Accepting host 192.168.1.200 key without checking 이라는 문구에서와 같이 passphrase 를 check하지 않고선 접속을 받아들이겠다는 의미를 뜻한다. 그럼 remote와 local의 username이 다를 경우에는 아래의 option을 사용하여 login을 하면 된다.
[형식 : ssh -l 사용자명 호스명 ]

[oops@oops oops]$ ssh -l bbuwoo oops
Accepting host 192.168.1.200 key without checking.
bbuwoo@192.168.1.200's password: Account Password
Last login: Tue Sep 21 1999 15:38:53 +0900
[bbuwoo@bbuwoo bbuwoo]$

위의 예제는 oops라는 host의 oops라는 user로 host bbuwoo의 bbuwoo라는 user로 ssh login을 하기 위한 예이다. 즉 위처럼 두 host간의 user가 다르다면 -l option을 사용하여 login을 할수가 있는 것이다.
만약 접속이 안되고 에러가 발생할때는 아래의 option을 이용할수도 있다.
[oops@oops oops]$ ssh -v bbuwoo
debug: hostname is 'bbuwoo'.
debug: Unable to open /home/bbuwoo/.ssh2/ssh2_config
debug: connecting to bbuwoo...
debug: entering event loop
debug: ssh_client_wrap: creating transport protocol
debug: ssh_client_wrap: creating userauth protocol
debug: Ssh2Transport/trcommon.c:592/ssh_tr_input_version:
Remote version: SSH-2.0-2.0.13 (non-commercial)
debug: Host key found from the database.
debug: Ssh2Common/sshcommon.c:155/ssh_common_special:
special packet received from connection protocol: 3
debug: Ssh2Common/sshcommon.c:155/ssh_common_special:
special packet received from connection protocol: 4
debug: Ssh2AuthPubKeyClient/authc-pubkey.c:797/
ssh_client_auth_pubkey_agent_list_complete:
adding keyfile "/home/member/oops/.ssh2/id_dsa_1024_a"
to candidates
bbuwoo@bbuwoo's password: Account Password
debug: Ssh2Common/sshcommon.c:155/ssh_common_special:
special packet received from connection protocol: 6
debug: Ssh2/ssh2.c:304/client_authenticated:
client_authenticated
debug: Ssh2Common/sshcommon.c:466/ssh_common_new_channel:
num_channels now 1
debug: DISPLAY not set; X11 forwarding disabled.

Last login: Tue Sep 21 1999 15:44:36 +0900
[bbuwoo@bbuwoo bbuwoo]$

위의 예제는 authorization file이 없기 때문에 passphrase를 checking 하지 않고 account password를 물어 보게 되는 경위를 나타낸다.
또 원격 호스트에 접속을 하지 않고서 원격 호스트의 파일을 가져오는 법을 보겠다.
[bbuwoo@oops oops]$ scp bbuwoo.net:/home/member/oops/a.txt a.txt
Passphrase for key "/home/member/oops/.ssh2/id_dsa_1024_a" with
comment "1024-bit dsa, oops@oops.org
Mon Sep 20 1999 15:24:57 +0900": PASSWORD PHRASE
Transfering bbuwoo.net:/home/member/oops/a.txt -> a.txt (2k)
|...........................................................|
2004 bytes transferred in 0.22 seconds [105.26 kB/sec].
[bbuwoo@bbuwoo bbuwoo]$

윈도우에서 SSH를 이용해 접속하고 싶다면 Tera Term Pro + TTSSH프로그램이나,
SecureCRT, SSH Secure Shell Client를 쓰면 된다..
SSH Secure Shell Client 은 http://www.ssh.com/ 에 접속하여 프로그램을 다운 받을수가 있다. 이곳에서 evaluation version( 30일 제한 ) 과 non - commercial version 이 있는데 evaluation version을 다운 받은 사람은 등록을 하고 licence를 얻어 프로그램이 설치 된 곳에 복사하여 쓰면 되고, 처음 사용자는 등록을하고 non-commercial version을 다운 받아 설치하면 된다..
2005/07/01 14:34 2005/07/01 14:34
일단 Dos공격이 icmp를 이용하기 때문에 ping 에 대한 응답을 거부시켜 놓으면 됩니다.
vi편집기를 이용해서 rc.local 파일을 열어서
#vi /etc/rc.d/rc.local

아래의 한줄만 추가 시켜주면 됩니다..
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 로 해줄 경우에는 ping에 응답을 하게 됩니다
2005/07/01 14:33 2005/07/01 14:33
unable to lock password file 과 같은 에러가 발생하는것은
파일에 lock이 걸려 있는 경우 입니다.
lsattr /etc/passwd를 실행할경우

# lsattr /etc/passwd
----i-------- /etc/passwd

중간에 "i"가 나타나면 lock이 걸린것입니다. 평소에 이상이 없다가
갑자기 문제가 발생한다면 해킹을 의심하셔야 합니다.

lock을 해제하시려면

chattr -i /etc/passwd

위 명령을 실행하시면 됩니다.
참고로 아래 명령도 실행해 보도록 합니다.

lsattr /etc/shadow
lsattr /etc/group
2005/07/01 14:33 2005/07/01 14:33

FTP 접속자 알아보기

FAQ 2005/07/01 14:31
FTP 접속자 알아보기

보통 root(시스템 관리자)가 접속 되어 있는 사람이 누군지 궁금할때 사용하는데요~
ftpcount 를 하게 되면 현재 ftp를 쓰는 사람들이 쭉 나오구요~

ftpwho 를 해도 비슷한 결과를 얻을 수 있습니다^^
2005/07/01 14:31 2005/07/01 14:31

proftpd.conf 정리

FAQ 2005/07/01 14:31
ServerName "Proftpd FTP Server For Korean"

# ServerType은 Server를 standalone mode로 할것인지 inet mode로 할것
# 인지를 정한다. default로 inetd mode로 한다. standalone mode로 할경우
# 아래 MaxInstances 지시자의 주석을 해제 한다.
# inetd mode로 작동을 할 경우에는 /etc/inetd.conf중에서
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
# 행을 아래와 같이
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd
# 수정을 해 주고 Inet demon을 재 실행 해 줘야 한다.
ServerType standalone
#ServerType inetd
DefaultServer on
ServerAdmin root@localhost

UseReverseDNS off
IdentLookups off

# Server에 접속했을 경우 보내주는 Defualt 메세지를 설정한다. Off로 지정
# 하였을 경우 Porftpd Server Ready ServerName 이 출력된다.

ServerIdent On "Ftp ServerReady .. "

# User login을 했을시에 user들이 자신의 홈 상위 디렉토리들을 마음대로
# 돌아다니지 못하게 chroot()를 설정한다. group별로 설정을 하게 되며
# "!"는 제외하라는 의미를 가지게 된다.
DefaultRoot ~ !groupname

# ServerType이 standalone이면 이 항목의 주석을 풀어 줘야 한다.
# inetd로 작동을 시킬시에는 /etc/services에서 port를 지정한다.
Port 21

# root login을 허락할지의 여부를 지정한다. PAM modules를 사용한다면
# 먼저 /etc/proftpd/conf/ftpusers에서 root를 삭제해야 한다.
RootLogin off

# Global section은 proftpd의 전체적인 설정에 모두 적용시킨다.

# group과 world writable로 부터 새로운 dir과 file들을 생성하는 것을
# 막기위하여 기본적으로 umask는 022로 설정을 한다.
Umask 022

# ftpusers file을 이용하여 PAM인증을 하기를 원하면 이 지시자의
# 값을 on으로 한다. default 값은 off 이다.
AuthPAMAuthoritative on

# service를 시작하고 마칠 시간을 24시간 표기법으로 지정을 한다
# UpTime 10
# DownTime 23

# 1.2.1 이하 버젼에서의 버그를 위한 설정
DenyFilter *.*/

# 9시간 이전으로 나오는 문제 수정.
TimesGMT off


# 회선의 Bandwidth를 특정 속도로 제한을 한다. 단위는 bps이다.
#RateReadBPS 256
#RateReadFreeBytes 5120
#RateReadHardBPS on


# 접속 대기 시간을 설정한다. user 가 접속후 아무 작동도 안할때 일정 시간후에
# 접속이 종료되게 한다
TimeoutIdle 600
TimeoutNoTransfer 600
TimeoutLogin 0

# DeferWelcome 는 client가 인증을 하기 전에 servername을 display하는
# 것을 방지한다.
DeferWelcome off

# 'welcome.msg는 login시에 보여지고, 'message'는 각 하위 디렉토리에 접속
# 했을때 보여지게 된다.
DisplayLogin /etc/proftpd/conf/welcome.msg
DisplayFirstChdir .message

# DoS 공격을 막기 위해, 자식 process의 maximun number를 30으로 설정한다.
# 만약 30이상의 접속을 허락할 필요가 있다면 간단하게 이 치수를 증가시키도록
# 한다. 이것은 오직 standalone mode에서만 가능하다. inetd mode에서는
# service 당 maximun number를 제한 하는 것을 허락하는 inetd server에서
# 설정을 해야 한다.(xintd 역시 마찬가지 이다)
MaxInstances 30

User nobody
Group nobody

# 일반적으로 file들을 overwrite를 가능하게 한다.

AllowOverwrite on


# ls 명령어의 -a option으로 hidden file을 볼수 있게 한다.
# LsDefaultOptions "-a"


User ftp
Group ftp

# Anonymous user가 ftp로 접근하여 shell의 권한을 얻는 것을
# 방지한다.
RequireValidShell off

# Anonymous 접근을 할때 특정 password를 지정할수 있다.
# 단 위의 User 지시자의 name이 passwd file에 등록이 되어져
# 있어야 한다. 이 지시자가 on일 경우 이메일 주소로 login을
# 할수 없다.
# AnonRequirePassword on
# ShowSymlinks off

# User name "ftp"로 anonymous login을 할수 있도록 한다
UserAlias anonymous ftp


AllowAll


DisplayLogin welcome.msg
DisplayFirstChdir .message

# 최대 접속 인원수를 지정한다.
MaxClients 10

# 하나의 계정ID로 동시에 접근할수 있는 호스트 수를 지정한다.
# 아래의 기본 설정으로는 하나의 계정 하나 호스트에서만 접근만 허용한다.
# 하나의 계정에 하나의 접근만을 허락하려면 위의 MaxClientsPerHost의
# 값과 MaxHostsPerUser의 값이 둘다 1이면 된다.
MaxHostsPerUser 1 "Sorry, one hosts allow per one user"

# 소유권이 root인 file이나 directory들을 보여주지 않는다
#HideUser root

# 그룹권한이 root인 file이나 directory들을 보여주지 않는다
#HideGroup root

# upload/download 비율을 지원한다.
# /usr/doc/proftpd-1.2$VERSION/mod_ratio.c를 참조하라
#
# Ratios on
# HostRatio foobar.net 100 10 5 100000

# 서버를 시간대로 운영하는 것을 지정한다.
# 아래의 예는 오후 3시 부터 오후 6시까지만
# 서버의 접속을 가능하게 한다.
#
# UpTime 15
# DownTime 18


DenyAll


# Upload directory, allow upload and mkdir, deny download.
# Upload directory 설정이다. upload와 mkdir은 허락하며,
# download는 거절한다
#
#
#
# DenyALL
#

#
# AllowALL
#

#


# 사용자가 접근하기를 원하지 않는 private directory
#
#
# DenyAll
#

#


2005/07/01 14:31 2005/07/01 14:31
아래와 같은 명령으로 하시면 현재 열려있는 포트가
정리되서 나옵니다.

# netstat -an | grep LISTEN

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:505 0.0.0.0:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 1405 /tmp/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 1420 /var/run/rcd/rcd
2005/07/01 14:29 2005/07/01 14:29
유닉스 또는 리눅스 서버에서 네트워크의 상태를 확인하고자 할 때 netstat -rn이란 명령어를 많이 사용합니다.
다음의 예에서 보시면

# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
210.116.123.192 0.0.0.0 255.255.255.192 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 210.116.123.254 0.0.0.0 UG 0 0 0 eth0

위와 같은 결과가 나옵니다.
netstat -rn 에서 옵션 r 은 커널 라우팅테이블을 보여 달라는 것이고
n 옵션은 심볼릭 호스트나 네트웍이름 대신 odtted quad IP번호를 나게 합니다.

여기서 Flags 목록 부분의 다음을 의미합니다.

U : 사용되는 인터페이스가 up상태를 나타낸다.
G : 이 루트는 게이트웨이를 사용한다.
H : 단지 싱글 호스트만이, 그 루트를 통해 도달가능하다. 예를 들어 이는 loopback 엔트리 127.0.0.1의 경우라 하겠다.
D : ICMP redirect 메세지에 의해 생성된 테이블 엔트리에 부여된다
M : ICMP redirect 메시지에의해 수정된 테이블 엔트리에 설정된다
2005/07/01 14:29 2005/07/01 14:29
1. 현재 디렉터리 아래의 모든것 보기
# find . -print

2. 특정 접미사를 가진 파일 찾기
# find . -name "*.html" -print (html로 끝나는 파일을 찾음)

3. 특정일 동안 수정된 파일 찾기
# find . -mtime -5 -name "*.html" -print ( 지난5일 동안 수정된 html로 끝나는 파일을 찾는다 )

# find . -mtime 5 -name "*.html" -print ( 정확히 5일전 그날짜에 수정된 html로 끝나는 파일을 찾는다 )

# find . -mtime +30 -name "*.html" -print ( 30일 동안 수정되지 않은채 그데로 있는 html로 끝나는 파일을 찾는다 )

mtime 옵션 뒤의 + , - 을 잘 사용 한다면 유용하게 사용하실 수 있습니다.

4. 홈 디렉터리 목록 보기

# find . -type d -print ( 홈 디렉터리 밑의 디렉터리만 보여줌 )
# find . -type f -print ( 홈 디렉터리 밑의 파일만 보여줌 )
# find . -type l -print ( 홈 디렉터리 밑의 링크 파일이나 디렉터리 보여줌 )
2005/07/01 14:28 2005/07/01 14:28
/etc/default/login 이라는 화일에서
CONSOLE 로 시작 되는 라인 앞에 #을 붙이시면 됩니다.
하지만, 보안적인 이유로 특별한 경우가 아니라면 권장하지
않습니다.
2005/07/01 14:28 2005/07/01 14:28
who -r 명령어
who -r 명령어로 System의 Run Level을 확인 할수 있습니다.

[root@op root]# who -r
run-level 3 Oct 1 13:52 last=S

run-level 3 : 지금 시스템의 Run Level 상태를 보여 줍니다.

Oct 1 13:52 : Run Level이 바뀐 시간을 보여 줍니다.

last=S : 마지막으로 부팅 하기전 Run Level을 보여 줍니다.
2005/07/01 14:27 2005/07/01 14:27
준비물 리눅스pc, 랜카드 2개 (리눅스에2개)

여기서는 컴을 여러대 연결하여 사용하는 상황과 단 2대만을사용하는 2가지 경우를 설명하고자 한다.

1. 여래대를 연결해야 할 경우

1) 리눅스가 깔린 컴에 2개의 랜카드를 달고 환경설정을 한다.
예) netconf 에서 작업
eth0 => IP : 210.100.203.64 (리눅스에할당된 IP)
MASK : 255.255.255.128
G,W : 210.100.203.1

eth1 => IP : 10.10.10.1 (사용하고자하는 가상 IP)
MASK : 255.255.255.0
G,W : 10.10.10.0
(**) eth0 의 MASK 와 GateWay 는 실제 쓰이고 있는 곳의 내용이고
eth1 의 MASK 와 GateWay 는 가상으로 쓰일 곳의 내용이네요


2) #] cd /etc/rc.d/
#] vi rc.local
=> rc.local 파일 맨 끝에 다음과 같이 넣어준다.
ipchains -P forword DENY
ipchains -A forword -s 10.10.0.0/24 -j MASQ

3) 윈98이 깔린 컴에서 작업
제어판 -> 네트워크환경 -> tcp/ip 등록정보
IP : 10.10.10.2
MASK: 255.255.255.0
G,W : 10.10.10.1 (*-중요-* :리눅스에서 랜카드 eth1의 IP 주소가
윈98컴에서는 게이트웨이가 됨)

이상으로 설정끝.
여러대의 컴일경우는 윈98컴 TCP/IP 에서 IP만 10.10.10.3, ...4, ...5
이런식으로 IP만 할당시켜주면 됩니다.

2. 리눅스와 윈98컴 단 2대 일 경우
모든것은 여러대설정하는 것과 똑같고 꼭 필요한것은 크로스케이블로
두대의 컴을 연결해야 한다 것임다.(주의 사항)

넘 간단히 마스커래이딩을 끝냈습니다. 쉽죠 ^^
2005/07/01 14:27 2005/07/01 14:27