[Ubuntu] 방화벽(UFW), PORT 관리[Ubuntu] 방화벽(UFW), PORT 관리

Posted at 2018. 11. 16. 10:59 | Posted in Linux/Ubuntu
반응형

참조 : http://webdir.tistory.com/206




■ 우분투 방화벽(UFW), 포트 관리하기




세팅한 우분투 패키지 및 자원을 외부에서 접근을 관리하여, PORT를 통해 접근할 수 있게 작업해 보자.



#01. 방화벽 사용하기


 $ sudo ufw enable




#02. 방화벽 해제하기


 $ sudo ufw disable




#03. 방화벽 상태 확인


 $ sudo ufw status verbose




#04. 특정 포트의 접근 허용하기 - SSH 포트 접근 허용(TCP, UDP 모두 허용)


 $ sudo ufw allow 포트번호



위와 같이 특정 포트로 접근할 수 있게 방화벽을 열어주었다.


그럼 이제 다시 $ sudo ufw status verbose 명령을 입력하여


입력한 포트가 정상적으로 오픈 되었는지 확인해 보자.






반응형
//

[Ubuntu] 신규 계정 생성하기[Ubuntu] 신규 계정 생성하기

Posted at 2018. 11. 16. 01:26 | Posted in Linux/Ubuntu
반응형

참고 : http://freestrokes.tistory.com/64

참고 : http://overcode.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%82%AC%EC%9A%A9%EC%9E%90-%EB%AA%A9%EB%A1%9D-%ED%99%95%EC%9D%B8-Linux-User-List?category=627744



■ 우분투 신규 계정 추가하기




01. 새 계정을 생성한다.

 $ sudo useradd 계정명




02. 위에서 생성한 계정의 비밀번호를 지정한다.

 $ sudo passwd 계정명

 새 UNIX 암호 입력 : 패스워드

 새 UNIX 암호 재입력 : 패스워드




03. 계정이 잘 생성되었는지 아래 명려어를 입력하여 확인해 보자.

 $ grep /bin/bash /etc/passwd | cut -f1 -d:




04. 사용자 계정이 생성되면 우분투는 기본적으로 /home/생성한 계정 아이디로 폴더가 생성된다.

     그렇지만 이 계정을 생성한것은 root(관리자) 계정이기에 신규계정으로 아직은 사용할 수 없다.

     이제 /home/신규계정명 으로 생성된 폴더의 소유권을 변경해보자.

 $ sudo UserID:GroupID /home/ UserID로 생성된 계정명




※ Useradd, adduser로 생성한 계정은 로그아웃 해보면 위에서 생성한 계정이 만들어 진것을 확인 할 수 있다.





반응형
//

[Ubuntu] Ubuntu FTP 서버 설치 및 설정 변경하기[Ubuntu] Ubuntu FTP 서버 설치 및 설정 변경하기

Posted at 2018. 11. 15. 01:25 | Posted in Linux/Ubuntu
반응형




참고① : https://qnfmfmd.tistory.com/383

참고② : http://purekid79.tistory.com/62

참고③ : http://faq.hostway.co.kr/?mid=Linux_ETC&page=8&document_srl=1405

참고④ : https://ribin.tistory.com/10





■ FTP 서버(PORT 21)



-. FTP(File Transfer Protocol)는 가장 대표적인 파일 전송 프로토콜이다.

   (서버에 파일을 올리거나 내려 받을 때 사용하는 프로토콜이다.)

-. 파일 전송 프로토콜 중에는 가장 오래된 축에 속하지만 지금도 가장 많이 사용된다.

-. 비슷한 목덕을 가진 프로토콜로는 NFS, SMB, WebDAV 같은 것들이 있다.

-. FTP 서버 프로그램에는 대표적으로 ProFTPDVSFTPD 같은 프로그램이 있다.

   (우분투는 기본적으로 VSFTPD를 사용한다.)





■ 우분투에 VSFTPD 설치




VSFTPD의 설치는 apt-get 명령어를 통해 간단하게 설치 할 수 있다.



 $ sudo apt-get install vsftpd









■ VSFTPD 설정하기




VSFTPD의 설치가 완료되었다면 이제 vsftpd.conf 파일을 열고 수정한다.


아래 설정은 필자가 사용하기 위한 설정들로만 잡아둔 것이다.


설정한 내용들에 주석을 달아두었고, 위 참고 링크들을 확인하여,


