본문 바로가기

신규 서버세팅시 할일

점점 고버전의 php를 요구하는 프로그램이 많아진다.


단순 apm 기본으로 했다간 지우고 다시 설치해야 하는 경우가 종종 발생한다.리눅스 서버를 셋팅할 경우 할일이 사람마다 환경마다 다 다르겠지만 내 경우 안 까먹을려고 적어본다.



아주아주 자주하는것도 아니지만 그렇다고 아예 안하는것도 아니라서 할 때마다 항상 자료를 찾아보게 된다.


몇몇 보안문제가 눈에 보인다. 따라하면 안되는 부분이 있다.

시간적 여유가 없다. 현재는 구현이 우선이라 빠르게 셋팅해 본다. 


세월 가버리면 버전이 올라가고 또 내가 알고 있던것과 조금씩 달라진다.


1.기본 apm 설치 

2.OS는 CENTOS 7.X로

3.디비는 MariaDB로

----------------- 까지 자동

실제 ----


1.putty 접속 후 vsftpd 설정

  ps -ax | grep vsftpd로 설치 되었는지 확인 후 있으면 패스


  /etv/vsftpd에 각종 설정

  참고 : userlist : 접속 불가 아이디 설정

  참고 : ftp

  참고 : 로그인 후 상위로 벗어나게 하기는 

          chroot_list_enable=YES

          chroot_list_file=/etc/vsftpd/chroot_list

  위 두개 주석 해제

  vi에서 /chroot 검색 후 i누르고 편집을 하면 됨.

  chroot_list 파일 열고 해당 아이디 입력후 완료 리스타트.

  완료 후 재시작

  service vsftpd restart


화면을 갱신 한번해서 폴더 목록 보이나 확인


2.ftp 접속 후 httpd등 특정 폴더가 아무것도 안보일경우

getsebool -a | grep ftp로 설정값을 확인

ftpd_full_access off 되어 있으면 온으로 변경


setsebool -P ftpd_full_access=1

위는 잘 생각해보고 할것


그 밖에 옵션은 연구해볼 것


ftpd_anon_write --> off

ftpd_connect_all_unreserved --> off

ftpd_connect_db --> off

ftpd_full_access --> off

ftpd_use_cifs --> off

ftpd_use_fusefs --> off

ftpd_use_nfs --> off

ftpd_use_passive_mode --> off

httpd_can_connect_ftp --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

tftp_home_dir --> off




화면 갱신후 이제 폴더 목록 보이나 확인.




5.certbot 설치

EPEL 저장소 활성화 시키기

yum install epel-release 

없는 경우 설치로 



있는 경우 있다고 나옴



yum install certbot 


7은 여러모로 편리하구나 이전에 줄줄이 사탕으로 구버전에서 쌩고생한거 생각하면.


파이썬과 더불어 몇가지 설치 화면이 나오고 y만 누르면 끝.



총 4.3메가를 다운받고 20메가정도 설치가 된다.


설치는 금방 됨. 리붓 불필요.



//아래를 설치해야 실사용가능. 아파치와 함께

yum install python2-certbot-apache


참고 : setenforce 0 하면 리붓해야 반영됨. getenforce로 disabled


6.서버 도메인 연결

이쯤에서 하는 버릇이 있다. 왜 그럴까 미리 처음부터 설정해놓으면 되는데.

아무튼 과정중 하나이니 도메인에 네임서버를 해당 호스팅 받는것으로 설정하고

해당 호스팅에도 내꺼다라고 등록 시켜주고 기다리면 됨


좀 기다렸다 브라우저에 도메인으로 접속 테스트해서 이상없이 나오면 끝. 요즘은 빠르다.


기다리기 심심하니까  conf/ VirtualHost 도메인 설정 해준다.

설정후 apache reload 후 홈디렉토리 잘나오면 끝.


7.PHP는 7.x로 업그레이드


이전포스팅 참고. 간단하다.


CENTOS 7에서 php 5.x to php 7.x로 업그레이드 하기


8.certbot 설정.

8.1 certbot 명령어로 https 걸어준다 걸어주기 전에 미리 버추어호스트에 맞춰주자.


virtualhost에 설정을 해주고 아파치 리로드를 시켜서 적용을 시키자. 그래야 certbot 실행시 인지를 한다.


그리고 최초 certbot --apache 를 실행하면 메일 입력과 동의하는 부분이 나온다. a를 눌러 넘어가준다.


나같은 경우 순서대로 나오는 부분에 아래와 같이 했다 3가지를 물었었나.

1.(A)gree/(C)ancel: A

2.(Y)es/(N)o : N

3.(Y)es/(N)o : A


몇가지 명령어


개별 도멘이나 서브도메인을 생성시

certbot --apache 하면 목록이 나온다 거기서 선택 하면 된다.

혹은 -d를 붙여 알고 있는 도메인을 입력하자.


정상적으로 발급이 되었다면.


3개월에 한번씩 바꿔줘야 하므로 crontab을 활용하여 쉘스크립트를 하나짜서 스케쥴링 돌리자. 


갱신 테스트 

certbot renew --dry-run

남은 기간이 20일 미만일 경우만 갱신됨

certbot renew 

남은 기간 상관없이

certbot renew --force-renewal

스크립트등으로 갱신할 때

certbot renew --no-self-upgrade


발급된 인증서 만료일 확인 전체 다나옴

certbot certificates


이렇게 하면 대략적인 서버 기본적인 부분은 끝이 났다.


apm을 설치했고 php를 업그레이드 했고 인증서 설치했고 인증서 자동갱신까지 했다.


추가적으로 필요한 파이썬 업뎃이나 마리아 디비 최신 변경, nodejs설치 등은 필요할 때 하도록 하자.


========= 이슈 ========

modsecurity가 설치되어 있는 경우 워프 설치할 때도 phpmyadmin 로긴 할때도

다양한 곳에서 차단이 된다.


테스트니까. 룰 공부는 다음에 하도록 하자.


phpmyadmin을 압축 풀고 업로드로 사용시 로그인하면 Forbidden 403에러나고 아파치 에러 로그 보면 mod_security에서 차단됨.

40번의 37번째줄

41번의 159번째줄


httpd.conf에 해당 디렉토리에 꺼버리기


<Directory /해당폴더 >

SecRuleEngine Off

</Directory>


그리고 아파치 재시작후 보면 로그인이 정상적으로 됨. 이후 테스트 종료후 정상적인 exception을 적용할것.