컴퓨터이야기/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. 10. 27. 17:53

우분투 9.10 공식공개!!!!!!


내 삶의 최고의 리눅스 데스크탑 우분투가 새로운 모습으로 나온다는 뉴스 기사!!!
아 대박대박...
엄허나...
10월 29일...
이틀남았어...

100페이퍼컷이라는 프로젝트도 생겼다고 하고..
소프트웨어 센터도 나오고...

http://www.bloter.net/wp-content/bloter_html/2009/10/27/18236.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. 3. 19. 12:21

Mysql 4.1이상버전에서 4.0 으로 다운그래이드시 데이터 이동하는 방법

백업받을 서버에서 백업
./mysqldump -u{UserID} -p{PASSWORD} {DbName} {TableName} --default-character-set=euckr > {DumpFileName}

;Dump시에 캐릭터셋이 utf인가 모시깽인가로 되서 한글이 깨져서 나오더군요. 그래서 캐릭터셋을 지정을 해줘서 dump를 받습니다.


데이터 넣을 서버에서

#wget http://DomainName/{DumpFileName}
: 파일 받기


#vi {DumpFileName}
:vi editor를 열어서 아래의 CharterSet 부분 삭제
"DEFAULT CHARSET=euckr "


#mysql -u{UserID} -p{PASSWORD} {DbName} < {DumpFileName}

Posted by iloje
컴퓨터이야기/Linux2009. 2. 26. 12:09

magic_quotes_gpc의 이해

php.ini파일에 magic_quotes_gpc라는 설정이 있다.

요놈이 무엇인가 하니.

gpc 즉 get, post, cookie 를 사용하여 넘어온 밸류들에 대해서 quotes(', ", \, 널문자 등) 가 있을때 알아서 그러니까 마법처럼 알아서 \ 를 붙여준다. --> just like magic~!^^

magic_quotes_gpc의 설정을 on으로 하면 또한가지의 이득을 볼수있는것이
sql injection에 대해서 안전하게된다.

사용자의 데이터 입력값에 쿼리를 조작하기 위한 ' 등이 있을경우 이를 \ 처리 해주므로 안전하게 된다.

get_magic_quotes_gpc()

magic_quotes_gpc의 설정값을 반환한다.
 
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
컴퓨터이야기/Linux2009. 1. 21. 17:50

최근 서버 접속자 점검하기

사용자 삽입 이미지
리눅스 서버를 돌리는 우리 회사...
좋은서버 돌리는것도 아니고
그냥 회사 홈페이지와 기타 작은 홈페이지 몇개 돌리는 서버인데
언제부터인가 트래픽이 왕창 늘었다...
이상해서 알아봤더니 중국땟놈들의 소행...

리눅스를 잘 모르는 터라 막막했지만 지인들의 도움을 받아
불법웹셀이 설치된곳을 알았고
다행히 테스트용으로 돌리던 계정이여서 그냥 삭제해버림...ㅋㅋ

소잃고 외양간 고친다는말이 있기는 하지만
지금부터라도 공부를 해야했기에
서버에 접속하는 접속자를 알아보는 게 있는지 알아봤더니
있다!!!

 /var/log/secure


이걸 열어봤더니
땟놈들이 접근하려고하는 이이피도 나오더이다..
그 아이피가 맞는지는 모르겠지만
iptables 로 아이피를 막았더니 접근을 안한다...

아무래도 그쪽도 나처럼 초보였나보다...ㅋ
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