�J�M�� FTP �u���ܦM�I�A���n�}�Ҥ]�}�I���L�A�����ܦh�ɭԧڭ̤S�o�ϥΨ� FTP ���\��C�o�ӮɭԿ�ܤ@�Ӥ���w���� FTP ���A���n��N�ܭ��n�աI���F proftpd �i�H���N Wu FTP ���~�A�t�@���Z�w���� vsftpd �]�i�H�ΨӨ��N��I�o�ӳ��`�ڭ̴N�ӽͤ@�� vsftpd ���]�w�a�I |
[root@test
root]# vi /etc/pam.d/vsftpd
#%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed auth required pam_stack.so service=system-auth auth required pam_shells.so account required pam_stack.so service=system-auth session required pam_stack.so service=system-auth |
����D�����]�w��
connect_from_port_20=YES (NO) �@�ٰO�o wu ftp ���g�峹���쪺�A����D�ʳs�u�� ftp-data �ܡH �@�o�ӳ]�w���ئb�ҰʥD�ʳs�u�� port 20 ���I listen_port=21 �@�ϥΪ� vsftpd �R�O�q�D�� port number �]�w�A�p�G�z�Q�n�ϥΫD �@���W�� ftp port�A�b�o�ӳ]�w���حק�a�I dirmessage_enable=YES (NO) �@���ϥΪ̶i�J�Y�ӥؿ��ɡA�|��ܸӥؿ��ݭn�`�N�����e�A��ܪ� �@�ɮw�]�O .message �A���M�A�i�H�ϥΩ��U���]�w���بӭq�I message_file=.message �@�� dirmessage_enable=YES �ɡA�i�H�]�w�o�Ӷ��ب��� vsftpd �@�M����ɮר���ܰT���I�z�]�i�H�]�w��L�ɦW��I listen=YES (NO) �@�Y�]�w�� YES ���� vsftpd �O�H standalone ���覡�ӱҰʪ��I pasv_enable=YES (NO) �@�ҰʳQ�ʦ��s�u(passive mode)�A�@�w�n�]�w�� YES ���աI use_localtime=YES (NO) �@�O�_�ϥΥD�����ɶ��H�I�w�]�ϥ� GMT �ɶ�(��L�ªv)�A�|��x�W �@�ɶ��� 8 �p�ɡA�@��ӻ��A��ij�]�w�� YES �a�I write_enable=YES (NO) �@�O�_���\�ϥΪ̨㦳�g�J���v���H�I�o�]�A�R���P�קﵥ�\���I connect_timeout=60 �@���O���A�p�G client ���ճs���ڭ̪� vsftpd �R�O�q�D�W�L 60 ���A �@�h�����ݡA�j���_�u���C accept_timeout=60 �@���ϥΪ̥H�Q�ʦ� PASV �Ӷi���ƶǿ�ɡA�p�G�D���ҥ� passive port �@�õ��� client �W�L60 ���A����N���L�j���_�u�I�z�i�H�ק� 60 �o�ӼƭȡC data_connection_timeout=300 �@�p�G client �P Server ������ƶǰe�b 300 �������L�k�ǰe���\�A �@�� Client ���s�u�N�|�Q�ڭ̪� vsftpd �j��簣�I idle_session_timeout=300 �@�p�G�ϥΪ̦b 300 �������S���R�O�ʧ@�A�j�����u�I max_clients=0 �@�p�G vsftpd �O�H stand alone �覡�Ұʪ��A����o�ӳ]�w���إi�H�]�w �@�P�@�ɶ��A�̦h���h�� client �i�H�P�ɳs�W vsftpd ���I�H max_per_ip=0 �@�P�W�� max_clients �����A�o�̬O�P�@�� IP �P�@�ɶ��i���\�h�ֳs�u�H pasv_max_port=0 pasv_min_port=0 �@�W����ӬO�P passive mode �ϥΪ� port number �����A�p�G�z�Q�n�ϥ� �@65400 �� 65410 �o 11 �� port �Ӷi��Q�ʦ���ƪ��s���A�i�H�o�˳]�w �@pasv_max_port=65410 �H�� pasv_min_port=65400 ftpd_banner=�@�Ǥ�r���� �@���ϥΪ̵L�k���Q�s�W�ڭ̪��D���A�Ҧp�s�u�ƶq�w�g�W�L max_clients �@���]�w�F�A���� client ���e���N�|��ܡy�@�Ǥ�r�����z���r�ˡA�z�i�H�ק� �@ �������Τ�n�J�̪��]�w�� guest_enable=YES (NO) �@�Y�o�ӭȳ]�w�� YES �ɡA�������D anonymous �n�J���b���A���|�Q �@���]���� guest (�X��) ��I local_enable=YES (NO) �@�o�ӳ]�w�ȥ����n�� YES �ɡA�b /etc/passwd �����b���~��H �@����Τ᪺�覡�n�J�ڭ̪� vsftpd �D����I local_max_rate=0 �@����Τ᪺�ǿ�t����A��쬰 bytes/second�A 0 ��������C chroot_local_user=YES (NO) �@�N�ϥΪ̭���b�ۤv���a�ؿ�����(chroot)�I�o�ӳ]�w�b vsftpd �@�����w�]�O NO�A�]�������U��ӳ]�w���ت����U��I �@�ҥH���ݭn�ҰʥL�I chroot_list_enable=YES (NO) �@�O�_�ҥαN�Y�ǹ���Τ᭭��b�L�̪��a�ؿ����H�I�w�]�O NO �A �@���L�A�p�G�z�Q�n���Y�ǨϥΪ̵L�k���}�L�̪��a�ؿ��ɡA �@�i�H�Ҽ{�N�o�ӳ]�w�� YES �A�åB�W���U�ӳ]�w�� chroot_list_file=/etc/vsftpd.chroot_list �@�p�G chroot_list_enable=YES ����N�i�H�]�w�o�Ӷ��ؤF�I�L�̭��i�H�W�w �@���@�ӹ���Τ�|�Q����b�ۤv���a�ؿ����ӵL�k���}�I(chroot) �@�@��@�ӱb���Y�i�I userlist_deny=YES (NO) �@�Y���]�w�Ȭ� YES �ɡA�h���ϥΪ̱b���Q�C�J��Y���ɮɡA�b���ɮפ� �@���ϥΪ̱N�L�k�n�J vsftpd ���A���I���ɮ��ɦW�P�U�C�]�w���ئ����C userlist_file=/etc/vsftpd.user_list �@�Y�W�� userlist_deny=YES �ɡA�h�o���ɮ״N���γB�F�I�b�o���ɮפ��� �@�b�����L�k�ϥ� vsftpd ��I �@ ����ΦW�̵n�J���]�w�� anonymous_enable=YES (NO) �@�]�w�����\ anonymous �n�J�ڭ̪� vsftpd �D���I�w�]�O YES �A���U���Ҧ� �@�����]�w���ݭn�N�o�ӳ]�w�� anonymous_enable=YES ����~�|�ͮġI anon_world_readable_only=YES (NO) �@�Ȥ��\ anonymous �㦳�U���iŪ�ɮת��v���A�w�]�O YES�C anon_other_write_enable=YES (NO) �@�O�_���\ anonymous �㦳�g�J���v���H�w�]�O NO�I�p�G�n�]�w�� YES�A �@����}�� anonymous �g�J���ؿ���ݭn�վ��v���A�� vsftpd �� PID �@�֦��̥i�H�g�J�~��I anon_mkdir_write_enable=YES (NO) �@�O�_�� anonymous �㦳�إߥؿ����v���H�w�]�ȬO NO�I�p�G�n�]�w�� YES�A �@���� anony_other_write_enable �����]�w�� YES �I anon_upload_enable=YES (NO) �@�O�_�� anonymous �㦳�W�Ǹ�ƪ��\��A�w�]�O NO�A�p�G�n�]�w�� YES �A �@�h anon_other_write_enable=YES �����]�w�C deny_email_enable=YES (NO) �@�N�Y�ǯS���� email address ��צ��A�������� anonymous �n�J�I �@�p�G�H anonymous �n�J�D���ɡA���O�|�n�D��J�K�X�ܡH�K�X���O�n�z �@��J�z�� email address �ܡH�p�G�A�ܰQ���Y�� email address �A �@�N�i�H�ϥγo�ӳ]�w�ӱN�L�����n�J���v���I�ݻP�U�ӳ]�w���ذt�X�G banned_email_file=/etc/vsftpd.banned_emails �@�p�G deny_email_enable=YES �ɡA�i�H�Q�γo�ӳ]�w���بӳW�w���� �@email address ���i�n�J�ڭ̪� vsftpd ��I�b�W���]�w���ɮפ��A �@�@���J�@�� email address �Y�i�I no_anon_password=YES (NO) �@���]�w�� YES �ɡA���� anonymous �N�|���L�K�X����B�J�A �@�Ӫ����i�J vsftpd ���A������I�ҥH�@��w�]���O NO ���I anon_max_rate=0 �@�o�ӳ]�w�ȫ᭱�����ƭȳ�쬰 bytes/�� �A���� anonymous ���ǿ�t�סA �@�p�G�O 0 �h������(�ѳ̤j�W�e�ҭ���)�A�p�G�z�Q�� anonymous �Ȧ� �@30 KB/s ���t�סA�i�H�]�w�yanon_max_rate=30000�z anon_umask=077 �@���� anonymous ���v���I�p�G�O 077 �h anonymous �ǰe�L�Ӫ��ɮ� �@�v���|�O -rw------- ��I �@ ����t�Φw�����]�w�ȡG ascii_download_enable=YES (NO) �@�p�G�]�w�� YES �A���� client �N�i�H�ϥ� ASCII �榡�U���ɮסC �@�@��ӻ��A�ѩ�ҰʤF�o�ӳ]�w���إi��|�ɭP DoS �������A�]���w�]�ONO�C ascii_upload_enable=YES (NO) �@�P�W�@�ӳ]�w�������A�u�O�o�ӳ]�w�w��W�ǦӨ��I�w�]�O NO�C async_abor_enable=YES (NO) �@�p�G�z�� FTP client �|�U�F "async ABOR" �o�ӫ��O�ɡA�o�ӳ]�w�~�ݭn�ҥ� �@�@��ӻ��A�ѩ�o�ӳ]�w�ä��w���A�ҥH�q�`���O�N�L�������I check_shell=YES (NO) �@�p�G�z�Q���֦�����_�Ǫ� shell ���ϥΪ�(�b /etc/passwd �� shell ���) �@�i�H�ϥ� vsftpd ���ܡA�o�ӳ]�w�i�H�]�w�� NO ��I one_process_model=YES (NO) �@�o�ӳ]�w���ؤ���M�I�@�I����]�w�� YES �ɡA���ܨC�ӫإߪ��s�u �@���|�֦��@�� process �b�t�d�A�i�H�W�[ vsftpd ���į�C���L�A �@���D�z���t�Τ���w���A�ӥB�w��t�Ƥ�����A�_�h�e���Ӻɨt�θ귽��I �@�@���ij�]�w�� NO ���աI tcp_wrappers=YES (NO) �@���M�ڭ̳��ߺD�䴩 TCP Wrappers ���աI�ҥH�]�w�� YES �a�I xferlog_enable=YES (NO) �@���]�w�� YES �ɡA�ϥΪ̤W�ǻP�U���ɮ׳��|�Q�����_�ӡC�O���ɮ� �@�P�U�@�ӳ]�w���ئ����G xferlog_file=/var/log/vsftpd.log �@�p�G�W�@�� xferlog_enable=YES ���ܡA�o�̴N�i�H�]�w�F�I �@�o�ӬO�n���ɪ��ɦW�աI xferlog_std_format=YES (NO) �@�O�_�]�w�� wu ftp �ۦP���n���ɮ榡�H�I�w�]�� NO �A�]���n���ɷ|����e��Ū�I �@���L�A�p�G�z���ϥ� wu ftp �n���ɪ����R�n��A�o�̤~�ݭn�]�w�� YES nopriv_user=nobody �@�ڭ̪� vsftpd �w�]�H nobody �@�����@�A�Ȱ���̪��v���C�]�� nobody ���v�� �@�۷����C�A�]���Y�ϳQ�J�I�A�J�I�̶ȯ���o nobody ���v����I pam_service_name=vsftpd �@�o�ӬO pam �Ҳժ��W�١A�ڭ̩�m�b /etc/pam.d/vsftpd �Y�O�o�өN�N�I |
[root@test
root]# vi /etc/xinetd.d/vsftpd
service ftp { socket_type = stream wait = no user = root server = /usr/local/sbin/vsftpd server_args = /etc/vsftpd.conf # �W���o�ӽШ̷ӱz���D�����Ҩӳ]�w�I�ר�O server_args �г]�w�z�� # vsftpd.conf �Ҧb�ؿ��������ɦW(�t�ؿ��W��)�I log_on_success += DURATION USERID log_on_failure += USERID nice = 10 disable = no } [root@test root]# vi /etc/vsftpd/vsftpd.conf # (�� /etc/vsftpd.conf) # ����D���P�w���ʪ��]�w use_localtime=YES dirmessage_enable=YES connect_from_port_20=YES xferlog_enable=YES xferlog_std_format=YES pam_service_name=vsftpd tcp_wrappers=YES # ���� anonymous ���]�w anonymous_enable=YES # ���� real user ���]�w local_enable=YES write_enable=YES local_umask=022 userlist_enable=YES # �H�W�]�w�Ȫ��N�q�Щ��e½�� vsftpd.conf �]�w�Ȫ��N�q ���`�h��ݡI [root@test root]# /etc/rc.d/init.d/xinetd restart |
1. ��¦�]�w��
[root@test root]# vi /etc/vsftpd/vsftpd.conf (�� /etc/vsftpd.conf) # ����D���P�w���ʪ��]�w use_localtime=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES pam_service_name=vsftpd tcp_wrappers=YES # ���� anonymous ���]�w anonymous_enable=NO # ���� Real User ���]�w local_enable=YES write_enable=YES local_umask=022 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list userlist_deny=YES userlist_file=/etc/vsftpd.user_list local_max_rate=100000 # �H�W�]�w�Ȫ��N�q�Щ��e½�� vsftpd.conf �]�w�Ȫ��N�q ���`�h��ݡI �@ 2. �������Τ�b�ۤv���a�ؿ��� (chroot) ���]�w�� [root@test root]# vi /etc/vsftpd.chroot_list badbird nogoodbird # �S���g��o���ɮפ�����L�Τ�A�N�i�H���}�ۤv���a�ؿ��A # �Ө��L�ؿ��̭��h�s���F�I �@ 3. �H PAM �Ҳխ���Y�DZb���L�k�n�J�D�����]�w�G [root@test root]# vi /etc/pam.d/vsftpd # �|�o�{�o�˪��r�y�G auth ..... file=/etc/vsftpd.ftpusers .... # ���� file=.. �᭱�����ɦW�N�O�H PAM �Ҳթ�ת��b�����e�F�I [root@test root]# vi /etc/vsftpd.ftpusers # ���U�C�X���b���N�L�k�ϥ� vsftpd ��I�P wu ftp �� /etc/ftpusers �ۦP�\�� root bin daemon adm lp sync shutdown halt news uucp operator games nobody �@ 4. �H userlist_file ��Y�DZb�����n�J�G # �ƹ�W�A�o�ӥ\��P�W���� PAM �\��ۦ��աI�u�O PAM �O�~�����A�� # �o�ӳ]�w�O vsftpd �w�]���Ѫ��N�O�F�I [root@test root]# vi /etc/vsftpd.user_list # �o���ɮת��]�w�P�W�� /etc/vsftpd.ftpusers �ۦP�Y�i�I root bin daemon adm lp sync shutdown halt news uucp operator games nobody �@ 5. �]�w�i�J�ؿ��ɡA��ܪ��T���G [root@test root]# vi /home/.message �@��ϥΪ̮a�ؿ� �@ 6. ���s�Ұ� xinetd �o�I [root@test root]# /etc/rc.d/init.d/xinetd restart |
1. ��¦�]�w��
[root@test root]# vi /etc/vsftpd/vsftpd.conf (�� /etc/vsftpd.conf) # �P�D���P�w���ʦ������]�w use_localtime=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES xferlog_file=/var/log/vsftpd.log data_connection_timeout=60 idle_session_timeout=600 max_clients=50 max_per_ip=5 ascii_upload_enable=NO ascii_download_enable=NO connect_from_port_20=YES pasv_min_port=65400 pasv_max_port=65420 pam_service_name=vsftpd tcp_wrappers=YES nopriv_user=ftp # ���� anonymous ���]�w anonymous_enable=YES anon_other_write_enable=YES anon_mkdir_write_enable=YES anon_upload_enable=YES deny_email_enable=YES banned_email_file=/etc/vsftpd.banned_emails anon_max_rate=30000 # ���� real user ���]�w local_enable=NO # �H�W�]�w�Ȫ��N�q�Щ��e½�� vsftpd.conf �]�w�Ȫ��N�q ���`�h��ݡI �@ 2. �إߩ�פ��� email address ���ɮ� [root@test root]# vi /etc/vsftpd.banned_emails linux.vbird.org # �@��g�@�� email �W�ٳ�I �@ 3. �إߥi�H�W�Ǫ��ؿ��I # �]���ڭ̪� nopriv_user �]�w�� ftp �A�ҥH�W�Ǫ��ؿ��֦��̬� ftp �� [root@test root]# mkdir -p /var/ftp/upload [root@test root]# chown ftp /var/ftp/upload �@ 4. ���s�Ұ� xinetd �o�I [root@test root]# /etc/rc.d/init.d/xinetd restart |
Client �ݨèS������n�]�w���a��A�D�n�N�O ftp ���ϥΤF�A�аѦ� wu FTP �D���]�w�@�`�I
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 21 -j ACCEPT |
[root@test
root]# vi /etc/hosts.deny
vsftpd: 192.168.1.2 |
[root@test
root]# vi /etc/xinetd.d/vsftpd
# vsftpd is the secure FTP server. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/local/sbin/vsftpd server_args = /etc/vsftpd.conf # �W���o�� server ���]�w�Ш̷ӱz���D�����Ҩӳ]�w�I # �ܩ� server_args �h�мg�J�z�� vsftpd ���]�w�ɧ����ɦW�Y�i�I per_source = 5 # �P�P�@ IP ���s�u�ƥئ��� instances = 200 # �P�@�ɶ��̦h���s�u�ƥ� no_access = 192.168.1.3 banner_fail = /etc/vsftpd.busy_banner # �W���o���ɮ״N�O���D�����L���A�h�b Client ����ܪ����e�I log_on_success += PID HOST DURATION log_on_failure += HOST } �@ [root@test root]# vi /etc/vsftpd.busy.banner 421 �ܩ�p�A���A�����L���I �@ [root@test root]# /etc/rc.d/init.d/xinetd restart |