반응형

아파치에 리스폰스 헤더에서 서버 정보를 노출하는 경우, 서버정보를 숨기기 위해서 httpd.conf 파일을 수정해야 합니다.

( 리눅스에서 서버의 헤더 정보를 확인하기 위해서는 'curl -I http://localhost'로 확인 가능합니다. )

( ex) Server: Apache/2.4.27 (Unix) )


httpd.conf 파일에서 ServerTokens 를 검색합니다. 

( vi로 읽는경우 /ServerTokens 로 검색 가능 )


만약 검색이 되지않는다면, httpd.conf 파일에 아래의 내용을 추가합니다. ( 위치 상관 X )


ServerTokens Prod

ServerSignature Off 


이미 해당 내용이 있어도 위와 같이 수정을 하면 됩니다.


ServerTokens 는 리스폰스 헤더에서 보여주는 서버 정보의 레벨을 지정하는 것 입니다.

( Prod는 최소의 서버 정보를 보여주게 됩니다. ex) Server: Apache )

ServerSignature 는 404 발생시 서버정보를 보여주는 것을 On/Off 하는 것 입니다.


수정하여 저장 후 httpd를 재실행하면 적용 가능합니다.

반응형
반응형

아파치에서 디렉토리 리스팅을 막기 위해서는 httpd.conf 파일을 수정하면됩니다.


아파치의 설치 경로 아래에서 httpd.conf 파일을 열고 아래의 부분을 찾습니다.

( vi로 파일을 보는경우 /Options 로 검색하면 바로 찾을 수 있습니다. )


<Directory "/local/apache2/htdocs">

Options Indexes FollowSymLinks
</Directory>

Options Indexes FollowSymLinks 부분에서 Indexes만 삭제하여 저장을 합니다.
저장 후 httpd를 재실행해주면, 아파치의 디렉토리 리스팅을 제한합니다.

( Directory안에 다양한 내용들이 있지만 여기서는 확인 할 필요가 없어서 생략합니다. )


반응형
반응형

리눅스에서 압축 파일을 풀기 위해서는 unzip 을 통해서 압축을 풀수있습니다.


unzip이 설치되어 있지 않은 경우 


# apt-get install unzip 


명령어를 통해서 설치가 가능합니다.


압축을 해제 하는 방법은 해당 war파일이 있는 경로에서 아래의 명령어를 실행합니다. 


# unzip test.war


위의 명령어를 실행하면 해당 war파일이 있는 경로에 압축이 풀어지는데,


다른 경로에 압축을 풀고 싶다면,


# unzip test.war -d /var/www/html


위와 같은 명령어를 실행하면, /var/www/html이란 폴더 아래에 압축이 해제가 됩니다.


반응형
반응형

리눅스에서 주기적으로 자동 실행해주는 크론탭이라는 것 있습니다.


주로 쉘 스크립트(.sh) 파일을 등록된 시간에 실행하도록 하고있습니다.

 

아래의 세가지 명령어 


- 크론탭 리스트를 확인

( 주의! 현재 사용자의 크론탭 리스트만 보여준다.  )


crontab -l 


*다른 사용자 크론탭 리스트


crontab -l -u user



- 크론탭 등록 및 수정 


crontab -e


-크론탭 모두 삭제(모두 삭제 이므로 주의)


crontab -r


위의 명령어들을 통해 크론탭의 수정 및 삭제가 가능합니다.


이제 crontab -e 명령어를 실행하여 크론탭을 작성하도록 합니다.


* * * * * /usr/local/test.sh


위와 같이 크론탭을 작성해주면, 매 분마다 /usr/local/test.sh를 실행 하는 것 입니다.


실제로 매 분마다 실행을 해주는 프로그램 보다는 일정 시간 혹은 날짜를 간격으로 실행을 하기 때문에, 

5개의 *이 있는 각각의 위치에 들어가는 값을 알고있어야 합니다.


첫번째 * 자리에는 0 ~ 59 : 분 

두번째 * 자리에는 0 ~ 23 : 시간

세번째 * 자리에는 1 ~ 31 : 일

네번째 * 자리에는 1 ~ 12 : 월

다섯째 * 자리에는 0 ~ 6   : 요일 ( 0 : 일요일 )

( *는 매분, 매시간, 매일 등.... )


ex)

30 * * * * /usr/local/test.sh  //매시간 30분마다 실행

0 18 * * 0 /usr/local/test.sh  //매주 일요일 18시에 실행

0 18 * * 0,4 /usr/local/test.sh  //매주 일요일,목요일 18시에 실행


저는 쉘스크립트가 아닌 웹서비스를 통해 xml파싱을 해야 하기 때문에, lynx를 사용하도록 하겠습니다.

쉘스크립트를 사용하시는 분들은 해당 되지 않는 내용입니다.


( lynx 가 궁금하신 분들은 ' lynx www.daum.net ' 를 입력해보시기 바랍니다. )

( lynx가 없는 경우 ' yum intall lynx ' 명령어를 통해 다운 가능합니다.)


30 * * * * lynx -dump http://127.0.0.1/api/xmlParsing


