블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 12. 8. 14:06 Security

게시판을 이용한 upload 디렉토리는 퍼미션이 777로 잡아줘야


정상적으로 사용이 가능한 경우가 꽤나 많다. 이런 경우 악성코드나 스팸봇이 업로드 되어 악용될 위험이 


상당히 높기 때문에 php파일을 실행금지 시키는 설정을 넣어두면 좋다.



아래의 설정 문구는 httpd.conf나 혹은 가상호스트 설정내에 적어 넣어줘도 된다.


<Directory /업로드 디렉토리 경로/*>

php_admin_flag engine off

<FilesMatch "\.(cgi|pl|php|htm|html)$">
 Order allow,deny

 Deny from all

</FilesMatch>

 </Directory>



혹은 업로드 디렉토리에 .htaccess를 이용한 방법으로

httpd.conf에 AllowOverdride 가 적용되어 있어야 한다.


php4.x 경우

<IfModule mod_php4.c>

php_flag engine off

</IfModule>


php5.x 경우

<IfModule mod_php5.c>

php_flag engine off

</IfModule>


물론 두버전을 동시에 넣어주어도 상관없다.

반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
posted by Rootrator
2012. 1. 2. 11:52 Security
서버 보안을 위해 root의 ssh접속을 제한하고 su까지 제한하는 방법을 사용하자.

 
ssh root접속 막는법은 /etc/ssh/sshd_config에서 설정 가능하다.

PermitRootLogin no

 
su사용 그룹으로 wheel을 사용한다.

[root@localhost ~]# grep wheel /etc/group
wheel:x:10:root


CentOS release 4.6 (Final)버전에서는 자동으로 그룹이 생성되어 있었다.


이제 /usr/bin에 권한을 바꿔주자

[root@localhost ~]# chgrp wheel /bin/su
[root@localhost ~]# chmod 4750 /bin/su


SetUID를 통해 su 명령어를 사용시에 root권한을 빌리게 된다.


su사용할 특정 계정을 wheel에 추가해 주자

[root@localhost ~]# usermod -G wheel test_su

위 명령어로 wheel 그룹에 계정이 추가되었을 것이다.
 
[root@localhost ~]# grep wheel /etc/group
wheel:x:10:root,test_su


 
음 그런데 이 계정이 ssh접속이 안되면 안되겠지

/etc/security/access.conf 에 계정을 추가해 주고 ssh접속이 가능케 해주자


그럼 이제 원격접속의 순서는 test_su의 ssh접속 > su - 명령어로 root 접속 

 


 
반응형

'Security' 카테고리의 다른 글

apache 특정 디렉토리에서 php 실행 금지  (0) 2014.12.08
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
posted by Rootrator
2011. 12. 13. 13:57 Security

에러 페이지 하단이나 HTTP응답 헤더에 서버 정보가 노출이 된다.

이를 방지하는 설정이 다음과 같은데

httpd.conf에서

ServerToken Prod
ServerSignature Off

위 2줄을 수정해 준다.


[root@localhost ~]# lynx -head -mime_header http://도메인
 
X-Powered-By: ~~~~

또 위 명령어로 php(또는 ASP) 버전이 나타날수 있는데 이를 방지하는 설정은 

php.ini에서

expose_php=Off


위 1줄을 수정해 준다.


 
반응형

'Security' 카테고리의 다른 글

apache 특정 디렉토리에서 php 실행 금지  (0) 2014.12.08
su 제한하기  (0) 2012.01.02
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
posted by Rootrator
2011. 9. 5. 15:30 Security
서버 운영중에 웹페이지의 노후한 게시판의 취약점을 이용해서

악성 스크립트나 쉘이 올라와서 서버 자원을 고갈 시켜 골치 아픈적이 한두번이 아니다.


문제는 /tmp 디렉토리이다.

이 tmp 디렉토리는 말그대로 temporary로 임시로 생성되는 파일을 보관하는 장소다.

보통 세선파일이나 mysql.sock, yum.log 같은 파일들이 보관되지만

간혹가다가 이 디렉토리에 악성스크립트가 올라와져서 실행되어 있는 경우가 있다.

 
이 tmp디렉토리는 먼저 리눅스 설치단계에서 파티션을 따로 나누어주어야 할 필요가 있다.

대략 1GB정도의 용량을 할당 후에 정상적으로 리눅스 설치를 진행하자.


설치가 완료되었다면 /etc/fstab을 열어 수정을 해주어야 한다.

장치명 /tmp                    ext4    loop,noexec,nosuid,rw        1 2

보통은 4번째 필드가 defaults로 설정이 되어 있는것을 변경한다.

loop > 루프장치
noexec > 실행금지
nosuid > root권한금지
rw > 읽기,쓰기만 가능


설정 변경된 tmp 디렉토리를 /var/tmp도 링크를 시켜 같은 보안 설정이 되도록 한다.

[root@localhost ~]# rm -rf /var/tmp
[root@localhost ~]# ln -s /tmp /var/tmp

 
이제 tmp에서 쉘파일을 하나 생성해서 실행 시켜보면?
 
[root@localhost tmp]# ll
-rwxrwxrwx  1 root  root     25 2011-09-05 15:06 test.sh
[root@localhost tmp]# ./test.sh
-bash: ./test.sh: 허가 거부
 
실행이 되지 않는다! 
반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
mod_unique_id: unable to find IPv4 addres  (0) 2011.03.03
posted by Rootrator
2011. 4. 14. 16:26 Security
메일 사용시 화이트 도메인을 사용하기 위해서 spf 레코드를 이용한다.

네임서버상에서 zone파일을 수정한 후에 아래와 같은 방법으로 확인할 수 있다.


[root@ns3 named]# nslookup
> server 질의할 네임서버의 도메인 또는 IP
Default server: ~.~.~.~
Address: ~.~.~.~#53
> set type=txt
> 화이트 도메인을 사용할 도메인
Server:         ~.~.~.~
Address:        ~.~.~.~#53

abc.com    text = "v=spf1 ip4:xxx.xxx.xxx.xxx~all"

위와 같이 뜬다면 정상적으로 설정이 완료된것이다.

반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SSH IP / 계정 차단  (0) 2011.03.24
mod_unique_id: unable to find IPv4 addres  (0) 2011.03.03
posted by Rootrator
2011. 3. 24. 11:18 Security

간혹 특정 서버의 Sucure로그를 보면 해외IP로 무수히 많은 SSH접근을 시도한 흔적이 있었다.


그래서 특정 IP또는 특정 계정만 접속이 가능하도록 설정을 하였다.

먼저 특정 IP만 SSH가 가능하도록 설정을 하기 위해선

일단 SSH를 전부 차단하도록 하자.

[root@localhost ~]# vi /etc/hosts.deny

sshd : ALL

위 설정으로 모든 호스트(IP)는 ssh 사용이 불가능하다.

이후에

[root@localhost ~]# vi /etc/hosts.allow

sshd : xxx.xxx.xxx. : ALLOW (C클래스 단위 ssh접속 허용)
sshd : xxx.xxx.xxx.xxx : ALLOW (단일 호스트 ssh 접속허용)


hosts.deny와 hosts.allow는 deny가 먼저 적용 된 후에 allow가 적용이 된다.

이제 ssh서비스를 재시작하면 끝.


계정을 차단하기 위해선 pam을 이용해야 한다.

[root@localhost ~]# vi /etc/pam.d/sshd

account   required   pam_access.so

해당 줄을 추가 해준다음

[root@localhost ~]# vi /etc/security/access.conf

-:ALL EXCEPT 계정1, 계정2:ALL

위 내용추가한 후에는 access.conf에 정의해준 계정 이외엔 SSH접속이 불가능하다.


반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
mod_unique_id: unable to find IPv4 addres  (0) 2011.03.03
posted by Rootrator
2011. 3. 3. 10:52 Security

Linux용 공개웹방화벽인 mod_security설치를 위해

 

Mod_uniq_id 모듈을 설치한 후에 웹방화벽까지 모두 설치하고

 

service httpd restart 하였으나

 

httpd (을)를 시작합니다: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

[실패] 

 

아파치 로그를 살펴보니

 

[Wed Feb 09 14:07:34 2011] [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "######"

즉 모듈에서 자기 이름을 모르겠단 말이다.

 

/etc/hosts에 등록해 주도록 하자

 

ip  domain

 

반응형

'Security' 카테고리의 다른 글

su 제한하기  (0) 2012.01.02
리눅스 웹서버정보 숨기기  (0) 2011.12.13
/tmp 보안설정하기  (2) 2011.09.05
SPF 레코드 확인 방법  (0) 2011.04.14
SSH IP / 계정 차단  (0) 2011.03.24
posted by Rootrator
prev 1 next