컴퓨터이야기/Linux2010. 2. 18. 20:11

FTP 서버 보안, 꼭 설정하여 쾌적한 보안을 유지하세요!


FTP 서버 보안, 이것만은 꼭 챙깁시다.

인터넷에 연결하여 서비스를 하는 서버라면, 웹 서비스와 더불어 FTP 서비스를 반드시 사용하게 됩니다.

FTP 서버를 운영할 때, 설정 파일에서 세심하게 신경을 쓰지 않으면 심각한 상황이 발생할 수도 있습니다.

 

리눅스 계열에서 가장 많이 쓰는 FTP 데몬은 vsftp 입니다.

보통은 배포판을 설치하면 기본으로 자동 설치가 됩니다.

설정 파일은 /etc/vsftpd/vsftpd.conf 입니다.

루트로 로그인한 후, 이 파일을 vi 에디터 등으로 열고 아래의 사항들을 체크해 주시면 됩니다.

 

1. 익명 FTP 서비스 금지 설정

익명 FTP 서비스는 특별한 경우가 아니면 사용하지 않는 것이 좋습니다.

이 서비스를 금지하려면 아래와 같이 설정합니다.

 

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

 

2. 로그인 시의 FTP 데몬 정보 숨기기

FTP 서비스에 접속할 때, 기본값으로 운영하게 될 경우 아래처럼 서버에 설치된 FTP 데몬의 종류와 버전이 나타나게 됩니다.

 

220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:ftp):

 

취약점이 존재하는 버전의 FTP 데몬을 사용할 경우, 크래커의 공격 목표가 될 수 있습니다.

이 정보를 숨기려면 다음과 같이 설정합니다.

 

# You may fully customise the login banner string:
ftpd_banner=Welcome to my FTP service.

 

기본적으로 ftpd_banner 옵션은 주석 처리가 되어 있으므로, 주석을 해제하고 각자에 알맞는 배너 코멘트를 입력합니다.

설정을 변경한 후, ftp 데몬을 reload & restart 해 주어야 변경된 설정이 반영됩니다.

변경된 설정이 반영된 후의 FTP 접속 화면은 다음과 같이 표시됩니다.

 

220 Welcome to my FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:ftp):

 

3. 상위 디렉토리 접근 막기

일반적인 웹 호스팅의 경우, /home/사용자계정 의 형식으로 디렉토리가 할당됩니다.

FTP 서버에서 사용자가 자신의 홈 디렉토리보다 상위의 디렉토리로 접근할 수 있게 되면 보안상 매우 위험합니다.

보안 설정이 제대로 되어 있지 않을 경우 아래와 같이 표시됩니다.

 

Connected to ftp.
220 Welcome to my FTP service.
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:ftp): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ftp" --> 상위 디렉토리로 이동이 가능.

ftp> cd /     --> 시스템의 최상위 디렉토리인 / 디렉토리로 이동 및 열람이 가능
250 Directory successfully changed.
ftp> ls -al
227 Entering Passive Mode (127,0,0,1,141,3)
150 Here comes the directory listing.
drwxr-xr-x   33 0        0            4096 Sep 16 12:47 .
drwxr-xr-x   33 0        0            4096 Sep 16 12:47 ..
-rw-r--r--    1 0        0               0 Sep 02 09:02 .autofsck
drwx------   24 501      501          4096 Sep 02 09:02 MySQL
drwxr-xr-x    2 0        0            4096 Nov 25  2006 backup
drwxr-xr-x    2 0        0            4096 Dec 28  2004 bin
drwxr-xr-x    4 0        0            1024 Dec 28  2004 boot
drwxr-xr-x   10 0        0            4780 Sep 02 09:02 dev
drwxr-xr-x   69 0        0            4096 Nov 24 19:02 etc
drwxr-xr-x   11 0        0            4096 Sep 02 04:41 home
drwxr-xr-x    2 0        0            4096 Aug 12  2004 initrd
drwxr-xr-x   11 0        0            4096 Dec 28  2004 lib
drwx------    2 0        0           16384 Dec 28  2004 lost+found
drwxr-xr-x    2 0        0            4096 Nov 23  2006 media
drwxr-xr-x    2 0        0            4096 Oct 16  2004 misc
drwxr-xr-x    2 0        0            4096 Aug 12  2004 mnt
drwxr-xr-x    2 0        0            4096 Aug 12  2004 opt
dr-xr-xr-x  125 0        0               0 Sep 02 18:02 proc
drwxr-x---    5 0        0            4096 Nov 25 04:53 root
drwxr-xr-x    2 0        0           12288 Dec 28  2004 sbin
drwxr-xr-x    1 0        0               0 Sep 02 18:02 selinux
drwxr-xr-x    2 0        0            4096 Aug 12  2004 srv
drwxr-xr-x    9 0        0               0 Sep 02 18:02 sys
drwxrwxrwt    4 0        0          155648 Nov 25 04:38 tmp
drwxr-xr-x   14 0        0            4096 Dec 28  2004 usr
drwxr-xr-x   21 0        0            4096 Sep 02 09:14 var
226 Directory send OK.
ftp>

 