위의 크론탭은 매시간 30분마다 해당 url을 접속하는 크론탭입니다.


아래의 명령어들을 통하여 크론탭 실행이 가능합니다.


/etc/init.d/crond start

/etc/init.d/crond stop

/etc/init.d/crond restart


혹은


sudo service cron start

sudo service cron stop

sudo service cron restart


반응형

'Linux' 카테고리의 다른 글

Apache 디렉토리 리스팅 제한  (0) 2017.10.18
리눅스 우분투 zip war 압축 풀기  (0) 2017.03.07
리눅스 우분투 vsftpd 설치 및 설정  (0) 2016.07.29
리눅스 우분투 svn 설치  (0) 2016.07.26
리눅스 svn E:220001 에러  (0) 2016.07.26
반응형

1. vsftp 설치


#apt-get install vsftpd


(삭제 : #apt-get remove vsftpd)


2. vsftpd.conf 파일 수정 


#vi /etc/vsftpd.conf


아래의 그림과 같이 주석('#')제거 

write_enable=yes


(chroot_local_user=YES 주석 풀면 자신의 홈 디렉토리만 접근가능)


*chroot_local_user=YES 주석을 풀면 아래와 같은 에러가 발생하는 경우가 있음

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

이러한 경우 vsftpd.conf 파일에


allow_writeable_chroot=YES 을 추가 저장


*aws를 사용하는 경우 vsftpd.conf 파일에 아래내용 추가

pasv_enable=YES

pasv_min_port=1024

pasv_max_port=1048

pasv_address=자신의 ip


3.vsftpd 재시작


#service vsftpd restart


*접근 제한 사용자 리스트*


#vi /etc/ftpusers

 

ftpusers안에 있는 사용자는 ftp접속이 제한된다.

(root계정을 사용하고싶으면 파일안에 root를 삭제하고 저장)



*FTP 접속 디렉토리 변경*


#usermod -d /home/ 유저아이디


ex)usermod -d /home/ftp/ root


*FTP 계정 생성*


#adduser 유저아이디


#passwd 유저아이디


*ftp 기본 권한 설정


#vi /etc/vsftpd.conf


local_umask = 022


위와 같은 부분의 주석 풀기


(022가 기본으로 설정 되어있음)


폴더는 777 - 022 = 775

파일은 666 - 022 = 644


local_umask의 숫자를 변경하여 

기본 권한을 변경해 준다.








반응형
반응형

1. 업데이트 수행 및 SVN 설치


#apt -get update

#apt -get install subversion


2. 저장소 폴더 및 저장소를 위한 폴더 생성


#mkdir -p /home/svn/repos/

#svnadmin create --fs-type fsfs /home/svn/repos/project


3. svnserve.conf & passwd & authz 파일 수정


#vi /home/svn/repos/project/conf/svnserve.conf

( '#'을 지워 주석을 해제하고 저장한다. )

anon-access = read

auth-access = write


password-db = passwd


authz-db = authz


#vi /home/svn/repos/project/conf/passwd

[users] 아래에 계정을 추가

ex) admin = 1234


#vi /home/svn/repos/project/conf/authz

passwd 파일에서 생성한 계정의 권한을 준다.

[/] 또는 [/경로]를 쓰고 아래에

ex) admin = rw



4. SVN 서버 실행 및 확인


#svnserve -d -r /home/svn/repos/


#ps  -ef|grep svnserve



위와 같이 나오면 서버 실행중


( 서버 중지 : killall svnserve  ) 


5. SVN 체크아웃

#svn co svn://localhost/project

계정 정보 입력후 체크 아웃 성공하면 완료

외부에서도 접속하는지 확인해볼것

반응형
반응형

리눅스 svn E:220001 에러


xcode에 svn을 연동하여 checkout을 정상적으로 실행한 후 

svn 을 읽지 못하는 에러 발생


해당 svn 경로에 있는 authz 파일을 수정


[/]
* = r


반응형
반응형

리눅스에서 웹 서버 (도메인) 정보를 확인하는 명령어는

curl -i 도메인

명령어를 통해 확인 할 수 있습니다.

 ex)

위에서 보면 Server에 해당하는 정보가 Apache로 나오는데 이부분은 안나오게 수정을 했기 때문이다.

서버정보에서 IIS버전 정보가 노출되는 것은 보안상 위험하기 때문에 감춰야한다.

우선 tomcat에서 server.xml 파일에서

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" 
    redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" server=""/>

위의 부분에서 server="" 을 지워 준다.

그리고 apache에서 httpd.conf 파일에서

TraceEnable Off 을 Off로 고쳐주고

ServerTokens Prod 를 Full에서 Prod 로 고쳐준다.

(Full로 되어있는 경우 모든 정보를 보여주게된다.)

ServerSignature Off 로 설정하여 브라우저에서 apache 정보를 감춰준다.

 

위와 같이 설정을 해준 후 다시 서버정보를 확인하면 서버정보가 감춰져서 나오는 것을 확인 할 수 있다. 만약 안된다면 다른부분의 설정도 찾아봐야 될 것 같다.

반응형

+ Recent posts