네트워크는 중간에 라우터를 거쳐서 지나가고 있다. 우리나라도 그렇고 미국도 그렇고 라우터마다 서로 #를 갖고 있고 라우터들끼리 연결이 되어 있는 것이다. 우리나라에서 사이트를 입력하면 나갈 수 있는데 예를 들어 일본 사이트에서 차단을 했다. 차단 방법에는 여러 가지가 있는데 일본의 기업에서 장비를 통해서 차단하는 우회를 해서 가게 된다.
PROXY( 중계 서버 ) : 역할을 한다. 방화벽 기능을 하지만 방화벽을 하지 않는다. 일반적으로 라우터, 스위치로 다이렉트로 가기 때문에 좀더 빠르다. PROXY 같은 경우 개인 사업 목적으로 이용하거나 광고를 올려서 이익을 창출하려고 이용하는 경우가 많다.
1.1.1.1 에 접속을 하려고 하면 로그에 모두 기록이 남는다.
PROXY 를 이용하는 장점 & 단점 ?
단점부터 이야기 해보면
내 IP 는 PROXY 에 남게 된다. 원래 IP 인 1.1.1.1 이 남는 것이 아니라 PROXY 서버의 IP인 2.2.2.2 가 남게 되는 것이다. 그래서 크래커들이 악이용 할 수 있다.
그리고 차단을 위해서 만든 것이기 때문에 느리다.
학교에 PROXY 서버를 설치 : 병목현상
[보안관리자?] 서버를 관리하게 될 것이다. 가장 중요한 것은 ? 지속적으로 관리자가 공부를 해서 안정적으로 운영을 할 것을 연구해야 된다. 그러나 관리자가 똑똑하지 못하면 해킹을 당하게 되는 것이다.
다시 수업으로 넘어와서 http://www.squid-cache.org/ 사이트를 가보자.
squid의 기능
HTTP, FTP 등의 프로토콜 프록시와 캐시기능
SSL을 위한 프록시
계층적인 캐시 지원
ICP, HTCP, CARP, Cache Digests 지원
Transparent Cache(투명 캐시) 지원
WCCP 지원 : 캐시 서버가 다운되었을 경우 처리에 관련된 프로토콜
Access Control List 지원
HTTP 서버 가속 기능
SNMP 지원
DNS LOOKUP 캐시 지원
access_log /var/log/squid/access.log squid
프록시 서버에 접속하여 이용한 클라이언트들의 접속로그 기록을 어디에 저장할 것인지를 설정하는 것이다.아직도
[root@localhost squid]# vi squid.conf
632 #acl our_networks src 192.168.1.0/24 192.168.2.0/24
636 http_access allow localhost
637 http_access deny all
=> 막고 허용하는 것은 얘네들이 하는 것이다.
OS 보안? 강사가 느끼기 에는
1. OS 의 기본을 제외하고 관리자가 계속적으로 연구해야 되고 하는 것도 중요하지만 막는 것이 우선이다. LINUX 같은 경우도 전세계 사람들을 다 막고 지금 사용하고 있는 사람들만 열어주는 것이다.
[root@localhost squid]# service squid restart
squid 를 정지 중: [ OK ]
squid (을)를 시작 중: . [ OK ]
[root@localhost squid]# ps -ef | grep squid
root 19628 1 0 11:01 ? 00:00:00 squid -D
squid 19630 19628 0 11:01 ? 00:00:00 (squid) -D
squid 19631 19630 0 11:01 ? 00:00:00 (unlinkd)
root 19635 19240 0 11:01 pts/0 00:00:00 grep squid
[root@localhost squid]# netstat -atp | grep squid
tcp 0 0 *:squid *:* LISTEN 19630/(squid)
=> 현재는 LISTEN 상태인 것을 확인 할 수 있다.
======================================================================================
LINUX 안에 SQUID 가 있다고 보자. 응답해서 나가는 경우 LINUX -> VMWare ->
프록시 설정을 이용하면 웹브라우져에서
국가에서 차단해 놓은 우리민족끼리에 접속이 된다.
http://xroxy.com/ => 무료 Proxy 서버를 확인 할 수 있다.
http://anonymouse.org => 여기에는 해당 URL 을 입력하면 접속이 가능하다.
====================================================================================
IPtraf
====================================================================
파일 속성(attribute) 변경 방법
서비스 해킹을 당한 경우 => 명령어의 속성이 변경되었다면 해킹을 당했다고 봐야 한다.
[root@localhost /]# mkdir test
[root@localhost /]# cd test/
[root@localhost test]# touch file1
[root@localhost test]# chattr +i file1
[root@localhost test]# lsattr file1
----i-------- file1
[root@localhost test]# rm file1 //여기에서는 삭제가 안된다.
rm: remove write-protected 일반 빈 파일 `file1'? y
rm: cannot remove `file1': 명령이 허용되지 않음
[root@localhost test]# ls -al
합계 12
drwxr-xr-x 2 root root 4096 10월 16 12:26 .
drwxr-xr-x 30 root root 4096 10월 16 12:26 ..
-rw-r--r-- 1 root root 0 10월 16 12:26 file1
[root@localhost test]# chattr -i file1 // 속성을 변경한 뒤에
[root@localhost test]# lsattr file1
------------- file1
[root@localhost test]# rm file1 // 삭제하면
rm: remove 일반 빈 파일 `file1'? y
[root@localhost test]# ls -al
합계 12
drwxr-xr-x 2 root root 4096 10월 16 12:27 .
drwxr-xr-x 30 root root 4096 10월 16 12:26 .. // 삭제된 것을 확인할 수 있다.
서버가 뚫린다고 하면 가장 먼저 해야할 일은? 아래의 것들을 확인합시다
[참조] chattr 과 lsattr 의 용도
내가 운용하는 서버가 해킹당했다면 여러가지를 확인해야 하는데 그 중에서 명령어들의 속성정보를 확인해야 한다.
아래 디렉토리들이 기본적으로 리눅스의 명령어들이 있는 디렉토리이다.
# lsattr /bin/ <- 일반적인 ls,ping 같은 명령어들이 위치
# lsattr /usr/bin <- 시스템 명령어들 reboot,shutdown 과 같이
# lsattr /usr/bin <- 프로그램들의 명령어
# lsattr /usr/sbin <- 기타 명령어
기본적으로 위 4개의 디렉토리에는 어떠한 속성도 걸려있지 않는데 그게 정상이다.
[참고] netstat 명령어는 네트워크의 상태를 자세히 볼 때 사용하는데 해킹이 당한 상태라던가, 또는 내서버에 누가 접속해있는지 확인 할 때도 사용한다.
[root@localhost test]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN
tcp 0 0 :::80 :::* LISTEN
=> 현재 웹포트에는 아무도 이용을 안하고 있다는 것을 확인할 수 있다.
tcp 0 0 :::22 :::* LISTEN
tcp 0 132 ::ffff:192.168.10.129:22 ::ffff:192.168.10.1:51029 ESTABLISHED
udp 0 0 0.0.0.0:40349 0.0.0.0:*
udp 0 0 0.0.0.0:947 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:950 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
udp 0 0 :::60377 :::*
udp 0 0 :::5353 :::*
방어하는 것도 모두 사람이 만든 것이기 때문에 뚫리기 마련이다.
====================================================================
SSH 보안
http 사이트 TCP/IP 보안이 안되어 있다.
나쁜 사람의 경우 : 화면에 나오는 정보가 통문자 형식으로 다들어오게 된다. 그런문제를 해결하기 위해서 만든 것이 https 이다. 3주차 정도에 다룰 예정이다.
Shell 도 보안이 안되어있는데 그래서 개발된 것이 SSH 이다. 프로그래밍이 최신이라고 해서 좋은 것은 아니다. 쉽게 생각해보자. 지금 PC 에 게임을 돌리려고 한다. 지금 그래픽 드라이버를 최신 버젼으로 사용하려고 한다. 하지만 호환문제 때문에 버벅 거릴 수 있다.
단, 리눅스의 경우는 프로그램 이용시에 반드시 stable 버전을 이용해야 한다. 실무에서 프로그래밍을 이용할 때에도 결제시에 코딩이 꼬여서 결제 오류같은 것이 생길 수 있다. SSH 가 크게 2가지가 있다.
유료 : ssh2.com 에서 운영하는 버전
무료 : openssh => open source 버전이라고 생각하면 된다. 정확하게 말하면 오픈이라면 무료가 아니라 공개버전이라는 것이다.
올해 연초에 ssh2.com 이 없어진 것 같다. ssh 는 공개 버전인 것이다.
http://www.cve.mitre.org/
=> 프로그램의 취약점에 대해서 공개적으로 나와있는 웹페이지
[root@localhost ssh]# cat ssh_host_rsa_key
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAxRBMXNJZVk3y/3vmQZggi1zdNLxVADvXnhbQpzftKLuoqFx6
VwecbSQYKwM/IrKZJENayYTRfLgVlxcDIP2R9IbBXVDWhQlXSPWjfBuGfXFAz710
YTcuTHAALWPLFGGIn5UA8tuUep7MZCAvq5UwfDRQ/OpM9EVzdleHGEwZhjBeZ/jR
VF0lPn4K5mCrHZT5NZ0EjSxbNaDqGwKtw+w+RtpxCA4tTgsmWu0EaRIgDIiGGtfp
5Bo8RkcF5QpMqD1pBxaCLEybbu9lF62ax9h0e1hieNRBQ7D7lGSiHsos45jE6A4q
us9zOUF2LY8LxkgkHwmh5RzhkNLUiRv8nA864QIBIwKCAQEAhyEea4jszXdHip4a
O5uEB8qmUAwdB3l96L8v/aKxQICuKk4Kv1WtF6O4zQmKYO9+9EtxdD3RehfUSljs
M+EToFxnVe5J9NM0ic0CY7saZKVuRU62NAiUxrMzUlMO6WdzoKCwMYCgVBUecIsZ
X7bCKUhyDINn9/Ub+WCXJpqVKM9/0UmJ48BRJm/95+nfNB+eyBmMR0x88dc57rzG
gyt3CC3RnLkgnpo2K5YT9q+TzV94a5IG5esSHSWQF+7y/QfdclNO8YTmyF79RlDj
Zrt/boqr1QuTUN1yQbN6Iv0hzLtlOCP13fXHzX4MIe68WnT6A01SENLXMJd0/Mnj
Z4tbqwKBgQD7FPgrPM8WcU1lczmfAFZtpDQaGMf2Be31zdYdrRP41NXwcfKDQXpa
9kjk8rNttv4g23JFQKZ4zohq/O7cX1NI1oUFFgwNs962DHEH8J3iVENUzNsxV5/Y
H6Qm+AsCDlZYs376jKpMY8PqojqSgyyffSmQIGg1wclkQoXSM2xcFwKBgQDI7HVn
q2rtynf91kdRRpBurZj94b+ETwO/0QPul44322xZkY2vz+/nD76Xrp6ldLSATTCv
6Xzzt+fTb974l+lSlIKp9gln1tt9r1vx4Wki+zV9v/LZFiOHf5q+XmNZirEjQrAU
SnQOHyW52dhRPzDtXQ9PbCvcqCyQVe++xvejxwKBgQCk/ya9U9iLF0F9LnZSizF7
QAT7NNsspM+S5lmBNzkCmn31xzj3KwdDFt9x4VFWuhS2gZQ8IyuRN0O0BUyCMAOH
oumy4po04+of3EpHC9V3eTOPf042Xic2QK2zNUkP+ssHFt5qIexA09iEPrjGrfjA
lBP/oER7GPIOr19A/TiUSQKBgAt7OeiqtacwJB0iL/YECEDWuEkFlepNqHFcZp/r
ZzZkT1WTSezKDbVunS09LaMN+6+PYd4qmW0DMdGRXTLG2iH525Su+TkiOG2U/fCQ
iao6PZIoOcNDF/kdPArg0nolLrGOyDuse6kJGBk/pfYDnGVVxlxPUvaqhjQiKvT1
bTyPAoGANIfUxIRgHr1cABxtOzzsTCb+rHL9uDwYwzAwBXtUFVoIEF3mK9fmiY2E
4+4yZybCM0rMmKR2kbPe4xkVvxL/BQnVGKAubK09GrGwuwhEJflw2SHKUtxVzxzT
h4pnPMUgkwUC+B/c1IyUgRTDyulWXoKS/KRHi2DA7/JZ4yQ9jL4=
=> 키 값을 확인 할 수 있다.
13 #Port 22 //ssh port #
14 #Protocol 2,1
15 Protocol 2 //
서버가 제 역할을 못하는 것 1. Emergency 2. Alert 3. C .... 4 .Warning
38 #LoginGraceTime 2m
39 #PermitRootLogin yes
40 #StrictModes yes
41 #MaxAuthTries 6 //창 접속 시도 횟수 6번 이라는 것
87 UsePAM yes //
[실습1] root 막고 접속하기 ( sshd_config 파일 )
=>
39 #PermitRootLogin yes => no 로 바꾸어준다.
서비스의 환경 설정을 변경했으면 그 내용 적용시키기 위해서 당연히 데몬을 재시작 해야 한다.
# service sshd restart
[실습2] 포트 변경해서 접속하기
=> 13 #Port 22 => 22 대신 1004 로 변경
# service sshd restart
[실습] openssh 프로그램을 최신 안정버전을 설치해보세요. yum 을 이용하세요!
물론, 기존의 openssh 삭제가 먼저입니다.
(01) yum remove openssh*
(02) 삭제가 되었는지 확인 # yum,info openssh
또는 # rpm -qa | grep openssh
(03) 설치는 직접!!
=> 실행 결과
[root@localhost ~]# yum info openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daum.net
* extras: ftp.daum.net
* updates: ftp.daum.net
Available Packages
Name : openssh
Arch : i386
Version : 4.3p2
Release : 72.el5_7.5
Size : 289 k
Repo : updates
Summary : The OpenSSH implementation of SSH protocol versions 1 and 2
URL : http://www.openssh.com/portable.html
License : BSD
Description: SSH (Secure SHell)는 원격 컴퓨터로 로그인하고 이곳에서 명령을 실행하기 위한
: 프로그램입니다. SSH는 rlogin 와rsh 의 대용으로, 보안성이 떨어지는 네트워크에서
: 서로간의 신뢰성을 보장할 수 없는 호스트들간의 암호화된 통신을 하게해줍니다.
: X11 이나 그 외 TCP/IP 포트들은 이 안전한 채널로 포워딩 할 수 있습니다.
:
: OpenSSH는 SSH의 최신 프로 버젼의 OpenBSD의 버젼으로 보안 및 기능에 관한
: 최신 내용을 제공하고 라이브러리를 분리하기 위해 특허가 있는 알고리즘을 삭제합니다.
:
: 이 패키지는 OpenSSH 클라이언트와 서버에 필요한 핵심 파일들을 담고 있습니다.
: 이 패키지를 제대로 사용시려면openssh-clients 나 openssh-server를 설치
: 하십시오.
이렇게 지워 놓으면 원격창이 안되는 것이다. 하지만 터미널은 연결이 되어있어서 작업이 되는 것이다. 일종의 좀비 프로세스인 것이다.
[root@localhost ~]# rpm -qa | grep openssh
=====================================================================================
Webssh
http://192.168.10.129/webssh/login.html
=>웹상에서 접속이 가능한 것을 확인 할 수 있다.
======================================================================================
Linux 보안 일반
[root@localhost webssh]# cd /etc/rc.d
[root@localhost rc.d]# ls -alF
합계 136
drwxr-xr-x 10 root root 4096 6월 5 2010 ./
drwxr-xr-x 108 root root 12288 10월 16 10:56 ../
drwxr-xr-x 2 root root 4096 10월 16 14:59 init.d/
-rwxr-xr-x 1 root root 2255 7월 4 2009 rc*
-rwxr-xr-x 1 root root 220 7월 4 2009 rc.local*
-rwxr-xr-x 1 root root 27476 9월 29 2009 rc.sysinit*
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc0.d/ // init 0 => shutdown
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc1.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc2.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc3.d/ // 이 안에 있는 것이 실행 되는 것이다.
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc4.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc5.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc6.d/ // 재부팅
[root@localhost rc.d]# runlevel
N 3 // 현재 런레벨 3 이 세팅되어 있는 것을 알 수 있다.
[root@localhost rc.d]# cd ./rc3.d/
[root@localhost rc3.d]# ls
K01dnsmasq K69rpcsvcgssd S04readahead_early S18rpcidmapd S56rawdevices
K02NetworkManager K73ypbind S05kudzu S19rpcgssd S56xinetd
K02avahi-dnsconfd K74ipmi S07iscsid S20kdump S64mysqld
K02oddjobd K74nscd S08ip6tables S22messagebus S85gpm
K05conman K74ntpd S08iptables S23setroubleshoot S90crond
K05saslauthd K85mdmpd S08mcstrans S25bluetooth S90httpd
K05wdaemon K87multipathd S10network S25netfs S90xfs
K10psacct K88wpa_supplicant S11auditd S25pcscd S95anacron
K10tcsd K89dund S12restorecond S26acpid S95atd
K20nfs K89netplugd S12syslog S26apmd S97libvirtd
K24irda K89openibd S13cpuspeed S26haldaemon S97yum-updatesd
K35vncserver K89pand S13irqbalance S26hidd S98avahi-daemon
K35winbind K89rdisc S13iscsi S26lm_sensors S99firstboot
K36lisa K99readahead_later S13portmap S28autofs S99local
K50ibmasm S00microcode_ctl S14nfslock S55sshd S99smartd
K50netconsole S02lvm2-monitor S15mdmonitor S56cups
=> 명령어가 안될 때 위의 것을 수동으로 이용할 수 있다. 그래서 관리자가 공부하는 것이 필요하다.
==============================================================================
리눅스를 할 때에 DIR 을 많이 알아두어야 한다. 문제가 생기면 고쳐야 하는데 못 고치게 된다. LPIC 같은 경우에는 문제가 없다. RHC2 같은 경우에는 본사에 가서 시험을 봐야 한다.
=============================================================================
<PAM이란?>
Pluggable Authentication Modules의 약자로서 그대로 해석한다면 “뺐다 붙였다 할 수 있는 인증모듈’ 정도가 된다.
[root@localhost pam.d]# pwd
/etc/pam.d
[root@localhost pam.d]# ls
atd hwbrowser ppp system-config-authentication
authconfig kbdrate pup system-config-date
authconfig-gtk kcheckpass reboot system-config-display
authconfig-tui kdm remote system-config-kdump
chfn kdm-np run_init system-config-keyboard
chsh klaptop_acpi_helper runuser system-config-language
config-util kppp runuser-l system-config-lvm
cpufreq-selector kscreensaver sabayon system-config-network
crond kshell screen system-config-network-cmd
cups ksu serviceconf system-config-rootpassword
cvs login setup system-config-securitylevel
dateconfig neat smtp system-config-services
eject newrole smtp.sendmail system-config-soundcard
ekshell other sshd system-config-time
gdm passwd su system-config-users
gdm-autologin pirut su-l system-install-packages
gdmsetup pm-hibernate sudo virt-manager
gnome-screensaver pm-powersave sudo-i xserver
gnome-system-log pm-suspend system-auth
gssftp pm-suspend-hybrid system-auth-ac
halt poweroff system-cdinstall-helper
=> 여러가지 인증 모듈을 볼수 있는데
# vi login // 잘못 건들게 되면 Root 조차 접속을 못하게 된다.
session required /lib/security
[확인] doom 계정으로 5개의 원격창을 확인하기 => 5개 이상을 띄우려는 순간에 바로 닫아진다.
원격접속을 했을 때에 어디에 로그가 남을까? => /var/log/ 안에 secure 에 기록이 된다.
Oct 16 16:05:17 localhost sshd[21556]: pam_unix(sshd:session): session opened for user doom by (uid=0)
Oct 16 16:05:17 localhost sshd[21556]: error: PAM: pam_open_session(): Permission denied
Oct 16 16:08:05 localhost sshd[21566]: Accepted password for doom from 192.168.10.1 port 52705 ssh2
Oct 16 16:08:06 localhost sshd[21566]: pam_limits(sshd:session): Too many logins (max 4) for doom
Oct 16 16:08:06 localhost sshd[21566]: pam_unix(sshd:session): session opened for user doom by (uid=0)
Oct 16 16:08:06 localhost sshd[21566]: error: PAM: pam_open_session(): Permission denied
=> 이와 같은 로그가 남아 있는 것을 확인할 수 있다.
====================================================================================
[root@localhost log]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 11200
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 11200
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited // 무제한
=> 설정값을 확인할 수 있다.
etc/profile
=> 모든 유저가 여기에 있는 설정값을 가지고 간다. 여기에 설정을 하는데 어떤 설정을 하느냐?
끝나는 시점을 활용해서 넣어주어야 한다.
[root@localhost log]# source /etc/profile
=> 수정한 뒤 확인결과 아무이상이 없다는 것이다.
[root@localhost log]#
[실습 01 ] 내부에서 즉, 일반유저(doom)가 내부에서 5MB 파일이 제한을 받는지 즉, 복사나 새로 만들기를 해보면 되는데요. 5MB 이상 파일을 만들어서 테스트 해보도록 할께요!
[root@localhost test]# vi /etc/pam.d/login
[root@localhost test]# vi /etc/security/limits.conf
=> 여기에서 원래대로 설정 만들어 주고 넘어가기
<중요> /etc/profile 파일 수정후에 바로 적용시킬려면 # source /etc/profile 해줘야 한다!
# ulimit test
if [ $LOGNAME != "root" ];
then
ulimit -Su 10 # 유저가 생성 가능한 프로세스 수 10개로 제한
ulimit -Sv 20000 # 유저가 사용 가능한 메모리 20M로 제한
ulimit -Sf 5000 # 생성할 수 있는 한 파일의 사이즈 5M로 제한
fi
[doom@localhost test]$ cp 10mbfile /home/doom // <=이와 같은 결과
파일 크기 제한을 초과함
이 과정을 제대로 알아보자.
1. root 계정으로 /test/ 디렉토리 안에 10mb 파일을 만든다.
# rm -rf /test
# mkdir /test
# cd /test
# dd if=/dev/zero of=/test/10mbfile bs=10MB count=1
# ll <-용량확인
2.10mbfile <- 이 파일을 일반유저가 제어를 할 수 있도록 권한 설정을 한다.
# chmod 777 10mbfile
3. doom 유저로 접속
# cd /test/
# cp 10mbfile /home/doom/ <- 파일 크기 제한을 초과함
<실습> 공개 FTP 사이트를 통해서 5M 이상의 파일을 받아보자! 결과를 확인할수 있을 것이다.
$ ftp 172.16.7.99
soldesk
itclass
ftp>bin
ftp>ls
ftp> get bind-9.7.1-P2.tar.gz
ftp>quit
# ll
결과 확인
[doom@localhost ~]$ ftp 172.16.7.99
Connected to 172.16.7.99.
220-FileZilla Server version 0.9.37 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (172.16.7.99:doom): soldesk
331 Password required for soldesk
Password:
230 Logged on
Remote system type is UNIX.
ftp> bin
200 Type set to I
ftp> ls
227 Entering Passive Mode (172,16,7,99,201,78)
150 Connection accepted
-r--r--r-- 1 ftp ftp 7549535 Sep 02 2010 bind-9.7.1-P2.tar.gz
226 Transfer OK
ftp> get bind-9.7.1-P2.tar.gz
local: bind-9.7.1-P2.tar.gz remote: bind-9.7.1-P2.tar.gz
227 Entering Passive Mode (172,16,7,99,201,80)
150 Connection accepted
bind-9.7.1-P2.tar.gz: short write
426 Connection closed; transfer aborted.
5119048 bytes received in 0.74 seconds (6.8e+03 Kbytes/s)
=> 받다가 5MB 에서 끊어버리는 것을 확인 할 수 있다.
ftp> quit
221 Goodbye
[doom@localhost ~]$ ll
합계 10042
-rw-r--r-- 1 doom doom 5120000 10월 16 16:50 10mbfile
-rw-rw-r-- 1 doom doom 5120000 10월 16 17:05 bind-9.7.1-P2.tar.gz
=====================================================================================
일반계정인 user01 을 wheel 그룹에 포함을 시키는데 앞에 %라는 것은 모든 것을 의미한다.
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
%wheel ALL=/bin/mount -t iso9660 /dev/cdrom /mnt/cdrom,/bin/umount /mnt/cdrom
=> 모든
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
/* 라인 추가 */
===================================================================
윈도우즈에 있는 자료를 리눅스로 가져가는 방법!
01. ftp 서버를 이용하는 방법
가 . 윈도우즈를 ftp 서버로 구현을 해서 리눅스에서 가져오는 것!
나 . 리눅스를 ftp 서버로 구현을 해서 윈도우즈에 있는 자료를 가져오는 것!
다. 프로그램을 이용하는 방법 ( winscp )
다 방법에 대해 알아보자. winspc 는 cafe.naver.com/linuxlog 로 알아보자.
PROXY( 중계 서버 ) : 역할을 한다. 방화벽 기능을 하지만 방화벽을 하지 않는다. 일반적으로 라우터, 스위치로 다이렉트로 가기 때문에 좀더 빠르다. PROXY 같은 경우 개인 사업 목적으로 이용하거나 광고를 올려서 이익을 창출하려고 이용하는 경우가 많다.
1.1.1.1 에 접속을 하려고 하면 로그에 모두 기록이 남는다.
PROXY 를 이용하는 장점 & 단점 ?
단점부터 이야기 해보면
내 IP 는 PROXY 에 남게 된다. 원래 IP 인 1.1.1.1 이 남는 것이 아니라 PROXY 서버의 IP인 2.2.2.2 가 남게 되는 것이다. 그래서 크래커들이 악이용 할 수 있다.
그리고 차단을 위해서 만든 것이기 때문에 느리다.
학교에 PROXY 서버를 설치 : 병목현상
[보안관리자?] 서버를 관리하게 될 것이다. 가장 중요한 것은 ? 지속적으로 관리자가 공부를 해서 안정적으로 운영을 할 것을 연구해야 된다. 그러나 관리자가 똑똑하지 못하면 해킹을 당하게 되는 것이다.
다시 수업으로 넘어와서 http://www.squid-cache.org/ 사이트를 가보자.
squid의 기능
HTTP, FTP 등의 프로토콜 프록시와 캐시기능
SSL을 위한 프록시
계층적인 캐시 지원
ICP, HTCP, CARP, Cache Digests 지원
Transparent Cache(투명 캐시) 지원
WCCP 지원 : 캐시 서버가 다운되었을 경우 처리에 관련된 프로토콜
Access Control List 지원
HTTP 서버 가속 기능
SNMP 지원
DNS LOOKUP 캐시 지원
access_log /var/log/squid/access.log squid
프록시 서버에 접속하여 이용한 클라이언트들의 접속로그 기록을 어디에 저장할 것인지를 설정하는 것이다.아직도
[root@localhost squid]# vi squid.conf
632 #acl our_networks src 192.168.1.0/24 192.168.2.0/24
636 http_access allow localhost
637 http_access deny all
=> 막고 허용하는 것은 얘네들이 하는 것이다.
OS 보안? 강사가 느끼기 에는
1. OS 의 기본을 제외하고 관리자가 계속적으로 연구해야 되고 하는 것도 중요하지만 막는 것이 우선이다. LINUX 같은 경우도 전세계 사람들을 다 막고 지금 사용하고 있는 사람들만 열어주는 것이다.
[root@localhost squid]# service squid restart
squid 를 정지 중: [ OK ]
squid (을)를 시작 중: . [ OK ]
[root@localhost squid]# ps -ef | grep squid
root 19628 1 0 11:01 ? 00:00:00 squid -D
squid 19630 19628 0 11:01 ? 00:00:00 (squid) -D
squid 19631 19630 0 11:01 ? 00:00:00 (unlinkd)
root 19635 19240 0 11:01 pts/0 00:00:00 grep squid
[root@localhost squid]# netstat -atp | grep squid
tcp 0 0 *:squid *:* LISTEN 19630/(squid)
=> 현재는 LISTEN 상태인 것을 확인 할 수 있다.
======================================================================================
LINUX 안에 SQUID 가 있다고 보자. 응답해서 나가는 경우 LINUX -> VMWare ->
프록시 설정을 이용하면 웹브라우져에서
국가에서 차단해 놓은 우리민족끼리에 접속이 된다.
http://xroxy.com/ => 무료 Proxy 서버를 확인 할 수 있다.
http://anonymouse.org => 여기에는 해당 URL 을 입력하면 접속이 가능하다.
====================================================================================
IPtraf
====================================================================
파일 속성(attribute) 변경 방법
서비스 해킹을 당한 경우 => 명령어의 속성이 변경되었다면 해킹을 당했다고 봐야 한다.
[root@localhost /]# mkdir test
[root@localhost /]# cd test/
[root@localhost test]# touch file1
[root@localhost test]# chattr +i file1
[root@localhost test]# lsattr file1
----i-------- file1
[root@localhost test]# rm file1 //여기에서는 삭제가 안된다.
rm: remove write-protected 일반 빈 파일 `file1'? y
rm: cannot remove `file1': 명령이 허용되지 않음
[root@localhost test]# ls -al
합계 12
drwxr-xr-x 2 root root 4096 10월 16 12:26 .
drwxr-xr-x 30 root root 4096 10월 16 12:26 ..
-rw-r--r-- 1 root root 0 10월 16 12:26 file1
[root@localhost test]# chattr -i file1 // 속성을 변경한 뒤에
[root@localhost test]# lsattr file1
------------- file1
[root@localhost test]# rm file1 // 삭제하면
rm: remove 일반 빈 파일 `file1'? y
[root@localhost test]# ls -al
합계 12
drwxr-xr-x 2 root root 4096 10월 16 12:27 .
drwxr-xr-x 30 root root 4096 10월 16 12:26 .. // 삭제된 것을 확인할 수 있다.
서버가 뚫린다고 하면 가장 먼저 해야할 일은? 아래의 것들을 확인합시다
[참조] chattr 과 lsattr 의 용도
내가 운용하는 서버가 해킹당했다면 여러가지를 확인해야 하는데 그 중에서 명령어들의 속성정보를 확인해야 한다.
아래 디렉토리들이 기본적으로 리눅스의 명령어들이 있는 디렉토리이다.
# lsattr /bin/ <- 일반적인 ls,ping 같은 명령어들이 위치
# lsattr /usr/bin <- 시스템 명령어들 reboot,shutdown 과 같이
# lsattr /usr/bin <- 프로그램들의 명령어
# lsattr /usr/sbin <- 기타 명령어
기본적으로 위 4개의 디렉토리에는 어떠한 속성도 걸려있지 않는데 그게 정상이다.
[참고] netstat 명령어는 네트워크의 상태를 자세히 볼 때 사용하는데 해킹이 당한 상태라던가, 또는 내서버에 누가 접속해있는지 확인 할 때도 사용한다.
[root@localhost test]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:953 0.0.0.0:* LISTEN
tcp 0 0 :::80 :::* LISTEN
=> 현재 웹포트에는 아무도 이용을 안하고 있다는 것을 확인할 수 있다.
tcp 0 0 :::22 :::* LISTEN
tcp 0 132 ::ffff:192.168.10.129:22 ::ffff:192.168.10.1:51029 ESTABLISHED
udp 0 0 0.0.0.0:40349 0.0.0.0:*
udp 0 0 0.0.0.0:947 0.0.0.0:*
udp 0 0 192.168.122.1:53 0.0.0.0:*
udp 0 0 0.0.0.0:950 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
udp 0 0 :::60377 :::*
udp 0 0 :::5353 :::*
방어하는 것도 모두 사람이 만든 것이기 때문에 뚫리기 마련이다.
====================================================================
SSH 보안
http 사이트 TCP/IP 보안이 안되어 있다.
나쁜 사람의 경우 : 화면에 나오는 정보가 통문자 형식으로 다들어오게 된다. 그런문제를 해결하기 위해서 만든 것이 https 이다. 3주차 정도에 다룰 예정이다.
Shell 도 보안이 안되어있는데 그래서 개발된 것이 SSH 이다. 프로그래밍이 최신이라고 해서 좋은 것은 아니다. 쉽게 생각해보자. 지금 PC 에 게임을 돌리려고 한다. 지금 그래픽 드라이버를 최신 버젼으로 사용하려고 한다. 하지만 호환문제 때문에 버벅 거릴 수 있다.
단, 리눅스의 경우는 프로그램 이용시에 반드시 stable 버전을 이용해야 한다. 실무에서 프로그래밍을 이용할 때에도 결제시에 코딩이 꼬여서 결제 오류같은 것이 생길 수 있다. SSH 가 크게 2가지가 있다.
유료 : ssh2.com 에서 운영하는 버전
무료 : openssh => open source 버전이라고 생각하면 된다. 정확하게 말하면 오픈이라면 무료가 아니라 공개버전이라는 것이다.
올해 연초에 ssh2.com 이 없어진 것 같다. ssh 는 공개 버전인 것이다.
http://www.cve.mitre.org/
=> 프로그램의 취약점에 대해서 공개적으로 나와있는 웹페이지
[root@localhost ssh]# cat ssh_host_rsa_key
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAxRBMXNJZVk3y/3vmQZggi1zdNLxVADvXnhbQpzftKLuoqFx6
VwecbSQYKwM/IrKZJENayYTRfLgVlxcDIP2R9IbBXVDWhQlXSPWjfBuGfXFAz710
YTcuTHAALWPLFGGIn5UA8tuUep7MZCAvq5UwfDRQ/OpM9EVzdleHGEwZhjBeZ/jR
VF0lPn4K5mCrHZT5NZ0EjSxbNaDqGwKtw+w+RtpxCA4tTgsmWu0EaRIgDIiGGtfp
5Bo8RkcF5QpMqD1pBxaCLEybbu9lF62ax9h0e1hieNRBQ7D7lGSiHsos45jE6A4q
us9zOUF2LY8LxkgkHwmh5RzhkNLUiRv8nA864QIBIwKCAQEAhyEea4jszXdHip4a
O5uEB8qmUAwdB3l96L8v/aKxQICuKk4Kv1WtF6O4zQmKYO9+9EtxdD3RehfUSljs
M+EToFxnVe5J9NM0ic0CY7saZKVuRU62NAiUxrMzUlMO6WdzoKCwMYCgVBUecIsZ
X7bCKUhyDINn9/Ub+WCXJpqVKM9/0UmJ48BRJm/95+nfNB+eyBmMR0x88dc57rzG
gyt3CC3RnLkgnpo2K5YT9q+TzV94a5IG5esSHSWQF+7y/QfdclNO8YTmyF79RlDj
Zrt/boqr1QuTUN1yQbN6Iv0hzLtlOCP13fXHzX4MIe68WnT6A01SENLXMJd0/Mnj
Z4tbqwKBgQD7FPgrPM8WcU1lczmfAFZtpDQaGMf2Be31zdYdrRP41NXwcfKDQXpa
9kjk8rNttv4g23JFQKZ4zohq/O7cX1NI1oUFFgwNs962DHEH8J3iVENUzNsxV5/Y
H6Qm+AsCDlZYs376jKpMY8PqojqSgyyffSmQIGg1wclkQoXSM2xcFwKBgQDI7HVn
q2rtynf91kdRRpBurZj94b+ETwO/0QPul44322xZkY2vz+/nD76Xrp6ldLSATTCv
6Xzzt+fTb974l+lSlIKp9gln1tt9r1vx4Wki+zV9v/LZFiOHf5q+XmNZirEjQrAU
SnQOHyW52dhRPzDtXQ9PbCvcqCyQVe++xvejxwKBgQCk/ya9U9iLF0F9LnZSizF7
QAT7NNsspM+S5lmBNzkCmn31xzj3KwdDFt9x4VFWuhS2gZQ8IyuRN0O0BUyCMAOH
oumy4po04+of3EpHC9V3eTOPf042Xic2QK2zNUkP+ssHFt5qIexA09iEPrjGrfjA
lBP/oER7GPIOr19A/TiUSQKBgAt7OeiqtacwJB0iL/YECEDWuEkFlepNqHFcZp/r
ZzZkT1WTSezKDbVunS09LaMN+6+PYd4qmW0DMdGRXTLG2iH525Su+TkiOG2U/fCQ
iao6PZIoOcNDF/kdPArg0nolLrGOyDuse6kJGBk/pfYDnGVVxlxPUvaqhjQiKvT1
bTyPAoGANIfUxIRgHr1cABxtOzzsTCb+rHL9uDwYwzAwBXtUFVoIEF3mK9fmiY2E
4+4yZybCM0rMmKR2kbPe4xkVvxL/BQnVGKAubK09GrGwuwhEJflw2SHKUtxVzxzT
h4pnPMUgkwUC+B/c1IyUgRTDyulWXoKS/KRHi2DA7/JZ4yQ9jL4=
=> 키 값을 확인 할 수 있다.
13 #Port 22 //ssh port #
14 #Protocol 2,1
15 Protocol 2 //
서버가 제 역할을 못하는 것 1. Emergency 2. Alert 3. C .... 4 .Warning
38 #LoginGraceTime 2m
39 #PermitRootLogin yes
40 #StrictModes yes
41 #MaxAuthTries 6 //창 접속 시도 횟수 6번 이라는 것
87 UsePAM yes //
[실습1] root 막고 접속하기 ( sshd_config 파일 )
=>
39 #PermitRootLogin yes => no 로 바꾸어준다.
서비스의 환경 설정을 변경했으면 그 내용 적용시키기 위해서 당연히 데몬을 재시작 해야 한다.
# service sshd restart
[실습2] 포트 변경해서 접속하기
=> 13 #Port 22 => 22 대신 1004 로 변경
# service sshd restart
[실습] openssh 프로그램을 최신 안정버전을 설치해보세요. yum 을 이용하세요!
물론, 기존의 openssh 삭제가 먼저입니다.
(01) yum remove openssh*
(02) 삭제가 되었는지 확인 # yum,info openssh
또는 # rpm -qa | grep openssh
(03) 설치는 직접!!
=> 실행 결과
[root@localhost ~]# yum info openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.daum.net
* extras: ftp.daum.net
* updates: ftp.daum.net
Available Packages
Name : openssh
Arch : i386
Version : 4.3p2
Release : 72.el5_7.5
Size : 289 k
Repo : updates
Summary : The OpenSSH implementation of SSH protocol versions 1 and 2
URL : http://www.openssh.com/portable.html
License : BSD
Description: SSH (Secure SHell)는 원격 컴퓨터로 로그인하고 이곳에서 명령을 실행하기 위한
: 프로그램입니다. SSH는 rlogin 와rsh 의 대용으로, 보안성이 떨어지는 네트워크에서
: 서로간의 신뢰성을 보장할 수 없는 호스트들간의 암호화된 통신을 하게해줍니다.
: X11 이나 그 외 TCP/IP 포트들은 이 안전한 채널로 포워딩 할 수 있습니다.
:
: OpenSSH는 SSH의 최신 프로 버젼의 OpenBSD의 버젼으로 보안 및 기능에 관한
: 최신 내용을 제공하고 라이브러리를 분리하기 위해 특허가 있는 알고리즘을 삭제합니다.
:
: 이 패키지는 OpenSSH 클라이언트와 서버에 필요한 핵심 파일들을 담고 있습니다.
: 이 패키지를 제대로 사용시려면openssh-clients 나 openssh-server를 설치
: 하십시오.
이렇게 지워 놓으면 원격창이 안되는 것이다. 하지만 터미널은 연결이 되어있어서 작업이 되는 것이다. 일종의 좀비 프로세스인 것이다.
[root@localhost ~]# rpm -qa | grep openssh
=====================================================================================
Webssh
http://192.168.10.129/webssh/login.html
=>웹상에서 접속이 가능한 것을 확인 할 수 있다.
======================================================================================
Linux 보안 일반
[root@localhost webssh]# cd /etc/rc.d
[root@localhost rc.d]# ls -alF
합계 136
drwxr-xr-x 10 root root 4096 6월 5 2010 ./
drwxr-xr-x 108 root root 12288 10월 16 10:56 ../
drwxr-xr-x 2 root root 4096 10월 16 14:59 init.d/
-rwxr-xr-x 1 root root 2255 7월 4 2009 rc*
-rwxr-xr-x 1 root root 220 7월 4 2009 rc.local*
-rwxr-xr-x 1 root root 27476 9월 29 2009 rc.sysinit*
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc0.d/ // init 0 => shutdown
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc1.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc2.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc3.d/ // 이 안에 있는 것이 실행 되는 것이다.
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc4.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc5.d/
drwxr-xr-x 2 root root 4096 10월 16 14:59 rc6.d/ // 재부팅
[root@localhost rc.d]# runlevel
N 3 // 현재 런레벨 3 이 세팅되어 있는 것을 알 수 있다.
[root@localhost rc.d]# cd ./rc3.d/
[root@localhost rc3.d]# ls
K01dnsmasq K69rpcsvcgssd S04readahead_early S18rpcidmapd S56rawdevices
K02NetworkManager K73ypbind S05kudzu S19rpcgssd S56xinetd
K02avahi-dnsconfd K74ipmi S07iscsid S20kdump S64mysqld
K02oddjobd K74nscd S08ip6tables S22messagebus S85gpm
K05conman K74ntpd S08iptables S23setroubleshoot S90crond
K05saslauthd K85mdmpd S08mcstrans S25bluetooth S90httpd
K05wdaemon K87multipathd S10network S25netfs S90xfs
K10psacct K88wpa_supplicant S11auditd S25pcscd S95anacron
K10tcsd K89dund S12restorecond S26acpid S95atd
K20nfs K89netplugd S12syslog S26apmd S97libvirtd
K24irda K89openibd S13cpuspeed S26haldaemon S97yum-updatesd
K35vncserver K89pand S13irqbalance S26hidd S98avahi-daemon
K35winbind K89rdisc S13iscsi S26lm_sensors S99firstboot
K36lisa K99readahead_later S13portmap S28autofs S99local
K50ibmasm S00microcode_ctl S14nfslock S55sshd S99smartd
K50netconsole S02lvm2-monitor S15mdmonitor S56cups
=> 명령어가 안될 때 위의 것을 수동으로 이용할 수 있다. 그래서 관리자가 공부하는 것이 필요하다.
==============================================================================
리눅스를 할 때에 DIR 을 많이 알아두어야 한다. 문제가 생기면 고쳐야 하는데 못 고치게 된다. LPIC 같은 경우에는 문제가 없다. RHC2 같은 경우에는 본사에 가서 시험을 봐야 한다.
=============================================================================
<PAM이란?>
Pluggable Authentication Modules의 약자로서 그대로 해석한다면 “뺐다 붙였다 할 수 있는 인증모듈’ 정도가 된다.
[root@localhost pam.d]# pwd
/etc/pam.d
[root@localhost pam.d]# ls
atd hwbrowser ppp system-config-authentication
authconfig kbdrate pup system-config-date
authconfig-gtk kcheckpass reboot system-config-display
authconfig-tui kdm remote system-config-kdump
chfn kdm-np run_init system-config-keyboard
chsh klaptop_acpi_helper runuser system-config-language
config-util kppp runuser-l system-config-lvm
cpufreq-selector kscreensaver sabayon system-config-network
crond kshell screen system-config-network-cmd
cups ksu serviceconf system-config-rootpassword
cvs login setup system-config-securitylevel
dateconfig neat smtp system-config-services
eject newrole smtp.sendmail system-config-soundcard
ekshell other sshd system-config-time
gdm passwd su system-config-users
gdm-autologin pirut su-l system-install-packages
gdmsetup pm-hibernate sudo virt-manager
gnome-screensaver pm-powersave sudo-i xserver
gnome-system-log pm-suspend system-auth
gssftp pm-suspend-hybrid system-auth-ac
halt poweroff system-cdinstall-helper
=> 여러가지 인증 모듈을 볼수 있는데
# vi login // 잘못 건들게 되면 Root 조차 접속을 못하게 된다.
session required /lib/security
[확인] doom 계정으로 5개의 원격창을 확인하기 => 5개 이상을 띄우려는 순간에 바로 닫아진다.
원격접속을 했을 때에 어디에 로그가 남을까? => /var/log/ 안에 secure 에 기록이 된다.
Oct 16 16:05:17 localhost sshd[21556]: pam_unix(sshd:session): session opened for user doom by (uid=0)
Oct 16 16:05:17 localhost sshd[21556]: error: PAM: pam_open_session(): Permission denied
Oct 16 16:08:05 localhost sshd[21566]: Accepted password for doom from 192.168.10.1 port 52705 ssh2
Oct 16 16:08:06 localhost sshd[21566]: pam_limits(sshd:session): Too many logins (max 4) for doom
Oct 16 16:08:06 localhost sshd[21566]: pam_unix(sshd:session): session opened for user doom by (uid=0)
Oct 16 16:08:06 localhost sshd[21566]: error: PAM: pam_open_session(): Permission denied
=> 이와 같은 로그가 남아 있는 것을 확인할 수 있다.
====================================================================================
[root@localhost log]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 11200
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 11200
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited // 무제한
=> 설정값을 확인할 수 있다.
etc/profile
=> 모든 유저가 여기에 있는 설정값을 가지고 간다. 여기에 설정을 하는데 어떤 설정을 하느냐?
끝나는 시점을 활용해서 넣어주어야 한다.
[root@localhost log]# source /etc/profile
=> 수정한 뒤 확인결과 아무이상이 없다는 것이다.
[root@localhost log]#
[실습 01 ] 내부에서 즉, 일반유저(doom)가 내부에서 5MB 파일이 제한을 받는지 즉, 복사나 새로 만들기를 해보면 되는데요. 5MB 이상 파일을 만들어서 테스트 해보도록 할께요!
[root@localhost test]# vi /etc/pam.d/login
[root@localhost test]# vi /etc/security/limits.conf
=> 여기에서 원래대로 설정 만들어 주고 넘어가기
<중요> /etc/profile 파일 수정후에 바로 적용시킬려면 # source /etc/profile 해줘야 한다!
# ulimit test
if [ $LOGNAME != "root" ];
then
ulimit -Su 10 # 유저가 생성 가능한 프로세스 수 10개로 제한
ulimit -Sv 20000 # 유저가 사용 가능한 메모리 20M로 제한
ulimit -Sf 5000 # 생성할 수 있는 한 파일의 사이즈 5M로 제한
fi
[doom@localhost test]$ cp 10mbfile /home/doom // <=이와 같은 결과
파일 크기 제한을 초과함
이 과정을 제대로 알아보자.
1. root 계정으로 /test/ 디렉토리 안에 10mb 파일을 만든다.
# rm -rf /test
# mkdir /test
# cd /test
# dd if=/dev/zero of=/test/10mbfile bs=10MB count=1
# ll <-용량확인
2.10mbfile <- 이 파일을 일반유저가 제어를 할 수 있도록 권한 설정을 한다.
# chmod 777 10mbfile
3. doom 유저로 접속
# cd /test/
# cp 10mbfile /home/doom/ <- 파일 크기 제한을 초과함
<실습> 공개 FTP 사이트를 통해서 5M 이상의 파일을 받아보자! 결과를 확인할수 있을 것이다.
$ ftp 172.16.7.99
soldesk
itclass
ftp>bin
ftp>ls
ftp> get bind-9.7.1-P2.tar.gz
ftp>quit
# ll
결과 확인
[doom@localhost ~]$ ftp 172.16.7.99
Connected to 172.16.7.99.
220-FileZilla Server version 0.9.37 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (172.16.7.99:doom): soldesk
331 Password required for soldesk
Password:
230 Logged on
Remote system type is UNIX.
ftp> bin
200 Type set to I
ftp> ls
227 Entering Passive Mode (172,16,7,99,201,78)
150 Connection accepted
-r--r--r-- 1 ftp ftp 7549535 Sep 02 2010 bind-9.7.1-P2.tar.gz
226 Transfer OK
ftp> get bind-9.7.1-P2.tar.gz
local: bind-9.7.1-P2.tar.gz remote: bind-9.7.1-P2.tar.gz
227 Entering Passive Mode (172,16,7,99,201,80)
150 Connection accepted
bind-9.7.1-P2.tar.gz: short write
426 Connection closed; transfer aborted.
5119048 bytes received in 0.74 seconds (6.8e+03 Kbytes/s)
=> 받다가 5MB 에서 끊어버리는 것을 확인 할 수 있다.
ftp> quit
221 Goodbye
[doom@localhost ~]$ ll
합계 10042
-rw-r--r-- 1 doom doom 5120000 10월 16 16:50 10mbfile
-rw-rw-r-- 1 doom doom 5120000 10월 16 17:05 bind-9.7.1-P2.tar.gz
=====================================================================================
일반계정인 user01 을 wheel 그룹에 포함을 시키는데 앞에 %라는 것은 모든 것을 의미한다.
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
%wheel ALL=/bin/mount -t iso9660 /dev/cdrom /mnt/cdrom,/bin/umount /mnt/cdrom
=> 모든
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
/* 라인 추가 */
===================================================================
윈도우즈에 있는 자료를 리눅스로 가져가는 방법!
01. ftp 서버를 이용하는 방법
가 . 윈도우즈를 ftp 서버로 구현을 해서 리눅스에서 가져오는 것!
나 . 리눅스를 ftp 서버로 구현을 해서 윈도우즈에 있는 자료를 가져오는 것!
다. 프로그램을 이용하는 방법 ( winscp )
다 방법에 대해 알아보자. winspc 는 cafe.naver.com/linuxlog 로 알아보자.
'Computer Engineering > LINUX' 카테고리의 다른 글
LINUX#2 - (0) | 2011.10.23 |
---|---|
LINUX#2 - SAMBA (0) | 2011.10.22 |
LINUX#2 - 다시 한 번 시작해 봅시다 ^^ (0) | 2011.10.15 |
LINUX#2 - IDS (0) | 2011.08.01 |
LINUX#2 - 방화벽 (0) | 2011.07.28 |