OKOP 오케이오피

우분투 명령 이용 자료

 


우분투 업데이트

apt-get update

apt-get upgrade  <-기존설치 패치 업데이트


계정생성

useradd 계정명

adduser 계정명

 

생성계정 비번 부여

passwd 계정명

 

계정삭제

userdel  계정명

 

각종설정 계정폴터 변경 외 기타 설정들

/etc/passwd

 

폴터 생성

mkdir 폴터명

 

폴터 삭제

rm -rf 폴터위치

rm -r 파일위치 # 파일삭제

 

파일찾기

find / -name ' 폴터명' -type d


FTP 에러해결

에러 553 Could not create file.

# chow 계정이름 /파일위치

에러 ftp 550 

chown -R 계정명 /var/www

chmod -R 775 /var/www

 

FTP설정 변경

/etc/vsftpd.conf

FTP재시작 service vsftpd restart


anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_local_user=YES

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES


 

파일권한 변경 - FTP업로드 안되면 폴터 권한 777 로 변경 하고 사용

chmod 권한 폴터위치

chmod 711 /var/1234

 

아파치 재시작  2가지 방법

/etc/init.d/apache2 restart

service apache2 reload

 

 

도메인 연결

 파일생성

/etc/apache2/sites-available/도메인명.conf

 

<VirtualHost *:80>
ServerName ***.com #도메인명


#additional domain
ServerAlias www.***.com #도메인


#document Root
DocumentRoot /home/www  #루트위치


#additional setting
<Directory>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
require all granted
</Directory>
</VirtualHost>

 

 

사이트 활성화

a2ensite 도메인명

 

사이트 비활성화

a2dissite 도메인명

 

 

 

v_1 . vsftpd 계정 상위폴터 접근제한

편집 /etc/vsftpd/vsftpd.conf

추가내용

chroot_local_user=YES

 

v_2 . 특정사용자만 - 상위폴터 접근제한

편집 /etc/vsftpd.chroot_list

추가내용

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.coroot_list

특정사용자만 사용시 위 v_1 설명에서 YES 를  NO 로 변경해줘야 함.

 

 

우분투 트래픽 모니터링 vnstat


1. 설치

apt-get install vnstat

2. 데이터베이스 지정

vnstat --iflist Available interfaces: lo eth0

3. 데이터베이스 생성

vnstat -u -i eth0

4. 동작테스트

vnstat --testkernel

Everything is ok.


vnstat PHP 다운로드 페이지

http://www.sqweek.com/sqweek/index.php?p=1

 

도메인 연결설정 에러해결

500 Internal Server Error


/etc/hosts 에서

모르는 도메인은 다 삭제하고  자신의 도메인 추가


/etc/apache2/sites-available/도메인명.conf  파일에

ServerName 에 설정한 이름 추가


127.0.0.1 localhost

127.0.0.1 이름


포트확인

netstat -an | grep "LISTEN "

알수없는 포트가 열려 있다면 해킹을 의심해볼수 있다.


열린 포트 확인

nmap localhost


포트와 프로세스 확인

netstat -anp | grep "LISTEN "


보안 phpMyAdmin 경로 변경

/etc/phpmyadmin/apache.conf 에서

Alias /변경이름 /usr/share/phpmyadmin

저장후 service apache2 restart


ssh 설치

apt-get install openssh-server


보안 SSH 포트 변경

/etc/ssh/sshd_config 에서

Pore 22 를 원하는 수자로 변경

service ssh restart

작동확인 netstat -ntl


ssh접속시 정보 출력

landscape-sysinfo



ufw 방화벽


ufw enable # 방화벽 켜기

ufw disable # 방화벽 닫기

ufw defauylt allow  # 모든 포트 열기

ufw defauylt deny  # 모든 포트 닫기

ufw allow 포트/프로토콜  #- 모든 포트 닫은후 원하는 포트만 열기

ufw deny 포트/프로토콜  #- 원하는 포트만 닫기


부정침입 ip 확인후 거부설정 / IP 주소 확인 http://www.findip.kr/where.php

/var/log/auth.log # 로그 확인

ufw deny from 아이피 주소 # 특정 IP 막기

ufw deny from 192.168.0.0/24  # 설정시 1~255 포트거부 


포트 열기


iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT 