이런 식으로 일반유저가 시스템 디렉토리의 내용을 마음대로 접근할 수가 있게 되는데,

이를 막으려면 vsftpd.conf 파일을 열고 아래와 같이 설정합니다. 보통 /etc/vsftpd/ 에 위치합니다.

chroot_local_user=YES

 

이 chroot_local_user 항목은 데비안의 경우에는 기본적으로 YES로 설정이 되어 있지만

레드햇 계열의 배포판에서는 이 옵션이 아예 없으므로 타이핑을 해 넣어야 합니다.

설정을 수정한 후, FTP 에 접속하면 다음과 같이 표시됩니다.

 

230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"  --> 자신의 홈 디렉토리를 최상위 루트 디렉토리로 표시함
ftp> ls -al
227 Entering Passive Mode (127,0,0,1,218,119)
150 Here comes the directory listing.
drwx--x--x   11 500      500          4096 Sep 07 12:11 .
drwx--x--x   11 500      500          4096 Sep 07 12:11 ..
-rw-------    1 500      500          7556 Nov 25 02:48 .bash_history
-rw-r--r--    1 500      500            24 Dec 28  2004 .bash_logout
-rw-r--r--    1 500      500           212 Jan 28  2005 .bash_profile
-rw-r--r--    1 500      500           124 Dec 28  2004 .bashrc
-rw-r--r--    1 500      500           383 Dec 28  2004 .emacs
-rw-r--r--    1 500      500           120 Dec 28  2004 .gtkrc
-rw-------    1 500      500        428688 Feb 21  2006 .mysql_history
drwx------    2 500      500          4096 Jul 26 00:53 .ssh
-rw-------    1 500      500          4310 Jun 12 06:10 .viminfo
-rw-------    1 500      500          6080 Jul 06 09:59 public_html

226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> ls -al
227 Entering Passive Mode (127,0,0,1,106,70)
150 Here comes the directory listing.

drwx--x--x   11 500      500          4096 Sep 07 12:11 .
drwx--x--x   11 500      500          4096 Sep 07 12:11 ..
-rw-------    1 500      500          7556 Nov 25 02:48 .bash_history
-rw-r--r--    1 500      500            24 Dec 28  2004 .bash_logout
-rw-r--r--    1 500      500           212 Jan 28  2005 .bash_profile
-rw-r--r--    1 500      500           124 Dec 28  2004 .bashrc
-rw-r--r--    1 500      500           383 Dec 28  2004 .emacs
-rw-r--r--    1 500      500           120 Dec 28  2004 .gtkrc
-rw-------    1 500      500        428688 Feb 21  2006 .mysql_history
drwx------    2 500      500          4096 Jul 26 00:53 .ssh
-rw-------    1 500      500          4310 Jun 12 06:10 .viminfo
-rw-------    1 500      500          6080 Jul 06 09:59 public_html

 

이처럼, chroot_local_user 항목을 YES 로 설정해 놓으면

사용자가 자기 홈디렉토리보다 상위인 디렉토리 자체를 아예 볼 수가 없습니다.

 

보안은 거창한 것이 아닙니다.

사소해 보이는 것들만 제대로 막아도 상당 부분 보안을 유지할 수 있습니다


