1. 우분투 방화벽 설치와 설정법(ufw)
ufw는 우분투에 기본적으로 설치되어 있는 방화벽입니다. 설치 관련한 내용은 구 버전의 우분투의
경우 재설치를 해야 하며, 사용자 정의 설치로 인하여 ufw 설치 대신 iptables를 이용한 경우 ufw
를 사용하지 않으셔도 됩니다.
1) ufw 설치 및 실행
#sudo apt-get install ufw #sudo ufw enable |
2) 방화벽 상태 확인.
#sudo ufw status verbose |
3) 리눅스 원격 시스템 사용의 경우 사용 포트만 개방
ex) SSH 사용의 경우 #sudo ufw allow ssh ex) http 사용의 경우 #sudo ufw allow http |
2. 공유 메모리 보안
공유메모리는 실제로 활성화된 서비스에서 사용될 경우 공격에 사용 될 수 있습니다.
1) 공유 메모리에 setuid 권한 및 메모리 실행 권한 제거
#sudo vi /etc/fastab tmpfs /dev/shm^tmpfs^defaults,noexec,nosuid^0^0 //^는 탭으로 입력 |
3. SSH 보안
ssh 의 경우 brute-forcing 류의 무차별 대입 공격을 당할 수 있으므로 root 로 직접 접근하는 것을 막
고, 패스워드 실패 시 time delay 기능을 넣어야 하고, default PORT 인 22번 포트 대신 다른 포트를 대체하여 사용 하는 것을 권장합니다.
1) SSH root 접속 거부 및 default PORT 임의 PORT로 변경
#sudo vi /etc/ssh/sshd_config ------아래 부분을 찾아 편집------- PORT <ENTER YOUR PORT> //22번 대신 대체할 포트 입력 Protocal 2 PermitRootLogin no |
2) SSH 반복 접속 시 delay 주기
#sudo apt-get install sshguard #sudo service sshguard start |
4. sysctl 설정으로 인한 네트워크 보안
실제로 최근엔 서버 사양이 좋아져서 각종 DoS 공격은 기본적으로 무리없이 동작 됩니다.
하지만 DDoS로 이뤄질 경우를 대비하여 기본적인 네트워크 설정은 해 두는 것을 권장합니다.
1) IPSpoofing 공격 대비
#sudo vi/etc/sysctl.conf ...................아래 라인을 추가... #IP Spoofing protection net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 #Ignore ICMP broadcast requests net.ipv4.icmp_echo_ignore_broadcasts = 1 #Disable source packet routing net.ipv4.conf.all.accept_source_route = 0 net.ipv6.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv6.conf.default.accept_source_route = 0 #Ignore send redirects net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 #Block SYN attacks net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 5 #Log Martians net.ipv4.conf.all.log_martians = 1 net.ipv4.icmp_ignore_bogus_error_responses = 1 #Ignore ICMP redirects net.ipv4.conf.all.accept_redirects = 0 net.ipv6.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv6.conf.default.accept_redirects = 0 #Ignore Directed pings net.ipv4.icmp_echo_ignore_all = 1 :wq! ............................................. #sudo sysctl -p //재로드 |
5. WEB 보안
1) php.ini 설정으로 인한 외부 참조 및 인젝션 방지
php를 개발하는 사용자라면 필수로 해야 할 부분입니다. PHP는 5.2 버전으로 업그레이드 되면서
보안적인 부분의 상당수를 개발자와 서버 관리자의 몫으로 넘겨 default 보안 설정의 상당 수를 off
로 설정해 놓았습니다.
하지만 보안상 PHP 보안 설정은 반드시 올려 놓고 진행 할 것을 권장합니다.
#sudo /vi /etc/php5/apache2/php.ini .......아래 설정을 찾아 변경....... disable_functions = exec,system,shell_exec,passthru register_globals = Off expose_php = Off magic_quotes_gpc = On ............................................. |
2) apache2 mod_security 설치법
#sudo apt-get install libxml2 libxml2-dev libxml2-utils #sudo apt-get install libaprutil1 libaprutil1-dev #ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2 //64비트 사용자만 #sudo apt-get install libapache-mod-security //mod security설치 #sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf #sudo vi /etc/modsecurity/modsecurity.conf //모드시큐리티 설정 변경 .......................................................... SecRuleEngine On SecRequestBodyLimit 16384000 SecRequestBodyInMemoryLimit 16384000 .............. |
6. 불필요한 포트 확인 및 차단
1) NMAP으로 PORT SCANNING
#sudo apt-get install nmap #sudo nmap -v -sT localhost #sudo ufw deny <불필요한 포트> |
7. 시스템 보안 인정
1) Tiger 를 이용한 시스템 보안 인증
#sudo apt-get install tiger #sudo tiger #sudo less /var/log/tiger/security.report.* |
2) 해커가 숨겨 놓은 루트킷 탐지
#sudo apt-get install rkhunter chkrootkit #sudo chkrootkit #sudo rkhunter --update #sudo rkhunter --propupd #sudo rkhunter --check |
3) SELinux - Apparmor
selinux의 경우 강력한 보안 설정으로 인하여 ORACLE설치 등에서 어려움이 있을 수 있습니다.
필수 권장 사항은 아니나, 설치하여 사용함을 권장합니다.
#sudo apt-get install apparmor apparmor-profiles #sudo apparmor_status |
[참조 : https://help.ubuntu.com/12.04/serverguide/apparmor.html]
'컴퓨터' 카테고리의 다른 글
[Linux][라즈베리파이][기본설정1] 유무선 고정 IP로 변경 (0) | 2013.09.11 |
---|---|
[Ubuntu] Changing Apache Document Root in Ubuntu (0) | 2013.08.30 |
[Linux] Ubuntu 에 NFS 시스템 구축하기 (0) | 2013.08.24 |
Windows 7 32bit + Apache 2.2 + PHP 5.3 + Cubrid 9.1 (3) | 2013.08.08 |
[Linux] 리눅스 시스템 디렉토리 (0) | 2013.08.07 |