접속시도 하는 IP 자동 차단


apt-get으로 fail2ban 설치


apt-get install fail2ban


설정파일 수정

/etc/fail2ban/jail.conf


ignoreip = 127.0.0.1/8      # 로컬접속은 ban 시키면 안됨

bantime  = 600              # 60초 동안

maxretry = 3                # 3번  이상 접속 못하는 IP는 차단


데몬 재시작

/etc/init.d/fail2ban restart


확인

/var/log/auth.log를 보면 IP가 몇번 시도하다가 더이상 시도를 안한것 처럼 보입니다.

fail2ban을 설치하기 전에는 수백번씩 로그가 남아 있었죠



DDOS 방어 mod_evasive

조그마나 방어 해줌


1.설치

apt-get install libapache2-mod-evasive


2.디렉토리 만듬

mkdir /var/log/mod_evasive


3.로그 기록 권한

chown www-data:www-data /var/log/mod_evasive/


4.위치 파일명 설정만듬

/etc/apache2/mods-available/mod-evasive.conf


추가

<ifmodule mod_evasive20.c>

  DOSHashTableSize 3097

  DOSPageCount  2

  DOSSiteCount  50

  DOSPageInterval 1

  DOSSiteInterval  1

  DOSBlockingPeriod  10

  DOSLogDir   /var/log/mod_evasive

  DOSEmailNotify  email-address

  DOSWhitelist   127.0.0.1

</ifmodule>


5.활성화

a2enmod mod-evasive

6.서버다시시작

service apache2 restart


nginx



버전 숨김 server 안에 넣어줌

server_tokens off;


기본

/etc/nginx/sites-available/default


시작

service nginx reload

service nginx start


시작후 fail 보이면 에러 찾기

nginx -t


PHP작동 안되면 실행 / 이건 cgi 로 연결됨

spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php5-cgi


한방에 모두 설치

$ sudo apt-get install python-pip -y

$ sudo pip install npmanager

$ sudo npmanager install

If you want to continue press RETURN(Enter) key or CTRL + C to exit:  # press enter

# select nginx, php and mariadb version you want to install and take a coffee break :)





서비스 시작

update-rc.d *** enable

서비스 종료

update-rc.d *** disable


우분투 파일 수정후 반응이 없으면

명령어 reboot


트래픽 조회 vnstat

설치 apt-get install vnstat


데이터베이스 생성

vnstat -u -i eth0


조회

vnstat


실시간조회

vnstat -l -i eth0


웹에 설치하여 보실경우

http://www.sqweek.com/sqweek/index.php?p=1


리눅스 특정 포트 port 죽이는 방법.

  

1. 특정 포트 확인


# netstat -nap | grep 포트번호

 

2. 특정 포트에서 사용하는 프로그램 확인


# lsof -i TCP:포트번호

  

3. 특정 포트를 사용하는 프로그램 죽이기


# fuser -k -n tcp 포트번호


nginx 에서 phpmyadmin 설정 및 주소 변경


nginx  phpmyadmin 연결



/etc/nginx/sites-available/default


추가

    location /phpmyadmin {

    root /usr/share/;

    index index.php index.html index.htm;

    location ~ ^/phpmyadmin/(.+\.php)$ {

        try_files $uri =404;

            root /usr/share/;

            fastcgi_pass unix:/var/run/php5-fpm.sock;

            fastcgi_index index.php;

            fastcgi_param SCRIPT_FILENAME /usr/share$fastcgi_script_name;

            include fastcgi_params;

      }

    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {

            root /usr/share/;

          }

}

location /phpMyAdmin {

    rewrite ^/* /phpmyadmin last;

}

-----


service nginx restart



nginx phpmyadmin 주소 변경


1. cd /usr/share/nginx/html

2. sudo mv phpMyAdmin 원하는주소

3. ls -l

4. 설정완료 되었으면 위 설명에 파란색으로 되여 있는 phpmyadmin 변경한 주소로 변경해주시면 됩니다. 


이곳 설정에 따라 1번주소 입력해주시면 됩니다.

sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html



우분투 압축 - 압축풀기


압축

tar -cvf 이름.tar 폴더명 

tar -cvf test.tar /var/www


압축풀기

tar -xvf test.tar

tar -xvf test.tar -C /var/www #지정된 위치에 압축풀기