http://cafe.naver.com/linuxcare.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19888

Posted by iloje
컴퓨터이야기/Linux2009. 12. 9. 10:07

vi 편집기 사용하기


리눅스 서버를 호스팅하면서 서버를 운영하는데
서버관리측면에서 가장 많이 사용하는 명령어는 역시 vi가 아닐까 싶다

물론 아는 명령어도 몇개 없다.
cd 나 ll  정도..

하여튼 vi편집기를 자주 사용하긴하지만
이 역시 사용하는 명령어라곤 I, p, :wq 정도..
더배워야겠다는 생각에 검색해보니 꽤 좋은 사이트가 있다..

공부좀하고 좀더 편하고 좀더 손쉽게 vi를 가지고 놀수있게해야겠다

http://dalton.sunchon.ac.kr/UNIXhelp1.3/Pages/vi/index.html

Posted by iloje
컴퓨터이야기/Linux2009. 6. 12. 23:55

tgz 파일압축 및 압축해제


tgz 파일압축 및 압축해제


<압축,해제 관련 명령어>
tar =  - c : 파일 압축
        - x : 압축해제
        - v : 파일의 크기 표시
        - f  : 사용할 파일의 tar지정
        - z : tar에서 gzip으로 할때 붙임


tgz 압축 해제
tar -xvzf name.tgz

tgz 압축
tar cvzf 파일명.tar.gz <디렉토리> 또는 파일

tar.bz2 압축 해제
tar -jxvf name.tar.bz2

Posted by iloje
컴퓨터이야기/Linux2009. 5. 15. 02:48

우분투 9.04 설치..이젠 나도 리눅서!!ㅋ


집에 컴퓨터가 두대가 있다..
한대는 메인으로 사용하는 쿼드2코어 켄츠필드 Q6600 CPU의 컴퓨터이고
다른 한대는 2년전까지만해도 메인으로 활약하던 셀러론 2.4 컴퓨터...

항상 메인만 가지고 놀고
서브 컴퓨터는 친구들이나 교회동생들 놀러오면 접대용으로나 사용을 했는데
이참에 우분투 9.04를 설치해보았다.

원래계획은 회사 서버와 동일하게  CentOS 5.4를 설치해서 서버관리하는데 공부나해보자 하는 마음이였는데

막상 설치하고나니깐 하는것도 없고 재미도 없어서
윈도우를 설치하던중 우분투를 발견!!
바로 다운을 받고 설치를 해보았다..
데스크탑용리눅스라....
아직은 제대로 사용해보지않아서 잘모르겠지만
분명한건 서버용으로 시커먼 화면만 보아오던 ILOJE에겐 리눅스로서 너무 신기하다는것...
암튼.... 결론은... 재밌었으면 좋겠다..ㅋ

설치중...


설치완료...

Posted by iloje
컴퓨터이야기/Linux2009. 2. 12. 16:01

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 오류

Ubuntu dapper에서 mysql 5.0을 설치했는데 실행을 하면 이런 에러가 뜨는경우가 있었다.

# mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)

그런데 루트권한으로 실행하면 잘 되었다...
#sudo mysql -uroot

찾아본 결과
퍼미션문제인 걸로 판명...

해결방법은 3가지..

1.일반 유저에서 ls -al /var/run/mysqld/mysqld.sock 확인

2.퍼미션을 조정하는 것이 여의치가 않으면, /etc/my.cnf 에
   [mysqld]
   socket=/tmp/mysql.sock

   [client]
   socket=/tmp/mysql.sock
   을 넣고 서버와 클라이언트가 /tmp에 만들어지는 mysql.sock 파일을 사용하게 하는 방법으로 돌아갈 수 있다.


3.mysql이 설치된 폴더의 권한을 바꾼다.
   mysql이라는 유저를 생성해서..
   chown mysql /path/mysql




[출처] : http://kldp.org/node/64774

Posted by iloje
컴퓨터이야기/Mysql2008. 11. 14. 16:54

MYSQL 디비 덤프 및 복구 방법

덤프방법
mysqldump -u 데이터베이스아이디 -p 데이터베이스명 > 파일명.sql 
ex) mysqldump -u iloje -p test > db.sql

