1. ftp 보다 좋은 ncftp 설치
서버 작업을 많이하면, ftp를 많이 사용한다. 하지만 ftp 보다 사용하기 편한 ncftp를 알면 ftp 쓰는 것이 그렇게 불편하게 느껴질 수 가 없다. 난 처음부터 ncftp를 사용해 왔다. RH9에서는 기본설치가 안되어 따로 패키지를 받아서 설치하겠다. 물론 배포판 CD에 있지만, 넣고 마운트하고 어쿠 어쿠 귀찮은 것~~ 간단하게 받아서 설치 할 것이다.
wget http://ftp.superuser.co.kr/pub/redhat/9/RPMS/ncftp-3.1.5-4.i386.rpm
위와같은 명령을 입력하면 받아진다.^^
rpm -Uvh ncftp-3.1.5-4.i386.rpm
이렇게 하면 설치하고,
rm -rf ncftp-3.1.5-4.i386.rpm
이렇게 해서 원본 파일을 지워 버린다.^^ 이렇게 설치를 하면 끝이다. 아주 쉽다^^ 이제
ncftp 의 대표적인 기능 몇가지만 알아 보겠다.
[doly@doly ~]$ ncftp ftp.superuser.co.kr
NcFTP 3.0.3 (April 15, 2001) by Mike Gleason (ncftp@ncftp.com).
Copyright (c) 1992-2001 by Mike Gleason.
All rights reserved.
Connecting to ftp.superuser.co.kr...
ProFTPD 1.2.8 Server (ProFTPD Default Installation) [su21.nicekorea.co.kr]
Logging in...
Anonymous access granted, restrictions apply.
Logged in to ftp.superuser.co.kr.
ncftp / >
위와같이 간단하게 쳐 주면, 무명(anonymous) 로긴이 가능하다.
물론 -u 옵션을 주면 사용자로긴이 가능하다.
ncftp -u doly ftp.superuser.co.kr
그리구 파일이나, 디렉토리이름을 모두 칠 필요 없이 Linux 터미널 처럼 몇자 치고 Tab 키를 누르면, 자동완성이 된다. 이 기능이 아주 좋기 때문에 난 이 프로그램을 쓴다.
전송기능에 있어 다음과 같이 상황이 나온다.
ncftp /apache > get httpd-2.0.49.tar.gz
httpd-2.0.49.tar.gz: 5.65 MB 299.92 kB/s
이런 이유들 때문에 ncftp를 쓴다. ncget , ncput 등의 명령어도 제공된다. 그건 잘 쓰지 않지만 좋은 프로그램들이다.
2. MAN 페이지에서 한글이 깨어진다면.
** 참고 : 아래의 설정은 멘 페이지의 한글이 깨어지는 것을 보안하기위한 설정입니다. 아래 패키지를 설치한다고 해서 콘솔에서 한글이 안 깨지는 것은 아닙니다. 콘솔에서 한글이 깨어지지 않게 하려면, Unicon등 콘솔에서 한글을 지원하는 특별한 프로그램을 커널 컴파일 할 때 넣어야 합니다. 서버를 운영하시는 대부분의 사람들은 콘솔에서 한글 쓸일이 거의 없기 때문에 그 부분은 다루지 않겠습니다.
아마 RH9를 설치한 모든 사람들이 격을 것이다. 멘 페이지에 가끔 한글로 된 것을 볼 수 있는데, 100% 깨어질 것이다.
이렇게 알 수 없는 &&& 문자들로 이루어질 것이다.
이런 경우 다음 패키지를 깔면 문제가 없다.^^
[root@doly root]# wget http://ftp.superuser.co.kr/pub/redhat/9/less-378-8KR.i386.rpm
--21:33:50-- http://ftp.superuser.co.kr/pub/redhat/9/less-378-8KR.i386.rpm
=> `less-378-8KR.i386.rpm'
Resolving ftp.superuser.co.kr... 완료.
Connecting to ftp.superuser.co.kr[210.114.223.221]:80... connected.
HTTP 요청을 보냅니다, 서버로부터의 응답을 기다림...200 OK
길이: 100,767 [audio/x-pn-realaudio-plugin]
100%[=================================================================>] 100,767 289.43K/s ETA 00:00
21:33:50 (289.43 KB/s) - `less-378-8KR.i386.rpm'가 보존되었습니다 [100767/100767]
[root@doly root]# rpm -Uvh less-378-8KR.i386.rpm
준비 중... ########################################### [100%]
1:less ########################################### [100%]
[root@doly root]# rm -rf less-378-8KR.i386.rpm
이렇게 서치가 끝나고 실행해 보면 정상적인 결과를 볼 수 있다.
3. rpm으로 커널 업그래이드
2004년에 커널 버그가 엄청 많이 보고 되었다. 지금까지 나온 커널을 패치한 rpm 버전이 있다. 이것을 설치한다. 물론 조금 더 공부했다며, 최신 버전 커널을 컴파일 해서 설치하는 것도 좋지만, 시간이 너무 오래 걸리고, 알아야할 것도 많기 때문에 지금까지 나온 버그를 모두 고친 커널을 rpm 으로 설치한다.
wget http://ftp.superuser.co.kr/pub/redhat/9/update/kernel-smp-2.4.20-30.9.i686.rpm
wget http://ftp.superuser.co.kr/pub/redhat/9/update/kernel-2.4.20-30.9.i686.rpm
rpm -Uvh kernel-smp-2.4.20-30.9.i686.rpm
rpm -Uvh kernel-2.4.20-30.9.i686.rpm
rm -rf kernel-*.rpm
cpu 가 2개라면 smp 커널을 설치해야한다. 하지만 cpu가 하나라면, smp 는 설치하지 말아두 된다.^^
4. badblock 채크 및 마킹
설치할 때도 배드블락을 채크했을 것이다. 그렇지만 어디에 배드블럭이 있고 어떻게 되었는지에 대한 정보를 얻을 수 없다. 그래서 다시 배드블락을 채크할 것이다. 그리고 만약 발견된다면, 파일 시스템 수준에서 그 블락을 쓰지 못하게 마킹을 할 것이다.
[root@doly root]# badblocks -sv /dev/hda11
Checking for bad blocks in read-only mode
From block 0 to 2096451
Checking for bad blocks (read-only test): 2096451/ 2096451
2096449
2096450
done
Pass completed, 3 bad blocks found.
위와같이 3개의 배드블럭이 발견되었다면, 다음 명령어로 아쉬운데로 마킹을 한다. (fsck 명령의 -c 옵션)
[root@doly root]# fsck.ext3 -cvf /dev/hda11
e2fsck 1.32 (09-Nov-2002)
/dev/hda11 is mounted.
WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damage.
Do you really want to continue (y/n)? yes
/123: recovering journal
Checking for bad blocks (read-only test): done
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/123: ***** FILE SYSTEM WAS MODIFIED *****
/123: ***** REBOOT LINUX *****
78868 inodes used (30%)
98 non-contiguous inodes (0.1%)
# of inodes with ind/dind/tind blocks: 3503/14/0
325956 blocks used (62%)
0 bad blocks
0 large files
53903 regular files
3890 directories
2522 character device files
15884 block device files
1 fifo
4162 links
2658 symbolic links (2658 fast symbolic links)
1 socket
--------
83021 files
이렇게 작업을 하였다면, 어느정도 안심해두 된다고 생각한다^^;
5. tcp_wapper 설정으로 기본 보안 설정
물론 처음 설치시 iptabls(방화벽)을 구축했지만, tcpd를 사용하는 데몬들중 허용하는 ip에서만 접근 가능하게 설정 할 것이다.
echo "ALL:ALL" >> /etc/hosts.deny
이런 간단한 명령어로 모든 서비스를 막는다. 물론 막히는 서비스는 몇가지 안 된다^^ 다 열거하며 힘드니~~
그런다음 항상 허용할 데몬들과 허용할 ip를 등록한다.
echo " ipop3d : ALL
sendmail : ALL
ALL : 192.168.0." >> /etc/hosts.allow
위와 같이 입력하여, pop3 서버와 sendmail 은 모든 ip에 대해서 허용하고, 192.168.0.XXX에서 접근 하면 모든 서비스를 허용하도록 한다. 위와 같이 설정하는 것은 telnet 및 ssh에 가장 영향을 많이 받기 때문에 기본 보안설정으로 사용한다. 만약 유동 ip에서 접속한다면 이런 설정이 무의미 하다.^^; ip가 변해서 잘못하면 서버에 접속하지 못하는 불상사가 발생할 수도 있다.
6. ssh 접속시 root 접속 못하게 설정
ssh에서 root로 바로 접속해서 사용하면 너무 위험하다. 그래서 일반계정으로 접속한 다음 su - 명령어로 root 권한을 획득한 다음 작업하는 것이 좋다. 다음과 같이 간단하게 설정한다.
/etc/ssh/sshd_config 파일을 편집해서 다음과 같이 설정한다.
PermitRootLogin no
이렇게 하구 sshd를 재시작한다.
/etc/rc.d/init.d/sshd restart
7. su 명령어 특정 사용자만 실행 가능하게 설정
우선 root 권한으로 명령을 실행할 수 있는 명령어 sudo를 삭제한다.
[root@doly bin]# rm -rf /usr/bin/sudo
아래와같이 권한 설정을 바꾸고,
chmod 4750 /bin/su
chown root:wheel /bin/su
소유그룹을 wheel로 한다. 그런 다음
/etc/group 파일을 열어 wheel 그룹에 su 명령어를 쓸 사용자들을 등록한다.
(예 : wheel:x:10:root,doly)
8. 자동 시간 설정
자동으로 정확한 시간을 맞추는 것은 의외로 간단하다. 다음과 같이한다.
[root@doly bin]# crontab -e
05 00 * * * '/usr/bin/rdate -s time.bora.net && /sbin/clock -w'
위와 같은 내용을 복사해서 넣으면 된다. 위와같이 설정해 두면, 매일 매일 00시 05분에 time.bora.net에 접속하여 시간을 동기화한다.^^