필요한 내용들로 작업을 진행하는것이 좋다.



01. 먼저 VIM을 사용하여 vsftpd.conf를 수정한다.

 $ sudo vim /etc/vsftpd.conf

# STANDALONE(독립형) 모드로 서비스 할 경우 설정하는 옵션
listen=NO

# STANDALONE(독립형) 모드로 서비스 할 경우 설정하는 옵션
listen_ipv6=YES

# 로컬 계정 사용자의 FTP 접속 허용 여부를 정의한다.
# 서버에 존재하는 일반 계정으로 FTP 접속을 할 경우 YES로 설정한다.
local_enable=YES

# 쓰기권한을 허용 여부를 정의한다.
# NO로 설정할 경우는 파일업로드가 불가능하게 된다.
write_enable=YES

# 파일 및 디렉토리 생성시의 권한을 지정한다.
# 파일의 허가권한은 최대 666
# 디렉토리의 허가권한은 최대 777
# 여기서 UMASK의 뺀 값이 해당 파일의 허가권이 된다.
local_umask=022

# 디렉토리에 접근할때 보여줄 메세지를 표시한다.
dirmessage_enable=YES

# 서버의 로컬 시간을 사용할지를 지정
use_localtime=YES

# 파일 전송 로그를 남길 것인지 여부를 정의한다.
xferlog_enable=YES

# FTP의 20 포트 사용 여부를 묻는다.
# STANDALONE(독립형)모드에서, FTP 포트변경을 원할때 설정한다.
connect_from_port_20=YES

# 파일 전송 로그를 기록할 파일명을 정의한다.
# 로그를 저장하지 않을거라면 주석처리 해두자.
# xferlog_file=/var/log/vsftpd.log

# xferlog 형식으로 FTP LOG를 남기기 위한 설정이다.
# xferlog 표준 포맷은, 디렉토리 생성 등의 로그를 남기지 않으며,
# vsftpd 스타일의 로그는 디렉토리 생성을 포함한 보다 상세한 로그를 남기기 때문에, NO로 설정할 것을 권장한다.
xferlog_std_format=NO

# 홈디렉토리를 벗어나지 못하도록 제한하기 위한 설정을 정의한다.
# FTP 접속 후, 홈디렉토리 상위의 시스템 파일에 접근하지 못하게 하기위한 설정이다.

# 개인용으로 사용할 경우 NO, 여러사람과 함께 사용할경우 YES
chroot_local_user=NO

# 상위 디렉토리의 접근의 허용 여부를설정
allow_writeable_chroot=YES

# 발급받은 SSL / TLS 인증서의 경로를 입력하여 FTPS를 구성한다.
# P.S : 처음설치하고 세팅할때는 없는 부분이었다 자동으로 주석이 풀리고 입력되었는데)
#        SSH 서버 설치 이후(openssh-server) 추가된 것으로 추측된다.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

# SSL 보안 연결을 활성화 여부
ssl_enable=NO


#####################################################################################################


#
# 아래부터는 Ubuntu 에서 설치한 vsftpd.conf 설정에 적혀있지 않은 설정들로 직접 입력하여 작성하였다.

# Ubuntu 버전 : 18.04

# VSFTPD 버전 : 3.0.3.-9

#


# 네트워크 서비스에 관련된 트래픽을 제어하고 모니터링할 수 있는 가장 기본적인 방화벽 도구
# xinetd 수퍼데몬으로 관리하는 서비스 데몬만 제어가 가능하다.
# standalone방식으로 서비스하는 데몬은 TCP Wrapper로 접근제어가 불가능하다.
tcp_wrappers=YES

# 사용자 리스트의 활성여부를 묻는다.
# userlist_enable=YES    // 유저 리스트를 활성화 시킨다.
# userlist_enable=NO    // 거부자목록으로 쓰지 않으면 유저리스트에 등록된 사용자에 한해서만  FTP 사용이 가능하다.
#                                  // 유저 리스트에 등록되어 있더라도 /etc/vsftpd/ftpuser에 등록된 사용자는 접속이 불가능하다.
#                                           
# /etc/vsftpd/user_list에 등록된 사용자는 접속 거부 / 승인 목록이 될수 있다.
# /etc/vsftpd/ftpuser에 등록된 사용자는 user_list에 상관 없이 접속할 수 없다.
# root 등의 사용자는 보안을 위해 접속을 허용하지 않는것이  보통이다.
# 그렇지만 userlist_enable=NO 설정을 해주고 ftpusers에서 root를 삭제하면 root로도 FTP 접속이 가능하다.
#
# P.S : 필자가 설정한 우분투에는 기본적으로 없던 항목들이고.
# 실제 세팅에서는 해당부분은 아예 적지 않았다.
# 사용을 원한다면 특정경로에 user_list 파일을 생성해주고 작성하여야 한다.

