|
|
1. kill 해야할 서비스
apmd
cups
xntpd
portmap
sound
netfs
rstatd / rusersd / rwhod / rwalld
bootparamd
squid
yppasswdd
ypserv
dhcpd
atd
pcmcia
snmpd
routed
lpd
mars-nwe
nfs
amd
ypbind
xfs
innd
linuxconf
apmd : laptop의 전원관리에 필요
cups : 프린트 시스템이로 삭제
xntpd : network time protocol 사용 안하니 삭제
portmap : R로 시작하는 서비스의 포트 맵핑시켜주는 서비스 보안상 삭제한다.
sound : 사운드 지원이므로 삭제
netfs : nfs 클라이언트가 nfs 서버 마우트시 사용되므로 삭제
rstatd / rusersd / rwhod / rwalld : R로 시작하는 서비스 인증과정이 취약하고 remote에서 실행하므로 서비스 하지 않는다.
bootparamd : 하드나 플로피 등 부팅 수단이 없을때 사용하는 것으로 서비스 안함.
squid : squid 프록시 서버를 가동시 설정하므로 이용안하면 삭제
yppasswdd : NIS서버에 사용되는 것으로 필요없다.
ypserv : NIS서버에 사용되는 것으로 필요없다.
dhcpd : dhcp에 사용되는 것으로 이용안하면 필요없음
atd : 예약 서비스로 cron이 있으므로 삭제
pcmcia : 노트북에 사용되는 것으로 삭제
routed : 라우터가 아닌 일반 서버에서는 삭제
lpd : 프린트 서버가 아니면 삭제
mars-nwe : netware 에 쓰이는 파일이나 프린트 서버에 사용되는 것으로 삭제함
nfs : nfs 이용시 놔두고 아니면 삭제
amd : 오토마운트 데몬으로 보안 취양석있으므로 사용 안하면 삭제
ypbind : NIS에 사용, 이용 안하면 삭제함.
xfs : X font server 로 x-windows사용 안하면 삭제한다.
innd : News서비스 사용시 이용되므로 삭제
linuxconf : 원격지 브라우저를 통해 리눅스 시스템의 설정변경하는것으로 보안상 않좋으니 삭제한다.
2. 명령어 권한 제한
chmod 700 명령어
- root만 사용하게 하고 일반사용자는 제한시킨다.
/tmp와 같은 악성파일업로드하여 공격하는 경우가 있는데
업로드 하여도 압축을 못풀도록 tar나 unzip의 파일권한을 700으로 하면 되겠다.
단, 일반 사용자 모두 명령어 사용을 못하니 주의
wget 도 700으로 하여 파일을 다운 못받도록 제한한다.
파일을 변조하는 경우도 있는데 파일속성을 주어 변경하지 못하게 하는 방법도 있다.
i옵션 속성을 주어 변경이 안되도록 지정
lsattr 을 통해 속성 확인
적용 : chattr +i 명령어
해제 : chattr -i 명령어
모두해제 : chattr -suSiadAc 명령어파일
***이 명령어는 ext2 파일시스템 개발자가 개발하였으며 ext2, ext3에서만 잘 작동한다.
change
gpasswd
wall
chfn
chsh
newgrp
write
at
usernetctl
userhelper
mount
umount
lockdev
ping
traceroute
passwd
crontab
3. yum을 통한 최신 업데이트
yum update -y
4. 커널 파라미터 값을 최적화
/etc/sysctl.conf 파일에서 설정한다
확인 : sysctl -a
질의 : sysctl -n
변수 특정값 설정 : sysctl -w
적용 : sysctl -p
특별한 시스템이 아니라면 파라메터값을 다음과 같이 정의한다.
0 = off / 1 = On
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
syn 플루딩 공격대응으로 킨다
echo "0" > /proc/sys/net/ipv4/tcp_timestamps
불필요함으로 off
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
smurd 공격에 악용되므로 broadcasts 주소를 통한 icmp echo에 대해 응답하지 않는다.
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
스푸핑을 막기위해 라오트 패킷허용을 막음.
echo "0" > /proc/sys/net/ipv4/ip_forward
다른 시스템으로 패킷이 포워딩되지 않도록한다.
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
imcp redirects 허용하지 않는다.
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
스푸핑된 파일이나 소스라우팅, 리다이렉트 패킷에 대한 로그를 남긴다.
echo -e "32768\t61000" > /proc/sys/net/ipv4/ip_local_port_range
시스템 로그포트의 범위를 지정
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
syn플루딩 공격과 관련설정
backlog queue 사이즈를 늘려 공격대응
위 설정은 리부팅시 초기화 되므로 /etc/rc.local 에 내용을 추가하여 리부팅시 바로 적용을 하던가
아니면 /etc/sysctl.conf 에다가 설정을 한다.
http://www.frozentux.net/documents/ipsysctl-tutorial/
여기서 여러 파라메터값을 참조하면 되겠다.
apmd
cups
xntpd
portmap
sound
netfs
rstatd / rusersd / rwhod / rwalld
bootparamd
squid
yppasswdd
ypserv
dhcpd
atd
pcmcia
snmpd
routed
lpd
mars-nwe
nfs
amd
ypbind
xfs
innd
linuxconf
apmd : laptop의 전원관리에 필요
cups : 프린트 시스템이로 삭제
xntpd : network time protocol 사용 안하니 삭제
portmap : R로 시작하는 서비스의 포트 맵핑시켜주는 서비스 보안상 삭제한다.
sound : 사운드 지원이므로 삭제
netfs : nfs 클라이언트가 nfs 서버 마우트시 사용되므로 삭제
rstatd / rusersd / rwhod / rwalld : R로 시작하는 서비스 인증과정이 취약하고 remote에서 실행하므로 서비스 하지 않는다.
bootparamd : 하드나 플로피 등 부팅 수단이 없을때 사용하는 것으로 서비스 안함.
squid : squid 프록시 서버를 가동시 설정하므로 이용안하면 삭제
yppasswdd : NIS서버에 사용되는 것으로 필요없다.
ypserv : NIS서버에 사용되는 것으로 필요없다.
dhcpd : dhcp에 사용되는 것으로 이용안하면 필요없음
atd : 예약 서비스로 cron이 있으므로 삭제
pcmcia : 노트북에 사용되는 것으로 삭제
routed : 라우터가 아닌 일반 서버에서는 삭제
lpd : 프린트 서버가 아니면 삭제
mars-nwe : netware 에 쓰이는 파일이나 프린트 서버에 사용되는 것으로 삭제함
nfs : nfs 이용시 놔두고 아니면 삭제
amd : 오토마운트 데몬으로 보안 취양석있으므로 사용 안하면 삭제
ypbind : NIS에 사용, 이용 안하면 삭제함.
xfs : X font server 로 x-windows사용 안하면 삭제한다.
innd : News서비스 사용시 이용되므로 삭제
linuxconf : 원격지 브라우저를 통해 리눅스 시스템의 설정변경하는것으로 보안상 않좋으니 삭제한다.
2. 명령어 권한 제한
chmod 700 명령어
- root만 사용하게 하고 일반사용자는 제한시킨다.
/tmp와 같은 악성파일업로드하여 공격하는 경우가 있는데
업로드 하여도 압축을 못풀도록 tar나 unzip의 파일권한을 700으로 하면 되겠다.
단, 일반 사용자 모두 명령어 사용을 못하니 주의
wget 도 700으로 하여 파일을 다운 못받도록 제한한다.
파일을 변조하는 경우도 있는데 파일속성을 주어 변경하지 못하게 하는 방법도 있다.
i옵션 속성을 주어 변경이 안되도록 지정
lsattr 을 통해 속성 확인
적용 : chattr +i 명령어
해제 : chattr -i 명령어
모두해제 : chattr -suSiadAc 명령어파일
***이 명령어는 ext2 파일시스템 개발자가 개발하였으며 ext2, ext3에서만 잘 작동한다.
change
gpasswd
wall
chfn
chsh
newgrp
write
at
usernetctl
userhelper
mount
umount
lockdev
ping
traceroute
passwd
crontab
3. yum을 통한 최신 업데이트
yum update -y
4. 커널 파라미터 값을 최적화
/etc/sysctl.conf 파일에서 설정한다
확인 : sysctl -a
질의 : sysctl -n
변수 특정값 설정 : sysctl -w
적용 : sysctl -p
특별한 시스템이 아니라면 파라메터값을 다음과 같이 정의한다.
0 = off / 1 = On
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
syn 플루딩 공격대응으로 킨다
echo "0" > /proc/sys/net/ipv4/tcp_timestamps
불필요함으로 off
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
smurd 공격에 악용되므로 broadcasts 주소를 통한 icmp echo에 대해 응답하지 않는다.
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
스푸핑을 막기위해 라오트 패킷허용을 막음.
echo "0" > /proc/sys/net/ipv4/ip_forward
다른 시스템으로 패킷이 포워딩되지 않도록한다.
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
imcp redirects 허용하지 않는다.
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
스푸핑된 파일이나 소스라우팅, 리다이렉트 패킷에 대한 로그를 남긴다.
echo -e "32768\t61000" > /proc/sys/net/ipv4/ip_local_port_range
시스템 로그포트의 범위를 지정
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
syn플루딩 공격과 관련설정
backlog queue 사이즈를 늘려 공격대응
위 설정은 리부팅시 초기화 되므로 /etc/rc.local 에 내용을 추가하여 리부팅시 바로 적용을 하던가
아니면 /etc/sysctl.conf 에다가 설정을 한다.
http://www.frozentux.net/documents/ipsysctl-tutorial/
여기서 여러 파라메터값을 참조하면 되겠다.