복구방법
->데이터베이스 초기화
->로드하기 전에 로드할 데이터베이스에는 덤프 대상에 속한 테이블이 없어야만 한다
mysql> drop database DB이름
mysql> create database DB이름

mysql -u 데이터베이스아이디 -p 데이터베이스명 < 파일명.sql  
 ex) mysql -u iloje -p test < C:\db.sql
Posted by iloje
컴퓨터이야기/Linux2008. 9. 11. 11:52

리눅스 각 디렉토리 설명

bin : 필수적인 리눅스 실행파일이 있는 곳(ls, rm 등)

boot : 부팅 관련 파일, 커널이 있는 곳

dev : 설치된 하드웨어에 관한 정보들이 파일 형태로 저장되어 있는 곳

etc : 많은 중요한 파일들이 있는 곳(패스워드 파일, 쉐도우 파일, 대부분 리눅스 설정파일 등)

home : 일반 사용자들의 디렉토리가 있는 곳

lib : 라이브러리 파일이 있는 곳

mnt : mount 명령을 사용하여 마운트 시킨 시디롬, 플로피디스켓 등이 들어가는 곳

proc : 프로세스들이 파일형태로 저장되는 곳

root : 루트의 홈 디렉토리(일반사용자는 /home 아래 존재)

sbin : 기본명령은 제외한 시스템 관리용 실행 파일들이 있는 곳

tmp : 임시로 파일을 저장하는 디렉토리, 권한에 상관없이 파일을 생성할 수 있는 디렉토리

usr : 다양한 응용프로그램들이 설치되어 있는 곳

var : 시스템 운영 중에 생성되는 각종 임시파일이 있는 곳(외부 접속에 대한 로그 파일이 저장 되는 곳)

Posted by iloje
컴퓨터이야기/Linux2008. 9. 11. 10:44

리눅스 history 지우기 명령, 삭제 Clear 방법

리눅스의 history 명령어는
이전에 입력했던 명령어들을 상하 화살표키만 누르면 다시 볼수있고 또 사용할 수 있는 기능입니다.

입력했던 명령어들은 자동으로 파일(.bash_history)로 저장되기때문에 리부팅 후에도 history 의 내용은 남아 있습니다.




그런데 가끔 삭제해야 할 경우가 있습니다. 이때는 "-c" 라는 옵션을 붙여서

history -c

이렇게 실행하면 히스토리 목록이 지워집니다.

그러나 바로 ".bash_history" 의 내용이 삭제되지는 않고 로그아웃후 다시 로그인해야 파일의 내용도 완전히 지워집니다.




".bash_history" 라는 파일은 자신의 홈 디렉토리에 있습니다.




그리고

profile 파일에서 HISTSIZE= ??? 를 조정하면 저장되는 라인의 수를 설정할수있습니다.

Linux는 기본 1000 Line 입니다.
Posted by iloje
컴퓨터이야기/Linux2008. 8. 12. 12:12

MX레코드값 변경하기

현재 네임서버를 직접 운용중이면서
메일 호스팅 서비스를 받기위해서
즉 외부의 메일서버를 연결시키기위해선 해당 도메인의 zone파일을 수정해야한다

도메인의 Zone file 에서 아래와 같이 변경을 한다.
@ IN SOA 서버정보
(
2004012601 ;Serial <-- 시리얼 번호를 현재 숫자보다 크게 변경
10800 ;Refresh
3600 ;Retry
3600000 ;Expire
36000 ;Minimum
)
;
IN MX 10 mail.도메인. <-- 이 부분이 MX 레코드가 지정되는 부분.
                            "mail.도메인." 으로 입력(도메인 뒤에 . 을 잊지말것!!)

; host information
localhost IN A 127.0.0.1
www IN A xxx.xxx.xxx.xxx
mail IN A xxx.xxx.xxx.xxx메일서버IP 를 입력




zone파일 수정후
네임서버 한번 리로드 한번 해주시고
확인해보자

#nslookup
>set q=mx
>도메인명

으로 확인

*초보를 위한 팁!!
nslookup 명령수행후 빠져나가기 위해서는 명령어 exit !!!!

Posted by iloje