# /var/log/xferlog 파일과 /var/log/vsftpd.log 파일 모두에 FTP 파일 전송 기록이 저장됨
dual_log_enable=YES

# 클라이언트와 서버 사이의 모든 FTP 프로토콜 트랜잭션 로그를 기록함.
log_ftp_protocol=YES


anonymous 사용자의 접속 허용 여부를 정의한다.

# 기본은 YES이며 공개용 FTP 서버로 사용하지 않는 경우는, NO로 변경해서 사용한다.

anonymous_enable=YES




02. 설정이 끝났으면 vsftpd를 리스타트 해준다.

 $ sudo service vsftpd restart




03. VSFTPD가 정상적으로 재시작 되었다면 이제 FTP에 붙는지 확인해 보자.

 $ ftp 120.0.0.1(설정한 서버의 IP를 작성)

 Name : 우분투 계정 아이디

 Password : 우분투 계정 비밀번호




04. 모든 작업이 완료되었으면, 이제 우분투 재부팅 시에도 VSFTPD가 자동 실행되도록 설정해 주자.

 $ sudo systemctl enable vsftpd







기타 프로그램을 통한 접근시 유의사항



필자와 같은 VSFTPD를 설정한 이후 FTP접근 툴을 통해


FTP로 접근을 할때 주의 사항이  한가지 있다.


혹 전송이 안되는 경우 전송 설정을 능동형 으로 변경해 주자.










반응형
//

[jQuery] 원을 그리며 카운트 세는 타이머 애니메이션[jQuery] 원을 그리며 카운트 세는 타이머 애니메이션

Posted at 2018. 11. 2. 18:18 | Posted in JavaScript & jQuery/jQuery
반응형









■ 동그라미를 그리는 카운트 다운 애니메이션



원이 그려지면서 시간경과를 표기하는 애니메이션 효과가 필요했다.

마침 검색을 통해 위와같은 플러그인을 GITHUB에서 찾았고.

아래와 같이 필자에게 필요한 형태로 수정하게 되었다.



# 소스 코드

<html>
<head>
<title>circletimer</title>   
<link href="./css/circletimer.css" rel="stylesheet">
<style type="text/css">
  #example-timer {
    height:150px;
    margin:20px auto;
    width:150px;
  }
</style>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="./js/circletimer.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.7/highlight.min.js"></script>
<script type="text/javascript">
  jQuery(document).on("ready", function() {
    jQuery("#example-timer").circletimer({
      onComplete:function() {
        alert("시간이 종료되었습니다.");
      }
      , onUpdate:function(elapsed) {
               
          // 밀리 세컨드 단위를 초단위로 변경
          var second = ~~((Math.round(elapsed) - 3000) / 1000) % 60;
         
          // 음수로 처리된 시간(초)를 양수로 전환한다.
          jQuery("#time-elapsed").html(Math.abs(second));
      }
      , timeout : 3000     // 시간은 3초로 지정
      , clockwise : true    // 시계방향으로 회전
    });


    // 타이머 시작
    jQuery("#start").on("click", function() {
      jQuery("#example-timer").circletimer("start");
    });


    // 타이머 일시 정지
    jQuery("#pause").on("click", function() {
      jQuery("#example-timer").circletimer("pause");
    });


    // 타이머 종료
    jQuery("#stop").on("click", function() {
      jQuery("#example-timer").circletimer("stop");
    });


    // 타이머 1초 증가
    jQuery("#add").on("click", function() {
      jQuery("#example-timer").circletimer("add", 1000);
    });
  })
</script>
</head>
<body>
<div class="example">
    <div id="example-timer"></div>
  <p>Time Elapsed : <span id="time-elapsed">3</span>초</p>
  <button id="start">시작</button>
  <button id="pause">정지</button>
  <button id="stop">종료</button>
  <button id="add">1초 추가</button>
  <pre>
</pre>
</div>
</body>
</html> 




# 출력 결과








반응형
//